學(xué)生成績管理程序_第1頁
學(xué)生成績管理程序_第2頁
學(xué)生成績管理程序_第3頁
學(xué)生成績管理程序_第4頁
學(xué)生成績管理程序_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(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; /下個(gè)結(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é)號(hào)方式查詢信息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); /移動(dòng)到文件首 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í)行菜單選項(xiàng) show_menu(); /顯示菜單void show_menu() PF

6、(n); PF(n菜單n); PF(tt1.輸 入 學(xué) 生 信 息 n); PF(tt2.瀏 覽 學(xué) 生 信 息 n); PF(tt3.以學(xué)號(hào)方式查詢信息n); PF(tt4.以姓名方式查詢信息n); PF(tt5.刪 除 學(xué) 生 信 息 n); PF(tt6.修 改 學(xué) 生 信 息 n); PF(tt7 排 序 n); PF(tt0. 退 出 n); PF(n); PF(n請(qǐng)選擇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é)號(hào):t); scanf(%s,p1-NO); /學(xué)號(hào) 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é)號(hào):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é)號(hào):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(無該生信息!請(qǐng)查證:); /沒找到信息時(shí)的處理 /學(xué)生學(xué)號(hào)信息查找void search_NO() /學(xué)生學(xué)號(hào)信息查找 STU *p=NULL; char NO20; if(head=NULL) /判斷鏈表是否為空 PF(文檔中無記錄!n); return; PF(請(qǐng)輸入學(xué)生學(xué)號(hào):); 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é)號(hào):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(無該生信息!請(qǐng)查證:); /沒找到

13、信息時(shí)的處理 /修改學(xué)生信息void revise_stu() STU *p=NULL; if(head=NULL) /判斷鏈表是否為空 PF(文檔中無記錄!n); return; char NO20; PF(請(qǐng)輸入學(xué)生的學(xué)號(hào):t); scanf(%s,NO); for(p=head-next;p!=NULL;p=p-next) if(!strcmp(p-NO,NO) /驗(yàn)證信息是否正確 PF(你要修改的學(xué)生是n); PF(tt學(xué)生學(xué)號(hào):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é)號(hào)為%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(無該生信息!請(qǐng)查證:); /*沒找到信息時(shí)的處理*/ /刪除學(xué)生信息void del_stu() STU *p=NULL; if(head=NULL) /判斷鏈表是否為空 PF(文檔中無記錄!n); return; else char NO20; PF(

16、請(qǐng)輸入學(xué)生的學(xué)號(hào):t); scanf(%s,NO); for(p=head;p!=NULL;p=p-next) if(!strcmp(p-next-NO,NO) /驗(yàn)證信息是否正確 PF(你要?jiǎng)h除的學(xué)生是n); PF(tt學(xué)生學(xué)號(hào):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); /輸出要?jiǎng)h除的信息 i=1; if(p-next-next) printf(第一個(gè)n); p-next=p-next-next; else p-next=NULL; n-; save(); return; if(!i) PF(無該生信息!請(qǐng)查證:); /沒找到信息時(shí)的處理 return; /按學(xué)號(hào)排序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)/第一次比較第一個(gè)和第二個(gè)節(jié)點(diǎn)信息 if(strcmp(p1-NO,p1-next-NO)/比較p1本身和p1下一個(gè)節(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; 錯(cuò)誤:如果一個(gè)變量=他前一個(gè)節(jié)點(diǎn)的NEXT 那么不可以說把另外一個(gè)變量賦給它就可以改變它 前一個(gè)節(jié)點(diǎn)的NEXT 他只能操作后節(jié)點(diǎn)! */ if(strcmp(p1-next-NO,p1-next-next-NO)/比較p1下一個(gè)和p1下兩個(gè)節(jié)點(diǎn) p2=p1-next; p1-next=p1-ne

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論