版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、天助自助者,你要你就能。#include<stdio.h>#include<string.h>#include<stdlib.h>struct studentschar Num10; /*字符型學(xué)生學(xué)號*/char Name20; /*字符型學(xué)生姓名*/char Sex3; /*字符型學(xué)生性別*/double English; /*雙精度實型英語成績*/double Java; /*雙精度實型Java成績*/double Sjjg; /*雙精度實數(shù)據(jù)結(jié)構(gòu)*/double Szdl; /*雙精度實型數(shù)字電路*/double Jsj; /*計算機(jī)組成原理*/st
2、ruct students *next; /*用與構(gòu)建連表指向下一結(jié)點*/;FILE *fp; /*定義全局變量fp*/void Revisemenu();/*修改菜單*/void Sortmenu();/*排序菜單*/void menu();/*主菜單*/void secret();/*安全驗證*/struct students * Input();/*新建學(xué)生信息*/void fprint(struct students *head);/*將信息導(dǎo)入文件可追加*/void fprint_(struct students *head);/*將信息導(dǎo)入文件并覆蓋*/void Browse(st
3、ruct students *head);/*瀏覽全部學(xué)生信息*/struct students * create(struct students *headint *n);/*從tushu_list中讀取數(shù)據(jù)構(gòu)建鏈表*/void FindofNum(struct students *head);/*按學(xué)號查詢學(xué)生信息*/void FindofNname(struct students *head);/*按姓名查詢學(xué)生信息*/void SortEnglish(struct students * head);/*按英語成績排序*/void SortJava(struct students * h
4、ead);/*按Java成績排序*/void SortSjjg(struct students * head);/*按數(shù)據(jù)結(jié)構(gòu)成績排序*/void SortSzdl(struct students * head);/*按數(shù)字邏輯電路成績排序*/void SortJsj(struct students * head);/*按計算機(jī)組成原理成績排序*/struct students * Delete(struct students * headchar m15);/*按學(xué)號刪除學(xué)生成績信息*/struct students * Revise();/*修改學(xué)生信息(按編號修改)*/*主菜單*/voi
5、d menu()printf("nn");printf("*n");printf(" 學(xué)生成績管理系統(tǒng) n");printf("-n");printf(" 1-添加新同學(xué) 2-瀏覽學(xué)生信息 n");printf(" 3-按學(xué)號查詢 4-按姓名查詢 n");printf(" 5-按成績排序 6-修改學(xué)生信息 n");printf(" 7-刪除學(xué)生信息 0-退出系統(tǒng) n");printf("-n");printf(&qu
6、ot;_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ī)組成原理 0-返回上級菜單 n");printf("*n");/*修改菜單*/void Revisemenu()printf("nn"
7、); printf(" 1-修改學(xué)生姓名 2-修改學(xué)生學(xué)號 n"); printf(" 3-修改學(xué)生性別 4-修改英語成績 n"); printf(" 5-修改JAVA成績 6-修改數(shù)據(jù)結(jié)構(gòu) n"); printf(" 7-修改數(shù)字電路 8-修改計算計 n");printf(" 0-返回上級菜單 n"); printf("nn");/*安全驗證*/void secret()char a20;printf("*歡迎來到學(xué)生信息管理系統(tǒng)進(jìn)入系統(tǒng)前請先進(jìn)行密碼驗證-&qu
8、ot;);printf(" ");dogets(a); /*輸入密碼*/system("cls"); /*調(diào)用庫函數(shù)清屏*/printf("對不起!您輸入的密碼有誤請重新輸入-");while(strcmp(a"0605")!=0); /*單一密碼"0605"*/system("cls");/*新建學(xué)生信息*/struct students * Input()struct students *p1*p2*head; /*建立輔助結(jié)點及頭結(jié)點*/char Name;int n=
9、0x;printf("n請按對應(yīng)項輸入學(xué)生信息以#結(jié)束:n");printf("姓名 學(xué)號 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計算機(jī)組成原理n");p1=(struct students *)malloc(sizeof(struct students);head=p2=p1;do /*使用do while語句輸入學(xué)生信息*/scanf("%s"&p1->Name);if(strcmp(p1->Name"#")=0)break; /*判斷結(jié)束符*/elsescanf("%s%s%
10、lf%lf%lf%lf%lf"p1->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é)生信息輸入結(jié)束!n");getchar(); printf("是否
11、保存學(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.txt""a")=NULL)printf("File open error
12、!n");exit(0);for(p1=head;p1->next!=NULL;p1=p1->next) /*遍歷*/fprintf(fp"%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p1->Namep1->Nump1->Sexp1->Englishp1->Javap1->Sjjgp1->Szdlp1->Jsj);/*將學(xué)生信息寫入文件*/fclose(fp); /*關(guān)閉文件*/printf("n學(xué)生信息已成功保存到文件 students_list.txt 中
13、!n");getchar();/*將信息導(dǎo)入文件并覆蓋*/void fprint_(struct students *head)struct students *p1;if(fp=fopen("students_list.txt""w")=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%.1lfn"
14、p1->Namep1->Nump1->Sexp1->Englishp1->Javap1->Sjjgp1->Szdlp1->Jsj);/*將學(xué)生信息寫入文件*/fclose(fp); /*關(guān)閉文件*/;getchar();/*瀏覽全部學(xué)生信息*/void Browse(struct students *head) char Num10; /*字符型學(xué)生學(xué)號*/char Name20; /*字符型學(xué)生姓名*/char Sex3; /*字符型學(xué)生性別*/double English; /*雙精度實型英語成績*/double Java; /*雙精度實型J
15、ava成績*/double Sjjg; /*雙精度實數(shù)據(jù)結(jié)構(gòu)*/double Szdl; /*雙精度實型數(shù)字電路*/double Jsj; /*計算機(jī)組成原理*/if(fp=fopen("students_list.txt""a+")=NULL)printf("File open error!n");exit(0);printf("-n");printf("姓名 學(xué)號 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計算機(jī)n");while(!feof(fp)/*讀取并輸出*/fscanf(fp&qu
16、ot;%s%s%s%lf%lf%lf%lf%lf"NameNumSex&English&Java&Sjjg&Szdl&Jsj);printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"NameNumSexEnglishJavaSjjgSzdlJsj);if(fclose(fp)printf("Can not close the file!n");exit(0);/*從tushu_list中讀取數(shù)據(jù)構(gòu)建鏈表*/struct students * create(stru
17、ct students * headint *n)FILE *fp;struct students*p*p1*p2;if(fp=fopen("students_list.txt""a+")=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%lf"p->Namep->Nu
18、mp->Sex&p->English&p->Java&p->Sjjg&p->Szdl&p->Jsj);if(head=NULL)head=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=creat
19、e(head&n);p=head;printf("n請輸入要查詢的學(xué)生姓名:");scanf("%s"b);while(p!=NULL)if(strcmp(p->Nameb)=0) printf("姓名 學(xué)號 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計算機(jī)n");printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp
20、->Jsj);i+;p=p->next;if(i=0)printf("n對不起!沒有找到名為"%s"的學(xué)生信息!n"b);/*按學(xué)號查詢學(xué)生信息*/void FindofNum(struct students *head)int i=0n;char b20;struct students *p;head=create(head&n);p=head;printf("n請輸入要查詢的學(xué)生學(xué)號:");scanf("%s"b);while(p!=NULL)if(strcmp(p->Numb)=0)
21、printf("姓名 學(xué)號 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計算機(jī)n");printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);i+;p=p->next;if(i=0)printf("n對不起!沒有找到學(xué)號為"%s"學(xué)生信息!n"b);/*按英語成績排序*/void SortEnglish(str
22、uct students * head)struct students *p*tail; /*定義中間變量*/int n;double English;p=(struct students *)malloc(sizeof(struct students);head=create(head&n);printf("姓名 學(xué)號 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計算機(jī)n");while(head->next!=NULL) /*利用選擇法排序*/tail=NULL; p=head; English=p->English; /*將鏈表中第一個成績賦給Eng
23、lish*/ while(p!=NULL)if(p->English)>English)/*比較*/English=p->English;tail=p; p=p->next;tail=NULL;p=head;while(p->next!=NULL)if(p->English=English)printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->J
24、sj);if(p=head)head=head->next;elsetail->next=p->next;tail=p;p=p->next;if(p->English=English) /*分?jǐn)?shù)相同時無需比較*/printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);tail->next=NULL;p=head; /*將鏈表賦給結(jié)構(gòu)體指針
25、*/printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);/*瀏覽排序后的信息*/printf("按英語成績排序后輸出如上(注:此過程不保存至文件):n");return;/*按JAVA成績排序*/void SortJava(struct students * head)struct students *p*tail; /*定義中間變量*/int n;
26、double Java;p=(struct students *)malloc(sizeof(struct students);head=create(head&n);printf("姓名 學(xué)號 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計算機(jī)n");while(head->next!=NULL) /*利用選擇法排序*/tail=NULL; p=head; Java=p->Java; /*將鏈表中第一個成績賦給Java*/ while(p!=NULL)if(p->Java)>Java)/*比較*/Java=p->Java;tail=p;
27、 p=p->next;tail=NULL;p=head;while(p->next!=NULL)if(p->Java=Java)printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->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->
28、Java=Java) /*成績相同時無需比較*/printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);tail->next=NULL;p=head; /*將鏈表賦給結(jié)構(gòu)體指針*/printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->Namep->Nump->Sexp->Eng
29、lishp->Javap->Sjjgp->Szdlp->Jsj);/*瀏覽排序后的信息*/printf("按Java成績排序后輸出如上(注:此過程不保存至文件):n");return;/*按數(shù)據(jù)結(jié)構(gòu)排序*/void SortSjjg(struct students * head)struct students *p*tail; /*定義中間變量*/int n;double Sjjg;p=(struct students *)malloc(sizeof(struct students);head=create(head&n);printf(&q
30、uot;姓名 學(xué)號 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計算機(jī)n");while(head->next!=NULL) /*利用選擇法排序*/tail=NULL; p=head; Sjjg=p->Sjjg; /*將鏈表中第一個成績賦給Sjjg*/ while(p!=NULL)if(p->Sjjg)>Sjjg)/*比較*/Sjjg=p->Sjjg;tail=p; p=p->next;tail=NULL;p=head;while(p->next!=NULL)if(p->Sjjg=Sjjg)printf("%st%st%st%.
31、1lft%.1lft%.1lft%.1lft%.1lfn"p->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) /*成績相同時無需比較*/printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->Namep->
32、;Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);tail->next=NULL;p=head; /*將鏈表賦給結(jié)構(gòu)體指針*/printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);/*瀏覽排序后的信息*/printf("按數(shù)據(jù)結(jié)構(gòu)成績排序后輸出如上(注:此過程不保存至文件)
33、:n");return;/*按數(shù)字電路排序*/void SortSzdl(struct students * head)struct students *p*tail; /*定義中間變量*/int n;double Szdl;p=(struct students *)malloc(sizeof(struct students);head=create(head&n);printf("姓名 學(xué)號 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計算機(jī)n");while(head->next!=NULL) /*利用選擇法排序*/tail=NULL; p=hea
34、d; Szdl=p->Szdl; /*將鏈表中第一個成績賦給Szdl*/ while(p!=NULL)if(p->Szdl)>Szdl)/*比較*/Szdl=p->Szdl;tail=p; p=p->next;tail=NULL;p=head;while(p->next!=NULL)if(p->Szdl=Szdl)printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp-
35、>Szdlp->Jsj);if(p=head)head=head->next;elsetail->next=p->next;tail=p;p=p->next;if(p->Szdl=Szdl) /*成績相同時無需比較*/printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);tail->next=NULL;p=head; /*將
36、鏈表賦給結(jié)構(gòu)體指針*/printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);/*瀏覽排序后的信息*/printf("按數(shù)字電路成績排序后輸出如上(注:此過程不保存至文件):n");return;/*按計算機(jī)組成原理排序*/void SortJsj(struct students * head)struct students *p*tail; /*定義中
37、間變量*/int n;double Jsj;p=(struct students *)malloc(sizeof(struct students);head=create(head&n);printf("姓名 學(xué)號 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計算機(jī)n");while(head->next!=NULL) /*利用選擇法排序*/tail=NULL; p=head; Jsj=p->Jsj; /*將鏈表中第一個成績賦給Jsj*/ while(p!=NULL)if(p->Jsj)>Jsj)/*比較*/Jsj=p->Jsj;tail
38、=p; p=p->next;tail=NULL;p=head;while(p->next!=NULL)if(p->Jsj=Jsj)printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->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->
39、;Jsj=Jsj) /*成績相同時無需比較*/printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);tail->next=NULL;p=head; /*將鏈表賦給結(jié)構(gòu)體指針*/printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->Namep->Nump->Sexp->Engl
40、ishp->Javap->Sjjgp->Szdlp->Jsj);/*瀏覽排序后的信息*/printf("按計算機(jī)組成原理成績排序后輸出如上(注:此過程不保存至文件):n");return;/*按學(xué)號刪除學(xué)生成績信息*/struct students * Delete(struct students * headchar m15)struct students *ptr1*ptr2;int n; printf("n所有學(xué)生信息如下:n");Browse(head);printf("n請輸入想要刪除的學(xué)生學(xué)號:")
41、;scanf("%s"m);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->n
42、ext=ptr2->next;free(ptr2);elseptr1=ptr2;ptr2=ptr1->next;fprint_(head);printf("n學(xué)號為' %s '學(xué)生信息已被刪除并保存至文件!n"m);return head;/*修改學(xué)生信息(按編號修改)*/struct students * Revise()int n=0t; char num10; char Num10; /*字符型學(xué)生學(xué)號*/char Name20; /*字符型學(xué)生姓名*/char Sex3; /*字符型學(xué)生性別*/double English; /*雙精度實
43、型英語成績*/double Java; /*雙精度實型Java成績*/double Sjjg; /*雙精度實數(shù)據(jù)結(jié)構(gòu)*/double Szdl; /*雙精度實型數(shù)字電路*/double Jsj; /*計算機(jī)組成原理*/ struct students *head=NULL; struct students *p; printf("n所有學(xué)生信息如下:n");Browse(head);head=create(head&n);printf("n輸入需要修改的學(xué)生的學(xué)號:");scanf("%s"num);p=head;while(
44、head!=NULL)if(strcmp(p->Numnum)=0)system("cls");Revisemenu();printf("編號為%s的學(xué)生信息如下:n"num);printf("姓名 學(xué)號 性別 英語 Java 數(shù)據(jù)結(jié)構(gòu) 數(shù)字電路 計算機(jī)n");printf("%st%st%st%.1lft%.1lft%.1lft%.1lft%.1lfn"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->J
45、sj);while(1)printf("請選擇需要修改的信息:");scanf("%d"&t);switch(t)case 1:printf("請輸入新姓名:");scanf("%s"Name);strcpy(p->NameName);break;case 2:printf("請輸入新學(xué)號:");scanf("%s"&Num);strcpy(p->NumNum);break;case 3:printf("請輸入新性別:");scanf("%s"Sex);strcpy(p->SexSex);break;case 4:printf("請輸入新英語成績:");scanf("%lf"&English);p->English=English;break;case 5:printf("請輸入新Java成績:");scanf("%lf"&Java);p->Java=Java;break;case 6:
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園走廊節(jié)氣課程設(shè)計
- 有關(guān)開關(guān)的課程設(shè)計
- 2024年度物流服務(wù)外包合同補(bǔ)充協(xié)議:物流成本控制3篇
- 2024年版醫(yī)藥產(chǎn)品研發(fā)與許可合同
- 小麥課程設(shè)計
- 情緒感知繪本課程設(shè)計
- 有關(guān)物聯(lián)網(wǎng)的課程設(shè)計
- 領(lǐng)導(dǎo)力提升與管理培訓(xùn)
- 多人跳繩課程設(shè)計意圖
- 線上教育平臺運(yùn)營策略與盈利模式匯報
- GB/T 44916-2024船舶和海上技術(shù)船用超低溫閘閥設(shè)計與試驗要求
- 安徽省合肥市包河區(qū)2023-2024學(xué)年三年級上學(xué)期語文期末試卷
- 【MOOC】新媒體文化十二講-暨南大學(xué) 中國大學(xué)慕課MOOC答案
- 2024-2025學(xué)年二年級數(shù)學(xué)上冊期末樂考非紙筆測試題(二 )(蘇教版)
- 2024年度智能制造生產(chǎn)線改造項目合同
- 2024年度食堂檔口承包合同(含菜品研發(fā))3篇
- DB32T 4578.2-2023 丙型病毒性肝炎防治技術(shù)指南 第2部分:患者管理
- 護(hù)理輪科心得
- 英語期末復(fù)習(xí)講座模板
- 9《作息有規(guī)律》(說課稿)2024-2025學(xué)年統(tǒng)編版(2024)道德與法治一年級上冊
- 2024年學(xué)校食堂工作計劃(五篇)
評論
0/150
提交評論