![學(xué)生成績管理程序_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/25/669a6b50-f627-4df7-a952-48bc6f314a13/669a6b50-f627-4df7-a952-48bc6f314a131.gif)
![學(xué)生成績管理程序_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/25/669a6b50-f627-4df7-a952-48bc6f314a13/669a6b50-f627-4df7-a952-48bc6f314a132.gif)
![學(xué)生成績管理程序_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/25/669a6b50-f627-4df7-a952-48bc6f314a13/669a6b50-f627-4df7-a952-48bc6f314a133.gif)
![學(xué)生成績管理程序_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/25/669a6b50-f627-4df7-a952-48bc6f314a13/669a6b50-f627-4df7-a952-48bc6f314a134.gif)
![學(xué)生成績管理程序_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/25/669a6b50-f627-4df7-a952-48bc6f314a13/669a6b50-f627-4df7-a952-48bc6f314a135.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、#include #include #include #define PF printf#define LEN sizeof(struct student)/定義結(jié)構(gòu)體struct student char NO20; char name20; int age; char sex3; /*F表示性別男,M表示性別女*/ char birthday10; char address30; char phone20; char e_mail20; struct student *next; /下個結(jié)點(diǎn);typedef struct student STU;STU *head=NULL; /全局指針i
2、nt n,i=0; /全局變量/自定義函數(shù)void show_menu(); /顯示菜單void menu(); /執(zhí)行菜單void creat_stu(); /建立鏈表 void insert_stu(); /學(xué)生信息錄入void print_stu(); /學(xué)生信瀏覽void search_NO(); /以學(xué)號方式查詢信息void search_name(); /以姓名方式查詢信息void arrage_stu(); /排序void del_stu(); /刪除學(xué)生信息void revise_stu(); /修改學(xué)生信息void save(); /保存信息void main() syste
3、m(“color 3f”);creat_stu(); menu();/創(chuàng)建鏈表void creat_stu() FILE *fp; long size; STU *p1,*p2; head=(STU *)malloc(sizeof(STU); head-next=NULL; if(fp=fopen(fname.txt,r)=NULL) printf(這是新表n); return; fseek(fp,0L,2); size=ftell(fp); if(!size) printf(這是空表n); return; /開始創(chuàng)建鏈表 rewind(fp); /移動到文件首 p2=head-next; /
4、找到但前位置 while(!feof(fp) p1=(STU *)malloc(sizeof(STU); fscanf(fp,%s %s %d %s %s %s %s %sn,p1-NO,p1-name,&p1-age, p1-sex,p1-birthday,p1-address,p1-phone,p1-e_mail); p1-next=NULL; /創(chuàng)建節(jié)點(diǎn)完 if(head-next=NULL) head-next=p1; else p2-next=p1; p2=p1; n+; p2-next=NULL; fclose(fp);/執(zhí)行菜單void menu() int c; show_me
5、nu(); while(1) scanf(%d,&c); switch(c) getchar(); case 1:insert_stu();break; case 2:print_stu();break; case 3:search_NO(); break; case 4:search_name(); break; case 5:del_stu(); break; case 6:revise_stu(); break; case 7:arrage_stu();break; case 0:exit(0); /執(zhí)行菜單選項 show_menu(); /顯示菜單void show_menu() PF
6、(n); PF(n菜單n); PF(tt1.輸 入 學(xué) 生 信 息 n); PF(tt2.瀏 覽 學(xué) 生 信 息 n); PF(tt3.以學(xué)號方式查詢信息n); PF(tt4.以姓名方式查詢信息n); PF(tt5.刪 除 學(xué) 生 信 息 n); PF(tt6.修 改 學(xué) 生 信 息 n); PF(tt7 排 序 n); PF(tt0. 退 出 n); PF(n); PF(n請選擇n);/學(xué)生信息錄入void insert_stu() /學(xué)生信息錄入 n=0; STU *p1=NULL,*p2=NULL; p1=(STU *)malloc(sizeof(STU); PF(n錄入學(xué)生信息n);
7、/錄入學(xué)生信息 PF(tt輸入學(xué)生學(xué)號:t); scanf(%s,p1-NO); /學(xué)號 PF(tt輸入學(xué)生姓名:t); scanf(%s,p1-name); /姓名 PF(tt輸入學(xué)生年齡:t); scanf(%d,&p1-age); /年齡 PF(tt輸入學(xué)生性別:t); scanf(%s,p1-sex); /性別 PF(tt輸入學(xué)生出生年月:t); scanf(%s,p1-birthday); /出生年月 PF(tt輸入學(xué)生地址:t); scanf(%s,p1-address); /地址 PF(tt輸入學(xué)生電話:t); scanf(%s,p1-phone); /電話 PF(tt輸入學(xué)生E
8、-mail:t); scanf(%s,p1-e_mail); /E-mail n+; if(head-next=NULL) head=(STU *)malloc(LEN); head-next=p1; else for(p2=head;p2-next!=NULL;p2=p2-next); /*找到最后的結(jié)點(diǎn),然后 將增加的結(jié)點(diǎn)掛在它上面*/ p2-next=p1; p1-next=NULL; save();/保存到文件 /學(xué)生信瀏覽void print_stu() /學(xué)生信瀏覽 STU *p=NULL; if(head=NULL) /判斷鏈表是否為空 PF(文檔中無記錄!n); return;
9、 for(p=head-next;p!=NULL;p=p-next) /讀出信息 PF(學(xué)生信瀏覽n); PF(tt學(xué)生學(xué)號:t%sn,p-NO); PF(tt學(xué)生姓名:t%sn,p-name); PF(tt學(xué)生年齡:t%dn,p-age); PF(tt學(xué)生性別:t%sn,p-sex); PF(tt學(xué)生出生年月:t%sn,p-birthday); PF(tt學(xué)生地址:t%sn,p-address); PF(tt學(xué)生電話:t%sn,p-phone); PF(tt學(xué)生E-mail:t%sn,p-e_mail); PF(n); /輸出信息 /學(xué)生姓名信息查找void search_name() /學(xué)
10、生姓名信息查找 STU *p=NULL; char name20; if(head=NULL) /判斷鏈表是否為空 PF(文檔中無記錄!n); return; PF(輸入學(xué)生姓名:); scanf(%s,name); for(p=head-next;p!=NULL;p=p-next) /讀出信息 if(!strcmp(p-name,name) PF(您查找的學(xué)生是n); PF(tt學(xué)生學(xué)號:t%sn,p-NO); PF(tt學(xué)生姓名:t%sn,p-name); PF(tt學(xué)生年齡:t%dn,p-age); PF(tt學(xué)生性別:t%sn,p-sex); PF(tt學(xué)生出生年月:t%sn,p-bi
11、rthday); PF(tt學(xué)生地址:t%sn,p-address); PF(tt學(xué)生電話:t%sn,p-phone); PF(tt學(xué)生E-mail:t%sn,p-e_mail); PF(n); i=1; /輸出信息 if(!i) PF(無該生信息!請查證:); /沒找到信息時的處理 /學(xué)生學(xué)號信息查找void search_NO() /學(xué)生學(xué)號信息查找 STU *p=NULL; char NO20; if(head=NULL) /判斷鏈表是否為空 PF(文檔中無記錄!n); return; PF(請輸入學(xué)生學(xué)號:); scanf(%s,NO); for(p=head-next;p!=NULL
12、;p=p-next) /讀出信息 if(!strcmp(p-NO,NO) PF(您查找的學(xué)生是n); PF(tt學(xué)生學(xué)號:t%sn,p-NO); PF(tt學(xué)生姓名:t%sn,p-name); PF(tt學(xué)生年齡:t%dn,p-age); PF(tt學(xué)生性別:t%sn,p-sex); PF(tt學(xué)生出生年月:t%sn,p-birthday); PF(tt學(xué)生地址:t%sn,p-address); PF(tt學(xué)生電話:t%sn,p-phone); PF(tt學(xué)生E-mail:t%sn,p-e_mail); PF(n); i=1; /輸出信息 if(!i) PF(無該生信息!請查證:); /沒找到
13、信息時的處理 /修改學(xué)生信息void revise_stu() STU *p=NULL; if(head=NULL) /判斷鏈表是否為空 PF(文檔中無記錄!n); return; char NO20; PF(請輸入學(xué)生的學(xué)號:t); scanf(%s,NO); for(p=head-next;p!=NULL;p=p-next) if(!strcmp(p-NO,NO) /驗證信息是否正確 PF(你要修改的學(xué)生是n); PF(tt學(xué)生學(xué)號:t%sn,p-NO); PF(tt學(xué)生姓名:t%sn,p-name); PF(tt學(xué)生年齡:t%dn,p-age); PF(tt學(xué)生性別:t%sn,p-sex
14、); PF(tt學(xué)生出生年月:t%sn,p-birthday); PF(tt學(xué)生地址:t%sn,p-address); PF(tt學(xué)生電話:t%sn,p-phone); PF(tt學(xué)生E-mail:t%sn,p-e_mail); PF(n); /輸出要修改信息 i=1; PF(修改學(xué)號為%s的學(xué)生n,NO); strcpy(p-NO,NO); PF(tt輸入修改學(xué)生姓名:t); scanf(%s,p-name); PF(tt輸入修改學(xué)生年齡:t); scanf(%d,&p-age); PF(tt輸入修改學(xué)生性別:t); scanf(%s,p-sex); PF(tt輸入修改學(xué)生出生年月:t);
15、scanf(%s,p-birthday); PF(tt輸入修改學(xué)生地址:t); scanf(%s,p-address); PF(tt輸入修改學(xué)生電話:t); scanf(%s,p-phone); PF(tt輸入修改學(xué)生E-mail:t); scanf(%s,p-e_mail); PF(n); /輸入修改信息 save(); if(!i) PF(無該生信息!請查證:); /*沒找到信息時的處理*/ /刪除學(xué)生信息void del_stu() STU *p=NULL; if(head=NULL) /判斷鏈表是否為空 PF(文檔中無記錄!n); return; else char NO20; PF(
16、請輸入學(xué)生的學(xué)號:t); scanf(%s,NO); for(p=head;p!=NULL;p=p-next) if(!strcmp(p-next-NO,NO) /驗證信息是否正確 PF(你要刪除的學(xué)生是n); PF(tt學(xué)生學(xué)號:t%sn,p-next-NO); PF(tt學(xué)生姓名:t%sn,p-next-name); PF(tt學(xué)生年齡:t%dn,p-next-age); PF(tt學(xué)生性別:t%sn,p-next-sex); PF(tt學(xué)生出生年月:t%sn,p-next-birthday); PF(tt學(xué)生地址:t%sn,p-next-address); PF(tt學(xué)生電話:t%sn,
17、p-next-phone); PF(tt學(xué)生E-mail:t%sn,p-next-e_mail); PF(n); /輸出要刪除的信息 i=1; if(p-next-next) printf(第一個n); p-next=p-next-next; else p-next=NULL; n-; save(); return; if(!i) PF(無該生信息!請查證:); /沒找到信息時的處理 return; /按學(xué)號排序void arrage_stu() STU *p1,*p2; int in=0,j; if(head-next=NULL) /首先判斷 printf(你還沒有記錄,無法排序n); re
18、turn ; printf(n=%d,n); p1=head-next; for(in=0;innext;jnext,j+) if(j=0)/第一次比較第一個和第二個節(jié)點(diǎn)信息 if(strcmp(p1-NO,p1-next-NO)/比較p1本身和p1下一個節(jié)點(diǎn) p2=p1-next; p1-next=p1-next-next; p2-next=p1; head-next=p2; p1=head-next;/從新給CUR賦值 /* p1=head-next; p1=p2; 錯誤:如果一個變量=他前一個節(jié)點(diǎn)的NEXT 那么不可以說把另外一個變量賦給它就可以改變它 前一個節(jié)點(diǎn)的NEXT 他只能操作后節(jié)點(diǎn)! */ if(strcmp(p1-next-NO,p1-next-next-NO)/比較p1下一個和p1下兩個節(jié)點(diǎn) p2=p1-next; p1-next=p1-ne
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇科版七年級數(shù)學(xué)上冊《2.7.1理數(shù)的乘方》聽評課記錄
- 華東師大版七年級數(shù)學(xué)上冊《第1章走進(jìn)數(shù)學(xué)世界1.2人類離不開數(shù)學(xué) 》聽評課記錄
- 蘇科版數(shù)學(xué)九年級下冊8.4《抽簽方法合理嗎》聽評課記錄
- 蘇科版數(shù)學(xué)九年級上冊1.2《一元二次方程的解法》聽評課記錄4
- 生態(tài)環(huán)境監(jiān)測數(shù)據(jù)共享合同(2篇)
- 環(huán)境數(shù)據(jù)共享服務(wù)合同(2篇)
- 聽評課研討記錄七年級
- 滬教版數(shù)學(xué)七年級下冊15.2《直角坐標(biāo)平面內(nèi)點(diǎn)的運(yùn)動》聽評課記錄
- 人教版地理七年級上冊1.1《地球儀經(jīng)緯線經(jīng)緯度》聽課評課記錄
- 部編版八年級歷史(上)《第2課 第二次鴉片戰(zhàn)爭》聽課評課記錄
- 電化學(xué)免疫傳感器的應(yīng)用
- 數(shù)據(jù)中心基礎(chǔ)知識培訓(xùn)-2024鮮版
- 供電企業(yè)輿情的預(yù)防及處置
- 【高中語文】《氓》課件++統(tǒng)編版+高中語文選擇性必修下冊
- T-WAPIA 052.3-2023 無線局域網(wǎng)設(shè)備技術(shù)規(guī)范 第3部分:接入點(diǎn)和控制器
- 第4課+中古時期的亞洲(教學(xué)設(shè)計)-【中職專用】《世界歷史》(高教版2023基礎(chǔ)模塊)
- 金點(diǎn)子活動總結(jié)匯報
- 運(yùn)動技能學(xué)習(xí)與控制完整
- 原料驗收標(biāo)準(zhǔn)知識培訓(xùn)課件
- Unit4MyfamilyStorytime(課件)人教新起點(diǎn)英語三年級下冊
- 物流運(yùn)作管理-需求預(yù)測
評論
0/150
提交評論