版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《高級(jí)語言課程設(shè)計(jì)》課程設(shè)計(jì)</p><p> 題 目: </p><p> 班 級(jí): </p><p><b> 學(xué)生學(xué)號(hào): </b></p><p> 學(xué)生姓名: </p><p> 指導(dǎo)老師: </p&
2、gt;<p><b> 提交時(shí)間:</b></p><p> 《教務(wù)信息管理系統(tǒng)》課程設(shè)計(jì)報(bào)告</p><p><b> 系統(tǒng)分析</b></p><p><b> 問題描述</b></p><p> 《教務(wù)管理系統(tǒng)》作為一個(gè)管理軟件,應(yīng)充分聯(lián)系實(shí)
3、際考慮它的實(shí)用性,同時(shí)還要考慮它應(yīng)用的范圍,解決問題的功能。它是一款管理軟件,主要的功能是實(shí)現(xiàn)管理員對(duì)全校教務(wù)的管理(包括學(xué)生的基本信息管理和學(xué)生的成績(jī)管理),還有實(shí)現(xiàn)學(xué)生對(duì)教務(wù)信息的查詢功能。</p><p><b> 系統(tǒng)功能分析</b></p><p> 設(shè)計(jì)一個(gè)教務(wù)信息管理系統(tǒng),該程序具有以下功能:</p><p> ?。?)錄入如
4、下信息:學(xué)生基本信息:如學(xué)號(hào)、姓名、性別、年齡電、宿舍號(hào)碼、話號(hào)碼等。</p><p> 課程基本信息:課程編號(hào)、課程名稱、考試成績(jī)、平時(shí)成績(jī)、綜合成績(jī)、學(xué)分、重修否等。如果重修,需要考慮重修學(xué)期、重修成績(jī),并且要考慮多次重修的情況。</p><p><b> (2)錄入選課信息</b></p><p><b> ?。?)錄入學(xué)生
5、成績(jī)</b></p><p> ?。?)按班統(tǒng)計(jì)學(xué)生選課情況及考試成績(jī)。</p><p> ?。?)按課程統(tǒng)計(jì)學(xué)生名單及考試成績(jī)。</p><p> ?。?)統(tǒng)計(jì)并輸出每個(gè)同學(xué)已修學(xué)分及不及三格課程。</p><p><b> 開發(fā)平臺(tái)及工具介紹</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è)計(jì)</b></p><p><b> 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)</b></p><p> 教務(wù)管理系統(tǒng)是一個(gè)簡(jiǎn)易的管理系統(tǒng),它需要實(shí)現(xiàn)管理員對(duì)全校
8、教務(wù)的管理和不同學(xué)生對(duì)教務(wù)的查詢,所以需要設(shè)置不同的賬戶給不同的身份,解決這一問題可以設(shè)計(jì)結(jié)構(gòu)體對(duì)不同身份的賬戶信息進(jìn)行保存,用戶需要用各自的密碼才能登陸。同時(shí)結(jié)構(gòu)體里面保存了不用用戶(學(xué)生)的基本信息和成績(jī)信息,通過從文件里讀取相應(yīng)的結(jié)構(gòu)體,可以對(duì)它進(jìn)行信息的查詢,修改,替換,刪除和保存。</p><p> 不同的學(xué)校有不同的學(xué)院和專業(yè),所以需要對(duì)不同的學(xué)院和專業(yè)進(jìn)行編碼,然后用結(jié)構(gòu)體進(jìn)行保存,在學(xué)生信息錄入
9、時(shí)可以錄入編碼,通過不同的編號(hào)來標(biāo)記學(xué)生的學(xué)院和專業(yè),這樣方便了管理員的操作,同時(shí)也提高了操作的效率。實(shí)現(xiàn)的方法是管理員先對(duì)學(xué)院和專業(yè)進(jìn)行編碼然后保存在文件的結(jié)構(gòu)體里,編寫一函數(shù),輸入編號(hào)就返回該編號(hào)對(duì)應(yīng)的學(xué)院和專業(yè)。</p><p> 對(duì)于班級(jí)的選課管理,由于同一班的學(xué)生選課是相同的,所以可以用一個(gè)結(jié)構(gòu)體來保存一個(gè)班的選課信息,這樣子就大大方便了選課信息的管理。</p><p> 系
10、統(tǒng)各個(gè)功能模塊詳細(xì)設(shè)計(jì)</p><p><b> 系統(tǒng)的模塊結(jié)構(gòu)圖</b></p><p><b> 模塊設(shè)計(jì)</b></p><p> 身份選擇模塊設(shè)計(jì) </p><p> 該模塊為系統(tǒng)用戶提供功能選擇界面,管理員或?qū)W生登錄系統(tǒng)后都會(huì)看到對(duì)應(yīng)自己權(quán)限的功能選擇界面,在界面中的系統(tǒng)提示符處
11、輸入自己的功能選項(xiàng)即可跳轉(zhuǎn)到相應(yīng)的功能執(zhí)行函數(shù)。功能選擇模塊功能圖如下所示。</p><p><b> 身份驗(yàn)證模塊</b></p><p> 身份驗(yàn)證模塊的作用是為了保障系統(tǒng)的安全性和系統(tǒng)使用人員角色的區(qū)分。該模塊需要從輸入設(shè)備獲取用戶輸入的用戶名和密碼,判斷是否為合法身份,其次要判斷用戶權(quán)限,從而決定其能使用的系統(tǒng)功能,其模塊功能圖如圖3所示</p>
12、;<p><b> 管理員模塊</b></p><p> 該模為管理員提供學(xué)校教務(wù)管理的功能,在該模塊,管理員可以根據(jù)界面提供不同的功能進(jìn)行基本的操作,在界面中的系統(tǒng)提示符處輸入自己的功能選項(xiàng)即可跳轉(zhuǎn)到相應(yīng)的功能執(zhí)行函數(shù)。功能選擇模塊功能圖如下所示。</p><p><b> 學(xué)生賬戶界面模塊</b></p>&
13、lt;p> 該模為學(xué)生賬戶提供學(xué)校教務(wù)信息查看的功能,在該模塊,學(xué)生可以根據(jù)界面提供不同的功能進(jìn)行基本的操作,在界面中的系統(tǒng)提示符處輸入自己的功能選項(xiàng)即可跳轉(zhuǎn)到相應(yīng)的功能執(zhí)行函數(shù)。功能選擇模塊功能圖如下所示。</p><p><b> 學(xué)生信息管理模塊</b></p><p> 該模塊主要實(shí)現(xiàn)管理員對(duì)學(xué)生信息的管理,包括學(xué)生信息查詢,學(xué)生身份修改,學(xué)生成績(jī)
14、修改,學(xué)生信息錄入,學(xué)生信息刪除。其功能如圖:</p><p><b> 統(tǒng)計(jì)管理模塊</b></p><p> 該模塊主要實(shí)現(xiàn)管理員對(duì)學(xué)生成績(jī)的統(tǒng)計(jì)與管理,包括按班統(tǒng)計(jì)學(xué)生選課情況及考試成績(jī),按課程統(tǒng)計(jì)學(xué)生名單及考試成績(jī), 統(tǒng)計(jì)并輸出每個(gè)同學(xué)已修學(xué)分及不及格課程。其功能如圖:</p><p><b> 編排管理模塊</b
15、></p><p> 該模塊主要實(shí)現(xiàn)對(duì)學(xué)校不同學(xué)院,專業(yè)和課程的編碼,這樣就可以更方便地進(jìn)行管理和運(yùn)用。</p><p><b> 系統(tǒng)流程描述</b></p><p> 系統(tǒng)的主體處理流程如圖</p><p><b> 界面設(shè)計(jì)</b></p><p><
16、;b> 開始界面設(shè)計(jì)</b></p><p> 開始界面是告訴用戶系統(tǒng)的名稱,界面上有當(dāng)前的日期和時(shí)間,以簡(jiǎn)潔為主,整個(gè)系統(tǒng)的顏色為淡藍(lán)背景與淡黃字體,給用戶清爽的感覺。</p><p><b> 身份選擇界面設(shè)計(jì)</b></p><p> 身份選擇界面為用戶不同的身份而設(shè)計(jì),根據(jù)不同的身份只需要輸入1~2,則可以選擇
17、不同的身份登陸,同時(shí),為了系統(tǒng)的安全,和管理的特權(quán),系統(tǒng)要求在選擇身份后還要輸入密碼,輸入的提示很明確,畫面很簡(jiǎn)潔,操作很簡(jiǎn)單,這是該系統(tǒng)設(shè)計(jì)的理念。</p><p><b> 管理員界面設(shè)計(jì)</b></p><p> 管理員的界面,功能強(qiáng)大,只需要輸入對(duì)應(yīng)的編號(hào)就可以實(shí)現(xiàn)對(duì)應(yīng)的功能,這是主要的界面,該系統(tǒng)的大部分功能都是通過該界面操作的。</p>
18、<p><b> 管理員修改身份界面</b></p><p> 管理員界面功能之一,該界面先是對(duì)自己當(dāng)前身份的查看,如果有錯(cuò)誤的地方,可以進(jìn)行修改,如果沒有,則可以返回上一界面。該界面的功能是實(shí)現(xiàn)管理員對(duì)自己身份的管理。</p><p> 管理員->學(xué)生管理界面</p><p> 這是管理員界面中的第2個(gè)功能進(jìn)入后的界面
19、,通過該界面,可以對(duì)全校的學(xué)生進(jìn)行信息的管理,是該系統(tǒng)中管理員的主要功能實(shí)現(xiàn)的界面。</p><p> 管理員->學(xué)生信息查詢界面</p><p> 該界面是管理員對(duì)學(xué)生信息查詢的界面,通過該界面,管理員可以清楚地了解到學(xué)生的信息,包括基本信息和課程信息。該界面對(duì)學(xué)生的信息進(jìn)行了合理的劃分,使人一眼就能獲取到學(xué)生的信息,既簡(jiǎn)潔又實(shí)用。</p><p>&l
20、t;b> 學(xué)生賬戶界面</b></p><p> 該界面是學(xué)生賬戶登陸后看到的界面,該界面詳細(xì)地介紹了學(xué)生可以對(duì)該系統(tǒng)進(jìn)行的操作。</p><p><b> 學(xué)生選課信息界面</b></p><p> 該界面是學(xué)生對(duì)自己選課信息的查詢,通過該界面,學(xué)生可以很清楚地了解到自己已選的課程,和每一個(gè)課程修完后可以獲得的學(xué)分,
21、同時(shí)也顯示了已經(jīng)修了的學(xué)分。</p><p><b> 學(xué)生考試成績(jī)查詢</b></p><p> 該界面是學(xué)生對(duì)自己考試成績(jī)的查詢界面,該界面顯示了該學(xué)生的學(xué)校,學(xué)院和專業(yè),還有考試的科目和每一科的考試成績(jī),平時(shí)成績(jī),綜合成績(jī),同時(shí)根據(jù)每一科的綜合成績(jī)是否低于60分,系統(tǒng)會(huì)自動(dòng)輸出該學(xué)生重修的科目。</p><p><b>
22、課程管理界面</b></p><p> 該界面是管理員對(duì)課程的管理,能過該界面可以對(duì)全校的課程進(jìn)行編排,查看。</p><p> 學(xué)院和專業(yè)編碼管理界面</p><p> 該界面是管理員對(duì)課程的管理,能過該界面可以對(duì)全校的課程進(jìn)行編排,查看。</p><p> 學(xué)院和專業(yè)編碼查看界面</p><p>
23、; 該界面顯示了管理員已經(jīng)編排的不同學(xué)院和專業(yè)的情況,以學(xué)院為單位,每一個(gè)學(xué)院下面是該學(xué)院的專業(yè),方便管理員查詢和管理。</p><p><b> 結(jié)構(gòu)設(shè)計(jì)</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 //學(xué)生的結(jié)構(gòu)體
25、 </p><p><b> {</b></p><p> char st_num[20]; //學(xué)號(hào)</p><p> char name[20]; //姓名</p><p> char s
26、ex[20]; //性別</p><p> int age; //年齡</p><p> char dor_num[20]; //宿舍號(hào)碼</p><p> char ph_num[20]; //電話號(hào)碼</p><p> int sub_[20];<
27、/p><p> int kao[20]; //考試科目</p><p> double sub1[20]; //各科考試成績(jī)</p><p> double sub2[20]; //各科平時(shí)成績(jī)</p><p> double sub3[20]; //各科綜合成績(jī)<
28、/p><p> char code[20]; //用戶密碼</p><p> int sc_ta[50]; //個(gè)人課表</p><p> int sc_ro[50]; //課室</p><p> char _sc[20]; //就讀學(xué)校</p><p&
29、gt; int _sub1; //學(xué)院,</p><p> int _sub2; //專業(yè)</p><p> int _cla; //班級(jí)</p><p> int _ji; //級(jí)數(shù)</p><p> float xuefen
30、; //已修學(xué)分</p><p> struct people *next;</p><p><b> };</b></p><p> 系統(tǒng)學(xué)院和專業(yè)管理數(shù)據(jù)結(jié)構(gòu)</p><p> struct school //編碼學(xué)院和專業(yè)
31、 </p><p><b> {</b></p><p> int one; // 學(xué)院編號(hào)</p><p> char two[20]; //學(xué)院名稱</p><p> int three[20]; //專業(yè)編號(hào)</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; //編號(hào)</p><p> char ch[50]; //課程名稱</p><p>
34、 double sum;//該科目學(xué)分</p><p><b> };</b></p><p><b> 班級(jí)管理數(shù)據(jù)結(jié)構(gòu)</b></p><p> struct ban //班級(jí)</p><p><b> {</b></p><p> in
35、t one;//學(xué)院</p><p> int two;//專業(yè)</p><p> int three;//;班級(jí)</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)實(shí)現(xiàn)</b></p><p><b> 身份的選擇模塊</b></p><p><b> 流程圖</b></p><p><b> 實(shí)現(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) //進(jìn)入“管理員”</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請(qǐng)您輸入您的密碼,按回車結(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對(duì)不起,您輸入的密碼有誤,請(qǐng)重新輸入:\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對(duì)不起,您輸入的密碼有誤,請(qǐng)重新輸入:");</p><p><b> }</b></p><p><b> }</b></p><p&g
46、t;<b> }</b></p><p> else if(ch1[0]=='2') //進(jìn)入“學(xué)生”</p><p><b> {</b></p><p><b> flag=0;</b></p><p> printf("\n\n\t
47、請(qǐng)您輸入你的學(xué)號(hào),按回車結(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對(duì)不起,您輸入的學(xué)號(hào)有誤,學(xué)號(hào)為12位的正數(shù),請(qǐng)重新輸入:");</p><p><b> }</b></p><p> els
50、e break;</p><p><b> }</b></p><p> printf("\t請(qǐng)輸入您的密碼,按回車結(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請(qǐng)您輸入你的學(xué)號(hào),按回車結(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請(qǐng)您輸入你的學(xué)號(hào),按回車結(jié)束:%s\n",name);</p><p> printf("\t對(duì)不起,您
55、輸入的密碼有誤,請(qǐng)重新輸入:");</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對(duì)不起,您的輸入有誤,輸入應(yīng)為1~2的數(shù)字,請(qǐng)重新選擇您的身份:");</p><p><b> }&
57、lt;/b></p><p> if(flag==1) break; //若身份和密碼都已驗(yàn)證,退出循環(huán),進(jìn)入下一個(gè)函數(shù)</p><p><b> }</b></p><p><b> }</b></p><p> 身份和密碼的驗(yàn)證模塊</p><p> 實(shí)現(xiàn)
58、該模塊功能的代碼:</p><p> int check(int n,char num[],char _code[]) //密碼的驗(yàn)證 </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則是學(xué)生</p><p><b> }</b></p><p><b> 系統(tǒng)測(cè)試&l
64、t;/b></p><p><b> 身份的選擇測(cè)試</b></p><p> 輸入測(cè)試數(shù)據(jù):1,2,3,,,10和字符a ,b ,回車鍵,刪除鍵,</p><p> 預(yù)期結(jié)果:當(dāng)輸入1 時(shí)進(jìn)入管理員界面,當(dāng)輸入2 時(shí)進(jìn)入學(xué)生賬戶界面,當(dāng)輸入為其它時(shí),打印提示“輸入錯(cuò)誤,請(qǐng)重新輸入”</p><p> 測(cè)試
65、結(jié)果:和分析結(jié)果一致。</p><p> 身份和密碼的驗(yàn)證測(cè)試</p><p> 輸入測(cè)試數(shù)據(jù):當(dāng)選擇為管理員時(shí),輸入默認(rèn)密碼123,和其它隨意字符;當(dāng)為學(xué)生賬戶時(shí),輸入已經(jīng)保存的學(xué)號(hào)2011和默認(rèn)密碼,以及其它輸入。</p><p> 預(yù)期結(jié)果:當(dāng)學(xué)號(hào)和密碼都是文件中保存的一致時(shí),進(jìn)入正確界面,否則提示“輸入錯(cuò)誤”</p><p>
66、 測(cè)試結(jié)果:和分析結(jié)果一致。</p><p><b> 管理員模塊的測(cè)試</b></p><p> 輸入的測(cè)試數(shù)據(jù):分別輸入0~9的數(shù)字,和各種字符。</p><p> 預(yù)期結(jié)果:當(dāng)輸入正確的數(shù)字時(shí),進(jìn)入對(duì)應(yīng)的界面。</p><p> 測(cè)試結(jié)果:和分析結(jié)果一致。</p><p><b
67、> 學(xué)生界面模塊測(cè)試</b></p><p> 輸入的測(cè)試數(shù)據(jù):分別輸入0~9的數(shù)字,和各種字符。</p><p> 預(yù)期結(jié)果:當(dāng)輸入正確的數(shù)字時(shí),進(jìn)入對(duì)應(yīng)的界面。</p><p> 測(cè)試結(jié)果:和分析結(jié)果一致。</p><p><b> 學(xué)生信息管理模塊</b></p><
68、p> 輸入的測(cè)試數(shù)據(jù):分別輸入0~9的數(shù)字,和各種字符。</p><p> 預(yù)期結(jié)果:當(dāng)輸入正確的數(shù)字時(shí),進(jìn)入對(duì)應(yīng)的界面。</p><p> 測(cè)試結(jié)果:和分析結(jié)果一致</p><p><b> 。</b></p><p><b> 系統(tǒng)運(yùn)行界面</b></p><
69、p><b> 進(jìn)入系統(tǒng)界面</b></p><p><b> 身份選擇界面</b></p><p><b> 進(jìn)入管理員界面</b></p><p><b> 進(jìn)入學(xué)生賬戶界面</b></p><p><b> 進(jìn)入學(xué)生管理界面&
70、lt;/b></p><p><b> 進(jìn)入統(tǒng)計(jì)管理界面</b></p><p><b> 進(jìn)入編排管理界面</b></p><p> 進(jìn)入學(xué)院和專業(yè)編碼查看界面</p><p> 進(jìn)入學(xué)生信息查詢界面</p><p> 進(jìn)入學(xué)生選課信息查詢界面</p&
71、gt;<p><b> 退出系統(tǒng)提示界面</b></p><p><b> 總結(jié)</b></p><p> 本課程設(shè)計(jì)進(jìn)行了教務(wù)信息管理系統(tǒng)的分析、設(shè)計(jì)、實(shí)現(xiàn)。主要實(shí)現(xiàn)了管理員對(duì)學(xué)生信息的錄入,保存,分析,管理與學(xué)生對(duì)自己教務(wù)信息進(jìn)行查看的過程。在設(shè)計(jì)過程中,我們根據(jù)實(shí)際情況進(jìn)行了詳盡的系統(tǒng)需求分析,并給出了系統(tǒng)需求分析的典型
72、分析步驟。在系統(tǒng)設(shè)計(jì)部分,介紹了系統(tǒng)開發(fā)和設(shè)計(jì)的總體思想。系統(tǒng)開發(fā)與設(shè)計(jì)的總體思想是系統(tǒng)開發(fā)的主線。在總體設(shè)計(jì)部分還給出了系統(tǒng)模塊結(jié)構(gòu)圖,并對(duì)各個(gè)模塊的設(shè)計(jì)過程進(jìn)行了闡述。根據(jù)軟件工程的基本流程,還對(duì)系統(tǒng)的流程進(jìn)行了描述,并進(jìn)行數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。整個(gè)系統(tǒng)設(shè)計(jì)部分為系統(tǒng)的實(shí)現(xiàn)構(gòu)建了骨架,并在詳細(xì)設(shè)計(jì)中由各個(gè)功能模塊實(shí)現(xiàn)各個(gè)細(xì)節(jié)部分。</p><p> 在對(duì)本系統(tǒng)的實(shí)現(xiàn)過程中,將各個(gè)主要功能分別由不同的C語言源程序來實(shí)
73、現(xiàn),從而完成了在開發(fā)時(shí)對(duì)系統(tǒng)功能模塊的劃分。在對(duì)不同賬戶的管理方面,大都用到了結(jié)構(gòu)體進(jìn)行管理,使得程序更加結(jié)構(gòu)化。在對(duì)數(shù)據(jù)的保存和讀取時(shí)用到了文件的讀取和保存,使得我對(duì)文件的運(yùn)用更加的嫻熟。</p><p> 本系統(tǒng)雖然對(duì)教務(wù)信息管理系統(tǒng)的基本功能進(jìn)行了實(shí)現(xiàn),但也有需要完善的地方。例如,學(xué)生的功能比較少,大部分的功能都是管理員實(shí)現(xiàn)的,對(duì)此,可以增加學(xué)生賬戶的功能。同時(shí),學(xué)生和管理員之間沒有有機(jī)的聯(lián)系,該系統(tǒng)還缺
74、少學(xué)生與管理員之間的信息反饋,可以設(shè)置學(xué)習(xí)對(duì)管理員的反饋功能和管理員對(duì)學(xué)生的提醒功能。另外,本系統(tǒng)是單機(jī)版的投票系統(tǒng),還可以考慮將其擴(kuò)展為網(wǎng)絡(luò)版的投票系統(tǒng),采用C/S架構(gòu)來實(shí)現(xiàn)多用戶端同時(shí)進(jìn)行投票。最后,為了體現(xiàn)系統(tǒng)的友好交互能力,可以實(shí)現(xiàn)圖形化操作界面。</p><p><b> 7. 參考文獻(xiàn)</b></p><p> 1.《c/c++/c#程序員實(shí)用大全》
75、 [美]Kris Jamsa 著</p><p> 2.《c程序設(shè)計(jì)(第四版)》 譚浩強(qiáng) 著</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:教務(wù)信息管理系統(tǒng)</p><p><b> 1、題目描述</b></p><p>
79、 設(shè)計(jì)一個(gè)教務(wù)信息管理系統(tǒng),該程序具有以下功能:</p><p> ?。?)錄入如下信息:學(xué)生基本信息:如學(xué)號(hào)、姓名、性別、年齡電、宿舍號(hào)碼、話號(hào)碼等。</p><p> 課程基本信息:課程編號(hào)、課程名稱、考試成績(jī)、平時(shí)成績(jī)、綜合成績(jī)、</p><p> 學(xué)分、重修否等。如果重修,需要考慮重修學(xué)期、重修成績(jī),并且要考慮多次重修的情況。</p>&
80、lt;p><b> ?。?)錄入選課信息</b></p><p><b> ?。?)錄入學(xué)生成績(jī)</b></p><p> ?。?)按班統(tǒng)計(jì)學(xué)生選課情況及考試成績(jī)。</p><p> ?。?)按課程統(tǒng)計(jì)學(xué)生名單及考試成績(jī)。</p><p> ?。?)統(tǒng)計(jì)并輸出每個(gè)同學(xué)已修學(xué)分及不及三格課程。&
81、lt;/p><p><b> 2、題目要求</b></p><p> (1)按照分析、設(shè)計(jì)、編碼、調(diào)試和測(cè)試過程完成應(yīng)用程序;</p><p> ?。?)學(xué)習(xí)并使用流程圖等工具,并在撰寫報(bào)告中使用;</p><p> ?。?)程序的各項(xiàng)功能在程序運(yùn)行時(shí),以菜單方式選擇并執(zhí)行;</p><p>
82、(4)要求用戶輸入數(shù)據(jù)時(shí),要給出清晰、明確的提示,包括:輸入數(shù)據(jù)的內(nèi)容、格式及結(jié)束方式等</p><p> ?。?)所有的信息存儲(chǔ)在文件中,并實(shí)現(xiàn)文件讀寫操作。</p><p> (6)程序中用鏈表存放學(xué)生信息并實(shí)現(xiàn)增刪減功能。</p><p><b> 3、提示</b></p><p> ?。?)學(xué)生基本信息可以設(shè)
83、計(jì)一個(gè)結(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(); //將班級(jí)課表寫入每個(gè)學(xué)生</p><p> void xiazai(); </p><p> int ma_ten();
85、 //退出</p><p> void last(); //結(jié)語</p><p> //--------------------------------------------------------------------------------------</p><p> void student_meu()
86、; //學(xué)生界面</p><p> void st_one(char name[]); //學(xué)生修改信息</p><p> void st_one_one(char name[]); //</p><p> void st_two(char name[]); //選課信息
87、</p><p> void st_two_three(); //學(xué)生信息錄入</p><p> void st_three(char name[]); //考試成績(jī)、重修</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); //修改文件,存入一個(gè)單位.</p><p> void ma_two(); //學(xué)院專業(yè)編碼.</p><p> void ma_two_one(); //編排學(xué)院和專業(yè).</p>
90、<p> void ma_two_two(); //查看學(xué)院和專業(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(); //學(xué)生信息管理.</p><p> void ma_five_one(); //學(xué)生信息查詢.
92、</p><p> void ma_five_two(); //學(xué)生身份修改.</p><p> void ma_five_four(); //學(xué)生成績(jī)修改。</p><p> void ma_five_three(); //學(xué)生信息錄入.</p><p> void ma_five_five
93、(); //學(xué)生信息刪除</p><p> void ma_six(); //統(tǒng)計(jì)管理</p><p> void ma_six_one(); //按班統(tǒng)計(jì)學(xué)生選課情況,考試成績(jī).</p><p> void ma_six_two(); //按課程統(tǒng)計(jì)學(xué)生名單及考試成績(jī).</p>&l
94、t;p> void ma_six_three(); //統(tǒng)計(jì)并輸出每個(gè)同學(xué)已修學(xué)分及不及三格課程).</p><p> void ma_six_four(); //錄入班級(jí)選課. </p><p> //-------------------------------------------------------------------------
95、-------------</p><p> struct ban //班級(jí)</p><p><b> {</b></p><p> int one;//學(xué)院</p><p> int two;//專業(yè)</p><p> int three;//;班級(jí)</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;//該科目學(xué)分</p><p><b> };</b></p><p> //----------------------------------------
99、----------------------------------------------</p><p> struct school //編碼學(xué)院和專業(yè)</p><p><b> {</b></p>
100、<p> int one; // 學(xué)院編號(hào)</p><p> char two[20]; //學(xué)院名稱</p><p> int three[20]; //專業(yè)編號(hào)</p><p> char four[20][100];//專業(yè)名稱</p><p> struct school *next;</p>
101、<p><b> };</b></p><p> //--------------------------------------------------------------------------------------</p><p> struct people
102、 //學(xué)生的結(jié)構(gòu)體</p><p><b> {</b></p><p> char st_num[20]; //學(xué)號(hào)</p><p> char name[20]; //姓名</p><p> char sex[20
103、]; //性別</p><p> int age; //年齡</p><p> char dor_num[20]; //宿舍號(hào)碼</p><p> char ph_num[20]; //電話號(hào)碼</p><p> int sub_[20];</p>
104、;<p> int kao[20]; //考試科目</p><p> double sub1[20]; //各科考試成績(jī)</p><p> double sub2[20]; //各科平時(shí)成績(jī)</p><p> double sub3[20]; //各科綜合成績(jī)</p>
105、;<p> char code[20]; //用戶密碼</p><p> int sc_ta[50]; //個(gè)人課表</p><p> int sc_ro[50]; //課室</p><p> char _sc[20]; //就讀學(xué)校</p><p>
106、int _sub1; //學(xué)院,</p><p> int _sub2; //專業(yè)</p><p> int _cla; //班級(jí)</p><p> int _ji; //級(jí)數(shù)</p><p> float xuefen;
107、 //已修學(xué)分</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) //返回學(xué)院編號(hào)的結(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) //返回一個(gè)班的結(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)計(jì)一個(gè)班各科的平均分</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) //修改文件里一個(gè)班級(jí)</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等.壓縮文件請(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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高級(jí)語言課程設(shè)計(jì)--個(gè)人物品管理程序
- c語言課程設(shè)計(jì)--學(xué)生成績(jī)簡(jiǎn)單管理程序
- c語言課程設(shè)計(jì)-學(xué)生成績(jī)簡(jiǎn)單管理程序
- 課程設(shè)計(jì)--數(shù)字相片管理程序
- 《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)大綱
- 課程設(shè)計(jì)---圖書登記管理程序
- 《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告
- 圖書管理程序-高級(jí)語言程序設(shè)計(jì)實(shí)訓(xùn)
- c語言課程設(shè)計(jì)----運(yùn)動(dòng)會(huì)成績(jī)管理程序設(shè)計(jì)
- 課程設(shè)計(jì)--數(shù)字相片管理程序.doc
- c課程設(shè)計(jì)--參會(huì)人員管理程序
- 高級(jí)語言課程設(shè)計(jì)
- 《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)--進(jìn)程調(diào)度模擬
- 《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)--英漢小詞典
- c++課程設(shè)計(jì)--學(xué)生社團(tuán)管理程序
- 高級(jí)語言課程設(shè)計(jì)-- 房產(chǎn)管理系統(tǒng)
- 【doc】計(jì)算機(jī)專業(yè)c語言課程設(shè)計(jì) 學(xué)生證管理程序
- c++課程設(shè)計(jì)--通信錄管理程序
- 學(xué)生學(xué)習(xí)成績(jī)管理程序課程設(shè)計(jì)報(bào)告
- 高級(jí)程序語言課程設(shè)計(jì)題及參考資料
評(píng)論
0/150
提交評(píng)論