




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、程序設(shè)計基礎(chǔ)課程設(shè)計報告題目:學(xué)院教學(xué)信息管理系統(tǒng) 日期:2012.5.21班級:計算機(jī)應(yīng)用技術(shù)1102班 學(xué)號:姓名: 一 設(shè)計目的本課程設(shè)計是計算機(jī)科學(xué)與技術(shù)專業(yè)重要的實踐性環(huán)節(jié)之一,是在學(xué)生學(xué)習(xí)完程序設(shè)計基礎(chǔ)(C語言)課程后進(jìn)行的一次全面的綜合練習(xí)。本課程設(shè)計的目的:1. 鞏固和加深學(xué)生對C語言課程的基本知識的理解和掌握2. 掌握C語言編程和程序調(diào)試的基本技能3. 利用C語言進(jìn)行基本的軟件設(shè)計4. 掌握書寫程序設(shè)計說明文檔的能力5. 提高運(yùn)用C語言解決實際問題的能力二課程設(shè)計任務(wù)書題目:學(xué)院教學(xué)信息管理系統(tǒng)學(xué)院教學(xué)信息管理系統(tǒng),每一條記錄包括一位教師的職工號、姓名、職稱、性別、3門課程教
2、學(xué)效果、綜合評分。系統(tǒng)要求實現(xiàn)以下功能:1、輸入:輸入每一位教師記錄,將其信息寫入文件中。2、顯示:顯示每位教師記錄。3、排序:按職工號或教學(xué)效果綜合評分進(jìn)行排序,并顯示。4、查找:完成按姓名或職工號查找教師的相關(guān)記錄,并顯示。分步實施:1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù)。2、建立一個文件,將每位教師的相關(guān)(教學(xué))信息寫入文件中并能顯示于屏幕上。3、完成排序(按職工號、姓名、職稱等)、查找等功能。要求:1、用C語言實現(xiàn)程序設(shè)計;2、利用結(jié)構(gòu)體數(shù)組或者鏈表實現(xiàn)教師信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;3、系統(tǒng)的各個功能模塊要求用函數(shù)實現(xiàn);4、界面友好(良好的人機(jī)交互),程序加必要的注
3、釋。三系統(tǒng)設(shè)計方案用到數(shù)據(jù)結(jié)構(gòu)的定義:在此程序中用到了結(jié)構(gòu)體的定義,結(jié)構(gòu)體數(shù)組的定義以及變量的申明,還用到了外部函數(shù)的申明及調(diào)用。在主函數(shù)中,輸出教師信息的函數(shù)是貫穿在程序始終的,例如要實現(xiàn)教師的排序這一模塊時,排完序后就需要用輸出信息的函數(shù)來輸出排序后的信息。這就得需要多個函數(shù)共同實現(xiàn)這一個模塊。此程序的流程:由于系統(tǒng)需要實現(xiàn)返回主界面的功能,那么在程序的開頭就需要使用do.while語句,在do.while語句內(nèi)首先將系統(tǒng)的主界面寫下來,然后又要根據(jù)不同的按鍵實現(xiàn)排序、查找、結(jié)束等功能,這就必須使用switch語句來實現(xiàn),由于實現(xiàn)一個功能后,還需要跳出此功能進(jìn)入下一個功能,這樣就要需要使用
4、while語句來循環(huán),直到用戶需要返回主界面時就設(shè)定一個條件跳出while語句。程序流程圖 : 四調(diào)試分析(1)遇到的問題如何解決:在調(diào)試程序的過程中,遇到的問題有些是我和老師交流過才解決的,但大部分都是自己通過思考并仔細(xì)推敲書本的程序后才解決了調(diào)試過程中出現(xiàn)的問題。(2)程序算法的改進(jìn)設(shè)想;我覺得在兩個數(shù)進(jìn)行交換的算法中,應(yīng)該有更簡便的算法。(3)經(jīng)驗:通過這次課程設(shè)計,我知道了讀寫文件的方法,還知道了一些細(xì)節(jié)問題,如:如果要在鍵盤中輸入一個字符時,需要以%1s的格式進(jìn)行輸入,這樣就避免了輸入多個字符。 體會:在調(diào)試程序的過程中,我覺得自己要善于分析程序的問題所在,盡量做到自己獨(dú)立處理問題的
5、能力。同時在調(diào)試程序的過程中,要有不厭其煩的精神,出現(xiàn)問題后不要感到失落,要相信自己一定能攻破難關(guān)。五 用戶使用說明操作步驟:一、 開始此時要按下Y或y鍵才能進(jìn)入系統(tǒng),如果輸入錯誤時,系統(tǒng)會有提示,并要求重新輸入。二、輸入信息進(jìn)入此界面時,系統(tǒng)首先提示要輸入教師的個數(shù),輸入后再輸入教師的具體信息,此時的界面如下圖:三、具體信息 進(jìn)入此界面后,系統(tǒng)會提示用戶需要按下哪些鍵才能執(zhí)行相應(yīng)的功能,如果輸入錯誤時,系統(tǒng)會有提示,并要求重新輸入,此時的界面如下:四、排序 在進(jìn)入此界面之前,系統(tǒng)會提示用戶想要用哪種方式對教師進(jìn)行排序,如果選擇y或Y時就會出現(xiàn)以下的界面(即以總分的方式對教師進(jìn)行排序),當(dāng)排序
6、完成后,系統(tǒng)會提示用戶是否繼續(xù)執(zhí)行此功能,用戶按系統(tǒng)要求按下指定的鍵后,系統(tǒng)就會出現(xiàn)相應(yīng)的功能。五、查找在進(jìn)入此界面之前,系統(tǒng)會提示用戶想要用哪種方式對教師進(jìn)行查找,如果選擇y或Y時就會出現(xiàn)以下的界面(即以姓名的方式來查找教師的相關(guān)信息),當(dāng)查找完成后,系統(tǒng)會提示用戶是否繼續(xù)執(zhí)行此功能,用戶按系統(tǒng)要求按下指定的鍵后,系統(tǒng)就會出現(xiàn)相應(yīng)的功能。六、結(jié)束 這是結(jié)束系統(tǒng)的界面,按下系統(tǒng)指定的鍵后就可以進(jìn)入此界面。六測試結(jié)果(1).輸入n個教師的信息(n由用戶輸入):(2).輸出n個教師的信息(n由用戶輸入): (3).根據(jù)教學(xué)效果綜合評分排序:(4).根據(jù)職工號進(jìn)行排序:(5).根據(jù)姓名進(jìn)行查找,而且
7、如果當(dāng)姓名輸入錯誤時會有提示!(6).根據(jù)職工號進(jìn)行查找,而且如果當(dāng)職工號輸入錯誤時會有提示!(7).如果在系統(tǒng)開始后,沒有按指定的鍵輸入數(shù)據(jù)時,系統(tǒng)就不會去實現(xiàn)相應(yīng)的功能此時系統(tǒng)會有提示!并要求重新輸入。七附錄(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)開始的界面*/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ù),用來輸入數(shù)據(jù)并保存在文件中*/SumofScores(tea,n); /*調(diào)用計算綜合評分的函數(shù),用來計算每個教師的綜合評分*/system(cls); /*清屏*/ printf(tt TH
12、E TEACHERS INFORMATION n);printf(*n);FoutPut(tea,n);/*調(diào)用輸出的函數(shù),用來讀出文件的信息來把每個教師的信息都顯示在屏幕上*/printf(*nn);selectnum=InputInformation(); /*用來提示用戶,系統(tǒng)需要按哪些鍵才能實現(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); /*提示用戶,想要用哪種方法對教師進(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)用用綜合評分排序的函數(shù),用來給教師排序*/OutPut(tea,n); /*調(diào)用輸出的函數(shù),用來把教師的信息顯示出來*/printf(*nn);elsesystem(cls); /*清屏*/ printf(ttt ORDERED BY NUM n);printf(*n);Reo
14、rderbyNum(tea,n);/* 調(diào)用用職工號來排序的函數(shù),用來給教師排序*/OutPut(tea,n); /*調(diào)用輸出的函數(shù),用來把教師的信息顯示出來*/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ù)用來提示用戶,系統(tǒng)需要按哪些鍵才能實現(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);/*提示用戶,想要用哪種方法來查找教師的相關(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ù),通過用姓名的方式來
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ù),通過用職工號的方式來查找相應(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ù)用來提示用戶,系統(tǒng)需要按哪些鍵才能實現(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);/*提示用戶,輸入錯誤,需要重新輸入*/scanf(%1s,&selectnum); while(selectnum!=a&selectnum!=b&selectnum!=c&selectnum!=d); while(selectnum=c); return 0;(2).調(diào)用用來輸入數(shù)據(jù)并寫入文件的函數(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)用用來輸出數(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)用用來計算教師綜合評分的函數(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)用用教師的綜合評分來排序的函數(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)用用教師的職工號來排序的函數(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)用用教師的姓名來查找相應(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、用用教師的職工號來查找相應(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)用用來提示用戶,系統(tǒng)需要按哪些鍵才能實現(xiàn)相應(yīng)功能的函數(shù):#includestruct teacherint num;char name30;char competent30;char sex4;float score3;float sum;char InputInformation(void) cha
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水資源節(jié)約的宣傳教育計劃
- 2025年人造崗石樹脂合作協(xié)議書
- 2025年冷光源:EL冷光片合作協(xié)議書
- 2025年滌綸短纖項目合作計劃書
- 2025年鋁合金精密模鍛件項目合作計劃書
- 客戶關(guān)系層次化維護(hù)策略
- 數(shù)學(xué)王國里的奇妙旅程讀后感
- 自動化科技設(shè)備公司項目投資合作協(xié)議
- Pinoxaden-Standard-生命科學(xué)試劑-MCE
- Mucic-acid-Standard-生命科學(xué)試劑-MCE
- 山東省春季高考技能考試-汽車專業(yè)必刷必練題庫(600題)
- 膝關(guān)節(jié)前十字韌帶扭傷查房
- 2024建設(shè)工程人工材料設(shè)備機(jī)械數(shù)據(jù)分類和編碼規(guī)范
- 倉庫高位貨架管理制度培訓(xùn)課件
- 工會經(jīng)費(fèi)列支范圍及工會經(jīng)費(fèi)支出范圍
- 道教文化的映射:《三國演義》中的道教元素分析
- 成人高考課件
- 高中英語高考讀后續(xù)寫巧用動作鏈專項練習(xí)(附參考答案和解析)
- 哲學(xué)與人生全套課件146P
- 敬老院設(shè)備采購?fù)稑?biāo)方案(技術(shù)方案)
- 充電樁采購安裝售后服務(wù)方案
評論
0/150
提交評論