學(xué)生成績管理系統(tǒng)(數(shù)據(jù)結(jié)構(gòu)C語言版源代碼_第1頁
學(xué)生成績管理系統(tǒng)(數(shù)據(jù)結(jié)構(gòu)C語言版源代碼_第2頁
學(xué)生成績管理系統(tǒng)(數(shù)據(jù)結(jié)構(gòu)C語言版源代碼_第3頁
學(xué)生成績管理系統(tǒng)(數(shù)據(jù)結(jié)構(gòu)C語言版源代碼_第4頁
學(xué)生成績管理系統(tǒng)(數(shù)據(jù)結(jié)構(gòu)C語言版源代碼_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、讓結(jié)局不留遺憾,讓過程更加完美。#include#include#includestruct studentschar Num10; /*字符型學(xué)生學(xué)號(hào)*/char Name20; /*字符型學(xué)生姓名*/char Sex3; /*字符型學(xué)生性別*/double English; /*雙精度實(shí)型英語成績*/double Java; /*雙精度實(shí)型Java成績*/double Sjjg; /*雙精度實(shí)數(shù)據(jù)結(jié)構(gòu)*/double Szdl; /*雙精度實(shí)型數(shù)字電路*/double Jsj; /*計(jì)算機(jī)組成原理*/struct students *next; /*用與構(gòu)建連表指向下一結(jié)點(diǎn)*/;FILE

2、*fp; /*定義全局變量fp*/void Revisemenu();/*修改菜單*/void Sortmenu();/*排序菜單*/void menu();/*主菜單*/void secret();/*安全驗(yàn)證*/struct students * Input();/*新建學(xué)生信息*/void fprint(struct students *head);/*將信息導(dǎo)入文件可追加*/void fprint_(struct students *head);/*將信息導(dǎo)入文件并覆蓋*/void Browse(struct students *head);/*瀏覽全部學(xué)生信息*/struct stu

3、dents * create(struct students *headint *n);/*從tushu_list中讀取數(shù)據(jù)構(gòu)建鏈表*/void FindofNum(struct students *head);/*按學(xué)號(hào)查詢學(xué)生信息*/void FindofNname(struct students *head);/*按姓名查詢學(xué)生信息*/void SortEnglish(struct students * head);/*按英語成績排序*/void SortJava(struct students * head);/*按Java成績排序*/void SortSjjg(struct stud

4、ents * head);/*按數(shù)據(jù)結(jié)構(gòu)成績排序*/void SortSzdl(struct students * head);/*按數(shù)字邏輯電路成績排序*/void SortJsj(struct students * head);/*按計(jì)算機(jī)組成原理成績排序*/struct students * Delete(struct students * headchar m15);/*按學(xué)號(hào)刪除學(xué)生成績信息*/struct students * Revise();/*修改學(xué)生信息(按編號(hào)修改)*/*主菜單*/void menu()printf(nn);printf(*n);printf( 學(xué)生成績管

5、理系統(tǒng) n);printf(-n);printf( 1-添加新同學(xué) 2-瀏覽學(xué)生信息 n);printf( 3-按學(xué)號(hào)查詢 4-按姓名查詢 n);printf( 5-按成績排序 6-修改學(xué)生信息 n);printf( 7-刪除學(xué)生信息 0-退出系統(tǒng) n);printf(-n);printf(_n);/*排序菜單*/void Sortmenu()printf(nn);printf(*n);printf( 按成績排序 n);printf( 1-大學(xué)英語 2-JAVA編程 n);printf( 3-數(shù)據(jù)結(jié)構(gòu) 4-數(shù)字邏輯電路 n);printf( 5-計(jì)算機(jī)組成原理 0-返回上級(jí)菜單 n);prin

6、tf(*n);/*修改菜單*/void Revisemenu()printf(nn); printf( 1-修改學(xué)生姓名 2-修改學(xué)生學(xué)號(hào) n); printf( 3-修改學(xué)生性別 4-修改英語成績 n); printf( 5-修改JAVA成績 6-修改數(shù)據(jù)結(jié)構(gòu) n); printf( 7-修改數(shù)字電路 8-修改計(jì)算計(jì) n);printf( 0-返回上級(jí)菜單 n); printf(nn);/*安全驗(yàn)證*/void secret()char a20;printf(*歡迎來到學(xué)生信息管理系統(tǒng)進(jìn)入系統(tǒng)前請(qǐng)先進(jìn)行密碼驗(yàn)證-);printf( );dogets(a); /*輸入密碼*/system(cl

7、s); /*調(diào)用庫函數(shù)清屏*/printf(對(duì)不起!您輸入的密碼有誤請(qǐng)重新輸入-);while(strcmp(a0605)!=0); /*單一密碼0605*/system(cls);/*新建學(xué)生信息*/struct students * Input()struct students *p1*p2*head; /*建立輔助結(jié)點(diǎn)及頭結(jié)點(diǎn)*/char Name;int n=0x;printf(n請(qǐng)按對(duì)應(yīng)項(xiàng)輸入學(xué)生信息以#結(jié)束:n);printf(姓名 學(xué)號(hào) 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計(jì)算機(jī)組成原理n);p1=(struct students *)malloc(sizeof(struc

8、t students);head=p2=p1;do /*使用do while語句輸入學(xué)生信息*/scanf(%s&p1-Name);if(strcmp(p1-Name#)=0)break; /*判斷結(jié)束符*/elsescanf(%s%s%lf%lf%lf%lf%lfp1-Nump1-Sex&p1-English&p1-Java&p1-Sjjg&p1-Szdl&p1-Jsj);Name=#;p1=(struct students *)malloc(sizeof(struct students);p2-next=p1;p2=p1;n+;while(1);p1-next=NULL;printf(學(xué)生

9、信息輸入結(jié)束!n);getchar(); printf(是否保存學(xué)生信息?(1.是/2.否):);scanf(%d&x);if(x=1)fprint(head); /*調(diào)用函數(shù)保存至文件*/elseprintf(n文件沒有被保存!n);return head; /*返回頭指針*/*將信息導(dǎo)入文件可追加*/void fprint(struct students *head)struct students *p1;if(fp=fopen(students_list.txta)=NULL)printf(File open error!n);exit(0);for(p1=head;p1-next!=N

10、ULL;p1=p1-next) /*遍歷*/fprintf(fp%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp1-Namep1-Nump1-Sexp1-Englishp1-Javap1-Sjjgp1-Szdlp1-Jsj);/*將學(xué)生信息寫入文件*/fclose(fp); /*關(guān)閉文件*/printf(n學(xué)生信息已成功保存到文件 students_list.txt 中!n);getchar();/*將信息導(dǎo)入文件并覆蓋*/void fprint_(struct students *head)struct students *p1;if(fp=fopen(stu

11、dents_list.txtw)=NULL)printf(File open error!n);exit(0);for(p1=head;p1!=NULL;p1=p1-next) /*遍歷*/fprintf(fp%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp1-Namep1-Nump1-Sexp1-Englishp1-Javap1-Sjjgp1-Szdlp1-Jsj);/*將學(xué)生信息寫入文件*/fclose(fp); /*關(guān)閉文件*/;getchar();/*瀏覽全部學(xué)生信息*/void Browse(struct students *head) char Nu

12、m10; /*字符型學(xué)生學(xué)號(hào)*/char Name20; /*字符型學(xué)生姓名*/char Sex3; /*字符型學(xué)生性別*/double English; /*雙精度實(shí)型英語成績*/double Java; /*雙精度實(shí)型Java成績*/double Sjjg; /*雙精度實(shí)數(shù)據(jù)結(jié)構(gòu)*/double Szdl; /*雙精度實(shí)型數(shù)字電路*/double Jsj; /*計(jì)算機(jī)組成原理*/if(fp=fopen(students_list.txta+)=NULL)printf(File open error!n);exit(0);printf(-n);printf(姓名 學(xué)號(hào) 性別 英語 Java

13、數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計(jì)算機(jī)n);while(!feof(fp)/*讀取并輸出*/fscanf(fp%s%s%s%lf%lf%lf%lf%lfNameNumSex&English&Java&Sjjg&Szdl&Jsj);printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnNameNumSexEnglishJavaSjjgSzdlJsj);if(fclose(fp)printf(Can not close the file!n);exit(0);/*從tushu_list中讀取數(shù)據(jù)構(gòu)建鏈表*/struct students * create(struct s

14、tudents * headint *n)FILE *fp;struct students*p*p1*p2;if(fp=fopen(students_list.txta+)=NULL)printf(File open error!n);exit(0);while(!feof(fp)(*n)+; p=(struct students *)malloc(sizeof(struct students);fscanf(fp%s%s%s%lf%lf%lf%lf%lfp-Namep-Nump-Sex&p-English&p-Java&p-Sjjg&p-Szdl&p-Jsj);if(head=NULL)he

15、ad=p;p1=p;elsep1-next=p;p2=p1;p1=p; p2-next=NULL;free(p);(*n)-;fclose(fp);return head;/*按姓名查詢學(xué)生信息*/void FindofName(struct students *head)int i=0n=0; char b20; struct students *p;head=create(head&n);p=head;printf(n請(qǐng)輸入要查詢的學(xué)生姓名:);scanf(%sb);while(p!=NULL)if(strcmp(p-Nameb)=0) printf(姓名 學(xué)號(hào) 性別 英語 Java 數(shù)據(jù)

16、結(jié)構(gòu) 數(shù)字電路 計(jì)算機(jī)n);printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);i+;p=p-next;if(i=0)printf(n對(duì)不起!沒有找到名為%s的學(xué)生信息!nb);/*按學(xué)號(hào)查詢學(xué)生信息*/void FindofNum(struct students *head)int i=0n;char b20;struct students *p;head=create(head&n);p=head;printf(n請(qǐng)輸入要查詢的學(xué)生學(xué)號(hào):);scanf

17、(%sb);while(p!=NULL)if(strcmp(p-Numb)=0)printf(姓名 學(xué)號(hào) 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計(jì)算機(jī)n);printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);i+;p=p-next;if(i=0)printf(n對(duì)不起!沒有找到學(xué)號(hào)為%s學(xué)生信息!nb);/*按英語成績排序*/void SortEnglish(struct students * head)struct students *p*tail;

18、 /*定義中間變量*/int n;double English;p=(struct students *)malloc(sizeof(struct students);head=create(head&n);printf(姓名 學(xué)號(hào) 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計(jì)算機(jī)n);while(head-next!=NULL) /*利用選擇法排序*/tail=NULL; p=head; English=p-English; /*將鏈表中第一個(gè)成績賦給English*/ while(p!=NULL)if(p-English)English)/*比較*/English=p-English;ta

19、il=p; p=p-next;tail=NULL;p=head;while(p-next!=NULL)if(p-English=English)printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);if(p=head)head=head-next;elsetail-next=p-next;tail=p;p=p-next;if(p-English=English) /*分?jǐn)?shù)相同時(shí)無需比較*/printf(%st%st%st%.1lft%.1lft%.1lft%

20、.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);tail-next=NULL;p=head; /*將鏈表賦給結(jié)構(gòu)體指針*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);/*瀏覽排序后的信息*/printf(按英語成績排序后輸出如上(注:此過程不保存至文件):n);return;/*按JAVA成績排序*/void SortJava(struct students * head)s

21、truct students *p*tail; /*定義中間變量*/int n;double Java;p=(struct students *)malloc(sizeof(struct students);head=create(head&n);printf(姓名 學(xué)號(hào) 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計(jì)算機(jī)n);while(head-next!=NULL) /*利用選擇法排序*/tail=NULL; p=head; Java=p-Java; /*將鏈表中第一個(gè)成績賦給Java*/ while(p!=NULL)if(p-Java)Java)/*比較*/Java=p-Java;tai

22、l=p; p=p-next;tail=NULL;p=head;while(p-next!=NULL)if(p-Java=Java)printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);if(p=head)head=head-next;elsetail-next=p-next;tail=p;p=p-next;if(p-Java=Java) /*成績相同時(shí)無需比較*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-

23、Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);tail-next=NULL;p=head; /*將鏈表賦給結(jié)構(gòu)體指針*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);/*瀏覽排序后的信息*/printf(按Java成績排序后輸出如上(注:此過程不保存至文件):n);return;/*按數(shù)據(jù)結(jié)構(gòu)排序*/void SortSjjg(struct students * head)struct student

24、s *p*tail; /*定義中間變量*/int n;double Sjjg;p=(struct students *)malloc(sizeof(struct students);head=create(head&n);printf(姓名 學(xué)號(hào) 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計(jì)算機(jī)n);while(head-next!=NULL) /*利用選擇法排序*/tail=NULL; p=head; Sjjg=p-Sjjg; /*將鏈表中第一個(gè)成績賦給Sjjg*/ while(p!=NULL)if(p-Sjjg)Sjjg)/*比較*/Sjjg=p-Sjjg;tail=p; p=p-next

25、;tail=NULL;p=head;while(p-next!=NULL)if(p-Sjjg=Sjjg)printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);if(p=head)head=head-next;elsetail-next=p-next;tail=p;p=p-next;if(p-Sjjg=Sjjg) /*成績相同時(shí)無需比較*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Se

26、xp-Englishp-Javap-Sjjgp-Szdlp-Jsj);tail-next=NULL;p=head; /*將鏈表賦給結(jié)構(gòu)體指針*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);/*瀏覽排序后的信息*/printf(按數(shù)據(jù)結(jié)構(gòu)成績排序后輸出如上(注:此過程不保存至文件):n);return;/*按數(shù)字電路排序*/void SortSzdl(struct students * head)struct students *p*tail; /*

27、定義中間變量*/int n;double Szdl;p=(struct students *)malloc(sizeof(struct students);head=create(head&n);printf(姓名 學(xué)號(hào) 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計(jì)算機(jī)n);while(head-next!=NULL) /*利用選擇法排序*/tail=NULL; p=head; Szdl=p-Szdl; /*將鏈表中第一個(gè)成績賦給Szdl*/ while(p!=NULL)if(p-Szdl)Szdl)/*比較*/Szdl=p-Szdl;tail=p; p=p-next;tail=NULL;p=

28、head;while(p-next!=NULL)if(p-Szdl=Szdl)printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);if(p=head)head=head-next;elsetail-next=p-next;tail=p;p=p-next;if(p-Szdl=Szdl) /*成績相同時(shí)無需比較*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-J

29、avap-Sjjgp-Szdlp-Jsj);tail-next=NULL;p=head; /*將鏈表賦給結(jié)構(gòu)體指針*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);/*瀏覽排序后的信息*/printf(按數(shù)字電路成績排序后輸出如上(注:此過程不保存至文件):n);return;/*按計(jì)算機(jī)組成原理排序*/void SortJsj(struct students * head)struct students *p*tail; /*定義中間變量*/int

30、 n;double Jsj;p=(struct students *)malloc(sizeof(struct students);head=create(head&n);printf(姓名 學(xué)號(hào) 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計(jì)算機(jī)n);while(head-next!=NULL) /*利用選擇法排序*/tail=NULL; p=head; Jsj=p-Jsj; /*將鏈表中第一個(gè)成績賦給Jsj*/ while(p!=NULL)if(p-Jsj)Jsj)/*比較*/Jsj=p-Jsj;tail=p; p=p-next;tail=NULL;p=head;while(p-next!=

31、NULL)if(p-Jsj=Jsj)printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);if(p=head)head=head-next;elsetail-next=p-next;tail=p;p=p-next;if(p-Jsj=Jsj) /*成績相同時(shí)無需比較*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);t

32、ail-next=NULL;p=head; /*將鏈表賦給結(jié)構(gòu)體指針*/printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);/*瀏覽排序后的信息*/printf(按計(jì)算機(jī)組成原理成績排序后輸出如上(注:此過程不保存至文件):n);return;/*按學(xué)號(hào)刪除學(xué)生成績信息*/struct students * Delete(struct students * headchar m15)struct students *ptr1*ptr2;int n; pri

33、ntf(n所有學(xué)生信息如下:n);Browse(head);printf(n請(qǐng)輸入想要?jiǎng)h除的學(xué)生學(xué)號(hào):);scanf(%sm);head=create(head&n);if(head=NULL)printf(無學(xué)生信息!n);return head;if(strcmp(head-Numm)=0)&head!=NULL)ptr2=head;head=head-next;free(ptr2);if(strcmp(head-Numm)!=0)ptr1=head;ptr2=head-next;while(ptr2!=NULL)if(strcmp(ptr2-Numm)=0)ptr1-next=ptr2-

