c語言課程設(shè)計(jì)學(xué)生信息管理系統(tǒng)_第1頁
c語言課程設(shè)計(jì)學(xué)生信息管理系統(tǒng)_第2頁
c語言課程設(shè)計(jì)學(xué)生信息管理系統(tǒng)_第3頁
c語言課程設(shè)計(jì)學(xué)生信息管理系統(tǒng)_第4頁
c語言課程設(shè)計(jì)學(xué)生信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、題目名稱: 學(xué)生信息管理系統(tǒng)算法分析:1用結(jié)構(gòu)體標(biāo)出信息系統(tǒng)的成員:學(xué)生學(xué)號(hào),學(xué)生姓名,班級(jí), 成績(jī),排名2利用c語言的文件知識(shí)將系統(tǒng)的信息存放在 c盤下的“”的文 件夾下3定義各個(gè)子函數(shù)(1)定義輸入信息函數(shù),將學(xué)生信息按一定 格式用scanf函數(shù)輸入(統(tǒng)計(jì)M個(gè)學(xué)生的信息);(2)定義輸出函數(shù),每?jī)蓚€(gè)表一頁直到最后一個(gè);(3)定義信息查詢函數(shù)。a,定義按學(xué)號(hào)查詢函數(shù),如果輸入的 學(xué)號(hào)等于學(xué)生學(xué)號(hào)則輸出要查詢的信息;b,定義按姓名查詢函數(shù),如果輸入的姓名字符串等于其中一個(gè)學(xué)生的姓名字符串則輸出信息; c,定義按班級(jí)查找函數(shù),如果輸入的數(shù)字等于其中學(xué)生的班級(jí)數(shù), 則輸出該信息;d,定義按成績(jī)查找

2、函數(shù),如果輸入的數(shù)字等于其中學(xué) 生的成績(jī)數(shù),則輸出該信息;e,定義查找總函數(shù),輸入一個(gè)數(shù)選擇查 找方式,1-4分別對(duì)應(yīng)調(diào)用abcd四個(gè)函數(shù)。(4)定義刪除信息函數(shù)。輸入的數(shù)字作為要?jiǎng)h除的學(xué)生學(xué)號(hào), 輸出要?jiǎng)h除的學(xué)生信息后選擇是否刪除, 刪除后將第g+1個(gè)的信息賦 給第g個(gè),輸出刪除后的信息表。(5)定義信息修改函數(shù)。輸入的數(shù)字等于要修改的學(xué)生學(xué)號(hào), 輸出要修改的學(xué)生信息后選擇是否修改,用 switch , case語句選擇 要修改的項(xiàng)目,輸入n,y決定是否繼續(xù)直到不繼續(xù)修改,輸出學(xué)生信 息。(6)定義信息統(tǒng)計(jì)函數(shù)。輸入一個(gè)數(shù)字作為成績(jī),比較M個(gè)學(xué)生成績(jī)是否等于輸入的數(shù)字,統(tǒng)計(jì)相等的個(gè)數(shù) n輸出

3、。(7)定義成績(jī)排序函數(shù)。用冒泡排序法將 M個(gè)學(xué)生的成績(jī)按從 大到小的順序排列后輸出。4定義主函數(shù)。調(diào)用讀取文件函數(shù),輸入數(shù)字1-5分別對(duì)應(yīng)調(diào)用修改學(xué)生信息函數(shù),刪除學(xué)生信息函數(shù),查找學(xué)生信息函數(shù),統(tǒng)計(jì)學(xué)生信息函數(shù),學(xué)生成績(jī)排行信息函數(shù),0表示退出系統(tǒng)。最后調(diào)用保存文件函數(shù)。流程設(shè)計(jì):結(jié)束程序。"學(xué)生信息管理系統(tǒng)程序用結(jié)構(gòu)體說明各個(gè)成員定義各個(gè)子函數(shù)定義成績(jī) 排序函數(shù)定義刪除信息函數(shù)定義統(tǒng)計(jì) 函數(shù)定義信息查 詢函數(shù)定義按學(xué) 號(hào),姓名, 班級(jí),成績(jī) 的函數(shù)定義修 改信息 函數(shù)switch,case語句選擇查詢方選擇要修 改的信息 1-4判斷是否 繼續(xù)修改 直到不繼 續(xù),結(jié)束將第g+1

