語(yǔ)言學(xué)生信息管理系統(tǒng)_第1頁(yè)
語(yǔ)言學(xué)生信息管理系統(tǒng)_第2頁(yè)
語(yǔ)言學(xué)生信息管理系統(tǒng)_第3頁(yè)
語(yǔ)言學(xué)生信息管理系統(tǒng)_第4頁(yè)
語(yǔ)言學(xué)生信息管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

最新文檔

評(píng)論

0/150

提交評(píng)論