教學(xué)信息管理系統(tǒng)c語(yǔ)言課程設(shè)計(jì)報(bào)告_第1頁(yè)
教學(xué)信息管理系統(tǒng)c語(yǔ)言課程設(shè)計(jì)報(bào)告_第2頁(yè)
教學(xué)信息管理系統(tǒng)c語(yǔ)言課程設(shè)計(jì)報(bào)告_第3頁(yè)
教學(xué)信息管理系統(tǒng)c語(yǔ)言課程設(shè)計(jì)報(bào)告_第4頁(yè)
教學(xué)信息管理系統(tǒng)c語(yǔ)言課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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、程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告題目:學(xué)院教學(xué)信息管理系統(tǒng) 日期:2012.5.21班級(jí):計(jì)算機(jī)應(yīng)用技術(shù)1102班 學(xué)號(hào):姓名: 一 設(shè)計(jì)目的本課程設(shè)計(jì)是計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)重要的實(shí)踐性環(huán)節(jié)之一,是在學(xué)生學(xué)習(xí)完程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言)課程后進(jìn)行的一次全面的綜合練習(xí)。本課程設(shè)計(jì)的目的:1. 鞏固和加深學(xué)生對(duì)C語(yǔ)言課程的基本知識(shí)的理解和掌握2. 掌握C語(yǔ)言編程和程序調(diào)試的基本技能3. 利用C語(yǔ)言進(jìn)行基本的軟件設(shè)計(jì)4. 掌握書(shū)寫(xiě)程序設(shè)計(jì)說(shuō)明文檔的能力5. 提高運(yùn)用C語(yǔ)言解決實(shí)際問(wèn)題的能力二課程設(shè)計(jì)任務(wù)書(shū)題目:學(xué)院教學(xué)信息管理系統(tǒng)學(xué)院教學(xué)信息管理系統(tǒng),每一條記錄包括一位教師的職工號(hào)、姓名、職稱、性別、3門(mén)課程教

2、學(xué)效果、綜合評(píng)分。系統(tǒng)要求實(shí)現(xiàn)以下功能:1、輸入:輸入每一位教師記錄,將其信息寫(xiě)入文件中。2、顯示:顯示每位教師記錄。3、排序:按職工號(hào)或教學(xué)效果綜合評(píng)分進(jìn)行排序,并顯示。4、查找:完成按姓名或職工號(hào)查找教師的相關(guān)記錄,并顯示。分步實(shí)施:1、初步完成總體設(shè)計(jì),搭好框架,確定人機(jī)對(duì)話的界面,確定函數(shù)個(gè)數(shù)。2、建立一個(gè)文件,將每位教師的相關(guān)(教學(xué))信息寫(xiě)入文件中并能顯示于屏幕上。3、完成排序(按職工號(hào)、姓名、職稱等)、查找等功能。要求:1、用C語(yǔ)言實(shí)現(xiàn)程序設(shè)計(jì);2、利用結(jié)構(gòu)體數(shù)組或者鏈表實(shí)現(xiàn)教師信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì);3、系統(tǒng)的各個(gè)功能模塊要求用函數(shù)實(shí)現(xiàn);4、界面友好(良好的人機(jī)交互),程序加必要的注

3、釋。三系統(tǒng)設(shè)計(jì)方案用到數(shù)據(jù)結(jié)構(gòu)的定義:在此程序中用到了結(jié)構(gòu)體的定義,結(jié)構(gòu)體數(shù)組的定義以及變量的申明,還用到了外部函數(shù)的申明及調(diào)用。在主函數(shù)中,輸出教師信息的函數(shù)是貫穿在程序始終的,例如要實(shí)現(xiàn)教師的排序這一模塊時(shí),排完序后就需要用輸出信息的函數(shù)來(lái)輸出排序后的信息。這就得需要多個(gè)函數(shù)共同實(shí)現(xiàn)這一個(gè)模塊。此程序的流程:由于系統(tǒng)需要實(shí)現(xiàn)返回主界面的功能,那么在程序的開(kāi)頭就需要使用do.while語(yǔ)句,在do.while語(yǔ)句內(nèi)首先將系統(tǒng)的主界面寫(xiě)下來(lái),然后又要根據(jù)不同的按鍵實(shí)現(xiàn)排序、查找、結(jié)束等功能,這就必須使用switch語(yǔ)句來(lái)實(shí)現(xiàn),由于實(shí)現(xiàn)一個(gè)功能后,還需要跳出此功能進(jìn)入下一個(gè)功能,這樣就要需要使用

