




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、#include<stdio.h>#include<stdlib.h>#include<time.h>#include<string.h>#include<conio.h> #define M 100/定義最大可錄入學(xué)生數(shù)為100 int menu();int luru();int liulan();int chaxun();int chaxun_1();int chaxun_2();int paixu();int shanchu();int shengcheng();int xiugai();int xiugai_1();int e
2、rror();void load();void save(); void print(); int count=0;/用來保存已經(jīng)錄入的總學(xué)生 struct student/定義學(xué)生相關(guān)信息全局結(jié)構(gòu)體變量 int num;/學(xué)號(hào) char name30;/姓名 char sex;/性別 float computer_mark;/電腦分?jǐn)?shù) float math_mark;/數(shù)學(xué)分?jǐn)?shù) float english_mark;/英語(yǔ)分?jǐn)?shù) float total_mark;/保存總分 stuM;int main() system(" title 學(xué)生信息管理系統(tǒng)V1.0"); /窗口
3、標(biāo)題。 load();/載入student.txt文件內(nèi)容(studnt.txt保存學(xué)生結(jié)構(gòu)體變量信息) for(int i=0;i<100;i+)/通過結(jié)構(gòu)體數(shù)組里的值來判斷已經(jīng)有的學(xué)生總?cè)藬?shù) if(stui.num!=NULL)/如果值為NULL代表沒數(shù)據(jù),則能得出人數(shù)總數(shù)信息 count+; else break; menu(); return 0;/-顯示菜單模塊 - int menu() system("cls");/清屏。 int n;printf("*n");/菜單項(xiàng) printf(" 1.錄入信息");print
4、f(" 2.瀏覽信息 *n");printf(" 3.查詢信息");printf(" 4.成績(jī)排序 *n");printf(" 5.信息修改");printf(" 6.退出系統(tǒng) *n");printf("*n");printf("請(qǐng)選擇:");scanf("%d",&n);switch(n)case 1:luru();break;case 2:liulan();break;case 3:chaxun();break;case 4
5、:paixu();break;case 5:xiugai();break;case 6:exit(0);default:error();return 0;/-學(xué)生信息錄入模塊- int luru()int flag=1,n,i;system("cls");printf(" #學(xué)生信息錄入#n"); printf("n請(qǐng)輸入該學(xué)生的姓名:"); scanf("%s",); getchar(); printf("n請(qǐng)輸入該學(xué)生的性別W(女)或者M(jìn)(男):"); scanf(
6、"%c",&stucount.sex); printf("n請(qǐng)輸入該學(xué)生的電腦分?jǐn)?shù):"); scanf("%f",&puter_mark); printf("n請(qǐng)輸入該學(xué)生的數(shù)學(xué)分?jǐn)?shù):"); scanf("%f",&stucount.math_mark); printf("n請(qǐng)輸入該學(xué)生的英語(yǔ)分?jǐn)?shù):");scanf("%f",&stucount.english_mark);stucount.total
7、_mark=puter_mark+stucount.english_mark+stucount.math_mark;stucount.num=shengcheng();/調(diào)用偽隨機(jī)函數(shù)生成2000000到2000200 之間的學(xué)號(hào) while(flag)for(i=0;i<count;i+)if(stucount.num=stui.num)/檢測(cè)學(xué)號(hào)是否重復(fù)。重復(fù)就重新生成,直到學(xué)號(hào)與先前所有學(xué)號(hào)不重復(fù)為止 break;if(i=count)flag=0; printf("n該學(xué)生學(xué)號(hào)為:%d",stucount.num); count+;/學(xué)
8、生人數(shù)紀(jì)錄加一 save();/保存新人員信息 printf("相關(guān)信息錄入完成。n");printf("nn繼續(xù)錄入請(qǐng)按1,返回主菜單請(qǐng)按2.");scanf("%d",&n);switch(n)case 1:system("cls");return luru();break;case 2:system("cls");return menu();break;default:error();/-學(xué)生信息數(shù)據(jù)瀏覽模塊- int liulan() system("cls"
9、); printf(" #學(xué)生信息總覽#"); printf("n總計(jì)%d個(gè)學(xué)生詳細(xì)信息如下:nn",count);print();printf("完成,按任意鍵返回主菜單.");getchar();getchar();system("cls");return menu();/-學(xué)生信息查詢模塊- int chaxun() int m; system("cls"); printf(" #學(xué)生信息查詢#"); printf("n請(qǐng)選擇查詢方式:n");/顯示
10、2種查詢方式 printf("1.通過姓名查詢n2.通過學(xué)號(hào)查詢n");scanf("%d",&m);switch(m)case 1:chaxun_1();break;/跳轉(zhuǎn)到名字查詢模塊 case 2:chaxun_2();break;/跳到學(xué)號(hào)查詢模塊 default:error();printf("完成,按任意鍵返回主菜單.");getchar();system("cls");return menu();/-學(xué)生信息查詢附屬模塊(用姓名查詢)- int chaxun_1()char name30;in
11、t m,i;system("cls");printf(" #通過姓名查詢#"); printf("n請(qǐng)輸入該學(xué)生姓名:");getchar(); gets(name);for(i=0;i<count;i+)if(strcmp(name,)=0)break;/檢測(cè)到符合要求的中途退出循環(huán) if(i<count)/通過i值判斷循環(huán)是否為正常退出 ,如果是代表有該學(xué)生信息 printf("該學(xué)生信息如下:n");printf(" 學(xué)號(hào) 姓名 性別 電腦分?jǐn)?shù) 數(shù)學(xué)分?jǐn)?shù) 英語(yǔ)分?jǐn)?shù) 總分
12、n");printf("-n");printf(" %3d %-6s %c %-5.1f %-5.1f %-5.1f %-5.1fn",stui.num,,stui.sex,puter_mark,stui.math_mark,stui.english_mark,stui.total_mark);printf("-n");elseprintf("沒有該學(xué)生相關(guān)信息。n使用學(xué)號(hào)查詢請(qǐng)按1,返回主菜單請(qǐng)按2n"); scanf("%d",&m);sw
13、itch(m)case 1:chaxun_2();break;case 2:return menu();break;default:return error();/-學(xué)生信息查詢附屬模塊(用學(xué)號(hào)查詢)-int chaxun_2() int m,i,id; system("cls");printf(" #通過學(xué)號(hào)查詢#"); printf("n請(qǐng)輸入該學(xué)生學(xué)號(hào):"); scanf("%d",&id); getchar(); for(i=0;i<count;i+)if(id=stui.num)break;
14、if(i<count)printf("該學(xué)生信息如下:n");printf(" 學(xué)號(hào) 姓名 性別 電腦分?jǐn)?shù) 數(shù)學(xué)分?jǐn)?shù) 英語(yǔ)分?jǐn)?shù) 總分n");printf("-n");printf(" %3d %-6s %c %-5.1f %-5.1f %-5.1f %-5.1fn",stui.num,,stui.sex,puter_mark,stui.math_mark,stui.english_mark,stui.total_mark);printf("-n");els
15、eprintf("沒有該學(xué)生相關(guān)信息。n使用姓名查詢請(qǐng)按1,返回主菜單請(qǐng)按2n");scanf("%d",&m);switch(m)case 1:chaxun_1();break;case 2:system("cls");return menu();break;default:error();/-信息排序模塊 -int paixu()int m,n;struct student temp;/建立一個(gè)臨時(shí)結(jié)構(gòu)體變量temp用于2個(gè)結(jié)構(gòu)體變量數(shù)據(jù)交換 system("cls");printf(" #成
16、績(jī)排序#"); printf("n請(qǐng)選擇成績(jī)的排序方式:n");printf("1.按 英語(yǔ) 分?jǐn)?shù)排序n");printf("2.按 數(shù)學(xué) 分?jǐn)?shù)排序n");printf("3.按 電腦 分?jǐn)?shù)排序n");printf("4.按 總分?jǐn)?shù) 排序n");scanf("%d",&m);switch(m)case 1: for(int i=0;i<count;i+) for(int j=0;j<count-1;j+) if(stuj.english_mark
17、>stuj+1.english_mark) temp=stuj;/ 通過temp變量交換2個(gè)結(jié)構(gòu)體變量數(shù)據(jù) stuj=stuj+1; stuj+1=temp; break;case 2: for(int i=0;i<count;i+) for(int j=0;j<count-1;j+) if(stuj.math_mark>stuj+1.math_mark) temp=stuj; stuj=stuj+1; stuj+1=temp; break;case 3: for(int i=0;i<count;i+) for(int j=0;j<count-1;j+) i
18、f(puter_mark>stuj+1.computer_mark) temp=stuj; stuj=stuj+1; stuj+1=temp; break;case 4: for(int i=0;i<count;i+) for(int j=0;j<count-1;j+) if(stuj.total_mark>stuj+1.total_mark) temp=stuj; stuj=stuj+1; stuj+1=temp; break;default:error(); print();printf("n完成n選擇另一種方式排序請(qǐng)按1,返回主菜單請(qǐng)按2
19、n");scanf("%d",&n);switch(n)case 1:return paixu();break;case 2:return menu();break;default:error(); /-學(xué)生信息刪除模塊 -int shanchu() int i,n,m;char name30;/定義長(zhǎng)度最大為30字節(jié)的姓名字符串?dāng)?shù)組保存姓名 load();system("cls"); printf(" #學(xué)生信息刪除#");printf("n請(qǐng)輸入要?jiǎng)h除的學(xué)生的姓名:");getchar();g
20、ets(name);for(i=0;i<count;i+)if(strcmp(name,)=0) break;/檢測(cè)到信息相符的就退出循環(huán) if(i<count)/判斷是否正常退出循環(huán) printf("該學(xué)生信息如下:n");printf(" 學(xué)號(hào) 姓名 性別 電腦分?jǐn)?shù) 數(shù)學(xué)分?jǐn)?shù) 英語(yǔ)分?jǐn)?shù) 總分n");printf("-n"); printf(" %3d %-6s %c %-5.1f %-5.1f %-5.1f %-5.1fn",stui.num,,stui.sex,
21、puter_mark,stui.math_mark,stui.english_mark,stui.total_mark);printf("-n"); printf("n確認(rèn)刪除該信息?(選擇1確認(rèn),選擇2取消)n"); scanf("%d",&m);switch(m)case 1: for(int j=i;j<count+1;j+)/用循環(huán)將需要被刪除的數(shù)據(jù)后一位全部向前移一位,覆蓋需要?jiǎng)h除的數(shù)據(jù) stuj=stuj+1; count-;/學(xué)生總?cè)藬?shù)減去1 save();/保存學(xué)生相關(guān)數(shù)據(jù) printf(
22、"n成功刪除該學(xué)生信息n繼續(xù)刪除請(qǐng)按1,返回主菜單請(qǐng)按2。n"); scanf("%d",&m); switch(m) case 1:return shanchu();break; case 2:return menu();break; break; case 2:system("pause");return menu();default:error();elseprintf("n未找到該學(xué)生信息n");printf("重新輸入名字請(qǐng)按1,返回主菜單請(qǐng)按2n");scanf("
23、%d",&n);switch(n)case 1:return shanchu();break;case 2:return menu();break;default:error();/-學(xué)號(hào)隨機(jī)生成模塊-int shengcheng()int id; srand(int)time(NULL);/調(diào)用時(shí)間函數(shù)來偽隨機(jī)生成 id=rand()%200+2000000;return id;/將數(shù)值返回給main函數(shù)里的count值 /-student.txt文件載入模塊 -void load() int i;FILE *fp;if(fp=fopen("student.txt
24、","rb")=NULL)/通過返回值判斷是否能正常打開文件 printf("student.txt文件無(wú)法打開");getch();exit(0);for(i=0;i<100;i+)fread(&stui,sizeof(struct student),1,fp);fclose(fp);/關(guān)閉文件 /-student.txt文件保存模塊 - void save() FILE *fp; int i; if(fp=fopen("student.txt","wb")=NULL)printf(&qu
25、ot;student.txt文件無(wú)法打開");getch();exit(0);for(i=0;i<count;i+) if(fwrite(&stui,sizeof(struct student),1,fp)!=1)printf("student.txt文件寫入錯(cuò)誤");getch();exit(0);fclose(fp);/-學(xué)生信息打印模塊 - void print() printf(" 學(xué)號(hào) 姓名 性別 電腦分?jǐn)?shù) 數(shù)學(xué)分?jǐn)?shù) 英語(yǔ)分?jǐn)?shù) 總分n");printf("-n");for(int i=0;i<c
26、ount;i+)printf(" %3d %-6s %c %-5.1f %-5.1f %-5.1f %-5.1fn",stui.num,,stui.sex,puter_mark,stui.math_mark,stui.english_mark,stui.total_mark);printf("-n"); /-學(xué)生信息修改總模塊- int xiugai() load(); int m; system("cls"); printf(" #學(xué)生信息修改#"); printf("
27、n1.學(xué)生信息修改n2.學(xué)生信息刪除n:"); scanf("%d",&m); switch(m) case 1:return xiugai_1();break; case 2:return shanchu();break; default:error(); /-修改學(xué)生信息模塊 - int xiugai_1() int n,m,o,i; char name20; printf("n請(qǐng)輸入該學(xué)生姓名:");getchar();/接收回車鍵字符 gets(name);for(i=0;i<count;i+)if(strcmp(name
28、,)=0)break;if(i<count) printf("該學(xué)生信息如下:n");printf(" 學(xué)號(hào) 姓名 性別 電腦分?jǐn)?shù) 數(shù)學(xué)分?jǐn)?shù) 英語(yǔ)分?jǐn)?shù) 總分n");printf("-n");printf(" %3d %-6s %c %-5.1f %-5.1f %-5.1f %-5.1fn",stui.num,,stui.sex,puter_mark,stui.math_mark,stui.english_mark,stui.total_mark);print
29、f("-n");printf("請(qǐng)輸入要修改的項(xiàng)目:n1.姓名n2.性別n3.電腦分?jǐn)?shù)n4.數(shù)學(xué)分?jǐn)?shù)n5.英語(yǔ)分?jǐn)?shù)n");scanf("%d",&n);switch(n)case 1:printf("請(qǐng)輸入新的姓名,按確定后修改:");scanf("%s",);break; case 2: getchar(); printf("請(qǐng)輸入新性別,按確定后修改:");scanf("%c",&stui.sex);break;cas
30、e 3:printf("請(qǐng)輸入新的電腦分?jǐn)?shù),按確定后修改:");scanf("%f",&puter_mark);break;case 4:printf("請(qǐng)輸入新的數(shù)學(xué)分?jǐn)?shù),按確定后修改:");scanf("%f",&stui.math_mark);break;case 5:printf("請(qǐng)輸入新的英語(yǔ)分?jǐn)?shù),按確定后修改:");scanf("%f",&stui.english_mark);break;default:error(); el
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 搬入搬出注意事項(xiàng)協(xié)議
- 真空電子器件在光纖傳感器中的應(yīng)用考核試卷
- 抽紗刺繡技藝的科普傳播考核試卷
- 磷肥產(chǎn)業(yè)技術(shù)研發(fā)與市場(chǎng)應(yīng)用考核試卷
- 天然氣企業(yè)綠色發(fā)展與循環(huán)經(jīng)濟(jì)考核試卷
- 派遣工勞動(dòng)法律法規(guī)宣傳教育考核試卷
- 畜牧業(yè)的畜禽產(chǎn)品的加工技術(shù)與綠色低碳生產(chǎn)考核試卷
- 期貨市場(chǎng)中介職能分析考核試卷
- 2025專賣店超市商場(chǎng)員工聘用合同模板
- 2025合作伙伴協(xié)議-產(chǎn)品代理合同
- 夫妻債務(wù)轉(zhuǎn)讓協(xié)議書范本
- 2025年房地產(chǎn)經(jīng)紀(jì)人(業(yè)務(wù)操作)考前必刷綜合題庫(kù)(800題)附答案
- 桌球助教合同協(xié)議
- 電商行業(yè)10萬(wàn)字PRD
- 2024-2025學(xué)年八年級(jí)下學(xué)期道德與法治期中模擬試卷(一)(統(tǒng)編版含答案解析)
- 高一下學(xué)期《雙休時(shí)代自由時(shí)間背后暗藏殘酷篩選+你是“獵手”還是“獵物”?》主題班會(huì)
- GB/T 26354-2025旅游信息咨詢服務(wù)
- 交互式影像中敘事與視覺表達(dá)的融合及其觀眾體驗(yàn)研究
- SL631水利水電工程單元工程施工質(zhì)量驗(yàn)收標(biāo)準(zhǔn)第1部分:土石方工程
- 甘肅省蘭州市第十一中學(xué)教育集團(tuán)2023-2024學(xué)年八年級(jí)下學(xué)期期中考試數(shù)學(xué)試卷
- (高清版)TDT 1075-2023 光伏發(fā)電站工程項(xiàng)目用地控制指標(biāo)
評(píng)論
0/150
提交評(píng)論