




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 C+課程設(shè)計(jì)課程報(bào)告( 2012 - 2013 年度第 二 學(xué)期) 學(xué)生學(xué)籍管理系統(tǒng)程序設(shè)計(jì)專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)生姓名班級學(xué)號指導(dǎo)教師完成日期2013年7 月 5 日目 錄1 概 述11.1 課程設(shè)計(jì)目的11.2 課程設(shè)計(jì)內(nèi)容12 系統(tǒng)總體設(shè)計(jì)12.1 系統(tǒng)目標(biāo)12.2 主體功能22.3 系統(tǒng)流程32.4 開發(fā)環(huán)境43系統(tǒng)詳細(xì)設(shè)計(jì)43.1系統(tǒng)主界面設(shè)計(jì)43.2 輸入模塊設(shè)計(jì)53.3 輸出模塊設(shè)計(jì)53.4 查詢模塊設(shè)計(jì)53.5 更改模塊設(shè)計(jì)53.6 統(tǒng)計(jì)模塊設(shè)計(jì)53.7 保存退出模塊設(shè)計(jì)54 測試64.1 測試方案64.2 測試結(jié)果65 小結(jié)10參考文獻(xiàn)12附 錄13附錄1 源程序清單13附
2、錄1.1 主函數(shù)源程序13附錄1.2 輸入模塊源程序14附錄1.3 查詢模塊源程序16附錄1.4 刪除模塊源程序17附錄1.5 添加模塊源程序18附錄1.6 排序模塊源程序19學(xué)生學(xué)籍管理系統(tǒng)程序的設(shè)計(jì)與實(shí)現(xiàn)1 概 述 1.1 課程設(shè)計(jì)目的1、鞏固并加深學(xué)生對C+語言程序設(shè)計(jì)知識的理解;2、培養(yǎng)學(xué)生面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,使學(xué)生認(rèn)識面向過程和面向?qū)ο髢煞N設(shè)計(jì)方法的區(qū)別;3、進(jìn)一步掌握和應(yīng)用VC+ 6.0集成開發(fā)環(huán)境;4、提高運(yùn)用C+語言解決實(shí)際問題的能力; 5、初步掌握開發(fā)小型實(shí)用軟件的基本方法,能獨(dú)立設(shè)計(jì)、實(shí)現(xiàn)具有實(shí)際功能的小系統(tǒng);6、掌握書寫程序設(shè)計(jì)開發(fā)文檔的能力(書寫課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告)。
3、1.2 課程設(shè)計(jì)要求1、根據(jù)分組情況對規(guī)定的課程設(shè)計(jì)題目要求進(jìn)行分析、設(shè)計(jì);2、利用Visual C+獨(dú)立編寫程序代碼,并調(diào)試程序使其能正確運(yùn)行;3、源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀;4、設(shè)計(jì)完成的軟件要便于操作和使用,采用模塊化設(shè)計(jì)方法,可以根據(jù)實(shí)際情況選擇SDI、MDI或Dialog-Based方式實(shí)現(xiàn)系統(tǒng);5、要求系統(tǒng)的用戶界面盡量簡單、合理,鼓勵(lì)學(xué)生自動增加新功能模塊(視情況可另行加分);6、完成并提交課程設(shè)計(jì)報(bào)告,具體要求見相關(guān)說明文檔。1.3 課程設(shè)計(jì)內(nèi)容課題名稱:學(xué)籍管理系統(tǒng)說明:學(xué)生學(xué)籍記錄以下信息:姓名、家庭住址、學(xué)號,成績、性別等??梢杂媚鼙硎緦W(xué)生學(xué)籍信息的類存儲數(shù)據(jù)。
4、要求: 1)具備對學(xué)籍的管理功能(添加、刪除、排序)2)具備按姓名、學(xué)號查詢學(xué)生學(xué)籍的功能。3)給定某個(gè)班級的班號,顯示該班所有學(xué)生的作業(yè)完成情況;4)給定某位學(xué)生的學(xué)號,修改該學(xué)生的作業(yè)完成信息;5)給定某位學(xué)生的學(xué)號,刪除該學(xué)生的信息;6)提供一些統(tǒng)計(jì)各類信息的功能。 2 系統(tǒng)總體設(shè)計(jì)2.1 系統(tǒng)目標(biāo)(1) 根據(jù)查詢條件實(shí)現(xiàn)學(xué)生的作業(yè)的完成情況查詢(2) 學(xué)生的作業(yè)完成信息的增加、刪除、修改(3) 方便各任課教師記錄,統(tǒng)計(jì)所帶班學(xué)生的在作業(yè)完成情況,提高工作效率,減輕負(fù)擔(dān);總結(jié)經(jīng)驗(yàn),提高教學(xué)質(zhì)量(4) 為教務(wù)處管理人員提供各學(xué)期、各班級學(xué)生的作業(yè)完成情況,以作為其進(jìn)行作業(yè)分?jǐn)?shù)的匯總,分析和
5、總結(jié)評比的依據(jù)。2.2 主體功能據(jù)需求把整個(gè)系統(tǒng)分化成不同的模塊,每個(gè)模塊完成一個(gè)特定的子功能。把這些模塊結(jié)合起來組成一個(gè)整體。逐一實(shí)現(xiàn)各個(gè)功能。學(xué)生學(xué)籍管理系統(tǒng)輸入模塊輸出模塊更改模塊查詢模塊統(tǒng)計(jì)模塊保存退出排序?qū)W生成績退出模塊按姓名查詢按學(xué)號查詢退出模塊添加學(xué)生學(xué)籍信息刪除學(xué)生學(xué)籍信息修改學(xué)生學(xué)籍信息退出模塊圖2-1 系統(tǒng)功能模塊圖2.3 系統(tǒng)流程開始輸入學(xué)生a學(xué)籍信息判斷學(xué)生a學(xué)籍信息輸入模塊輸出模塊查詢模塊更新模塊排序模塊退出模塊輸要更新的值輸要查詢的值輸要排序的值判斷a的值判斷a的值判斷a的值分?jǐn)?shù)排序退出模塊修改模塊刪除模塊退出模塊添加模塊按學(xué)號查詢按姓名查詢退出模塊圖3-1 數(shù)據(jù)的
6、錄入:如錄入學(xué)生的基本信息 數(shù)據(jù)的修改:如修改指定學(xué)號、或者指定姓名的學(xué)生信息, 數(shù)據(jù)的插入:插入某個(gè)學(xué)生信息; 數(shù)據(jù)的查詢:如按學(xué)號查詢、按姓名查詢等; 數(shù)據(jù)的刪除:如刪除指定學(xué)號、或者指定姓名的學(xué)生; 列出不及格學(xué)生清單(學(xué)號、姓名、不及格的課程和成績)。 用文件把數(shù)據(jù)保存起來2.4 開發(fā)環(huán)境 系統(tǒng)開發(fā)環(huán)境:Microsoft Visual C+ 6.0 系統(tǒng)開發(fā)語言:C語言3系統(tǒng)詳細(xì)設(shè)計(jì)3.1系統(tǒng)主界面設(shè)計(jì)由主函數(shù)界面分成留個(gè)子模塊主函數(shù)界面輸入學(xué)生信息修改學(xué)生學(xué)籍信息刪除學(xué)生學(xué)籍信息查詢學(xué)生學(xué)籍信息排序?qū)W生成績保存退出圖4-13.2 輸入模塊設(shè)計(jì)數(shù)據(jù)的錄入: 錄入學(xué)生的基本信息,如姓名
7、、學(xué)號3.3 輸出模塊設(shè)計(jì)兩部分:1.按總分名次輸出 2.按學(xué)號順序輸出3.4 查詢模塊設(shè)計(jì)查詢信息:本功能實(shí)現(xiàn)是調(diào)用struct stu *findnum(void)函數(shù)查找該條信息的地址,然后再采用for循環(huán)進(jìn)行信息的輸出,本功能的實(shí)現(xiàn)比較簡單,難點(diǎn)在于對函數(shù)的調(diào)用的靈活運(yùn)用。3.5 更改模塊設(shè)計(jì)信息的修改:本系統(tǒng)采用的是按學(xué)號查找信息,系統(tǒng)采用一個(gè)由判斷語句和循環(huán)語句構(gòu)成的查詢函數(shù)struct stu *findnum(void)來提供信息存儲地址;再按照地址來進(jìn)行修改,其中采用switch語句和循環(huán)語句來控制使系統(tǒng)能夠提供選擇修改的功能。在這一功能的設(shè)計(jì)中,作者感到課程信息的修改中的添
8、加課程信息功能是一個(gè)難點(diǎn),解決方案是按插入方案來進(jìn)行設(shè)計(jì)。增加信息:本系統(tǒng)采用的是按學(xué)號順序來進(jìn)行插入的,在這一功能的設(shè)計(jì)中,首先在開辟一個(gè)結(jié)構(gòu)體空間將插入學(xué)生的信息存儲于其中,在采用判斷語句和循環(huán)語句來查找該條信息應(yīng)該插入位置的地址,將上一結(jié)點(diǎn)的下行指針指向本結(jié)點(diǎn),再將該節(jié)點(diǎn)的下行指針指向下一個(gè)結(jié)點(diǎn)從而達(dá)到插入信息的目的。在這一功能的設(shè)計(jì)中作者感到插入的具體算法是個(gè)難點(diǎn),本系統(tǒng)采用的教材書本上的方法。刪除信息:系統(tǒng)采用按學(xué)號刪除的方案,在這一功能的設(shè)計(jì)中我沒有采用直接調(diào)用struct stu *findnum(void)函數(shù),而是又重寫查找地址程序,這是出于考慮系統(tǒng)功能的更好實(shí)現(xiàn)而采用的舉措
9、。具體刪除算法采用該節(jié)點(diǎn)上一個(gè)結(jié)點(diǎn)的下行指針直接指向該結(jié)點(diǎn)下一個(gè)結(jié)點(diǎn)從而達(dá)到刪除該結(jié)點(diǎn)的目的。在此功能的設(shè)計(jì)中,本作者感到難點(diǎn)不在于算法而在于思維設(shè)計(jì)的是否縝密。3.6 統(tǒng)計(jì)模塊設(shè)計(jì)排序?qū)W生成績:通過菜單選擇排序依據(jù),采用排序算法(冒泡、插入、選擇等)對數(shù)據(jù)進(jìn)行排序并輸出結(jié)果。首先要讀文件。3.7 保存退出模塊設(shè)計(jì)每次執(zhí)行完修改信息包括添加、錄入、修改、刪除等都需要保存信息。當(dāng)然在每個(gè)修改函數(shù)最后都需要調(diào)用一下保存函數(shù)。4 測試4.1 測試方案測試方案一:登錄學(xué)生作業(yè)完成管理系統(tǒng) 測試方案二:錄入學(xué)生信息測試方案三:顯示學(xué)生信息測試方案四:查找學(xué)生作業(yè)完成情況的信息測試方案五:修改學(xué)生作業(yè)完成
10、情況的信息測試方案六:刪除學(xué)生信息測試結(jié)果七:添加學(xué)生信息測試結(jié)果八:保存退出4.2 測試結(jié)果測試結(jié)果一: 圖 6-1測試結(jié)果二:測試方案三:圖7-1測試結(jié)果三:圖7-2測試結(jié)果四:圖8-1測試結(jié)果五:圖8-2測試結(jié)果六:圖9-1測試結(jié)果七:圖9-2測試結(jié)果八:圖10-15 小結(jié)為期兩周的課程設(shè)計(jì)結(jié)束了,在老師和同學(xué)的幫助下,我基本完成系統(tǒng)的設(shè)計(jì)。我按照系統(tǒng)工程軟件設(shè)計(jì)的要求,從需求分析,概念設(shè)計(jì),總體設(shè)計(jì),詳細(xì)設(shè)計(jì),系統(tǒng)測試等各個(gè)步驟,分步完成系統(tǒng)的各項(xiàng)任務(wù),實(shí)現(xiàn)了系統(tǒng)中的學(xué)生作業(yè)完成情況的查詢,學(xué)生信息更新,學(xué)生信息添加等模塊的功能。在這兩個(gè)星期里我收獲如下:1、鞏固和加深了對C+的理解,
11、提高綜合運(yùn)用本課程所學(xué)知識的能力。2、培養(yǎng)了我選用參考書,查閱手冊及文獻(xiàn)資料的能力。培養(yǎng)獨(dú)立思考,深入研究,分析問題、解決問題的能力。3、通過實(shí)際編譯系統(tǒng)的分析設(shè)計(jì)、編程調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計(jì)方法。根據(jù)我在課程設(shè)計(jì)中遇到的問題,我將在以后的學(xué)習(xí)當(dāng)中注意以下幾點(diǎn):1、認(rèn)真上好專業(yè)實(shí)驗(yàn)課,多在實(shí)踐中鍛煉自己。2、寫程序的過程中要考慮周到,嚴(yán)密。3、在做設(shè)計(jì)的時(shí)候要有信心,有耐心,切勿浮躁。4、認(rèn)真的學(xué)習(xí)課本知識,掌握課本中的知識點(diǎn),并在此基礎(chǔ)上學(xué)會靈活運(yùn)用。5、在課余時(shí)間里多寫程序,熟練掌握在調(diào)試程序的過程中所遇到的常見錯(cuò)誤,以便能節(jié)省調(diào)試程序的時(shí)間。參考文獻(xiàn)1譚浩強(qiáng).C+程序設(shè)計(jì)
12、(第二版)M.北京:清華大學(xué)出版社,2012. 2譚浩強(qiáng).C+程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第二版)M.北京:清華大學(xué)出版社,2012.J,附 錄附錄1 源程序清單附錄1.1 主函數(shù)源程序#include#include#include#include#define max 10void input();void display();void find();void change();void del();void read();void save();void add();void sort(int n);void sortx(int n);void shuchu(int n);void no_p
13、ass();int now=0;/*標(biāo)記位*/struct studentint num;char name20;char sex;int NO;float score1;float score2;float score3;float score4;float score5;float score6;float score7;float score8;float score9;float score10;float sum;struct student stumax+1;void main()/*主函數(shù)(菜單)*/int as;doprintf(nttt歡迎使用學(xué)生作業(yè)完成情況管理系統(tǒng)nn);
14、printf(ntttt1.錄入學(xué)生信息ntttt2.顯示學(xué)生信息ntttt3.查找學(xué)生作業(yè)完成情況的信息ntttt4.修改學(xué)生完成情況的信息ntttt5.刪除學(xué)生信息ntttt6.添加學(xué)生信息ntttt7.讀入學(xué)生信息ntttt8.保存學(xué)生信息ntttt9.退出);printf(nnntttt請選擇);scanf(%d,&as);switch(as)case 1:system(cls);input();break;case 2:system(cls);display();break;case 3:system(cls);find();break;case 4:system(cls);chan
15、ge();break;case 5:system(cls);del();break;case 6:system(cls);add();break;case 7:system(cls);read();break;case 8:system(cls);save();break;case 9:system(cls);exit(0);while(1);附錄1.2 輸入模塊源程序void input()/*輸入函數(shù)*/int i,n,j; for(i=0;i+) printf(n請輸入添加的學(xué)生數(shù)量(在%d以內(nèi)):,max-now); scanf(%d,&n); if(nmax)printf(n請確保添
16、加的數(shù)量在%d以內(nèi)t!,max); if(n=max)break; now=n;for(i=0;in;i+)printf(ntttt輸入第%d個(gè)學(xué)生的信息n,i+1);printf(n輸入學(xué)生的學(xué)號:);scanf(%d,&stui.num);getchar();printf(n輸入學(xué)生的姓名:);gets();printf(n請輸入學(xué)生第一次作業(yè)分?jǐn)?shù):);scanf(%f,&stui.score1);printf(n請輸入學(xué)生第二次作業(yè)分?jǐn)?shù):);scanf(%f,&stui.score2); printf(n請輸入學(xué)生第三次作業(yè)分?jǐn)?shù):);scanf(%f,&stui.sco
17、re3);printf(n請輸入學(xué)生第四次作業(yè)分?jǐn)?shù):);scanf(%f,&stui.score4);printf(n請輸入學(xué)生第五次作業(yè)分?jǐn)?shù):);scanf(%f,&stui.score5);printf(n請輸入學(xué)生第六次作業(yè)分?jǐn)?shù):);scanf(%f,&stui.score6);printf(n請輸入學(xué)生第七次作業(yè)分?jǐn)?shù):);scanf(%f,&stui.score7);printf(n請輸入學(xué)生第八次作業(yè)分?jǐn)?shù):);scanf(%f,&stui.score8);printf(n請輸入學(xué)生第九次作業(yè)分?jǐn)?shù):);scanf(%f,&stui.score9);printf(n請輸入學(xué)生第十次作業(yè)分
18、數(shù):);scanf(%f,&stui.score10);stui.sum=stui.score1+stui.score2;sort(n);save(); system(cls);void display()/*整體輸出函數(shù)*/int as,i;printf(nttt班級學(xué)生作業(yè)完成情況的列表nnn);printf(ntttt請選擇nnttt1.按名次輸出nttt2.按學(xué)號輸出nttt3.不及格的學(xué)生信息nttt);scanf(%d,&as);switch(as) case 1:sort(now);for(i=0;inow;i+)shuchu(i);break; case 2:sort(now)
19、;sortx(now);for(i=0;inow;i+)shuchu(i);break;case 3:no_pass();break;附錄1.3 查詢模塊源程序void find()/*查詢函數(shù)*/int num,as,i;char name20;printf(nttt請選擇nnn);printf(nttt1.按學(xué)號查找nttt2.按姓名查找nttt); scanf(%d,&as);switch(as) case 1:system(cls);printf(請輸入要查找的學(xué)號:); doscanf(%d,&num); for(i=0;i=now) printf(ntt該生信息不存在!請重新輸入學(xué)
20、號:);while(i=now);break; case 2:system(cls);getchar();printf(請輸入要查找的學(xué)生姓名:); do gets(name); for(i=0;i=now) printf(nnttt該生信息不存在!請重新輸入姓名:); while(i=now);break;附錄1.4 刪除模塊源程序void del()/*刪除函數(shù)*/int num,i;printf(nttt輸入要刪除的學(xué)生學(xué)號);scanf(%d,&num);for(i=0;i=now)printf(nnnttt學(xué)號輸入有誤!刪除失敗!nn);break;if(stui.num=num)i
21、f(i=now-1)now-=1;else stui=stunow-1; now-=1; printf(nnttt刪除成功!nn); sort(now);break;save();附錄1.5 添加模塊源程序void add()/*添加函數(shù)*/char ch;int j;printf(ntttt還能添加%d個(gè)學(xué)生信息!nn,max-now);if(now=max) printf(nnntt存儲空間已滿無法繼續(xù)添加!nn);break; printf(nttt是否繼續(xù)添加?(Y/N); getchar(); ch=getchar(); while(ch!=n|ch!=n);void save()/*文件保存函數(shù)*/FILE *fp;/*fp為文件指針*/int i;if(fp=fopen(stu_infer,wb)=NULL)printf(nnttt文件打開失敗!);return;for(i=0;imax+1;i+)if(fwrite(&stui,sizeof(struct student),1,fp)!=1)printf(nnttt文件保存錯(cuò)誤!);fclose(fp);附錄1.6 排序模塊源程序void read()/*從磁盤讀入函數(shù)*/int
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 以電影真實(shí)語料為翼展小學(xué)英語口語教學(xué)新篇-基于會話分析視角
- 2025年成人高考《語文》得體表達(dá)與職場溝通試題集
- 2025年統(tǒng)計(jì)學(xué)期末考試題庫:統(tǒng)計(jì)預(yù)測與決策實(shí)驗(yàn)設(shè)計(jì)試題集解析
- 2025年法語DELFA2級口語表達(dá)模擬試題及答案解析
- 財(cái)政存款賬戶管理辦法
- 2025年美容師(高級)職業(yè)技能鑒定試卷:美容行業(yè)可持續(xù)發(fā)展與環(huán)境保護(hù)
- 2025年電工特種作業(yè)操作證考試試卷:電力系統(tǒng)新技術(shù)與應(yīng)用
- 2025年秋季教務(wù)處教學(xué)設(shè)備維護(hù)計(jì)劃
- 小區(qū)違建拆除管理辦法
- 室外儲存油桶管理辦法
- (考研資料加)山東建筑大學(xué)考研真題-山東建筑大學(xué)
- 餐飲業(yè)安全生產(chǎn)教育培訓(xùn)(最全面)課件
- 2024屆內(nèi)蒙古重點(diǎn)中學(xué)生物七下期末質(zhì)量檢測試題含解析
- 煤礦新工人入井須知培訓(xùn)課件2024
- RAZ-AbcReading記憶曲線閱讀計(jì)劃表
- 有效時(shí)間管理:提高工作效率培訓(xùn)課件
- 國家開放大學(xué)2023年7月期末統(tǒng)一試《11376機(jī)械制造裝備及設(shè)計(jì)》試題及答案-開放本科
- 九年級英語完形填空(word版含答案)
- 質(zhì)量管理體系品質(zhì)保證體系圖
- 山東省各地市地圖課件
- 啦啦操訓(xùn)練計(jì)劃
評論
0/150
提交評論