4、while語(yǔ)句來(lái)循環(huán),直到用戶需要返回主界面時(shí)就設(shè)定一個(gè)條件跳出while語(yǔ)句。程序流程圖 : 四調(diào)試分析(1)遇到的問(wèn)題如何解決:在調(diào)試程序的過(guò)程中,遇到的問(wèn)題有些是我和老師交流過(guò)才解決的,但大部分都是自己通過(guò)思考并仔細(xì)推敲書(shū)本的程序后才解決了調(diào)試過(guò)程中出現(xiàn)的問(wèn)題。(2)程序算法的改進(jìn)設(shè)想;我覺(jué)得在兩個(gè)數(shù)進(jìn)行交換的算法中,應(yīng)該有更簡(jiǎn)便的算法。(3)經(jīng)驗(yàn):通過(guò)這次課程設(shè)計(jì),我知道了讀寫(xiě)文件的方法,還知道了一些細(xì)節(jié)問(wèn)題,如:如果要在鍵盤(pán)中輸入一個(gè)字符時(shí),需要以%1s的格式進(jìn)行輸入,這樣就避免了輸入多個(gè)字符。 體會(huì):在調(diào)試程序的過(guò)程中,我覺(jué)得自己要善于分析程序的問(wèn)題所在,盡量做到自己獨(dú)立處理問(wèn)題的

5、能力。同時(shí)在調(diào)試程序的過(guò)程中,要有不厭其煩的精神,出現(xiàn)問(wèn)題后不要感到失落,要相信自己一定能攻破難關(guān)。五 用戶使用說(shuō)明操作步驟:一、 開(kāi)始此時(shí)要按下Y或y鍵才能進(jìn)入系統(tǒng),如果輸入錯(cuò)誤時(shí),系統(tǒng)會(huì)有提示,并要求重新輸入。二、輸入信息進(jìn)入此界面時(shí),系統(tǒng)首先提示要輸入教師的個(gè)數(shù),輸入后再輸入教師的具體信息,此時(shí)的界面如下圖:三、具體信息 進(jìn)入此界面后,系統(tǒng)會(huì)提示用戶需要按下哪些鍵才能執(zhí)行相應(yīng)的功能,如果輸入錯(cuò)誤時(shí),系統(tǒng)會(huì)有提示,并要求重新輸入,此時(shí)的界面如下:四、排序 在進(jìn)入此界面之前,系統(tǒng)會(huì)提示用戶想要用哪種方式對(duì)教師進(jìn)行排序,如果選擇y或Y時(shí)就會(huì)出現(xiàn)以下的界面(即以總分的方式對(duì)教師進(jìn)行排序),當(dāng)排序

