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

下載本文檔

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

文檔簡(jiǎn)介

1、c語(yǔ)言課程設(shè)計(jì)綜合實(shí)習(xí)報(bào)告題目:學(xué)籍信息管理系統(tǒng) 姓名: 黃凱 學(xué)號(hào):20081000153班級(jí)號(hào): 052081 院(系):工程學(xué)院專業(yè): 土木工程 指導(dǎo)教師: 曹弘 一 ,題目要求1. 學(xué)生學(xué)籍信息管理系統(tǒng)設(shè)計(jì) 要求 使用下面的數(shù)據(jù)設(shè)計(jì)一個(gè)簡(jiǎn)單的學(xué)籍管理系統(tǒng)。 學(xué)生基本信息文件(a.txt)極其內(nèi)容: 學(xué)號(hào) 姓名 性別 宿舍號(hào)碼 電話號(hào)碼 01 張成成 男 501 87732111 02 李成華 女 101 87723112 03 王成鳳 女 101 87723112 04 張明明 男 502 87734333 05 陳東 男 501 87732111 06 李果 男 502 877343

2、33 07 張園園 女 102 87756112 學(xué)生成績(jī)基本信息文件(b.txt)極其內(nèi)容: . 學(xué)號(hào) 課程編號(hào) 課程名稱 學(xué)分平時(shí)成績(jī) 實(shí)驗(yàn)成績(jī) 卷面成績(jī) 綜合成績(jī) 實(shí)得學(xué)分 01 a01 大學(xué)物理 3 66 78 82 02 b03 高等數(shù)學(xué) 4 78 -1 90 01 b03 高等數(shù)學(xué) 4 45 -1 88 02 c01 vf 3 65 76 66 . 功能要求極其說(shuō)明: (1)數(shù)據(jù)錄入功能:錄入每個(gè)學(xué)生的學(xué)號(hào)、課程編號(hào)、課程名稱、學(xué)分、平時(shí)成績(jī)、實(shí)驗(yàn)成績(jī)、卷面成績(jī)共7個(gè)數(shù)據(jù)。實(shí)得成績(jī)、實(shí)得學(xué)分根據(jù)條件自動(dòng)運(yùn)算。 綜合成績(jī)的計(jì)算: a.如果本課程的實(shí)驗(yàn)成績(jī)?yōu)?1,則表無(wú)實(shí)驗(yàn)成績(jī),綜合成

3、績(jī)=平時(shí)成績(jī)*30%+卷面成績(jī)*70% b.如果實(shí)驗(yàn)成績(jī)不為-1,表示本課程有實(shí)驗(yàn)成績(jī),綜合成績(jī)=平時(shí)成績(jī)*15%+實(shí)驗(yàn)成績(jī)*15%+卷面成績(jī)*70% 實(shí)得學(xué)分的計(jì)算:采用等級(jí)學(xué)分制。 綜合成績(jī)?cè)?0100之間,應(yīng)得學(xué)分=學(xué)分*100% 綜合成績(jī)?cè)?090之間,應(yīng)得學(xué)分=學(xué)分*80% 綜合成績(jī)?cè)?080之間,應(yīng)得學(xué)分=學(xué)分*75% 綜合成績(jī)?cè)?070之間,應(yīng)得學(xué)分=學(xué)分*60% 綜合成績(jī)?cè)?0分以下,應(yīng)得學(xué)分=學(xué)分*0% (2)查詢功能:分為學(xué)生基本情況查詢和成績(jī)查詢兩種 學(xué)生基本情況查詢: 輸入一個(gè)學(xué)號(hào)或姓名(可實(shí)現(xiàn)選擇)查出此學(xué)生的基本信息并顯示輸出。 輸入一個(gè)宿舍號(hào)碼,可查出本室所有學(xué)生

