|
具有學(xué)生或者員工的信息錄入,查詢,修改,刪除功能,程序見附件
源程序如下:
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- void input();
- void save();
- void lookup();
- void search();
- void change();
- void delete();
- void quit();
- void read();
- struct Infor
- { int num;//編號
- char name[20];//姓名
- char phone[20];//電話
- char kind[20];//類別
- char mail[40];//郵件
- }People[200];
- int count=0;//記錄總?cè)藬?shù)
- int count1;//記錄查詢、修改、刪除中查到的信息個數(shù)
- void main()
- {
- int i;
- read ();
- while(1)
- {
- printf("\t\t\t通訊錄信息系統(tǒng)菜單\t\t\t\n");
- printf("\t_________________________________________________\t\n");
- printf("\n");
- printf("\t\t\t 數(shù)據(jù)錄入(1)\t\t\t\n");
- printf("\t\t\t 數(shù)據(jù)瀏覽(2)\t\t\t\n");
- printf("\t\t\t 數(shù)據(jù)查詢(3)\t\t\t\n");
- printf("\t\t\t 數(shù)據(jù)修改(4)\t\t\t\n");
- printf("\t\t\t 數(shù)據(jù)刪除(5)\t\t\t\n");
- printf("\t\t\t 退 出(6)\t\t\t\n");
- printf("\t__________________________________________________\t\n");
- printf("\t\t\t請輸入菜單中對應(yīng)項的數(shù)字\t\t\t\n");
- scanf("%d",&i);
- system("cls");
- switch(i)
- {
-
- case 1: input(); break;//數(shù)據(jù)輸入
- case 2: lookup(); break;//數(shù)據(jù)瀏覽
- case 3: search(); break;//數(shù)據(jù)查詢
- case 4: change(); break;//數(shù)據(jù)修改
- case 5: delete(); break;//數(shù)據(jù)刪除*/
- case 6: quit(); break;// 退出
-
- }
- }
-
- }
- //讀入文件
- void read()
- {
- FILE *fp;
- int i;
- if((fp=fopen ("infor.dat","rb"))==NULL)
- printf("文件無法打開,請檢查!\n");
- for(i=0;i<200;i++)
- {
- if(fread(&People[i],sizeof(struct Infor),1,fp)==1)
- count++;
- else if(fread(&People[i],sizeof(struct Infor),1,fp)!=1) break;
- }
- fclose(fp);
- }
- //數(shù)據(jù)錄入
- void input()
- { int i,k;
- char j;
- printf("\t\t\t 數(shù)據(jù)錄入(1)\t\t\t\n");
- for(i=count;i<200;i++)
- {
- printf("請輸入姓名: ");
- scanf("%s",People[i].name);
- {for(k=0;k<count;k++) //錄入查重
- if(strcmp(People[i].name,People[k].name)==0)
- {printf("系統(tǒng)中已有此人,請重新輸入!\n");
- input();
- }
- else continue;
- }
-
- printf("請輸入電話: ");
- scanf("%s",People[i].phone);
- printf("請輸入類別: ");
- scanf("%s",People[i].kind);
- printf("請輸入電子郵箱: ");
- scanf("%s",People[i].mail);
- count++;
- People[i].num=count;
- printf("繼續(xù)錄入嗎?y/n");
- scanf(" %c",&j);
- system("cls");
- if(j=='y') continue;
- else if(j=='n') main();
- }
-
- }
-
- //數(shù)據(jù)保存
- void save()
- {FILE *fp;
- int i;
- if((fp=fopen ("infor.dat","wb"))==NULL)
- {printf("文件無法打開,請檢查!\n");
- return;
- }
- for(i=0;i<count;i++)
- {if(fwrite(&People[i],sizeof(struct Infor),1,fp)!=1)
- printf("寫入錯誤!\n");
- }
- fclose(fp);
- }
- //數(shù)據(jù)瀏覽
- void lookup()
- {
- int i;
- printf("\t\t\t 數(shù)據(jù)瀏覽(2)\t\t\t\n");
- printf("\t編號\t姓名\t電話\t類別\t郵件\t\n");
- for(i=0;i<count;i++)
- printf("\t%d\t%s\t%s\t%s\t%s\t\n",People[i].num,People[i].name,People[i].phone,People[i].kind,People[i].mail);
- printf("\t\t\t按任意鍵返回主菜單!\t");
- getch();
- system("cls");
- }
- //退出
- void quit()
- {
- char i,j;
- printf("\t\t\t 退 出(6)\t\t\t\n");
- printf("確認(rèn)退出?y/n");
- scanf(" %c",&j);
- system("cls");
- if(j=='n') return;
- else if(j=='y')
- {
- printf("是否保存?y/n");
- scanf(" %c",&i);
- system("cls");
- if(i=='y') {save();exit(0);}
- else if(i=='n') exit(0);
-
- }
- }
- //數(shù)據(jù)查詢
- void search()
- {
- int i;
- char j[20];
- count1=0;
- printf("\t\t\t 數(shù)據(jù)查詢(3)\t\t\t\n");
- printf("請輸入要查詢的類別A、B、C\n");
- scanf(" %s",j);
- printf("\t姓名\t電話\t\n");
- for(i=0;i<200;i++)
- {
- if(strcmp(j,People[i].kind)==0)
- {printf("\t%s\t%d\t\n",People[i].name,People[i].phone);
- count1++;
- }
- }
- if(count1==0)
- {system("cls");
- printf("無此類別人員信息!\n");}
- printf("\t\t\t按任意鍵返回主菜單!\t");
- getch();
- system("cls");
-
- }
- //數(shù)據(jù)修改
- void change()
- {
- int i,k;
- char j[20];
- printf("\t\t\t 數(shù)據(jù)修改(4)\t\t\t\n");
- printf("請輸入要修改信息人員的姓名:\n");
- scanf(" %s",j);
- printf("以下為該人員信息:\n");
- printf("\t編號\t姓名\t電話\t類別\t郵件\t\n");
- for(i=0;i<200;i++)
- {
- if(strcmp(j,People[i].name)==0)
- printf("\t%d\t%s\t%s\t%s\t%s\n",People[i].num,People[i].name,People[i].phone,People[i].kind,People[i].mail);
- else continue;
- printf("\n");
- printf("\t\t\t請輸入要修改的信息后對應(yīng)序號:\t\t\t\n");
- printf("\t\t\t 編號(1)\t\t\t\n");
- printf("\t\t\t 姓名(2)\t\t\t\n");
- printf("\t\t\t 電話(3)\t\t\t\n");
- printf("\t\t\t 類別(4)\t\t\t\n");
- printf("\t\t\t 郵箱(5)\t\t\t\n");
- scanf(" %d",&k);
- printf("該信息修改為:\n");
-
- switch(k)
- {
-
- case 1: scanf(" %d",&People[i].num);break;
- case 2: scanf(" %s",People[i].name);break;
- case 3: scanf(" %s",People[i].phone);break;
- case 4: scanf(" %s",People[i].kind);break;
- case 5: scanf(" %s",People[i].mail);break;
-
- }
- printf("修改成功!\n");
- printf("\t\t\t按任意鍵返回主菜單!\t");
- getch();
- system("cls");
- }
-
- }
- //數(shù)據(jù)刪除
- void delete()
- {
- int i,temp;
- char j[20];
- printf("\t\t\t 數(shù)據(jù)刪除(5)\t\t\t\n");
- printf("請輸入要刪除信息人員的姓名:\n");
- scanf(" %s",j);
- printf("以下為該人員信息:\n");
- printf("\t編號\t姓名\t電話\t類別\t郵件\t\n");
- for(i=0;i<200;i++)
- {
- if(strcmp(j,People[i].name)==0)
- printf("\t%d\t%s\t%s\t%s\t%s\t\n",People[i].num,People[i].name,People[i].phone,People[i].kind,People[i].mail);
- else continue;
- printf("\n");
- for(i=i;i<200;i++)
- {
- temp=People[i].num;
- People[i]=People[i+1];
- People[i].num=temp;
- }
- }
- printf("\t\t\t已刪除!\t\n");
- printf("\t\t\t按任意鍵返回主菜單!\t");
- getch();
- system("cls");
- }
復(fù)制代碼
所有資料51hei提供下載:
通訊錄信息系統(tǒng).zip
(251.73 KB, 下載次數(shù): 16)
2019-7-3 17:10 上傳
點擊文件名下載附件
|
評分
-
查看全部評分
|