版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 《高級語言課程設(shè)計》課程設(shè)計</p><p> 題 目: </p><p> 班 級: </p><p><b> 學生學號: </b></p><p> 學生姓名: </p><p> 指導老師: </p&
2、gt;<p><b> 提交時間:</b></p><p> 《教務信息管理系統(tǒng)》課程設(shè)計報告</p><p><b> 系統(tǒng)分析</b></p><p><b> 問題描述</b></p><p> 《教務管理系統(tǒng)》作為一個管理軟件,應充分聯(lián)系實
3、際考慮它的實用性,同時還要考慮它應用的范圍,解決問題的功能。它是一款管理軟件,主要的功能是實現(xiàn)管理員對全校教務的管理(包括學生的基本信息管理和學生的成績管理),還有實現(xiàn)學生對教務信息的查詢功能。</p><p><b> 系統(tǒng)功能分析</b></p><p> 設(shè)計一個教務信息管理系統(tǒng),該程序具有以下功能:</p><p> (1)錄入如
4、下信息:學生基本信息:如學號、姓名、性別、年齡電、宿舍號碼、話號碼等。</p><p> 課程基本信息:課程編號、課程名稱、考試成績、平時成績、綜合成績、學分、重修否等。如果重修,需要考慮重修學期、重修成績,并且要考慮多次重修的情況。</p><p><b> ?。?)錄入選課信息</b></p><p><b> ?。?)錄入學生
5、成績</b></p><p> ?。?)按班統(tǒng)計學生選課情況及考試成績。</p><p> ?。?)按課程統(tǒng)計學生名單及考試成績。</p><p> ?。?)統(tǒng)計并輸出每個同學已修學分及不及三格課程。</p><p><b> 開發(fā)平臺及工具介紹</b></p><p><b&
6、gt; 硬件環(huán)境</b></p><p> 處 理 器:Intel Pentium 166或更高</p><p> 內(nèi) 存:32MB以上</p><p><b> 硬盤空間:2G以上</b></p><p> 顯 卡:SVGA顯示適配器</p><p><b
7、> 軟件環(huán)境</b></p><p> 操作系統(tǒng):Windows98/Me/2000/XP/win7</p><p><b> 系統(tǒng)設(shè)計</b></p><p><b> 系統(tǒng)總體結(jié)構(gòu)設(shè)計</b></p><p> 教務管理系統(tǒng)是一個簡易的管理系統(tǒng),它需要實現(xiàn)管理員對全校
8、教務的管理和不同學生對教務的查詢,所以需要設(shè)置不同的賬戶給不同的身份,解決這一問題可以設(shè)計結(jié)構(gòu)體對不同身份的賬戶信息進行保存,用戶需要用各自的密碼才能登陸。同時結(jié)構(gòu)體里面保存了不用用戶(學生)的基本信息和成績信息,通過從文件里讀取相應的結(jié)構(gòu)體,可以對它進行信息的查詢,修改,替換,刪除和保存。</p><p> 不同的學校有不同的學院和專業(yè),所以需要對不同的學院和專業(yè)進行編碼,然后用結(jié)構(gòu)體進行保存,在學生信息錄入
9、時可以錄入編碼,通過不同的編號來標記學生的學院和專業(yè),這樣方便了管理員的操作,同時也提高了操作的效率。實現(xiàn)的方法是管理員先對學院和專業(yè)進行編碼然后保存在文件的結(jié)構(gòu)體里,編寫一函數(shù),輸入編號就返回該編號對應的學院和專業(yè)。</p><p> 對于班級的選課管理,由于同一班的學生選課是相同的,所以可以用一個結(jié)構(gòu)體來保存一個班的選課信息,這樣子就大大方便了選課信息的管理。</p><p> 系
10、統(tǒng)各個功能模塊詳細設(shè)計</p><p><b> 系統(tǒng)的模塊結(jié)構(gòu)圖</b></p><p><b> 模塊設(shè)計</b></p><p> 身份選擇模塊設(shè)計 </p><p> 該模塊為系統(tǒng)用戶提供功能選擇界面,管理員或?qū)W生登錄系統(tǒng)后都會看到對應自己權(quán)限的功能選擇界面,在界面中的系統(tǒng)提示符處
11、輸入自己的功能選項即可跳轉(zhuǎn)到相應的功能執(zhí)行函數(shù)。功能選擇模塊功能圖如下所示。</p><p><b> 身份驗證模塊</b></p><p> 身份驗證模塊的作用是為了保障系統(tǒng)的安全性和系統(tǒng)使用人員角色的區(qū)分。該模塊需要從輸入設(shè)備獲取用戶輸入的用戶名和密碼,判斷是否為合法身份,其次要判斷用戶權(quán)限,從而決定其能使用的系統(tǒng)功能,其模塊功能圖如圖3所示</p>
12、;<p><b> 管理員模塊</b></p><p> 該模為管理員提供學校教務管理的功能,在該模塊,管理員可以根據(jù)界面提供不同的功能進行基本的操作,在界面中的系統(tǒng)提示符處輸入自己的功能選項即可跳轉(zhuǎn)到相應的功能執(zhí)行函數(shù)。功能選擇模塊功能圖如下所示。</p><p><b> 學生賬戶界面模塊</b></p>&
13、lt;p> 該模為學生賬戶提供學校教務信息查看的功能,在該模塊,學生可以根據(jù)界面提供不同的功能進行基本的操作,在界面中的系統(tǒng)提示符處輸入自己的功能選項即可跳轉(zhuǎn)到相應的功能執(zhí)行函數(shù)。功能選擇模塊功能圖如下所示。</p><p><b> 學生信息管理模塊</b></p><p> 該模塊主要實現(xiàn)管理員對學生信息的管理,包括學生信息查詢,學生身份修改,學生成績
14、修改,學生信息錄入,學生信息刪除。其功能如圖:</p><p><b> 統(tǒng)計管理模塊</b></p><p> 該模塊主要實現(xiàn)管理員對學生成績的統(tǒng)計與管理,包括按班統(tǒng)計學生選課情況及考試成績,按課程統(tǒng)計學生名單及考試成績, 統(tǒng)計并輸出每個同學已修學分及不及格課程。其功能如圖:</p><p><b> 編排管理模塊</b
15、></p><p> 該模塊主要實現(xiàn)對學校不同學院,專業(yè)和課程的編碼,這樣就可以更方便地進行管理和運用。</p><p><b> 系統(tǒng)流程描述</b></p><p> 系統(tǒng)的主體處理流程如圖</p><p><b> 界面設(shè)計</b></p><p><
16、;b> 開始界面設(shè)計</b></p><p> 開始界面是告訴用戶系統(tǒng)的名稱,界面上有當前的日期和時間,以簡潔為主,整個系統(tǒng)的顏色為淡藍背景與淡黃字體,給用戶清爽的感覺。</p><p><b> 身份選擇界面設(shè)計</b></p><p> 身份選擇界面為用戶不同的身份而設(shè)計,根據(jù)不同的身份只需要輸入1~2,則可以選擇
17、不同的身份登陸,同時,為了系統(tǒng)的安全,和管理的特權(quán),系統(tǒng)要求在選擇身份后還要輸入密碼,輸入的提示很明確,畫面很簡潔,操作很簡單,這是該系統(tǒng)設(shè)計的理念。</p><p><b> 管理員界面設(shè)計</b></p><p> 管理員的界面,功能強大,只需要輸入對應的編號就可以實現(xiàn)對應的功能,這是主要的界面,該系統(tǒng)的大部分功能都是通過該界面操作的。</p>
18、<p><b> 管理員修改身份界面</b></p><p> 管理員界面功能之一,該界面先是對自己當前身份的查看,如果有錯誤的地方,可以進行修改,如果沒有,則可以返回上一界面。該界面的功能是實現(xiàn)管理員對自己身份的管理。</p><p> 管理員->學生管理界面</p><p> 這是管理員界面中的第2個功能進入后的界面
19、,通過該界面,可以對全校的學生進行信息的管理,是該系統(tǒng)中管理員的主要功能實現(xiàn)的界面。</p><p> 管理員->學生信息查詢界面</p><p> 該界面是管理員對學生信息查詢的界面,通過該界面,管理員可以清楚地了解到學生的信息,包括基本信息和課程信息。該界面對學生的信息進行了合理的劃分,使人一眼就能獲取到學生的信息,既簡潔又實用。</p><p>&l
20、t;b> 學生賬戶界面</b></p><p> 該界面是學生賬戶登陸后看到的界面,該界面詳細地介紹了學生可以對該系統(tǒng)進行的操作。</p><p><b> 學生選課信息界面</b></p><p> 該界面是學生對自己選課信息的查詢,通過該界面,學生可以很清楚地了解到自己已選的課程,和每一個課程修完后可以獲得的學分,
21、同時也顯示了已經(jīng)修了的學分。</p><p><b> 學生考試成績查詢</b></p><p> 該界面是學生對自己考試成績的查詢界面,該界面顯示了該學生的學校,學院和專業(yè),還有考試的科目和每一科的考試成績,平時成績,綜合成績,同時根據(jù)每一科的綜合成績是否低于60分,系統(tǒng)會自動輸出該學生重修的科目。</p><p><b>
22、課程管理界面</b></p><p> 該界面是管理員對課程的管理,能過該界面可以對全校的課程進行編排,查看。</p><p> 學院和專業(yè)編碼管理界面</p><p> 該界面是管理員對課程的管理,能過該界面可以對全校的課程進行編排,查看。</p><p> 學院和專業(yè)編碼查看界面</p><p>
23、; 該界面顯示了管理員已經(jīng)編排的不同學院和專業(yè)的情況,以學院為單位,每一個學院下面是該學院的專業(yè),方便管理員查詢和管理。</p><p><b> 結(jié)構(gòu)設(shè)計</b></p><p><b> 定義常量</b></p><p> #define LEN sizeof(struct people) //</p
24、><p> #define SCH sizeof(struct school)</p><p> #define CLA sizeof(struct classes)</p><p><b> 系統(tǒng)用戶數(shù)據(jù)結(jié)構(gòu)</b></p><p> Struct people //學生的結(jié)構(gòu)體
25、 </p><p><b> {</b></p><p> char st_num[20]; //學號</p><p> char name[20]; //姓名</p><p> char s
26、ex[20]; //性別</p><p> int age; //年齡</p><p> char dor_num[20]; //宿舍號碼</p><p> char ph_num[20]; //電話號碼</p><p> int sub_[20];<
27、/p><p> int kao[20]; //考試科目</p><p> double sub1[20]; //各科考試成績</p><p> double sub2[20]; //各科平時成績</p><p> double sub3[20]; //各科綜合成績<
28、/p><p> char code[20]; //用戶密碼</p><p> int sc_ta[50]; //個人課表</p><p> int sc_ro[50]; //課室</p><p> char _sc[20]; //就讀學校</p><p&
29、gt; int _sub1; //學院,</p><p> int _sub2; //專業(yè)</p><p> int _cla; //班級</p><p> int _ji; //級數(shù)</p><p> float xuefen
30、; //已修學分</p><p> struct people *next;</p><p><b> };</b></p><p> 系統(tǒng)學院和專業(yè)管理數(shù)據(jù)結(jié)構(gòu)</p><p> struct school //編碼學院和專業(yè)
31、 </p><p><b> {</b></p><p> int one; // 學院編號</p><p> char two[20]; //學院名稱</p><p> int three[20]; //專業(yè)編號</p&g
32、t;<p> char four[20][100];//專業(yè)名稱</p><p> struct school *next;</p><p><b> };</b></p><p><b> 課程數(shù)據(jù)結(jié)構(gòu)</b></p><p> struct classes //課程結(jié)
33、構(gòu)體 </p><p><b> {</b></p><p> int one; //編號</p><p> char ch[50]; //課程名稱</p><p>
34、 double sum;//該科目學分</p><p><b> };</b></p><p><b> 班級管理數(shù)據(jù)結(jié)構(gòu)</b></p><p> struct ban //班級</p><p><b> {</b></p><p> in
35、t one;//學院</p><p> int two;//專業(yè)</p><p> int three;//;班級</p><p> int four[30];//課表</p><p> double five[30];//各科平均分</p><p> struct ban *next;</p>
36、<p><b> };</b></p><p><b> 系統(tǒng)實現(xiàn)</b></p><p><b> 身份的選擇模塊</b></p><p><b> 流程圖</b></p><p><b> 實現(xiàn)該功能的代碼:</b
37、></p><p> void getcode() //獲得身份和密碼 </p><p><b> {</b></p><p> char ch1[100];</p><p> int i,flag
38、=0,num=0;</p><p><b> ma_st=0;</b></p><p> while(1) //進入“管理員”</p><p><b> {</b></p><p><b> i=0;</b></p><p> while
39、((ch1[i]=getch())!='\r') {putchar(ch1[i]);i++;}</p><p> if(i>1) ch1[0]='9';</p><p> if(ch1[0]=='1')</p><p><b> { </b></p><p>
40、<b> flag=0;</b></p><p> //printf("1");</p><p> printf(".管理員您好!\n\t請您輸入您的密碼,按回車結(jié)束:");</p><p><b> while(1)</b></p><p><
41、b> { </b></p><p><b> i=0;</b></p><p> while((code[i]=getch())!='\r'&&i<16)</p><p><b> {</b></p><p> printf(&quo
42、t;*");i++;</p><p><b> }</b></p><p> code[i]='\0';</p><p><b> if(i>=16)</b></p><p> {system("cls");</p><
43、p><b> iden();</b></p><p> printf("1.管理員您好!\n");</p><p> printf("\t對不起,您輸入的密碼有誤,請重新輸入:\n");</p><p><b> }</b></p><p>
44、else if(check(1,0,code)==1)</p><p> {flag=1;ma_st=1;break;}</p><p><b> else</b></p><p> {system("cls");</p><p><b> iden();</b><
45、/p><p> printf("1.管理員您好!\n");</p><p> printf("\t對不起,您輸入的密碼有誤,請重新輸入:");</p><p><b> }</b></p><p><b> }</b></p><p&g
46、t;<b> }</b></p><p> else if(ch1[0]=='2') //進入“學生”</p><p><b> {</b></p><p><b> flag=0;</b></p><p> printf("\n\n\t
47、請您輸入你的學號,按回車結(jié)束:");</p><p><b> while(1)</b></p><p><b> {</b></p><p><b> i=0;</b></p><p> while((name[i]=getchar())!='\n&
48、#39;) i++;</p><p> name[i]='\0';</p><p><b> if(i>=13)</b></p><p><b> {</b></p><p> system("cls");</p><p>&
49、lt;b> iden();</b></p><p> printf("2\n\n");</p><p> printf("\t對不起,您輸入的學號有誤,學號為12位的正數(shù),請重新輸入:");</p><p><b> }</b></p><p> els
50、e break;</p><p><b> }</b></p><p> printf("\t請輸入您的密碼,按回車結(jié)束:");</p><p><b> while(1)</b></p><p><b> {</b></p><
51、p><b> i=0;</b></p><p> while((code[i]=getch())!='\r') {printf("*");i++;}</p><p> code[i]='\0';</p><p><b> if(i>=16)</b>&l
52、t;/p><p><b> {</b></p><p> system("cls");</p><p><b> iden();</b></p><p> printf("2\n\n\t請您輸入你的學號,按回車結(jié)束:\n%s\n",name);</p
53、><p><b> }</b></p><p> else if(check(2,name,code)==2)</p><p> {flag=1;ma_st=2;break;}</p><p><b> else </b></p><p><b> {<
54、/b></p><p> system("cls");</p><p><b> iden();</b></p><p> printf("2\n\n\t請您輸入你的學號,按回車結(jié)束:%s\n",name);</p><p> printf("\t對不起,您
55、輸入的密碼有誤,請重新輸入:");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> else //重新選擇身份</p><p><b> {
56、</b></p><p> system("cls");</p><p><b> iden();</b></p><p> printf("\n\t對不起,您的輸入有誤,輸入應為1~2的數(shù)字,請重新選擇您的身份:");</p><p><b> }&
57、lt;/b></p><p> if(flag==1) break; //若身份和密碼都已驗證,退出循環(huán),進入下一個函數(shù)</p><p><b> }</b></p><p><b> }</b></p><p> 身份和密碼的驗證模塊</p><p> 實現(xiàn)
58、該模塊功能的代碼:</p><p> int check(int n,char num[],char _code[]) //密碼的驗證 </p><p><b> {</b></p><p><b> FILE *fp;</b></p>
59、<p><b> int i=0;</b></p><p> struct people s;</p><p> if((fp=fopen("D:\\file\\a.txt","r"))==NULL) exit(0);</p><p><b> if(n==1)</b&
60、gt;</p><p><b> {</b></p><p> fread(&s,LEN,1,fp);</p><p> if(strcmp(_code,s.code)==0) i=1;</p><p><b> else i=0;</b></p><p>
61、 fclose(fp);</p><p><b> }</b></p><p> else if(n==2)</p><p><b> {</b></p><p> while(fread(&s,LEN,1,fp)!=0)</p><p><b>
62、 {</b></p><p> if(strcmp(num,s.st_num )==0) break;</p><p><b> }</b></p><p> if(strcmp(_code,s.code)==0) i=2;</p><p><b> else i=0;</b>
63、</p><p> fclose(fp);</p><p><b> }</b></p><p> return(i); //若返回1則是管理員,2則是學生</p><p><b> }</b></p><p><b> 系統(tǒng)測試&l
64、t;/b></p><p><b> 身份的選擇測試</b></p><p> 輸入測試數(shù)據(jù):1,2,3,,,10和字符a ,b ,回車鍵,刪除鍵,</p><p> 預期結(jié)果:當輸入1 時進入管理員界面,當輸入2 時進入學生賬戶界面,當輸入為其它時,打印提示“輸入錯誤,請重新輸入”</p><p> 測試
65、結(jié)果:和分析結(jié)果一致。</p><p> 身份和密碼的驗證測試</p><p> 輸入測試數(shù)據(jù):當選擇為管理員時,輸入默認密碼123,和其它隨意字符;當為學生賬戶時,輸入已經(jīng)保存的學號2011和默認密碼,以及其它輸入。</p><p> 預期結(jié)果:當學號和密碼都是文件中保存的一致時,進入正確界面,否則提示“輸入錯誤”</p><p>
66、 測試結(jié)果:和分析結(jié)果一致。</p><p><b> 管理員模塊的測試</b></p><p> 輸入的測試數(shù)據(jù):分別輸入0~9的數(shù)字,和各種字符。</p><p> 預期結(jié)果:當輸入正確的數(shù)字時,進入對應的界面。</p><p> 測試結(jié)果:和分析結(jié)果一致。</p><p><b
67、> 學生界面模塊測試</b></p><p> 輸入的測試數(shù)據(jù):分別輸入0~9的數(shù)字,和各種字符。</p><p> 預期結(jié)果:當輸入正確的數(shù)字時,進入對應的界面。</p><p> 測試結(jié)果:和分析結(jié)果一致。</p><p><b> 學生信息管理模塊</b></p><
68、p> 輸入的測試數(shù)據(jù):分別輸入0~9的數(shù)字,和各種字符。</p><p> 預期結(jié)果:當輸入正確的數(shù)字時,進入對應的界面。</p><p> 測試結(jié)果:和分析結(jié)果一致</p><p><b> 。</b></p><p><b> 系統(tǒng)運行界面</b></p><
69、p><b> 進入系統(tǒng)界面</b></p><p><b> 身份選擇界面</b></p><p><b> 進入管理員界面</b></p><p><b> 進入學生賬戶界面</b></p><p><b> 進入學生管理界面&
70、lt;/b></p><p><b> 進入統(tǒng)計管理界面</b></p><p><b> 進入編排管理界面</b></p><p> 進入學院和專業(yè)編碼查看界面</p><p> 進入學生信息查詢界面</p><p> 進入學生選課信息查詢界面</p&
71、gt;<p><b> 退出系統(tǒng)提示界面</b></p><p><b> 總結(jié)</b></p><p> 本課程設(shè)計進行了教務信息管理系統(tǒng)的分析、設(shè)計、實現(xiàn)。主要實現(xiàn)了管理員對學生信息的錄入,保存,分析,管理與學生對自己教務信息進行查看的過程。在設(shè)計過程中,我們根據(jù)實際情況進行了詳盡的系統(tǒng)需求分析,并給出了系統(tǒng)需求分析的典型
72、分析步驟。在系統(tǒng)設(shè)計部分,介紹了系統(tǒng)開發(fā)和設(shè)計的總體思想。系統(tǒng)開發(fā)與設(shè)計的總體思想是系統(tǒng)開發(fā)的主線。在總體設(shè)計部分還給出了系統(tǒng)模塊結(jié)構(gòu)圖,并對各個模塊的設(shè)計過程進行了闡述。根據(jù)軟件工程的基本流程,還對系統(tǒng)的流程進行了描述,并進行數(shù)據(jù)結(jié)構(gòu)設(shè)計。整個系統(tǒng)設(shè)計部分為系統(tǒng)的實現(xiàn)構(gòu)建了骨架,并在詳細設(shè)計中由各個功能模塊實現(xiàn)各個細節(jié)部分。</p><p> 在對本系統(tǒng)的實現(xiàn)過程中,將各個主要功能分別由不同的C語言源程序來實
73、現(xiàn),從而完成了在開發(fā)時對系統(tǒng)功能模塊的劃分。在對不同賬戶的管理方面,大都用到了結(jié)構(gòu)體進行管理,使得程序更加結(jié)構(gòu)化。在對數(shù)據(jù)的保存和讀取時用到了文件的讀取和保存,使得我對文件的運用更加的嫻熟。</p><p> 本系統(tǒng)雖然對教務信息管理系統(tǒng)的基本功能進行了實現(xiàn),但也有需要完善的地方。例如,學生的功能比較少,大部分的功能都是管理員實現(xiàn)的,對此,可以增加學生賬戶的功能。同時,學生和管理員之間沒有有機的聯(lián)系,該系統(tǒng)還缺
74、少學生與管理員之間的信息反饋,可以設(shè)置學習對管理員的反饋功能和管理員對學生的提醒功能。另外,本系統(tǒng)是單機版的投票系統(tǒng),還可以考慮將其擴展為網(wǎng)絡(luò)版的投票系統(tǒng),采用C/S架構(gòu)來實現(xiàn)多用戶端同時進行投票。最后,為了體現(xiàn)系統(tǒng)的友好交互能力,可以實現(xiàn)圖形化操作界面。</p><p><b> 7. 參考文獻</b></p><p> 1.《c/c++/c#程序員實用大全》
75、 [美]Kris Jamsa 著</p><p> 2.《c程序設(shè)計(第四版)》 譚浩強 著</p><p><b> 8. 代碼清單</b></p><p> #include<stdio.h></p><p> #include<stdlib.h></p>
76、;<p> #include<string.h></p><p> #include <conio.h></p><p> #define LEN sizeof(struct people)</p><p> #define SCH sizeof(struct school)</p><p>
77、#define CLA sizeof(struct classes)</p><p> int n_n=0,n_n2=0,tc_=0; //為了讀取而用的必要的全局變量</p><p> int ma_st=0;</p><p> char name[20],code[20];</p><p> //--------
78、------------------------------------------------------------------------------</p><p> /* 題目5:教務信息管理系統(tǒng)</p><p><b> 1、題目描述</b></p><p>
79、 設(shè)計一個教務信息管理系統(tǒng),該程序具有以下功能:</p><p> ?。?)錄入如下信息:學生基本信息:如學號、姓名、性別、年齡電、宿舍號碼、話號碼等。</p><p> 課程基本信息:課程編號、課程名稱、考試成績、平時成績、綜合成績、</p><p> 學分、重修否等。如果重修,需要考慮重修學期、重修成績,并且要考慮多次重修的情況。</p>&
80、lt;p><b> ?。?)錄入選課信息</b></p><p><b> ?。?)錄入學生成績</b></p><p> ?。?)按班統(tǒng)計學生選課情況及考試成績。</p><p> ?。?)按課程統(tǒng)計學生名單及考試成績。</p><p> ?。?)統(tǒng)計并輸出每個同學已修學分及不及三格課程。&
81、lt;/p><p><b> 2、題目要求</b></p><p> ?。?)按照分析、設(shè)計、編碼、調(diào)試和測試過程完成應用程序;</p><p> ?。?)學習并使用流程圖等工具,并在撰寫報告中使用;</p><p> ?。?)程序的各項功能在程序運行時,以菜單方式選擇并執(zhí)行;</p><p>
82、(4)要求用戶輸入數(shù)據(jù)時,要給出清晰、明確的提示,包括:輸入數(shù)據(jù)的內(nèi)容、格式及結(jié)束方式等</p><p> (5)所有的信息存儲在文件中,并實現(xiàn)文件讀寫操作。</p><p> ?。?)程序中用鏈表存放學生信息并實現(xiàn)增刪減功能。</p><p><b> 3、提示</b></p><p> ?。?)學生基本信息可以設(shè)
83、計一個結(jié)構(gòu)體類型</p><p> ?。?)自己構(gòu)思并增加的除規(guī)定功能之外的新功能,酌情加分。*/</p><p> //--------------------------------------------------------------------------------------</p><p> int check(int n,char num[
84、],char _code[]);</p><p> struct people *read_(); //從文件里讀出結(jié)構(gòu)體</p><p> void ban_p(); //將班級課表寫入每個學生</p><p> void xiazai(); </p><p> int ma_ten();
85、 //退出</p><p> void last(); //結(jié)語</p><p> //--------------------------------------------------------------------------------------</p><p> void student_meu()
86、; //學生界面</p><p> void st_one(char name[]); //學生修改信息</p><p> void st_one_one(char name[]); //</p><p> void st_two(char name[]); //選課信息
87、</p><p> void st_two_three(); //學生信息錄入</p><p> void st_three(char name[]); //考試成績、重修</p><p> void st_four(char name[]); //修改密碼</p><p> //
88、--------------------------------------------------------------------------------------</p><p> void manage_meu(); //管理員界面.</p><p> void ma_one(); //管理員身份.</p><p> void ma
89、_one_one(); //修改身份.</p><p> void ma_change(struct people *p0); //修改文件,存入一個單位.</p><p> void ma_two(); //學院專業(yè)編碼.</p><p> void ma_two_one(); //編排學院和專業(yè).</p>
90、<p> void ma_two_two(); //查看學院和專業(yè).</p><p> void ma_three(); //課程編碼.</p><p> void ma_three_one(); //增加課程編排</p><p> void ma_three_two(); //查看課程<
91、;/p><p> void ma_three_three(); //重新編排課程</p><p> void ma_four(); //選課信息.</p><p> void ma_five(); //學生信息管理.</p><p> void ma_five_one(); //學生信息查詢.
92、</p><p> void ma_five_two(); //學生身份修改.</p><p> void ma_five_four(); //學生成績修改。</p><p> void ma_five_three(); //學生信息錄入.</p><p> void ma_five_five
93、(); //學生信息刪除</p><p> void ma_six(); //統(tǒng)計管理</p><p> void ma_six_one(); //按班統(tǒng)計學生選課情況,考試成績.</p><p> void ma_six_two(); //按課程統(tǒng)計學生名單及考試成績.</p>&l
94、t;p> void ma_six_three(); //統(tǒng)計并輸出每個同學已修學分及不及三格課程).</p><p> void ma_six_four(); //錄入班級選課. </p><p> //-------------------------------------------------------------------------
95、-------------</p><p> struct ban //班級</p><p><b> {</b></p><p> int one;//學院</p><p> int two;//專業(yè)</p><p> int three;//;班級</p><p
96、> int four[30];//課表</p><p> double five[30];//各科平均分</p><p> struct ban *next;</p><p><b> };</b></p><p> //------------------------------------------
97、--------------------------------------------</p><p> struct classes //課程結(jié)構(gòu)體</p><p><b> {</b></p><
98、;p><b> int one;</b></p><p> char ch[50];</p><p> double sum;//該科目學分</p><p><b> };</b></p><p> //----------------------------------------
99、----------------------------------------------</p><p> struct school //編碼學院和專業(yè)</p><p><b> {</b></p>
100、<p> int one; // 學院編號</p><p> char two[20]; //學院名稱</p><p> int three[20]; //專業(yè)編號</p><p> char four[20][100];//專業(yè)名稱</p><p> struct school *next;</p>
101、<p><b> };</b></p><p> //--------------------------------------------------------------------------------------</p><p> struct people
102、 //學生的結(jié)構(gòu)體</p><p><b> {</b></p><p> char st_num[20]; //學號</p><p> char name[20]; //姓名</p><p> char sex[20
103、]; //性別</p><p> int age; //年齡</p><p> char dor_num[20]; //宿舍號碼</p><p> char ph_num[20]; //電話號碼</p><p> int sub_[20];</p>
104、;<p> int kao[20]; //考試科目</p><p> double sub1[20]; //各科考試成績</p><p> double sub2[20]; //各科平時成績</p><p> double sub3[20]; //各科綜合成績</p>
105、;<p> char code[20]; //用戶密碼</p><p> int sc_ta[50]; //個人課表</p><p> int sc_ro[50]; //課室</p><p> char _sc[20]; //就讀學校</p><p>
106、int _sub1; //學院,</p><p> int _sub2; //專業(yè)</p><p> int _cla; //班級</p><p> int _ji; //級數(shù)</p><p> float xuefen;
107、 //已修學分</p><p> struct people *next;</p><p><b> };</b></p><p> //--------------------------------------------------------------------------------------</p>
108、<p> struct classes* re1(int n) //返回課程的結(jié)構(gòu)體</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> struct cla
109、sses *p;</p><p> fp=fopen("D:\\file\\classes.txt","r");</p><p> p=(struct classes*)malloc(CLA);</p><p> while(fread(p,CLA,1,fp)!=0)</p><p><b&
110、gt; {</b></p><p> if(n==p->one) break;</p><p><b> }</b></p><p> fclose(fp);</p><p> return (p);</p><p><b> }</b><
111、/p><p> //--------------------------------------------------------------------------------------</p><p> struct school* re2(int n) //返回學院編號的結(jié)構(gòu)體</p>
112、<p><b> {</b></p><p><b> FILE *fp;</b></p><p> struct school *p;</p><p> fp=fopen("D:\\file\\school.txt","r");</p><p
113、> p=(struct school*)malloc(SCH);</p><p> while(fread(p,SCH,1,fp)!=0)</p><p><b> {</b></p><p> if(n==p->one) break;</p><p><b> }</b>&l
114、t;/p><p> fclose(fp);</p><p> return (p);</p><p><b> }</b></p><p> //--------------------------------------------------------------------------------------
115、</p><p> struct ban*read_2() //返回文件里班的結(jié)構(gòu)體</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p><
116、;b> n_n2=0;</b></p><p> fp=fopen("D:\\file\\ban.txt","r");</p><p> struct ban *head,*p1,*p2;</p><p> p1=(struct ban*)malloc(sizeof(struct ban));<
117、/p><p> while(fread(p1,sizeof(struct ban),1,fp)!=0)</p><p><b> {</b></p><p> if(n_n2==0) head=p1;else p2->next=p1;</p><p><b> p2=p1;</b><
118、/p><p> p1=(struct ban*)malloc(sizeof(struct ban));</p><p><b> n_n2++;</b></p><p><b> }</b></p><p> p2->next=NULL;</p><p> fcl
119、ose(fp);</p><p> return(head);</p><p><b> }</b></p><p> //--------------------------------------------------------------------------------------</p><p>
120、 struct ban*re3(struct people *p0) //返回一個班的結(jié)構(gòu)體</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> fp=fopen("D:\\file
121、\\ban.txt","r");</p><p> struct ban *p;</p><p> p=(struct ban*)malloc(sizeof(struct ban));</p><p> while(fread(p,sizeof(struct ban),1,fp)!=0)</p><p>&
122、lt;b> {</b></p><p> if(p->one==p0->_sub1&&p->two==p0->_sub2&&p->three==p0->_cla) break;</p><p><b> }</b></p><p> fclose(fp
123、);</p><p> return (p);</p><p><b> }</b></p><p> //--------------------------------------------------------------------------------------</p><p> struct
124、ban *average(struct ban*p0) //統(tǒng)計一個班各科的平均分</p><p><b> {</b></p><p> struct people *p1;</p><p> int i,j,n;</p><p> double sum
125、[20]={0};</p><p> p1=read_();</p><p><b> j=0;</b></p><p> while(p1!=NULL)</p><p><b> { </b></p><p><b> i=0;</b><
126、;/p><p> if(p0->one==p1->_sub1&&p0->two==p1->_sub2&&p0->three==p1->_cla)</p><p><b> {</b></p><p> while(p1->sc_ta[i]!=0)</p>
127、<p><b> {</b></p><p> sum[i]+=p1->sub1[i];</p><p><b> i++;</b></p><p><b> }</b></p><p><b> j++;</b></p&g
128、t;<p><b> }</b></p><p> p1=p1->next;</p><p><b> }</b></p><p><b> n=i;</b></p><p> while(n>0)</p><p>&
129、lt;b> {</b></p><p> sum[n-1]=sum[n-1]/j;</p><p><b> n--;</b></p><p> p0->five[n]=sum[n];</p><p><b> }</b></p><p>
130、 return (p0);</p><p><b> }</b></p><p> //--------------------------------------------------------------------------------------</p><p> void ma_change2(struct ban *p
131、0) //修改文件里一個班級</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> struct ban *p;</p><p> int flag_1=0;<
132、/p><p> p=read_2(); </p><p> fp=fopen("D:\\file\\ban.txt","w");</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if(p->
133、one==p0->one&&p->two==p0->two&&p->three==p0->three) </p><p><b> {</b></p><p> fwrite(p0,sizeof(struct ban),1,fp);</p><p><b> flag
134、_1=1;</b></p><p><b> }</b></p><p><b> else</b></p><p> fwrite(p,sizeof(struct ban),1,fp);</p><p> p=p->next;</p><p>
135、if(p==NULL) break;</p><p><b> n_n2--;</b></p><p><b> }</b></p><p> fclose(fp);</p><p> if(flag_1==0)</p><p><b> {</b&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高級語言課程設(shè)計--個人物品管理程序
- c語言課程設(shè)計--學生成績簡單管理程序
- c語言課程設(shè)計-學生成績簡單管理程序
- 課程設(shè)計--數(shù)字相片管理程序
- 《高級語言程序設(shè)計》課程設(shè)計大綱
- 課程設(shè)計---圖書登記管理程序
- 《高級語言程序設(shè)計》課程設(shè)計報告
- 圖書管理程序-高級語言程序設(shè)計實訓
- c語言課程設(shè)計----運動會成績管理程序設(shè)計
- 課程設(shè)計--數(shù)字相片管理程序.doc
- c課程設(shè)計--參會人員管理程序
- 高級語言課程設(shè)計
- 《高級語言程序設(shè)計》課程設(shè)計--進程調(diào)度模擬
- 《高級語言程序設(shè)計》課程設(shè)計--英漢小詞典
- c++課程設(shè)計--學生社團管理程序
- 高級語言課程設(shè)計-- 房產(chǎn)管理系統(tǒng)
- 【doc】計算機專業(yè)c語言課程設(shè)計 學生證管理程序
- c++課程設(shè)計--通信錄管理程序
- 學生學習成績管理程序課程設(shè)計報告
- 高級程序語言課程設(shè)計題及參考資料
評論
0/150
提交評論