4、的基本信息并顯示輸出。 稱號(hào)查詢: 輸入一個(gè)學(xué)號(hào)時(shí),查出此學(xué)生所有課程情況,格式如下: 學(xué)號(hào):xx 課程名稱:xxxx綜合成績(jī):xx實(shí)得學(xué)分:xxx . 共修:x科,實(shí)得總分為:xxx (3)刪除功能:當(dāng)在a.txt中刪除一個(gè)學(xué)生時(shí),自動(dòng)地在b.txt中刪除此學(xué)生所有信息。 (4)排序功能:能實(shí)現(xiàn)選擇按綜合成績(jī)或?qū)嵉脤W(xué)分升序或降序排序并顯示數(shù)據(jù)。 提示 數(shù)據(jù)結(jié)構(gòu)采用結(jié)構(gòu)體數(shù)組,提供學(xué)生基本信息和學(xué)生成績(jī)基本信息結(jié)構(gòu)體數(shù)組。二 ,需求分析 根據(jù)題目要求,該程序應(yīng)具備的功能有:(1)數(shù)據(jù)錄入功能:錄入每個(gè)學(xué)生的學(xué)號(hào)、課程編號(hào)、課程名稱、學(xué)分、平時(shí)成績(jī)、實(shí)驗(yàn)成績(jī)、卷面成績(jī)共7個(gè)數(shù)據(jù)。實(shí)得成績(jī)、實(shí)得學(xué)

5、分根據(jù)條件自動(dòng)運(yùn)算。(2)查詢功能:分為學(xué)生基本情況查詢和成績(jī)查詢兩種(3)刪除功能:當(dāng)在a.txt中刪除一個(gè)學(xué)生時(shí),自動(dòng)地在b.txt中刪除此學(xué)生所有信息。(4)排序功能:能實(shí)現(xiàn)選擇按綜合成績(jī)或?qū)嵉脤W(xué)分升序或降序排序并顯示數(shù)據(jù)。三, 程序總體設(shè)計(jì)學(xué)生學(xué)籍信息管理系統(tǒng)menu(菜單)退出排序功能模塊刪除功能模塊查詢功能模塊數(shù)據(jù)錄入功能模塊按學(xué)分降序排列按綜合成績(jī)降序排列按綜合成績(jī)升序排列按學(xué)分升序排列查詢功能模塊查詢功能模塊退出四, 程序詳細(xì)設(shè)計(jì)主函數(shù)主函數(shù)一般設(shè)計(jì)得比較簡(jiǎn)潔,只提供輸入,處理和輸出部分的函數(shù)調(diào)用。其中各功能模塊用菜單方式選擇。流程圖 程序void main()while(1)

6、 printf(nnn); printf(* = * n); printf(* 1input 2cha zhao * n); printf(* 3delete 4paixu xianshi * n); printf(* 5exit * n); printf(* * n); printf(* - * n); printf( please input which you want(1-5):); ch=getch(); switch(ch) case 1:input();break; case 2:search(); getch();break; case 3:delete();getch();

7、break; case 4:sort(); getch();break; case 5:exit(0); default: continue; 個(gè)功能模塊設(shè)計(jì)數(shù)據(jù)錄入。數(shù)據(jù)結(jié)構(gòu) 我們需要錄入的信息數(shù)據(jù)有兩類:一類是學(xué)生基本信息,包括學(xué)號(hào),學(xué)號(hào) 姓名 性別 宿舍號(hào)碼 電話號(hào)碼,存放在文件s_info.txt中。另一類信息是學(xué)生成績(jī)基本信息,包括學(xué)號(hào)、課程編號(hào)、課程名稱、學(xué)分、平時(shí)成績(jī)、實(shí)驗(yàn)成績(jī)、卷面成績(jī)共7個(gè)數(shù)據(jù)。實(shí)得成績(jī)、實(shí)得學(xué)分根據(jù)條件自動(dòng)運(yùn)算。 這些信息存放在文件s_score.txt中。學(xué)生基本信息的存放格式為:struct info int smingci; /名次char xueha

8、o8; char name10; char sex2;char d_num4;/宿舍號(hào)碼char tel_num9; /宿舍電話號(hào)碼data,s_info100;成績(jī)基本信息的存放格式為:struct coursechar xuehao8; char course_no6; /課程代號(hào) char course_name10;/課程名字 float xuefen;/學(xué)分 float p_chengji; /平時(shí)成績(jī) float s_chengji;/實(shí)驗(yàn)成績(jī) float j_chengji;/卷面成績(jī) float z_chengji;/綜合成績(jī) float s_xuefen;/實(shí)際學(xué)分cours