6、完成后,系統(tǒng)會(huì)提示用戶是否繼續(xù)執(zhí)行此功能,用戶按系統(tǒng)要求按下指定的鍵后,系統(tǒng)就會(huì)出現(xiàn)相應(yīng)的功能。五、查找在進(jìn)入此界面之前,系統(tǒng)會(huì)提示用戶想要用哪種方式對(duì)教師進(jìn)行查找,如果選擇y或Y時(shí)就會(huì)出現(xiàn)以下的界面(即以姓名的方式來(lái)查找教師的相關(guān)信息),當(dāng)查找完成后,系統(tǒng)會(huì)提示用戶是否繼續(xù)執(zhí)行此功能,用戶按系統(tǒng)要求按下指定的鍵后,系統(tǒng)就會(huì)出現(xiàn)相應(yīng)的功能。六、結(jié)束 這是結(jié)束系統(tǒng)的界面,按下系統(tǒng)指定的鍵后就可以進(jìn)入此界面。六測(cè)試結(jié)果(1).輸入n個(gè)教師的信息(n由用戶輸入):(2).輸出n個(gè)教師的信息(n由用戶輸入): (3).根據(jù)教學(xué)效果綜合評(píng)分排序:(4).根據(jù)職工號(hào)進(jìn)行排序:(5).根據(jù)姓名進(jìn)行查找,而且

7、如果當(dāng)姓名輸入錯(cuò)誤時(shí)會(huì)有提示!(6).根據(jù)職工號(hào)進(jìn)行查找,而且如果當(dāng)職工號(hào)輸入錯(cuò)誤時(shí)會(huì)有提示!(7).如果在系統(tǒng)開(kāi)始后,沒(méi)有按指定的鍵輸入數(shù)據(jù)時(shí),系統(tǒng)就不會(huì)去實(shí)現(xiàn)相應(yīng)的功能此時(shí)系統(tǒng)會(huì)有提示!并要求重新輸入。七附錄(1).主函數(shù)#include#include#includestruct teacherint num;char name30;char competent30;char sex4;float score3;float sum;extern void InPut(struct teacher *p,int n);extern void SumofScores(struct teach

8、er *p,int n);extern void OutPut(struct teacher *p,int n);extern void ReorderbyScore(struct teacher *p,int n);extern void ReorderbyNum(struct teacher *p,int n);extern char InputInformation(void);extern void SeacherbyName(struct teacher *p,char teacher,int n);extern void SeacherbyNum(struct teacher *p

9、,int teacher2,int n);extern void FoutPut(struct teacher *p,int n);int main()int flag,n;int teacher2;char c,selectnum,teacher10;struct teacher tea80;doflag=1; /*以下的一部分是系統(tǒng)開(kāi)始的界面*/printf(nnnnn);printf(tt*n);printf(tt*);printf(tttttt*n);printf(tt*);printf(tttttt*n);printf(tt*);printf(tttttt*n);printf(tt*

10、 welcome to the teachers educational systemt*n);printf(tt*);printf(tttttt*n);printf(tt*);printf(tttttt*n);printf(tt*);printf(tttttt*n);printf(tt*n);printf(tttplease input y or Y to continue.);doscanf(%1s,&c);if(c!=y&c!=Y) /*輸入Y或y才能進(jìn)入系統(tǒng)*/printf(You put error!Please input again!n);while(c!=y&c!=Y);sys

11、tem(cls); /*清屏*/ printf(Please input the number of Teachers:n);scanf(%d,&n);printf(Please input %d teachers informationn,n);printf(NumtNametCompetent SextMath English Computern);InPut(tea,n); /*調(diào)用輸入數(shù)據(jù)的函數(shù),用來(lái)輸入數(shù)據(jù)并保存在文件中*/SumofScores(tea,n); /*調(diào)用計(jì)算綜合評(píng)分的函數(shù),用來(lái)計(jì)算每個(gè)教師的綜合評(píng)分*/system(cls); /*清屏*/ printf(tt TH

12、E TEACHERS INFORMATION n);printf(*n);FoutPut(tea,n);/*調(diào)用輸出的函數(shù),用來(lái)讀出文件的信息來(lái)把每個(gè)教師的信息都顯示在屏幕上*/printf(*nn);selectnum=InputInformation(); /*用來(lái)提示用戶,系統(tǒng)需要按哪些鍵才能實(shí)現(xiàn)相應(yīng)的功能*/while(flag)switch(selectnum) case a:system(cls);/*清屏*/ doprintf(Do you want to order teachers information by scores?Yes,please input y or Y.e

13、lse order it by course.n); /*提示用戶,想要用哪種方法對(duì)教師進(jìn)行排序*/scanf(%1s,&c); if(c=y|c=Y)system(cls); /*清屏*/ printf(ttt ORDERED BY SUM n);printf(*n);ReorderbyScore(tea,n);/*調(diào)用用綜合評(píng)分排序的函數(shù),用來(lái)給教師排序*/OutPut(tea,n); /*調(diào)用輸出的函數(shù),用來(lái)把教師的信息顯示出來(lái)*/printf(*nn);elsesystem(cls); /*清屏*/ printf(ttt ORDERED BY NUM n);printf(*n);Reo

