




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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è)留下來得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("無此人信息!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無此人信息!"); 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("記錄為空,無法操作此項(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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è)工作計(jì)劃制定
- 游戲活動(dòng)對(duì)幼兒發(fā)展的影響計(jì)劃
- 品牌重塑中的領(lǐng)導(dǎo)力作用計(jì)劃
- 2025年紡粘法非織造布生產(chǎn)線項(xiàng)目建議書
- 分析企業(yè)強(qiáng)弱勢(shì)的管理方式計(jì)劃
- 智研咨詢發(fā)布-2025年中國玄武巖纖維行業(yè)現(xiàn)狀、發(fā)展環(huán)境及投資前景分析報(bào)告
- 2025年高精度帶材軋機(jī)項(xiàng)目合作計(jì)劃書
- 古氣候變遷在沉積記錄中的體現(xiàn)方式
- 2025年數(shù)控超精密磨床項(xiàng)目建議書
- 地球的故事之環(huán)境保護(hù)讀后感
- DB43T 744-2012 錳水質(zhì)在線自動(dòng)分析儀
- 呼吸科護(hù)理管理制度
- TCI 331-2024 工業(yè)污染源產(chǎn)排污核算系數(shù)制定通則
- 浙江省(面試)公務(wù)員考試試題及答案指導(dǎo)(2025年)
- 《數(shù)學(xué)課程標(biāo)準(zhǔn)》義務(wù)教育2022年修訂版(原版)
- 設(shè)備拆裝施工方案
- 注冊(cè)安全工程師《安全生產(chǎn)管理知識(shí)》科目知識(shí)要點(diǎn)
- 研學(xué)旅行基地評(píng)估認(rèn)定評(píng)分表
- 《新時(shí)代公民道德建設(shè)實(shí)施綱要》、《新時(shí)代愛國主義教育實(shí)施綱要》知識(shí)競(jìng)賽試題庫55題(含答案)
- 小學(xué)百科知識(shí)競(jìng)賽題庫200道及答案(完整版)
- JJ∕G(交通) 201-2024公路橋梁支座壓剪試驗(yàn)機(jī)
評(píng)論
0/150
提交評(píng)論