9、e_data,s_course100; 需求分析數(shù)據(jù)錄入模塊的功能是用戶通過(guò)輸入選項(xiàng)在基本信息和成績(jī)信息的輸入之間進(jìn)行選擇。程序void input() while(1)printf(nwhich information do you want to input: b(base) s(socre) e(exit);ch=getch(); if(ch=b|ch=b) if(fp=fopen(s_info.txt,at+)=null) printf(cannot open this file.n); getch();exit(0); printf(nplease input xuehao:); g

10、ets(sn);while(fread(&data,sizeof(data),1,fp)=1) if(strcmp(sn,data.xuehao)=0)flag=1;if(flag=1)printf(n the number has exist,press ang key continue:n);flag=0;getch();continue;elsestrcpy(data.xuehao,sn); printf(please input name:); gets(); printf(please input sex:m(male)/f(female):n); gets(dat

11、a.sex);printf(please input your dormitory no:); gets(data.d_num);printf(please input telephone number:); gets(data.tel_num);fwrite(&data,sizeof(data),1,fp); /寫入數(shù)據(jù)fclose(fp); /ifelse if(ch=s|ch=s) if(fp1=fopen(s_score.txt,at+)=null|(fp=fopen(s_info.txt,rt)=null) printf(cannot open this file.n); getch

12、();exit(0); printf(nplease input xuehao:); gets(sn);while(fread(&data,sizeof(data),1,fp)=1) if(strcmp(sn,data.xuehao)=0)flag=1;if(!flag)printf(nthis number is not existn);continue;else flag=0;strcpy(course_data.xuehao,sn);printf(nplease input course no:); gets(course_data.course_no);printf(nplease i

13、nput course name:); gets(course_data.course_name);printf(nplease input course xuefeng:); gets(temp);course_data.xuefen=atof(temp);printf(nplease input pingshi chengji:); gets(temp);course_data.p_chengji=atof(temp);printf(nplease input shiyan chengji:); gets(temp);course_data.s_chengji=atof(temp);pri

14、ntf(nplease input juanmian chengji:); gets(temp);course_data.j_chengji=atof(temp);/以下是綜合成績(jī)計(jì)算if(course_data.s_chengji=-1) /如果有實(shí)驗(yàn) course_data.z_chengji=(course_data.p_chengji)*0.3+(course_data.j_chengji)*0.7;else /如果無(wú)實(shí)驗(yàn)course_data.z_chengji=(course_data.p_chengji)*0.15+(course_data.s_chengji)*0.15+(co

15、urse_data.j_chengji)*0.7;/以下是實(shí)際學(xué)分計(jì)算 if(course_data.z_chengji)60) course_data.s_xuefen=0; else if(course_data.z_chengji)70) course_data.s_xuefen=course_data.xuefen*0.6; else if(course_data.z_chengji)80) course_data.s_xuefen=course_data.xuefen*0.75; else if(course_data.z_chengji)90) course_data.s_xuef

16、en=course_data.xuefen*0.8; else course_data.s_xuefen=course_data.xuefen; fwrite(&course_data,sizeof(course_data),1,fp1); /寫入數(shù)據(jù)fclose(fp1);fclose(fp);/else ifelsebreak; printf(another?y/n); ch=getch(); if(ch=n|ch=n)break;/input查詢功能模塊。需求分析該模塊的功能分為學(xué)生基本情況查詢和成績(jī)查詢兩種。學(xué)生基本情況查詢是根據(jù)輸入的學(xué)號(hào)或姓名查出此學(xué)生的基本信息并顯示輸出;或者根據(jù)