14、rderbyNum(tea,n);/* 調(diào)用用職工號(hào)來(lái)排序的函數(shù),用來(lái)給教師排序*/OutPut(tea,n); /*調(diào)用輸出的函數(shù),用來(lái)把教師的信息顯示出來(lái)*/printf(*nn);printf(Do you want to continue.Yes,please input y or Y.else,input n or N.n); /*提示用戶,是否還要繼續(xù)執(zhí)行此功能*/scanf(%1s,&c); while(c=y|c=Y);selectnum=InputInformation(); /*調(diào)用此函數(shù)用來(lái)提示用戶,系統(tǒng)需要按哪些鍵才能實(shí)現(xiàn)相應(yīng)的功能*/break;case b:syst

15、em(cls); /*清屏*/ doprintf(Do you want to seacher teachers information by name?Yes,please input y or Y.else seacher it by course.n);/*提示用戶,想要用哪種方法來(lái)查找教師的相關(guān)信息*/scanf(%1s,&c); if(c=y|c=Y)printf(Please input the name who you want to find:n);scanf(%s,teacher);SeacherbyName(tea,teacher,n); /*調(diào)用此函數(shù),通過(guò)用姓名的方式來(lái)

16、查找相應(yīng)的教師*/elseprintf(Please input the teachers num that you want to know:n);scanf(%d,&teacher2);SeacherbyNum(tea,teacher2,n); /*調(diào)用此函數(shù),通過(guò)用職工號(hào)的方式來(lái)查找相應(yīng)的教師*/printf(Do you want to continun?Yes,please input Y or y.No,please input N.n);/*提示用戶,是否還要繼續(xù)執(zhí)行此功能*/scanf(%s,&c); printf(*nn);printf(*nn);while(c=y|c=Y)

17、;selectnum=InputInformation(); /*調(diào)用此函數(shù)用來(lái)提示用戶,系統(tǒng)需要按哪些鍵才能實(shí)現(xiàn)相應(yīng)的功能*/break;case c:system(cls); /*清屏*/ flag=0; selectnum=c;break;case d:system(cls); /*清屏*/ /*以下的一部分是系統(tǒng)結(jié)束的界面*/printf(nnn);printf(t n);printf(t ttttttt n);printf(t t* Thanking for you useing my system! *t n);printf(t t *ttttt*t n);printf(t t *

18、tttt *t n);printf(t t *tttt *tt n);printf(t t *t GOOD BYE!t *t t n);printf(t tt *ttt *tt n);printf(t tt *tt *tt t n);printf(t ttt*t *ttt n);printf(t ttt *tttt n);printf(t tttt made by LiYan!t n);printf(t ttttttt n);printf(t n);flag=0;break;default:doprintf(You has input an invalid select!Please inpu

19、t again!n);/*提示用戶,輸入錯(cuò)誤,需要重新輸入*/scanf(%1s,&selectnum); while(selectnum!=a&selectnum!=b&selectnum!=c&selectnum!=d); while(selectnum=c); return 0;(2).調(diào)用用來(lái)輸入數(shù)據(jù)并寫(xiě)入文件的函數(shù):#include#includestruct teacherint num;char name30;char competent30;char sex4;float score3;float sum;void InPut(struct teacher *p,int n)i

