![]() ![]() |
5.05.2008г. в 21:59ч.
Коментар:
#1
|
|
|
Новак ![]() Група: Потребители Съобщения: 2 Дата на регистрация: 5.05.2008г. Потребител # 5 348 |
Съставете програма с функции за: а) Въвеждане от клавиатура във файл и масив (чрез допълване) данни за N (N<= 30) телефонни абоната: име, фамилия, адрес и телефонен номер, месечна сума за плащане. Извеждане текущото съдържание на масива (файла) на екран. б) Извеждане на справка за абонат по зададени от клавиатурата фамилия и телефонен номер (със запитване за нова справка). в) Извеждане на екран данните за всички абонати, които живеят на зададена улица (в зададен квартал). г) Извеждане текущото съдържание на масива, сортиран в нов масив по сумата за плащане. Главна функция main() - с меню за избор на функции и проверка за състоянието на данните. Използване на глобални променливи или функции с предаване на параметри - по избор. е някой надъхан, PLS... ? |
|
|
9.05.2008г. в 23:49ч.
Коментар:
#2
|
|
|
Новак ![]() Група: Потребители Съобщения: 2 Дата на регистрация: 5.05.2008г. Потребител # 5 348 |
поне ще ми напишете ли това дето липсва...?
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #include <dos.h> #define MAX 100 int menu(void); void enter(void); void display(int i); void search_abonat(void); void search_abonat_ulica(void); void spisyk_abonati(void); void load(void); void save(void); void sort_sum(void); int brst; struct catalog { char ime[20]; char familiq[20]; char adres[70]; char telefon[50]; int suma; } abonat[MAX]; int top = 0; int br = 0; int main(void) { struct catalog st[MAX]; int izbor; load(); do { clrscr(); izbor = menu(); switch(izbor) { case 1: enter(); break; case 2: search_abonat(); break; case 3: search_abonat_ulica(); break; case 4: spisyk_abonati(); break; case 5: save(); break; case 6: sort_sum(); break; default: { printf("\n \t \t ________________________ "); delay(2000); } } } while(izbor!=7); return 0; } menu(void) { int iz; printf("\n 1 _______________________"); printf("\n 2 _______________________"); printf("\n 3 _______________________"); printf("\n 4 _______________________"); printf("\n 5 _______________________"); printf("\n 6 _______________________"); printf("\n "); do { printf("\n ______________________ \n "); scanf("%d", &iz); printf("\n ________________________"); delay(2000); } while(iz<1 || iz>7); return iz; } void enter(void) { int i; int max; clrscr(); fflush(stdin); for(i=top, printf("\n ",i+1); i< max; i++);{ printf(" "); gets(abonat[i].ime); //if(!*abonat[i].ime) // break; printf("\n______________________"); gets(abonat[i].familiq); printf("\n______________________"); gets(abonat[i].adres); printf("\n______________________"); gets(abonat[i].telefon); printf("\n______________________"); scanf("%d",&abonat[i].suma); } top = i; } void display(int i) { printf("\n %d ",i+1,abonat[i].ime); printf("\n %s ",abonat[i].familiq); printf("\n %s ",abonat[i].adres); printf("\n %s ",abonat[i].telefon); printf("\n %d ",abonat[i].suma); return; } void search_abonat(void) { char t_familiq[50]; char t_telefon[50]; int i, found; clrscr(); fflush(stdin); printf("\n_____________________"); printf("\n_____________________"); gets(t_familiq); printf("\n_____________________"); gets(t_telefon); found = 0; for(i=0; i<top; i++){ if(!strcmp(t_familiq, abonat[i].familiq)) if(!strcmp(t_telefon, abonat[i].telefon)) { display(i); found = 1; printf("\n"); } } if(!found){ printf("\n_________________________"); } } if(!found){ printf("\n_________________________"); delay(3000); } } void search_abonat_ulica(void) { char t_ulica[50]; int i, found; clrscr(); fflush(stdin); printf("\n_____________________"); printf("\n_____________________"); gets(t_ulica); found = 0; for(i=0; i<top; i++){ if(!strcmp(t_ulica, abonat[i].adres)) { display(i); found = 1; printf("\n); } } if(!found){ printf("\n________"); delay(3000); } } void spisyk_abonati(void) { int i; clrscr(); gotoxy(20,2); printf("\n _______________"); for(i=0; i<top; i++) display(i); return; } void load(void) { FILE *fp; int i; clrscr(); gotoxy(20,5); if((fp = fopen("abonati.dat", "rb"))==NULL) { printf(" " \n"); delay(3000); exit(1); } for(i=0; i<=top; i++) if(fread(&abonat[i],sizeof(struct catalog), 1, fp) !=1) { delay(3000); exit(1); } fclose(fp); return; } void save(void) abonati*/ { FILE *fp; int i; clrscr(); gotoxy(20,5); printf("________________________________"); delay(3000); if((fp = fopen("abonati.dat", "wb"))==NULL) { printf("____________________________"); delay(3000); exit(1); } if(write(&top,sizeof top, 1, fp) 1=1) { printf("___________________________"); delay(3000); exit(1); } for(i=0; i<=top; i++) if(fwrite(&abonat[i],sizeof(struct catalog), 1, fp) !=1) { printf("__________________________"); delay(3000); exit(1); } fclose(fp); return; } void sort_sum(void) { struct catalog sort[MAX]; struct catalog bufer; int i; clrscr(); for(i=0;i<top1; i++) for(int j=i+1;j<top;j++) if(abonat[i].sum<abonat[j].suma) { bufer=abonat[i]; abonat[i]=abonat[j]; abonat[j]=bufer; } printf("\n________________\n"); for(i=0; i<top; i++) display(i); return; } pls напишете изпуснатото в сорса Това съобщение е било редактирано от hukepa на 9.05.2008г. в 23:48ч. |
|
|
![]() ![]() |