17、輸入的宿舍號(hào)碼,查出本室所有學(xué)生的基本信息并顯示輸出。成績(jī)查詢的功能是根據(jù)輸入的學(xué)號(hào),查出此學(xué)生的所有課程情況。 流程圖選擇基本信息查詢還是成績(jī)查詢b/ba/a學(xué)生成績(jī)查詢學(xué)生基本情況查詢輸入學(xué)號(hào)選擇根據(jù)學(xué)號(hào),姓名,宿舍號(hào)碼查找是否找到信息根據(jù)選擇,輸入學(xué)號(hào)/姓名/宿舍號(hào)碼是否找到信息提示沒(méi)找到,按任意鍵繼續(xù)顯示找到的信息提示沒(méi)找到,按任意鍵繼續(xù)顯示找到的信息 程序void search() printf(n select form: a(student information) b(socre information); ch=getch(); if(ch=a|ch=a) if(fp=fop

18、en(s_info.txt,rt)=null) printf(ncannot open this file.n); exit(0);printf(nselectway: a(student number) b(student name) c(dormitory no):n);ch1=getch(); /按照學(xué)號(hào)查找 if(ch1=a|ch1=a) printf(nplease input the student number:); gets(temp_no); printf( xuehao name sex sushe hao telephone );printf(n-n);while(fre

19、ad(&data,sizeof(data),1,fp)=1) if(strcmp(temp_no,data.xuehao)=0)flag=1;printf(n%8s%10s%12s%14s%20sn,data.xuehao,,data.sex,data.d_num,data.tel_num);if(!flag)printf(nthis number is not exist,press any key to continuen);getch();elseflag=0;/按照名字查找else if(ch1=b|ch1=b) printf(nplease input the na

20、me:); gets(temp_name); printf( xuehao name sex sushe hao telephone );printf(n-n); while(fread(&data,sizeof(data),1,fp)=1) if(strcmp(temp_name,)=0)flag=1;printf(n%8s%10s%12s%14s%20sn,data.xuehao,,data.sex,data.d_num,data.tel_num);if(!flag)printf(nthis name is not exist,press any key

21、 to continue:n);getch();elseflag=0; /按照宿舍號(hào)碼查找 else if(ch1=c|ch1=c) printf(nplease input the dormitory number:); gets(temp_dnum); printf( xuehao name sex sushe hao telephone );printf(n-n);while(fread(&data,sizeof(data),1,fp)=1) if(strcmp(temp_dnum,data.d_num)=0)flag=1;printf(n%8s%10s%12s%14s%20sn,dat

22、a.xuehao,,data.sex,data.d_num,data.tel_num);if(!flag)printf(this dormitory is not exist,press any key continue:);getch();elseflag=0; else printf(nselect errorn); fclose(fp); /ch if /學(xué)生成績(jī)查找 else if(ch=b|ch=b) j=0; z_fen=0; z_xuefen=0; if(fp1=fopen(s_score.txt,rt)=null) printf(ncannot open th

23、is file.n); exit(0);printf(nplease input student number:);gets(temp_no);printf( xuehao course_no course_name xuefen chengji );printf(n-n); while(fread(&course_data,sizeof(course_data),1,fp1)=1) if(strcmp(temp_no,course_data.xuehao)=0)flag=1;j+;z_fen=z_fen+course_data.z_chengji;z_xuefen=z_xuefen+cour

24、se_data.s_xuefen;printf(n%10s%10s%10s%15.1f %18.1fn,course_data.xuehao,course_data.course_no,course_data.course_name,course_data.s_xuefen,course_data.z_chengji);if(!flag)printf( is not exist);elseflag=0;printf(n-n);printf( z_gong:%3d ke z_xuefen:%3.1f z_cheng ji:%6.1f,j,z_xuefen,z_fen); else printf(

25、error ); fclose(fp1);刪除功能模塊。需求分析該模塊的功能是當(dāng)在學(xué)生基本信息文件中刪除一個(gè)學(xué)生時(shí),自動(dòng)在成績(jī)信息文件中刪除此人的所有信息。 程序void delete()printf(ninput the number of student you want to delete:);gets(temp_no);if(fp1=fopen(s_score.txt,rt)=null|(fp=fopen(s_info.txt,rt)=null|(fp2=fopen(temp.txt,wt+)=null) printf(cannot open this file.n); getch()

26、;exit(0); while(fread(&data,sizeof(data),1,fp)=1)if(strcmp(temp_no,data.xuehao)!=0)fwrite(&data,sizeof(data),1,fp2);remove(s_info.txt); rename(temp.txt,s_info.txt);fclose(fp);fclose(fp2);if(fp1=fopen(s_score.txt,rt)=null|(fp2=fopen(temp.txt,wt+)=null) printf(cannot open this file.n); getch();exit(0)

27、; while(fread(&course_data,sizeof(course_data),1,fp1)=1)if(strcmp(temp_no,course_data.xuehao)!=0)fwrite(&course_data,sizeof(course_data),1,fp2);remove(s_score.txt); rename(temp.txt,s_score.txt);fclose(fp1);fclose(fp2);printf(n delete successful);排序功能模塊。需求分析 該模塊的功能是能實(shí)現(xiàn)選擇根據(jù)綜合成績(jī)或?qū)嵉脤W(xué)分升序或降序排序顯示數(shù)據(jù)。流程圖輸入要排

28、序的課程名稱是否找到該課程yn選擇排序根據(jù):根據(jù)學(xué)分還是綜合成績(jī)提示沒(méi)找到退出選擇排序方法:升序還是降序根據(jù)選擇對(duì)數(shù)據(jù)進(jìn)行排序顯示 程序void sort()printf(nplease input course number:);gets(tempcn); if(fp1=fopen(s_score.txt,rt)=null) printf(cannot open this file.n); getch();exit(0); i=0;while(fread(&course_data,sizeof(course_data),1,fp1)=1)if(strcmp(tempcn,course_dat

29、a.course_no)=0)s_coursei=course_data;i+;flag=1;if(!flag)printf(nno such coursen);elseflag=0; printf(nplease select way : a(xuefen) b(zhong he cheng ji)n); ch=getch(); printf(nselect: s(sheng xu) j(jiang xu); ch1=getch(); if(ch=a|ch=a) /升序排列 if(ch1=s) for(j=0;ji-1;j+) for(k=j;ks_coursek.s_xuefen) tem

30、p_course=s_coursej; s_coursej=s_coursek; s_coursek=temp_course; printf(nnxuehao course_number course_name xuefen chengjin); printf(n-n); for(j=0;ji;j+) printf(n%6s%10s%16s%13.1f%13.1fn,s_coursej.xuehao,s_coursej.course_no,s_coursej.course_name,s_coursej.s_xuefen,s_coursej.z_chengji); /降序排列 else for(

31、j=0;ji-1;j+) for(k=j;ki;k+) if(s_coursej.s_xuefens_coursek.s_xuefen) temp_course=s_coursej; s_coursej=s_coursek; s_coursek=temp_course; printf(nnxuehao course_number course_name xuefen chengjin); printf(n-n); for(j=0;ji;j+) printf(n%6s%10s%16s%13.1f%13.1fn,s_coursej.xuehao,s_coursej.course_no,s_cour

32、sej.course_name,s_coursej.s_xuefen,s_coursej.z_chengji); /ch1 /ch if else if(ch=b|ch=b) /升序排列 if(ch1=s|ch1=s) for(j=0;ji-1;j+) for(k=j;ks_coursek.z_chengji) temp_course=s_coursej; s_coursej=s_coursek; s_coursek=temp_course; printf(nnxuehao course_number course_name xuefen chengjin); printf(n-n); for

33、(j=0;ji;j+) printf(n%6s%10s%16s%13.1f%13.1fn,s_coursej.xuehao,s_coursej.course_no,s_coursej.course_name,s_coursej.s_xuefen,s_coursej.z_chengji); /降序排列 else for(j=0;ji-1;j+) for(k=j;ki;k+) if(s_coursej.z_chengjis_coursek.z_chengji) temp_course.z_chengji=s_coursej.z_chengji; s_coursej.z_chengji=s_cour

34、sek.z_chengji; s_coursek.z_chengji=temp_course.z_chengji; printf(nnxuehao course_number course_name xuefen chengjin); printf(n-n); for(j=0;ji;j+) printf(n%6s%10s%16s%13.1f%13.1fn,s_coursej.xuehao,s_coursej.course_no,s_coursej.course_name,s_coursej.s_xuefen,s_coursej.z_chengji); /ch1 else printf(illegal select); getch(); 五 ,上機(jī)操作編譯、連接和運(yùn)行下面是運(yùn)行后各個(gè)模塊的界面圖:1 主菜單函數(shù)2.數(shù)據(jù)錄入3,查詢功能(1)學(xué)生基本信息查詢(2)學(xué)生成績(jī)查詢4 刪除功能5 排序功能源程序:#include stdio.h /*i/o函數(shù)*/ #include stdlib.h /*其它說(shuō)明*/ #inclu

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論