20、nt i;FILE *fp;for(i=0;in;i+)scanf(%d%s%s%s%f%f%f,&pi.num,,petent,pi.sex,&pi.score0,&pi.score1,&pi.score2);if(fp=fopen(score.txt,w)=NULL)printf(Cants open file.);exit(0);for(i=0;in;i+)fprintf(fp,%d %s %s %s %.1f %.1f %.1f ,pi.num,,petent,pi.sex,pi.score0,pi.score1,pi.score2)

21、;fclose(fp);(3).調(diào)用用來(lái)輸出數(shù)據(jù)的函數(shù): #includestruct teacherint num;char name30;char competent30;char sex4;float score3;float sum;void OutPut(struct teacher *p,int n)int i;printf(NumtNametCompetenttSextMathtEnglishtComputertSumn);for(i=0;in;i+)printf(%dt%st%stt%st%.1ft%.1ft%.1ftt%.1fn,pi.num,,pe

22、tent,pi.sex,pi.score0,pi.score1,pi.score2,pi.sum); (4).調(diào)用用來(lái)計(jì)算教師綜合評(píng)分的函數(shù):struct teacherint num;char name30;char competent30;char sex4;float score3;float sum;void SumofScores(struct teacher *p,int n)int i;for(i=0;in;i+)pi.sum=pi.score0+pi.score1+pi.score2; (5).調(diào)用用教師的綜合評(píng)分來(lái)排序的函數(shù):struct teacherint num;cha

23、r name30;char competent30;char sex4;float score3;float sum;void ReorderbyScore(struct teacher *p,int n)int i,j;struct teacher t;for(i=0;in-1;i+)for(j=0;jn-1-i;j+)if(pj.sumpj+1.sum)t=pj;pj=pj+1;pj+1=t; (6).調(diào)用用教師的職工號(hào)來(lái)排序的函數(shù):struct teacherint num;char name30;char competent30;char sex4;float score3;float

24、 sum;void ReorderbyNum(struct teacher *p,int n)int i,j;struct teacher t;for(i=0;in-1;i+)for(j=0;jpj+1.num)t=pj;pj=pj+1;pj+1=t; (7).調(diào)用用教師的姓名來(lái)查找相應(yīng)信息的函數(shù):struct teacherint num;char name30;char competent30;char sex4;float score3;float sum;void SeacherbyName(struct teacher *p,char teacher,int n)int i,flag

25、=1,t;for(i=0;in&flag;i+)if(strcmp(,teacher)=0)flag=0;t=i;if(!flag)printf(NumtNametCompetenttSextMathtEnglishtComputertSumn);printf(%dt%st%stt%st%.1ft%.1ft%.1ftt%.1fn,pt.num,,petent,pt.sex,pt.score0,pt.score1,pt.score2,pt.sum);elseprintf(You put error!my system cant find!n); (8).調(diào)

26、用用教師的職工號(hào)來(lái)查找相應(yīng)信息的函數(shù):struct teacherint num;char name30;char competent30;char sex4;float score3;float sum;void SeacherbyNum(struct teacher *p,int teacher2,int n)int i,flag=1,t;for(i=0;in&flag;i+)if(pi.num=teacher2)flag=0;t=i;if(!flag)printf(NumtNametCompetenttSextMathtEnglishtComputertSumn);printf(%dt%

27、st%stt%st%.1ft%.1ft%.1ftt%.1fn,pt.num,,petent,pt.sex,pt.score0,pt.score1,pt.score2,pt.sum);elseprintf(You put error!my system cant find!n); (9).調(diào)用用來(lái)提示用戶,系統(tǒng)需要按哪些鍵才能實(shí)現(xiàn)相應(yīng)功能的函數(shù):#includestruct teacherint num;char name30;char competent30;char sex4;float score3;float sum;char InputInformation(void) cha

溫馨提示

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