版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
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請輸入學(xué)號(hào):"); scanf("%ld&qu
10、ot;,&p->num); printf("n請輸入姓名:"); scanf("%s",p->name); printf("n請輸入性別:"); getchar(); /*取走上一個(gè)留下來得n*/ scanf("%s",p->sex);
11、60; printf("n請輸入生日(年月日,用回車隔開):n"); scanf("%d%d%d",&p->birth.year,&p->birth.month,&p->birth.day); printf("n請輸入系別:"); scanf("%s",p->xi); printf("n請輸入班級(jí):&qu
12、ot;); scanf("%s",p->ban); printf("n請輸入家庭住址:"); 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請按輸入要修改的同學(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("請輸入要?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刪除失敗!"); 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("請輸入要查詢同學(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; 請選擇(0-6):"); scanf("%d",&choice); if(n=0) /*記錄為空時(shí)不讓其進(jìn)行其他操作*/ while(choice<0|choice>1)
88、0; printf("記錄為空,無法操作此項(xiàng)!"); printf("請重新輸入:(0或1)n"); scanf("%d",&choi
89、ce); else while(choice<0|choice>6) printf(&q
90、uot;輸入有誤!n 請重新輸入: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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 青春期心理健康說課稿-人教版九年級(jí)體育與健康001
- 教育行業(yè)數(shù)據(jù)存儲(chǔ)服務(wù)合同
- 一件事一次辦培訓(xùn)課件
- 二手商品交易平臺(tái)商品瑕疵免責(zé)協(xié)議
- 智能交通信號(hào)處理合同
- 智能辦公設(shè)備租賃合同
- 浙教版高中信息技術(shù)選2《多媒體技術(shù)應(yīng)用》說課稿:3.5QQ表情我來秀001
- 2024版股權(quán)轉(zhuǎn)讓合同書:股權(quán)轉(zhuǎn)讓程序及時(shí)間安排
- 旅游開發(fā)投資合同
- 文化藝術(shù)產(chǎn)品銷售合同
- 血液病染色體
- 幼兒園膳食管理委員會(huì)組織結(jié)構(gòu)概述
- 《信托知識(shí)培訓(xùn)》課件
- 介入治療的臨床應(yīng)用
- 物業(yè)項(xiàng)目經(jīng)理崗位競聘
- 第8課《蒲柳人家(節(jié)選)》教學(xué)設(shè)計(jì)-2023-2024學(xué)年統(tǒng)編版語文九年級(jí)下冊
- 第四章 牛頓運(yùn)動(dòng)定律 章末檢測題(基礎(chǔ)卷)(含答案)2024-2025學(xué)年高一上學(xué)期物理人教版(2019)必修第一冊
- 華中師范大學(xué)《高等代數(shù)與解析幾何》2023-2024學(xué)年第一學(xué)期期末試卷
- 中國傳統(tǒng)樂器蕭介紹
- QC課題提高金剛砂地面施工一次合格率
- 心內(nèi)護(hù)理疑難病例討論
評(píng)論
0/150
提交評(píng)論