DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Робота зі структурами і файлами.

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

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

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

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

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

Міністерство освіти і науки України Національний університет «Львівська Політехніка» Кафедра Інформаційних систем та мереж Лабораторна робота №10 на тему Робота зі структурами і файлами. Львів – 2008 Мета роботи: практичних навичок опрацювання структур та роботи з файлами. Завдання на роботу Розробити програму яку забезпечує опрацювання структур даних і їх збереженян у файлі. Опис деякого обєкту здійснюється за допомогою типу даних структура. Необхідно забезпечити опрацювання 3-5 атрибутів обєкту з використанням різних простих типів даних (стрічки, символи, числа, логічний тип)ю Забезпечити виконання таких операцій: Ввід даних; Пошук за значенням атрибуту; Послідовний перегляд; Модифікацію значень атрибутів обєктів (структури що його описує); Видалення обєкту (структури що його описує); Сортування за значеннями атрибутів; Результати всіх операцій повинні зберігатись у файлі. В контрольному прикладі продемонстурвати виконання основних операцій з файлом який містить 10-20 збережених описів обєктів. Текст програми: #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <dos.h> #define n 20 struct Tmob { char vyr[28]; char model[28]; char colir[28]; char IMEI[28]; }; int k=0,dija=0,el=0; Tmob *mob; void vved(); void menu(); void search(); void print(); void mod(); void del(); void sort(int zn); void save(); Tmob a; void main() { FILE *f; textbackground(0); clrscr(); mob=(Tmob *)malloc(n*sizeof(Tmob)); f=fopen("MOBILA.BIN","rb"); while(fread(&mob[k],sizeof(mob[k]),1,f)) k++; fclose(f); print(); getch(); } void cursor_off() { _AH=0x1; _CH=0x20; geninterrupt(0x10); } void cursor_on() { _AH=0x1; _CH=0x6; _CL=0x7; geninterrupt(0x10); } //================= char s[30]; void vved() { char c,sm; int x=23,y=4; //strcpy(s,0); strcpy(a.vyr,0); strcpy(a.model,0); strcpy(a.colir,0); strcpy(a.IMEI,0); textcolor(0); textbackground(11); window(10,3,70,4); clrscr(); gotoxy(24,1); cprintf("Введiть данi:\n\r"); textbackground(BLUE); window(10,4,70,18); clrscr(); //------------ textcolor(0); textbackground(14); gotoxy(12,4); cprintf("Виробник: "); textbackground(15); gotoxy(23,4); cprintf(" "); //--------------- textbackground(14); gotoxy(12,6); cprintf(" Модель: "); textbackground(15); gotoxy(23,6); cprintf(" "); //-------------- textbackground(14); gotoxy(12,8); cprintf(" Колiр: "); textbackground(15); gotoxy(23,8); cprintf(" "); //-------------- strcpy(s,a.vyr); textbackground(14); gotoxy(12,10); cprintf(" IMEI: "); textbackground(15); gotoxy(23,10); cprintf(" "); textbackground(14); gotoxy(x,y); cprintf(" "); gotoxy(x,y); if(strcmp(s,0)!=0) { gotoxy(x,y); cputs(s); gotoxy(x,y); } while(1) {if(kbhit) c=getch(); switch(c) { case 80: {y+=2; if(y>10) y-=2; switch(y-2) { case 4: {strcpy(s,a.vyr); break;} case 6: {strcpy(s,a.model); break;} case 8: {strcpy(s,a.colir); break;} case 10: {strcpy(s,a.IMEI); break;} } textbackground(15); gotoxy(x,y-2); cprintf(" "); if(strcmp(s,0)!=0) { gotoxy(x,y-2); cputs(s); gotoxy(x,y-2); } textbackground(14); gotoxy(x,y); cprintf(" "); gotoxy(x,y); switch(y) { case 4: {strcpy(s,a.vyr); break;} case 6: {strcpy(s,a.model); break;} case 8: {strcpy(s,a.colir); break;} case 10: {strcpy(s,a.IMEI); break;} } if(strcmp(s,0)!=0) { gotoxy(x,y); cputs(s); gotoxy(x,y); } break;} case 72: {y-=2; if(y<4) y+=2; switch(y+2) { case 4: {strcpy(s,a.vyr); break;} case 6: {strcpy(s,a.model); break;} case 8: {strcpy(s,a.colir); break;} case 10: {strcpy(s,a.IMEI); break;} } textbackground(15); gotoxy(x,y+2); cprintf(" "); if(strcmp(s,0)!=0) { gotoxy(x,y+2); cputs(s); gotoxy(x,y+2); } textbackground(14); gotoxy(x,y); cprintf(" "); gotoxy(x,y); switch(y) { case 4: {strcpy(s,a.vyr); break;} case 6: {strcpy(s,a.model); break;} case 8: {strcpy(s,a.colir); break;} case 10: {strcpy(s,a.IMEI); break;} } if(strcmp(s,0)!=0) { cputs(s); gotoxy(x,y); } break;} case 27: goto end; case 13: { cursor_on(); int i=0; textbackground(11); gotoxy(x,y); cprintf(" "); gotoxy(x,y); puts(s); gotoxy(x+strlen(s),y); i=strlen(s); //if(i>0) {printf("\b"); i--;} sm=0; while(sm!=27&&sm!=13) if(kbhit) {sm=getch(); if(i>27) {printf("\b"); i--;} if(sm==8) {i--; if(i>=0) {printf("\b");printf(" ");printf("\b"); s[i]=0;}else i++; } else if(i<27&&sm!=27&&sm!=13) {s[i]=sm; s[i+1]=0; i++; if(sm==72||sm==80||sm==77||sm==75) sm=13; if(sm!=27) printf("%c",sm); } } textbackground(14); gotoxy(x,y); cprintf(" "); gotoxy(x,y); printf("%s ",s); gotoxy(x,y); switch(y) { case 4: {strcpy(a.vyr,s); break;} case 6: {strcpy(a.model,s); break;} case 8: {strcpy(a.colir,s); break;} case 10: {strcpy(a.IMEI,s); break;} } cursor_off(); break;} }} end: mob[k]=a; k++; save(); print(); } int st=0; void print() { char c; cursor_off(); textcolor(15); textbackground(11); window(10,3,70,4); clrscr(); gotoxy(21,1); if(st==0) cprintf(" База даних:\n\r"); else cprintf("Результати пошуку:\n\r"); textbackground(BLUE); window(10,4,70,18); clrscr(); //------------ for(int w=0; w<k; w++) { if(strlen(mob[w].vyr)>15) mob[w].vyr[15]=0; if(strlen(mob[w].model)>9)mob[w].model[9]=0; if(strlen(mob[w].colir)>10)mob[w].colir[10]=0; if(strlen(mob[w].IMEI)>20)mob[w].IMEI[20]=0; } textbackground(GREEN); textcolor(12); gotoxy(1,1); cprintf("%-3s %-15s %-9s %-10s %-20s","№","Виробник","Модель","Колiр","IMEI"); textcolor(15); if(k!=0) { if(st!=1){ for(int i=0; i<k; i++) if(i!=el) {textbackground(BLUE);gotoxy(1,i+2); cprintf("%-3d %-15s %-9s %-10s %-20s",i+1,mob[i].vyr,mob[i].model, mob[i].colir,mob[i].IMEI); } else {textbackground(14);gotoxy(1,i+2); //gotoxy(15,4); cprintf("%-3d %-15s %-9s %-10s %-20s",el+1,mob[el].vyr,mob[el].model, mob[el].colir,mob[el].IMEI); } while(1) { if(kbhit) c=getch(); switch(c) { case 80: {if(el!=k-1) el++; else el=0; textbackground(14); gotoxy(1,el+2); cprintf("%-3d %-15s %-9s %-10s %-20s",el+1,mob[el].vyr,mob[el].model, mob[el].colir,mob[el].IMEI); for(int i=0; i<k; i++) if(i!=el){textbackground(BLUE); gotoxy(1,i+2); cprintf("%-3d %-15s %-9s %-10s %-20s",i+1,mob[i].vyr,mob[i].model, mob[i].colir,mob[i].IMEI);} break;} case 72: {if(el!=0) el--; else el=k-1; textbackground(14); gotoxy(1,el+2); cprintf("%-3d %-15s %-9s %-10s %-20s",el+1,mob[el].vyr,mob[el].model, mob[el].colir,mob[el].IMEI); for(int i=0; i<k; i++) if(i!=el){textbackground(BLUE); gotoxy(1,i+2); cprintf("%-3d %-15s %-9s %-10s %-20s",i+1,mob[i].vyr,mob[i].model, mob[i].colir,mob[i].IMEI);} break;} case 13: {menu(); } } }} else { int pos=0; for(int i=0; i<k; i++) if((strcmp(mob[i].vyr,a.vyr)==0)||(strcmp(mob[i].model,a.model)==0)||(strcmp(mob[i].colir,a.colir)==0)||(strcmp(mob[i].IMEI,a.IMEI)==0)) {pos++; textbackground(BLUE);gotoxy(1,pos+1); cprintf("%-3d %-15s %-9s %-10s %-20s",i+1,mob[i].vyr,mob[i].model, mob[i].colir,mob[i].IMEI); st=0; } if(st==1) printf(" -------------Не знайдено------------"); st=0; getch(); print(); }} else{ {el=0; printf(" -----------База даних порожня----------");} while(1) { if(kbhit()) c=getch(); if(c==13) menu();} } } void run() { switch(dija) { case 2: {vved(); break;} case 8: exit(0); case 0: if (k!=0) {mod(); break;} case 1: if (k!=0) {del(); break;} case 3: if (k!=0) {search(); break;} case 4: if (k!=0) {sort(1); break;} case 5: if (k!=0) {sort(2); break;} case 6: if (k!=0) {sort(3); break;} case 7: if (k!=0) {sort(4); break;} }} #define kp 9 void menu() { char c; char d[kp][40]; dija=0; //textbackground(11); //window(10,11,40,18); strcpy(d[0],"=>Редагувати поточний елемент \n\r"); strcpy(d[1],"=>Видалити поточний елемент \n\r"); strcpy(d[2],"=>Додати новий елемент до бази \n\r"); strcpy(d[3],"=>Пошук за значенням атрибуту \n\r"); strcpy(d[4],"=>Сортувати по полю Виробник \n\r"); strcpy(d[5],"=>Сортувати по полю Модель \n\r"); strcpy(d[6],"=>Сортувати по полю Колiр \n\r"); strcpy(d[7],"=>Сортувати по полю IMEI \n\r"); strcpy(d[8],"=>Вийти з програми \n\r"); textbackground(12); gotoxy(15,4); if(k==0) textcolor(7); else textcolor(14); cprintf(d[0]); for(int i=0; i<kp; i++) if(i!=0){if(i!=2&&i!=8&&k==0) textcolor(7); else textcolor(14); textbackground(11); gotoxy(15,i+4); cprintf(d[i]);} textcolor(14); while(1) { if(kbhit) c=getch(); switch(c) { case 80: {if(dija!=kp-1) dija++; else dija=0; textbackground(12); gotoxy(15,dija+4);if(dija!=2&&dija!=8&&k==0) textcolor(7); else textcolor(14); cprintf(d[dija]); for(int i=0; i<kp; i++) if(i!=dija){textbackground(11); gotoxy(15,i+4);if(i!=2&&i!=8&&k==0) textcolor(7); else textcolor(14); cprintf(d[i]);} break;} case 72: {if(dija!=0) dija--; else dija=kp-1; textbackground(12); gotoxy(15,dija+4); if(dija!=2&&dija!=8&&k==0) textcolor(7); else textcolor(14); cprintf(d[dija]); for(int i=0; i<kp; i++) if(i!=dija){textbackground(11); gotoxy(15,i+4); if(i!=2&&i!=8&&k==0) textcolor(7); else textcolor(14); cprintf(d[i]);}break;} case 27: {print();} case 13: {run();} }}} void mod() { char c,sm; int x=23,y=4; //strcpy(s,0); strcpy(a.vyr,mob[el].vyr); strcpy(a.model,mob[el].model); strcpy(a.colir,mob[el].colir); strcpy(a.IMEI,mob[el].IMEI); textcolor(14); textbackground(11); window(10,3,70,4); clrscr(); gotoxy(24,1); cprintf("Редагування:\n\r"); textbackground(BLUE); window(10,4,70,18); clrscr(); //------------ textcolor(0); textbackground(14); gotoxy(12,4); cprintf("Виробник: "); textbackground(15); gotoxy(23,4); cprintf(" "); gotoxy(23,4); cprintf(a.vyr); //--------------- textbackground(14); gotoxy(12,6); cprintf(" Модель: "); textbackground(15); gotoxy(23,6); cprintf(" "); gotoxy(23,6); cprintf(a.model); //-------------- textbackground(14); gotoxy(12,8); cprintf(" Колiр: "); textbackground(15); gotoxy(23,8); cprintf(" "); gotoxy(23,8); cprintf(a.colir); //-------------- strcpy(s,a.vyr); textbackground(14); gotoxy(12,10); cprintf(" IMEI: "); textbackground(15); gotoxy(23,10); cprintf(" "); gotoxy(23,10); cprintf(a.IMEI); textbackground(14); gotoxy(x,y); cprintf(" "); gotoxy(x,y); gotoxy(x,y); if(strcmp(s,0)!=0) { gotoxy(x,y); cputs(s); gotoxy(x,y); } while(1) {if(kbhit) c=getch(); switch(c) { case 80: {y+=2; if(y>10) y-=2; switch(y-2) { case 4: {strcpy(s,a.vyr); break;} case 6: {strcpy(s,a.model); break;} case 8: {strcpy(s,a.colir); break;} case 10: {strcpy(s,a.IMEI); break;} } textbackground(15); gotoxy(x,y-2); cprintf(" "); if(strcmp(s,0)!=0) { gotoxy(x,y-2); cputs(s); gotoxy(x,y-2); } textbackground(14); gotoxy(x,y); cprintf(" "); gotoxy(x,y); switch(y) { case 4: {strcpy(s,a.vyr); break;} case 6: {strcpy(s,a.model); break;} case 8: {strcpy(s,a.colir); break;} case 10: {strcpy(s,a.IMEI); break;} } if(strcmp(s,0)!=0) { gotoxy(x,y); cputs(s); gotoxy(x,y); } break;} case 72: {y-=2; if(y<4) y+=2; switch(y+2) { case 4: {strcpy(s,a.vyr); break;} case 6: {strcpy(s,a.model); break;} case 8: {strcpy(s,a.colir); break;} case 10: {strcpy(s,a.IMEI); break;} } textbackground(15); gotoxy(x,y+2); cprintf(" "); if(strcmp(s,0)!=0) { gotoxy(x,y+2); cputs(s); gotoxy(x,y+2); } textbackground(14); gotoxy(x,y); cprintf(" "); gotoxy(x,y); switch(y) { case 4: {strcpy(s,a.vyr); break;} case 6: {strcpy(s,a.model); break;} case 8: {strcpy(s,a.colir); break;} case 10: {strcpy(s,a.IMEI); break;} } if(strcmp(s,0)!=0) { cputs(s); gotoxy(x,y); } break;} case 27: goto end; case 13: { cursor_on(); int i=0; textbackground(11); gotoxy(x,y); cprintf(" "); gotoxy(x,y); puts(s); gotoxy(x+strlen(s),y); i=strlen(s); sm=0; while(sm!=27&&sm!=13) if(kbhit) {sm=getch(); if(i>27) {printf("\b"); i--;} if(sm==8) {i--; if(i>=0) {printf("\b");printf(" ");printf("\b"); s[i]=0;}else i++; } else if(i<27&&sm!=27&&sm!=13) {s[i]=sm; s[i+1]=0; i++; if(sm==72||sm==80||sm==77||sm==75) sm=13; if(sm!=27) printf("%c",sm); }} textbackground(14); gotoxy(x,y); cprintf(" "); gotoxy(x,y); printf("%s ",s); gotoxy(x,y); switch(y) { case 4: {strcpy(a.vyr,s); break;} case 6: {strcpy(a.model,s); break;} case 8: {strcpy(a.colir,s); break;} case 10: {strcpy(a.IMEI,s); break;} } cursor_off(); break;} }} end: mob[el]=a; save(); print(); } void del() { k--; if(el!=k){ for(int i=el; i<k; i++) mob[i]=mob[i+1]; } else el--; save(); print(); } void search() { char c,sm; int x=23,y=4; st=1; //strcpy(s,0); strcpy(a.vyr,0); strcpy(a.model,0); strcpy(a.colir,0); strcpy(a.IMEI,0); textcolor(0); textbackground(11); window(10,3,70,4); clrscr(); gotoxy(24,1); cprintf("Введiть данi:\n\r"); textbackground(BLUE); window(10,4,70,18); clrscr(); //------------ textcolor(0); textbackground(14); gotoxy(12,4); cprintf("Виробник: "); textbackground(15); gotoxy(23,4); cprintf(" "); //--------------- textbackground(14); gotoxy(12,6); cprintf(" Модель: "); textbackground(15); gotoxy(23,6); cprintf(" "); //-------------- textbackground(14); gotoxy(12,8); cprintf(" Колiр: "); textbackground(15); gotoxy(23,8); cprintf(" "); //-------------- strcpy(s,a.vyr); textbackground(14); gotoxy(12,10); cprintf(" IMEI: "); textbackground(15); gotoxy(23,10); cprintf(" "); textbackground(14); gotoxy(x,y); cprintf(" "); gotoxy(x,y); if(strcmp(s,0)!=0) { gotoxy(x,y); cputs(s); gotoxy(x,y); } while(1) {if(kbhit) c=getch(); switch(c) { case 80: {y+=2; if(y>10) y-=2; switch(y-2) { case 4: {strcpy(s,a.vyr); break;} case 6: {strcpy(s,a.model); break;} case 8: {strcpy(s,a.colir); break;} case 10: {strcpy(s,a.IMEI); break;} } textbackground(15); gotoxy(x,y-2); cprintf(" "); if(strcmp(s,0)!=0) { gotoxy(x,y-2); cputs(s); gotoxy(x,y-2); } textbackground(14); gotoxy(x,y); cprintf(" "); gotoxy(x,y); switch(y) { case 4: {strcpy(s,a.vyr); break;} case 6: {strcpy(s,a.model); break;} case 8: {strcpy(s,a.colir); break;} case 10: {strcpy(s,a.IMEI); break;} } if(strcmp(s,0)!=0) { gotoxy(x,y); cputs(s); gotoxy(x,y); } break;} case 72: {y-=2; if(y<4) y+=2; switch(y+2) { case 4: {strcpy(s,a.vyr); break;} case 6: {strcpy(s,a.model); break;} case 8: {strcpy(s,a.colir); break;} case 10: {strcpy(s,a.IMEI); break;} } textbackground(15); gotoxy(x,y+2); cprintf(" "); if(strcmp(s,0)!=0) { gotoxy(x,y+2); cputs(s); gotoxy(x,y+2); } textbackground(14); gotoxy(x,y); cprintf(" "); gotoxy(x,y); switch(y) { case 4: {strcpy(s,a.vyr); break;} case 6: {strcpy(s,a.model); break;} case 8: {strcpy(s,a.colir); break;} case 10: {strcpy(s,a.IMEI); break;} } if(strcmp(s,0)!=0) { cputs(s); gotoxy(x,y); } break;} case 27: goto end; case 13: { cursor_on(); int i=0; textbackground(11); gotoxy(x,y); cprintf(" "); gotoxy(x,y); puts(s); gotoxy(x+strlen(s),y); i=strlen(s); //if(i>0) {printf("\b"); i--;} sm=0; while(sm!=27&&sm!=13) if(kbhit) {sm=getch(); if(i>27) {printf("\b"); i--;} if(sm==8) {i--; if(i>=0) {printf("\b");printf(" ");printf("\b"); s[i]=0;}else i++; } else if(i<27&&sm!=27&&sm!=13) {s[i]=sm; s[i+1]=0; i++; if(sm==72||sm==80||sm==77||sm==75) sm=13; if(sm!=27) printf("%c",sm); }} textbackground(14); gotoxy(x,y); cprintf(" "); gotoxy(x,y); printf("%s ",s); gotoxy(x,y); switch(y) { case 4: {strcpy(a.vyr,s); break;} case 6: {strcpy(a.model,s); break;} case 8: {strcpy(a.colir,s); break;} case 10: {strcpy(a.IMEI,s); break;} } cursor_off(); break;} }} end: print(); } void sort(int zn) {Tmob temp; switch(zn) { case 1: { for(int i=0; i<k; i++) for(int j=0; j<k-1; j++) if(strcmp(mob[j].vyr,mob[j+1].vyr)>0) {temp=mob[j]; mob[j]=mob[j+1]; mob[j+1]=temp; } break; } case 2: { for(int i=0; i<k; i++) for(int j=0; j<k-1; j++) if(strcmp(mob[j].model,mob[j+1].model)>0) {temp=mob[j]; mob[j]=mob[j+1]; mob[j+1]=temp; } break; } case 3: { for(int i=0; i<k; i++) for(int j=0; j<k-1; j++) if(strcmp(mob[j].colir,mob[j+1].colir)>0) {temp=mob[j]; mob[j]=mob[j+1]; mob[j+1]=temp; } break; } case 4: { for(int i=0; i<k; i++) for(int j=0; j<k-1; j++) if(strcmp(mob[j].IMEI,mob[j+1].IMEI)>0) {temp=mob[j]; mob[j]=mob[j+1]; mob[j+1]=temp; } break; } } save(); print(); } void save() {FILE *f; f=fopen("MOBILA.BIN","wb"); for(int i=0; i<k; i++) fwrite(&mob[i],sizeof(mob[i]),1,f); fclose(f); }   Результати виконання програми:        Висновки: Я набув практичних навичок опрацювання структур та роботи з файлами.
Антиботан аватар за замовчуванням

30.11.2012 00:55

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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