4、個(gè)信息賦 給第g個(gè)比較成績(jī)數(shù) 是否等于輸 人數(shù)計(jì)數(shù), 輸出n定義主函數(shù),用switch case選擇要調(diào)用的子函數(shù)保存文件 退出系統(tǒng) 結(jié)束程序代碼設(shè)計(jì):#include<>#include<>#include<>#define M 2#define PAGE 2/*學(xué)生信息結(jié)構(gòu)體類型*/typedef structint num;/*學(xué)號(hào) */char name20; /*姓名*/int banji;/*班級(jí) */int chengji;/*成績(jī) */int paiming;/*NF名 */STUDENTS;int read_file(STUDENTS st

5、udents)/*文件的讀取 */ FILE *fp;/*定義一個(gè)文件指針變量*/int i=0;if(fp=fopen("","r")=NULL)/*文件空判斷,fopen 打開一個(gè)文件 */ printf("nn*庫存文件不存在!請(qǐng)創(chuàng)建");return 0;while(feof(fp)!=1)/*文件是否結(jié)束 */ fread(&studentsi,sizeof(STUDENTS),1,fp);/*讀取文件 */if(studentsi.num=0)/*學(xué)號(hào)是否為零 */break;elsei+;)fclose(fp);

6、/* 關(guān)閉文件 */ return i;)void save_file(STUDENTS students,int sum)/*保存文件 */ FILE *fp;int i;if(fp=fopen("","wb")=NULL)/*判斷文件是否為空 */ printf(" 讀文件錯(cuò)誤! n");return;)for(i=0;i<sum;i+)if(fwrite(&studentsi,sizeof(STUDENTS),1,fp)!=1)/*向文件寫入的數(shù)據(jù)塊不等于1*/printf("寫文件錯(cuò)誤! n"

7、);fclose(fp);)/*輸入模塊*/int input(STUDENTS students) int i=0;printf("nn錄入學(xué) 生信息 (最多%d人)n",M);printf("n");do printf("n第 人",i+1);printf("n學(xué)生學(xué)號(hào):");scanf("%d",&studentsi.num);if(studentsi.num=0) break;printf("n學(xué)生姓名:");scanf("%s",stud

8、);printf("n班級(jí):");scanf("%d”,&studentsi.banji);printf("n成績(jī):");scanf("%d”,&studentsi.chengji);printf("n排名:");scanf("%d",&studentsi.paiming);i+;個(gè)學(xué)生信息輸入完畢!-n",i);按任意鍵返回主菜單!");while(i<M);printf("n-%dprintf("nge

9、tchar();return i;/* 輸出模塊*/void output(STUDENTS students)int i=0,j=0,page=1;printf("nn -學(xué)生信息表-第 d5Jnn",page);/*每?jī)蓚€(gè)一頁 */printf(" 學(xué)生學(xué)號(hào)-姓名-班級(jí)- 成績(jī)-排名n");printf("n");do if(studentsi.num!=0) j+;if(j%PAGE!=0)printf("%12d%10s%2d%3d%4dn",studentsi.num,,stu

10、dentsi.banji,studentsi.chengji,studentsi.paiming);printf("n");else printf("按任意鍵繼續(xù)!");getchar();printf("nn -學(xué)生信息表-第dnn",+page);printf("學(xué)生學(xué)號(hào)-姓名-班級(jí)- 成績(jī)-排名n");printf("n");printf("%12d%10s%2d%3d%4dn",studentsi.num,,studentsi.banji,

11、studentsi.chengji,studentsi.paiming);printf("n");i+;while(studentsi.num<M);printf(" 按任意鍵返回主菜單!");getchar( );/*學(xué)生信息查詢*/ void find_by_num(STUDENTS students,int sum) /* 按學(xué)號(hào)查找 */ int i,find_num;printf("n請(qǐng)輸入要查找的學(xué)生學(xué)號(hào):”);scanf("%d”,&find_num);for(i=0;i<sum;i+)if(stud

12、entsi.num=find_num)printf("這是您所查找到的學(xué)生信息:n");printf("學(xué)生學(xué)號(hào)-姓名-班級(jí)- 成績(jī)-排名n");printf("n");printf("%12d%10s%2d%3d%4dn",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming);printf("n");break;elseprintf("n未找到要查找的學(xué)生信息,按任意鍵返回!

13、");getchar();void find_by_name(STUDENTS students,int sum)/*按姓名查找 */int i;char find_name20;printf("nscanf("%s",find_name);for(i=0;i<sum;i+);請(qǐng)輸入要查找的學(xué)生姓名:");if(strcmp(,find_name)=0) /*字符串比較相等返回0*/printf("這是您所查找到屬于該學(xué)生的信息:");printf(" 學(xué)生學(xué)號(hào)-姓名-班級(jí)- 成績(jī)

14、-排名n");printf("n");printf("%12d%10s%2d%3d%4dn",studentsi.num,, studentsi.banji,studentsi.chengji,studentsi.paiming);printf("n");elseprintf("n未找到要查找的學(xué)生信息,按任意鍵返回!");getchar();void find_by_banji(STUDENTS students,int sum)/*按班級(jí)查找*/int i;int find

15、_banji;printf("n請(qǐng)輸入要查找的學(xué)生班級(jí):");scanf("%d”,&find_banji);for(i=0;i<sum;i+)if(studentsi.banji=find_banji)printf("這是您所查找到屬于該班級(jí)的學(xué)生:");printf(" 學(xué)生學(xué)號(hào)-姓名-班級(jí)-成績(jī)-排名n");printf("n");printf("%12d%10s%2d%3d%4dn",studentsi.num,, studentsi.

16、banji,studentsi.chengji,studentsi.paiming);printf("n");elseprintf("n未找到要查找的班級(jí)信息,按任意鍵返回!");getchar(); void find_by_chengji(STUDENTS students,int sum)/*按成級(jí)查找*/int i;int find_chengji;printf("n請(qǐng)輸入要查找的學(xué)生成績(jī):");scanf("%d”,&find_chengji);for(i=0;i<sum;i+) if(student

17、si.chengji=find_chengji) printf("這是您所查找到有該成績(jī)的學(xué)生:");printf("學(xué)生學(xué)號(hào)-姓名-班級(jí)-成績(jī)-排名n");printf("printf("%12d%10sAn");%2d%3d%4dn",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming);printf("n");elseprintf("n未找到要查找的學(xué)生信息,按任意鍵返回

18、!");getchar();void find(STUDENTS students,int sum)/*定義查找總函數(shù) */ int choice;printf("n您要按照哪種方式查找 n");/* 用switch語句*/printf("n1.按學(xué)生學(xué)號(hào)查找n");printf("n2.按學(xué)生姓名查找n");printf("n3.按學(xué)生班級(jí)查找n");printf("n 4. 按學(xué)生成績(jī)查找n");printf("n 0.退出 n");printf("n

19、請(qǐng)選擇(0-4): n");scanf("%d”,&choice);switch(choice) case 1: find_by_num(students,sum); break;case 2: find_by_name(students,sum); break;case 3: find_by_banji(students,sum); break;case 4: find_by_chengji(students,sum); break;case 0:break;/*刪除信息模塊*/void del(STUDENTS students) int i,g,sum;int

20、 del_num;printf("n請(qǐng)輸入要?jiǎng)h除的學(xué)生學(xué)號(hào):”);scanf("%d”,&del_num);for(i=0;i<sum;i+)if(studentsi.num=del_num)/*通過學(xué)號(hào)判斷 */printf("這是您所要?jiǎng)h除學(xué)生信息:n");printf(" 學(xué)生學(xué)號(hào)-姓名-班級(jí)-成績(jī) n");printf("n");printf("%12d%10s%2d%3dn",studentsi.num,,studentsi.banji,stu

21、dentsi.chengji,studentsi.paiming);printf("n");printf("您確認(rèn)要?jiǎng)h除嗎");printf("按任意鍵繼續(xù)!");getchar();排名%4dprintf(" 已成功刪除學(xué)生信息!)for(g=i;g<sum;g+) studentsg=studentsg+1;printf("刪除后的信息表:n");printf("學(xué)生學(xué)號(hào)-姓名-班級(jí)- 成績(jī)-排名n");printf("n");printf("%

22、12d%10s%2d%3d%4dn",studentsi.num,, studentsi.banji, studentsi.chengji,studentsi.paiming);printf("n");)/*信息修改模塊*/void modify(STUDENTS students,int sum)int i=0,choice,modify_num,flag;doprintf("請(qǐng)輸入要修改的學(xué)生學(xué)號(hào):");scanf("%d”,&modify_num);for(i=0;i<sum;i+)if

23、(studentsi.num=modify_num) printf("nn -學(xué)生信息-nn");printf("學(xué)生學(xué)號(hào)-姓名-班級(jí)- 成績(jī)-排名n");printf("n");printf("%12d%10s%2d%3d%4dn",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming);printf("n");printf("n您要修改哪一項(xiàng)n");printf(&

24、quot;n1.學(xué)生姓名n");printf("n2.學(xué)生班級(jí)n");printf("n3.成績(jī) n");printf("n4.排名 n");printf("n請(qǐng)選擇(1-4):n");scanf("%d”,&choice);switch(choice) case 1: printf("n請(qǐng)輸入修改后的學(xué)生姓名:");scanf("%s",); break;case 2: printf("n請(qǐng)輸入修改后的學(xué)生班

25、級(jí):");scanf("%s",studentsi.banji); break;case 3: printf("n請(qǐng)輸入修改后的成績(jī):");scanf("%s",studentsi.chengji); break;case 4: printf("n請(qǐng)輸入修改后的排名:");scanf("%d",&studentsi.paiming); break;printf("nn -學(xué)生信息一nn");printf("學(xué)生學(xué)號(hào)-姓名-班級(jí)- 成績(jī)-排名n&qu

26、ot;);printf("n");printf("%12d%10s%2d%3d%4dn",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming);printf("An");break;)else( printf("n該學(xué)生不存在!");)printf("n修改成功!n");printf("您要繼續(xù)修改嗎(Y/N)");if (choice='Y'|cho

27、ice='y') flag=1;printf("n繼續(xù)!n");)else flag=0;while( flag=1);/*直到不修改結(jié)束循環(huán)*/printf("n按任意鍵返回主菜單!");getchar();/*學(xué)生信息統(tǒng)計(jì)模塊*/void count(STUDENTS students口,int sum) /*統(tǒng)計(jì)某個(gè)成績(jī)的學(xué)生個(gè)數(shù) */int i;int count_chengji;int n=0;printf("請(qǐng)輸入一個(gè)成績(jī):n");scanf("%d”,&count_chengji);fo

28、r(i=0;i<sum;i+)if(studentsi.chengji=count_chengji)/*計(jì)數(shù)*/n+;break;printf("統(tǒng)計(jì)出屬于該成績(jī)的一共有 d個(gè)人n",n);/*成績(jī)排序模塊*/void sort(STUDENTS students,int sum)STUDENTS t;int i,j;printf("nn -學(xué)生信息一nn");printf(" 學(xué)生學(xué)號(hào)-姓名-班級(jí)- 成績(jī)-排名n");printf("n");for(i=1;i<sum;i+) for(j=i+1;j<sum;j+)if(studentsj.chen

溫馨提示

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