Інтегровані структури даних, запису.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра інформаційних систем та мереж

Інформація про роботу

Рік:
2008
Тип роботи:
Лабораторна робота
Предмет:
Інші
Група:
КН

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет «Львівська Політехніка» Кафедра Інформаційних систем та мереж Лабораторна робота №3 на тему Інтегровані структури даних, запису. Мета роботи: придбання і закріплення навиків у роботі із записами, в інтеграції даних, в модульному програмуванні. Постановка завдання Для заданої прикладної області розробити опис об'єктів цієї області. Розробити процедури, що реалізують базові операції над цими об'єктами, зокрема: -текстове введення-виведення (консольний і файловий); -присвоювання; -задання константних значень; -порівняння (не менше 2-х типів). Підготувати файл початкових даних, що містять не менше 10 значень конкретних об'єктів. Використовуючи процедури і описи модуля типу даних, розробити програму, що забезпечує введення початкових даних з першого файлу даних в пам'ять і зберігання їх в масиві, сортування масиву по алфавітному і по числовому параметру. Варіанти індивідуальних завдань Для кожної області перераховані параметри об'єкту. Серед параметрів обов'язково є ключове алфавітне поле (наприклад, прізвище), яке ідентифікує об'єкт, у кожного об'єкту є також одне або декілька числових полів, по яким вірогідні звернення до об'єкту. Набір характеристик може бути розширений і ускладнений по розсуду виконавця. Індивідуальні завдання: 8 Текстові редактори найменування, фірма-виготівник, кількість вікон, кількість шрифтів, вартість   Текст програми: #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define n 5 struct TST { char name[20]; char firm[20]; int nwind; int nfont; int price; }; from_file(TST *St); from_keyb(TST *St); to_scr(TST *St); to_file(TST *St); sort(TST *St, int k); void main() { TST St[n]; char c; clrscr(); printf("Виберiть дiю:\n"); printf("[1] Ввести данi з клавiатури.\n"); printf("[2] Зчитати данi з файлу.\n"); z:c=getch(); switch (c) { case '1': {clrscr(); from_keyb(St); break; } case '2': { from_file(St); break; } default: goto z; } clrscr(); printf("Виберiть дiю:\n"); printf("[1] Сортувати за назвою.\n"); printf("[2] Сортувати за фiрма-виготiвником\n"); printf("[3] Сортувати за кiлькiстю вiкон\n"); printf("[4] Сортувати за кiлькiстю шрифтiв\n"); printf("[5] Сортувати за вартiстю\n"); printf("[6] Не сортувати.\n"); z1:c=getch(); switch (c) { case '1': {sort(St,1); break; } case '2': {sort(St,2); break; } case '3': {sort(St,3); break; } case '4': {sort(St,4); break; } case '5': {sort(St,5); break; } case '6': break; default: goto z1; } clrscr(); printf("Виберiть дiю:\n"); printf("[1] Ввести данi на екран.\n"); printf("[2] Зчитати данi в файл.\n"); printf("[3] На екран i в файл.\n"); zz:c=getch(); switch (c) { case '1': {clrscr(); printf("Введенi/Зчитанi данi:\n"); printf("--------------------------------------------------------------------------------"); to_scr(St); break;} case '2': {clrscr(); printf("\Данi записано в файл.\n"); to_file(St); break;} case '3': {clrscr(); printf("\nВведенi/Зчитанi данi:\n"); to_scr(St); to_file(St); break;} default: goto zz; } getch(); } // ========= FUNCTIONS ============ int from_file(TST *st) { FILE *f; int i=0; TST p; f=fopen("C:\\DATA.BIN","rb"); while(fread(&p,sizeof(p),1,f),(!feof(f))) {st[i]=p; i++;} fclose(f); printf("Данi зчитано.\n"); return 0; } from_keyb(TST *St) {int i; TST p; printf("Введiть iнформацiю про текстові редактори:\n"); for(i=0; i<n; i++) {fflush(stdin); printf("\n№ %d:\n---------------\n",i+1); printf("Назва: "); gets(St[i].name); printf("Фiрма-виготiвник: "); gets(St[i].firm); printf("Кiлькiсть вiкон: "); scanf("%d",&St[i].nwind); printf("Кiлькiсть шрифтiв: "); scanf("%d",&St[i].nfont); printf("Вартiсть: "); scanf("%d",&St[i].price); } return 0; } to_file(TST *St) {FILE *f; int i; TST p; f=fopen("C:\\DATA.BIN","wb"); for (i=0; i<n; i++) { p=St[i]; fwrite(&p,sizeof(p),1,f); } return 0; } to_scr(TST *St) {int i; printf("№ Назва Фiрма-вигот. К-сть вiкон К-сть. шрифтiв Вартiсть\n"); printf("--------------------------------------------------------------------------------"); for (i=0; i<n; i++) { printf("%-3d %-18s %-15s %-12d %-15d %-d\n",i+1,St[i].name,St[i].firm,St[i].nwind,St[i].nfont,St[i].price); } printf("--------------------------------------------------------------------------------"); return 0; } sort(TST *St, int k) {int i,j; TST p; for (j=0; j<n; j++) for (i=0; i<n-1; i++) { switch(k) { case 1: {if(strcmp(St[i].name,St[i+1].name)>0) goto true; else goto false; } case 2: {if(strcmp(St[i].firm,St[i+1].firm)>0) goto true; else goto false; } case 3: {if(St[i].nwind>St[i+1].nwind) goto true; else goto false; } case 4: {if(St[i].nfont>St[i+1].nfont) goto true; else goto false;} case 5: {if(St[i].price>St[i+1].price) goto true; else goto false;} } true: { p=St[i]; St[i]=St[i+1]; St[i+1]=p; } false: // go to continue } return 0; } Результати виконання програми:    Висновки: При виконанні даної роботи я закріпив навики в роботі із записами, в інтеграції даних та в модульному програмуванні.
Антиботан аватар за замовчуванням

30.11.2012 00:11-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!