34、next;free(ptr2);elseptr1=ptr2;ptr2=ptr1-next;fprint_(head);printf(n學(xué)號(hào)為 %s 學(xué)生信息已被刪除并保存至文件!nm);return head;/*修改學(xué)生信息(按編號(hào)修改)*/struct students * Revise()int n=0t; char num10; char Num10; /*字符型學(xué)生學(xué)號(hào)*/char Name20; /*字符型學(xué)生姓名*/char Sex3; /*字符型學(xué)生性別*/double English; /*雙精度實(shí)型英語成績*/double Java; /*雙精度實(shí)型Java成績*/doub

35、le Sjjg; /*雙精度實(shí)數(shù)據(jù)結(jié)構(gòu)*/double Szdl; /*雙精度實(shí)型數(shù)字電路*/double Jsj; /*計(jì)算機(jī)組成原理*/ struct students *head=NULL; struct students *p; printf(n所有學(xué)生信息如下:n);Browse(head);head=create(head&n);printf(n輸入需要修改的學(xué)生的學(xué)號(hào):);scanf(%snum);p=head;while(head!=NULL)if(strcmp(p-Numnum)=0)system(cls);Revisemenu();printf(編號(hào)為%s的學(xué)生信息如下:n

36、num);printf(姓名 學(xué)號(hào) 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計(jì)算機(jī)n);printf(%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfnp-Namep-Nump-Sexp-Englishp-Javap-Sjjgp-Szdlp-Jsj);while(1)printf(請(qǐng)選擇需要修改的信息:);scanf(%d&t);switch(t)case 1:printf(請(qǐng)輸入新姓名:);scanf(%sName);strcpy(p-NameName);break;case 2:printf(請(qǐng)輸入新學(xué)號(hào):);scanf(%s&Num);strcpy(p-NumNum);break;case 3:printf(請(qǐng)輸入新性別:);scanf(%sSex);strcpy(p-SexSex);break;case 4:printf(請(qǐng)輸入新英語成績:);scanf(%lf&English);p-English=English;break;case 5:

溫馨提示

  • 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)論