版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選#include<stdio.h>#include<dos.h>#define N sizeof(struct STH)#define GESHI "%-10ld%-10s%-5s%-4d/%-2d/%-4d%-12s%-12s%sn"#define PRINTF "學(xué)號(hào) 姓名 性別 生 日 系別
2、160; 班級(jí) 家庭住址n"struct STH* readfile();/*聲明*/int insert(struct STH*);int n=0;struct dt int year; /*全局變量*/
3、 int month; int day;struct STH long num; /*學(xué)號(hào)不能以0開頭*/ char name9; char sex5; struct dt birth;
4、60; char xi20; char ban20; char add30; struct STH* next;*head;/*輸入模塊*/input_message() char ch; int flag=1; do if(insert
5、(&head)!=0) n+; /*計(jì)數(shù)*/ else printf(&qu
6、ot;n有相同的的學(xué)號(hào)!"); printf("n是否連續(xù)?(y/n)"); getchar(); scanf("%c",&ch); if(ch='y'|ch='Y')
7、60; printf("n連續(xù)!"); getch(); flag=1;/*標(biāo)志程序不結(jié)束*/
8、160; else flag=0; while(flag=1); save_message(); printf("按任意鍵連續(xù)."); getch();/*i
9、nsert()模塊*/ /*被輸入和插入模塊所調(diào)用*/int insert(struct STH*h) struct STH *p,*p0; p=(struct STH*)malloc(N); printf("n請(qǐng)輸入學(xué)號(hào):"); scanf("%ld&qu
10、ot;,&p->num); printf("n請(qǐng)輸入姓名:"); scanf("%s",p->name); printf("n請(qǐng)輸入性別:"); getchar(); /*取走上一個(gè)留下來(lái)得n*/ scanf("%s",p->sex);
11、60; printf("n請(qǐng)輸入生日(年月日,用回車隔開):n"); scanf("%d%d%d",&p->birth.year,&p->birth.month,&p->birth.day); printf("n請(qǐng)輸入系別:"); scanf("%s",p->xi); printf("n請(qǐng)輸入班級(jí):&qu
12、ot;); scanf("%s",p->ban); printf("n請(qǐng)輸入家庭住址:"); scanf("%s",p->add); p->next=NULL; if(*h=NULL) *h=p;
13、 return 1; p0=*h; if(p0->num>p->num) p->next=p0; *h=p; ret
14、urn 1; while(p0->next!=NULL&&p0->next->num<p->num) p0=p0->next; if(p0->next=NULL) p0->next=p;
15、; return 1; else if(p0->next->num=p->num) free(p); /*有相同數(shù)據(jù)輸入失敗*/
16、60; return 0; else p->next=p0->next; p0->next=p; return 1; /*讀文件模塊*/
17、; /*讀文件模塊中創(chuàng)建了一個(gè)新的鏈表,其返回值為新鏈表的頭指針*/struct STH *readfile() FILE *fp; struct STH *p,*p0;
18、; char ch; int i; if(fp=fopen("STH.txt","r")=NULL) printf("n不能讀取文件!n"); return NULL;
19、0; /*留意要該*/ head=p=p0=(struct
20、STH *)malloc(N); fscanf(fp,"%d",&n); fscanf(fp,"%c",&ch); /*為了使學(xué)號(hào)和信息個(gè)數(shù)分開加入一個(gè)/*/ fscanf(fp,"%ld%s%s%d%d%d%s%s%s", &p->num,p->name,p-&
21、gt;sex,&p->birth.year,&p->birth.month,&p->birth.day,p->xi,p->ban,p->add); p->next=NULL; i=1; /*假如只有一個(gè)數(shù)時(shí)跳出*/ if(n!=1) &
22、#160; do p=(struct STH *)malloc(N); fscanf(fp,"%ld%s%s%d%d%d%s%s%s",
23、0; &p->num,p->name,p->sex,&p->birth.year,&p->birth.month,&p->birth.day,p->xi,p->ban,p->add); p0->next=p;
24、 p0=p; i+; while(i<n); p0->next=NULL; fcl
25、ose(fp); return head;/*插入模塊*/insert_message() struct STH *p; int flag=1; char ch; head=readfile(); do if(insert(&head)!=0)
26、; n+; save_message(); printf("");
27、0; /*計(jì)數(shù)*/ else printf("
28、n添加失敗!n有相同的的學(xué)號(hào)!"); save_message(); getch(); printf("n是否連續(xù)?(y/n)");
29、160; getchar(); ch=getchar(); if(ch='y'|ch='Y') printf(
30、"n連續(xù)!"); flag=1;/*標(biāo)志程序不結(jié)束*/ else flag=0; while(flag=1);
31、 printf("n按任意鍵連續(xù)."); getch();/*修改模塊*/renew_message() struct STH *p; int i,flag=1; long num; p=head=readfile(); if(head=NULL)
32、60; printf("讀文件有誤!"); getch(); else printf("n請(qǐng)按輸入要修改的同學(xué)的學(xué)號(hào):"); scanf("%ld&q
33、uot;,&num); for(i=0;i<n;i+) if(p->num=num)
34、 p->num=num; printf("n已找到要%ld號(hào)同學(xué)的信息!n",num); pr
35、intf("原姓名為%s 要修改為:n",p->name); scanf("%s",p->name); printf("原性別為%s 要修改為:n&quo
36、t;,p->sex); scanf("%s",p->sex); printf("原生日為%d/%d/%d 要修改為:n",p->birth.year,p->birt
37、h.month,p->birth.day); scanf("%d%d%d",&p->birth.year,&p->birth.month,&p->birth.day); p
38、rintf("原系別為%s 要修改為:n",p->xi); scanf("%s",p->xi); printf("原班級(jí)為%s 要修改為:n",
39、p->ban); scanf("%s",p->ban); printf("原家庭住址為%s 要修改為:n",p->add);
40、; scanf("%s",p->add); printf("你所更改后的信息為:n");
41、; printf(PRINTF); printf(GESHI, p->num,p->name,p->s
42、ex,p->birth.year,p->birth.month,p->birth.day,p->xi,p->ban,p->add); printf("n按任意鍵退出!n"); getc
43、h(); flag=1; break;
44、0; else p=p->next; if(flag!=1)
45、160; printf("無(wú)此人信息!n"); else save_message(); getch(); /*刪除模塊*/delete_message() int flag;
46、0; long num; char ch; struct STH*p,*p0; p0=p=head=readfile(); if(head=NULL) printf("文件讀取出錯(cuò)!"); getch();
47、 else printf("請(qǐng)輸入要?jiǎng)h除同學(xué)的學(xué)號(hào):n"); scanf("%ld",&num); if(p0->num=num)
48、160; head=p0->next; free(p0); flag=1; &
49、#160; n-; /*同學(xué)數(shù)減一*/ p=p0->next; while(p!=NULL)
50、60; if(p->num=num) p0->next=p->next; f
51、ree(p); flag=1; n-;
52、0; else p0=p; p=p->n
53、ext; if(p->next=NULL) flag=0; if(flag
54、=1) printf("n永久刪除%ld號(hào)同學(xué)的信息?(y/n)",num); getchar();
55、; ch=getchar(); if(ch='y'|ch='Y') save_message(); else
56、160; printf("n撤消刪除!"); getch();
57、 else printf("n刪除失?。?quot;); getch(); /*查
58、詢模塊*/inquire_message() int i,flag=0; long num; struct STH *p; p=head=readfile(); if(head=NULL) printf("文件讀取出錯(cuò)!");
59、160; getch(); else printf("請(qǐng)輸入要查詢同學(xué)的學(xué)號(hào):n"); scanf("%ld",&num); for(i=0;i<n;i+)&
60、#160; if(p->num=num) printf("n信息
61、已找到:n"); getch(); clrscr();
62、0; printf("*FOUND*n"); printf("-nn"); printf(PRINTF);
63、; printf(GESHI, p->num,p->name,p->sex,p->birth.year,p->birth.month,p->birth.day,p->xi,p->ban,p-&
64、gt;add); printf("n-n"); printf("*END*n");
65、; flag=1;break; else p=p->next; &
66、#160; if(flag=0) printf("n無(wú)此人信息!"); else printf(&
67、quot;n顯示完畢!按任意鍵返回主菜單."); getch(); /*顯示模塊*/output_message() int i=0; struct STH*p; p=head=readfile(); if(head=NULL)
68、 printf("文件讀取出錯(cuò)!"); getch(); else clrscr(); printf("n*STUDENT*n");
69、160; printf("-n"); printf(PRINTF); while(i<n) printf(GESHI,
70、; p->num,p->name,p->sex,p->birth.year,p->birth.month,p->birth.day,p->xi,p->ban,p->add); p=p->next;
71、0; i+; printf("-n"); printf("*END*n"); printf("
72、;n顯示完畢!n共%d條信息.n按任意鍵返回主菜單.",n); getch(); /*存檔模塊*/save_message() FILE *fp; int i; struct STH*p; p=head; if(fp=fopen("STH.txt","w&qu
73、ot;)=NULL) printf("讀文件錯(cuò)誤!"); exit(0); fprintf(fp,"%d",n); fprintf(fp,"%c",'/'); &
74、#160; &
75、#160; /*留意要該*/ for(i=0;i<n;i+) fprintf(fp,"%ld %s %s %d %d %d %s %s %s ", p->nu
76、m,p->name,p->sex,p->birth.year,p->birth.month,p->birth.day,p->xi,p->ban,p->add); p=p->next; fclose(fp); printf("n信息已經(jīng)保存在STH.txt文件中!"); getch();
77、; /*主函數(shù)*/void main(void) int choice; char ch; FILE *fp; struct date d; getdate(&d); if(fp=fopen("STH.txt","r")=NULL)
78、160; fp=fopen("STH.txt","w"); fprintf(fp,"%d",0); fclose(fp); else fscanf(fp
79、,"%d",&n); fclose(fp); clrscr(); printf("制作人:通工0501 李藝凡"); printf("nnn"); printf("
80、0; * n"); printf(" 歡迎進(jìn)入同學(xué)戶籍系統(tǒng)
81、60; nn"); printf(" 1 創(chuàng)建記錄n"); printf("
82、160; 2 添加記錄n"); printf(" 3 查找記錄n");
83、0; printf(" 4 刪除記錄n"); printf(" 5 修改記錄n
84、"); printf(" 6 顯示全部信息n"); printf("
85、 0 退出程序n"); printf(" * n"); printf("
86、0; %d年%d月%d日",d.da_year,d.da_mon,d.da_day); printf(" n
87、160; 請(qǐng)選擇(0-6):"); scanf("%d",&choice); if(n=0) /*記錄為空時(shí)不讓其進(jìn)行其他操作*/ while(choice<0|choice>1)
88、0; printf("記錄為空,無(wú)法操作此項(xiàng)!"); printf("請(qǐng)重新輸入:(0或1)n"); scanf("%d",&choi
89、ce); else while(choice<0|choice>6) printf(&q
90、uot;輸入有誤!n 請(qǐng)重新輸入:n"); scanf("%d",&choice); do switch(choice)
91、160; case 1:input_message();break; case 2:insert_message();break; case
92、3:inquire_message();break; case 4:delete_message();break; case 5:renew_message();break; case 6:output_
93、message();break; case 0:break; printf("n按任意鍵返回主菜單!"); getchar(); ch='y' if(ch='Y'|ch='y') clrscr(); print
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 修枝剪產(chǎn)業(yè)規(guī)劃專項(xiàng)研究報(bào)告
- 醫(yī)用隔離衣市場(chǎng)發(fā)展預(yù)測(cè)和趨勢(shì)分析
- 醫(yī)用口香糖市場(chǎng)需求與消費(fèi)特點(diǎn)分析
- 指甲干燥用化妝制劑產(chǎn)品供應(yīng)鏈分析
- 凸輪鏈輪引擎定時(shí)組件產(chǎn)業(yè)深度調(diào)研及未來(lái)發(fā)展現(xiàn)狀趨勢(shì)
- 提供麻將館行業(yè)相關(guān)項(xiàng)目經(jīng)營(yíng)管理報(bào)告
- 人教版英語(yǔ)八年級(jí)上冊(cè) 期末補(bǔ)全對(duì)話練習(xí)
- 醫(yī)用佐藥產(chǎn)品供應(yīng)鏈分析
- 制動(dòng)液更換加注機(jī)產(chǎn)業(yè)深度調(diào)研及未來(lái)發(fā)展現(xiàn)狀趨勢(shì)
- 聲音接收裝置產(chǎn)業(yè)深度調(diào)研及未來(lái)發(fā)展現(xiàn)狀趨勢(shì)
- 2024年艾滋病防治知識(shí)競(jìng)賽考試題庫(kù)200題(含答案)
- HG-T 2006-2022 熱固性和熱塑性粉末涂料
- 殘疾兒童送教上門教案
- 《簡(jiǎn)單相信傻傻堅(jiān)持》課件-高教版中職語(yǔ)文職業(yè)模塊
- (完整版)鏈傳動(dòng)習(xí)題
- 消防安全教育培訓(xùn)記錄表
- 食安員抽考必備知識(shí)考試題庫(kù)(含答案)
- 2019 思修 第三章 第三節(jié) 讓改革創(chuàng)新成為青春遠(yuǎn)航的動(dòng)力
- 優(yōu)秀生輔導(dǎo)措施及記錄表
- 抗燃油顏色加深原因分析及處理
- 宅基地轉(zhuǎn)讓協(xié)議
評(píng)論
0/150
提交評(píng)論