學(xué)生成績(jī)記錄簿設(shè)計(jì)說(shuō)明_第1頁(yè)
學(xué)生成績(jī)記錄簿設(shè)計(jì)說(shuō)明_第2頁(yè)
學(xué)生成績(jī)記錄簿設(shè)計(jì)說(shuō)明_第3頁(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ì)的目的和要求11.1課程設(shè)計(jì)的目的11.2課程設(shè)計(jì)的要求11.2.1程序設(shè)計(jì)報(bào)告的容要11.2.2程序設(shè)計(jì)報(bào)告的質(zhì)量要求2第二章課程設(shè)計(jì)任務(wù)容32.1考核容32.1.1編寫的C+祁言程序32.1.2課程設(shè)計(jì)報(bào)告32.2課題3第三章詳細(xì)設(shè)計(jì)說(shuō)明43.1函數(shù)說(shuō)明43.2函數(shù)流程圖53.3.1主函數(shù)流程圖53.3.2子函數(shù)流程圖53.3編碼及調(diào)試7第四章軟件使用說(shuō)明94.1應(yīng)用程序運(yùn)行環(huán)境的要求94.2應(yīng)用程序功能的詳細(xì)說(shuō)明9附錄一:參考文獻(xiàn)13附錄二:程序活單14程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)-學(xué)生成績(jī)記錄簿第一章程序設(shè)計(jì)的目的和要求1.1課程設(shè)計(jì)的目的1. C語(yǔ)言課程設(shè)計(jì)的主要目的是培養(yǎng)學(xué)生

2、綜合運(yùn)用C語(yǔ)言程序設(shè)計(jì)課程所學(xué)到的知識(shí),編寫C程序解決實(shí)際問(wèn)題的能力,以及嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度和良好的程序設(shè)計(jì)習(xí)慣。2. 通過(guò)課程設(shè)計(jì)的訓(xùn)練,學(xué)生應(yīng)該能夠了解程序設(shè)計(jì)的基本開發(fā)過(guò)程,掌握編寫、調(diào)試和測(cè)試C語(yǔ)言程序的基本技巧,充分理解結(jié)構(gòu)化程序設(shè)計(jì)的基本方法。C語(yǔ)言程序設(shè)計(jì)的主要任務(wù)是要求學(xué)生遵循軟件開發(fā)過(guò)程的基本規(guī),運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的方法,按照課程設(shè)計(jì)的題目要求,分析、設(shè)計(jì)、編寫、調(diào)試和測(cè)試C語(yǔ)言程序及編寫設(shè)計(jì)報(bào)告。1.2課程設(shè)計(jì)的要求1.2.1程序設(shè)計(jì)報(bào)告的容要求課程設(shè)計(jì)要求學(xué)生遵循軟件開發(fā)過(guò)程中的基本規(guī),運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的方法,程序設(shè)計(jì)報(bào)告應(yīng)該能夠反映學(xué)生完成課程設(shè)計(jì)題目的全部情況,包括對(duì)課

3、程設(shè)計(jì)題目要求的分析、應(yīng)用程序的設(shè)計(jì)、程序的測(cè)試過(guò)程以及程序的運(yùn)行情況等,因此,編寫課程設(shè)計(jì)報(bào)個(gè)是課程設(shè)計(jì)一個(gè)不容忽視的重要環(huán)節(jié)。一個(gè)高質(zhì)量的課程設(shè)計(jì)報(bào)告應(yīng)該滿足下列條件:報(bào)告容完整、觀點(diǎn)正確;層次活晰、語(yǔ)流暢、用詞準(zhǔn)確且無(wú)二義性;能夠反映結(jié)構(gòu)化程序設(shè)計(jì)方法的基本原則;繪制的所有圖表規(guī)且正確。用戶文檔是面向使用該應(yīng)用程序的用戶編寫的,因此,應(yīng)該將用戶需要知道的所有容用簡(jiǎn)練、活晰的語(yǔ)言描述活楚。下面是用戶文檔應(yīng)該包含的主要容:(1) 應(yīng)用程序運(yùn)行環(huán)境的要求;(2) 應(yīng)用程序功能的詳細(xì)說(shuō)明;(3) 流程圖;(4) 代碼及調(diào)試。1.2.2程序設(shè)計(jì)報(bào)告的質(zhì)量要求一個(gè)高質(zhì)量的課程設(shè)計(jì)報(bào)告應(yīng)該滿足下列條件

4、:報(bào)告容完整、觀點(diǎn)正確;層次活晰、語(yǔ)言流暢、用詞準(zhǔn)確且無(wú)二義性;能夠反映結(jié)構(gòu)化程序設(shè)計(jì)方法的基本原則;繪制的所有圖表規(guī)且正確。第二章課程設(shè)計(jì)任務(wù)容2.1考核容2.1.1編寫的C+視言程序針對(duì)編寫的C+玳序,應(yīng)該主要考查下列容:是否符合題目要求,是否完成了主要功能;是否存在語(yǔ)法錯(cuò)誤、邏輯錯(cuò)誤及運(yùn)行錯(cuò)誤;程序設(shè)計(jì)是否合理;程序是否具有良好的可讀性和可靠性;是否符合結(jié)構(gòu)化程序設(shè)計(jì)所倡導(dǎo)的基本理念;用戶界面是否友好。2.1.2課程設(shè)計(jì)報(bào)告針對(duì)提交的課程設(shè)計(jì)報(bào)告,應(yīng)該主要考查下列容:程序設(shè)計(jì)的報(bào)告容是否全面,觀點(diǎn)是否正確;設(shè)計(jì)過(guò)程是否符合結(jié)構(gòu)化程序設(shè)計(jì)方法的基本原則;層次是否活楚,語(yǔ)言是否通順;各種圖表

5、是否規(guī);是否具有良好的程序設(shè)計(jì)習(xí)慣。2.2課題設(shè)計(jì)一個(gè)學(xué)生成績(jī)記錄簿c+程序,該系統(tǒng)的主要功能如下:1)創(chuàng)建信息并以磁盤文件保存;2)讀取磁盤文件并顯示輸出所有學(xué)生的成績(jī);3)按學(xué)號(hào)或查詢成績(jī);4)添加成績(jī)記錄;5)修改指定或?qū)W號(hào)的學(xué)生的成績(jī)并可存盤;6)顯示輸出60分以下、60-79、80-89、90分以上各分?jǐn)?shù)段的學(xué)生信息;第三章詳細(xì)設(shè)計(jì)說(shuō)明3.1函數(shù)說(shuō)明Init()初始化函數(shù)Create()創(chuàng)建鏈表Delete(STUDENT)刪除記錄Print(STUDENT*h)顯示所有記錄Search(STUDENT*h查找學(xué)生成績(jī)Insert(STUDENT*h)插入記錄1.插入記錄函數(shù)函數(shù)原型

6、:intinsert(STUDENT*h)功能:根據(jù)用戶指定將信息插入特定位置參數(shù):結(jié)構(gòu)體數(shù)組和記錄數(shù)要求:輸入信息2. 查找函數(shù)函數(shù)原型:intsearch()功能:根據(jù)用戶需要輸出記錄參數(shù):記錄數(shù)組和記錄成績(jī)以及s要求:判斷存中記錄的名字與輸入的是否相等,如果相等則輸出,否則提前結(jié)束3.刪除記錄函數(shù)函數(shù)原型:intdelete(STUDENT*h)功能:刪除存鏈表中的指定結(jié)點(diǎn)參數(shù):記錄數(shù)組和記錄條數(shù),成績(jī)要求:給出相關(guān)信息函數(shù)流程圖主函數(shù)流程圖并始聲明調(diào)用函數(shù)定以吉構(gòu)體類型變量至明全局變量結(jié)束)圖3-1函數(shù)主流程圖/輸出開場(chǎng)裁果的菜單顯示,輸入.3.3.2子函數(shù)流程圖如圖3

7、-2所示:從表中刪除原有紀(jì)錄模塊,算法,如圖3-3所示:圖3-3刪除信息流程圖按照查找紀(jì)錄模塊,算法,如圖3-4所示:圖3-4查找信息流程圖按照刪除記錄模塊,算法,如圖3-5所示圖3-5修改信息流程圖3.3編碼及調(diào)試在設(shè)計(jì)該程序的時(shí)候我采用了結(jié)構(gòu)化程序方法編輯,并在源代碼的基礎(chǔ)上添加了中文注釋,但是在該系統(tǒng)的編寫過(guò)程中仍然有許多錯(cuò)誤,主要的有:注釋文字的排版,定義錯(cuò)誤,句式的語(yǔ)法錯(cuò)誤。在完善程序時(shí),我將源代碼先打印下來(lái)反復(fù)的捉摸和研究,力圖在上機(jī)運(yùn)行時(shí)先改正一些低級(jí)錯(cuò)誤,如缺少“;”之類。在仔細(xì)檢查之后,將源代碼上機(jī)調(diào)試一進(jìn)行編譯,在編譯和連接過(guò)程中發(fā)現(xiàn)錯(cuò)誤,屏幕上顯示了出錯(cuò)信息,根據(jù)提示找到

8、出錯(cuò)的位置,加以改正直到順利顯示我預(yù)期想得到程序效果。具體調(diào)試過(guò)程如下:1、首先,在本次調(diào)試過(guò)程中我碰到了在上機(jī)前根本沒(méi)有想到的錯(cuò)誤:在注釋的時(shí)候,注釋文字應(yīng)寫在一起中間不能有中斷,不能再其中包含c語(yǔ)言的語(yǔ)句。否則會(huì)引起錯(cuò)誤,例如格式不正確或是多了字符等。2、缺少變量定義或是定義位置不正確;由丁該程序相對(duì)來(lái)講稍有些長(zhǎng),前后有些變量很難聯(lián)系起來(lái),但是在錯(cuò)誤信息的提示下一般還是很是可以找到。不過(guò)需要注意的是在定義的時(shí)候有些函數(shù)使用同樣的變量名而表示不同的作用,因而使用要很小心,定義及定義的位置要特別留意。為減少這樣的錯(cuò)誤我后來(lái)還是用不同的變量名來(lái)表示,結(jié)果引起的那些錯(cuò)誤解決了。3、句式的語(yǔ)法錯(cuò)誤;

9、大多的語(yǔ)法錯(cuò)誤在通過(guò)書本參考下能夠修改。主要是平時(shí)看書不仔細(xì)、不太注意而產(chǎn)生的。如沒(méi)有注意具體數(shù)據(jù)使用是有一定的圍限定;過(guò)分重視分號(hào)的重要性而在for、if、while語(yǔ)句中畫蛇添足加分號(hào);在使用文件的時(shí)候忘記將文件先打開,對(duì)打開的方式與使用的情況不太注意而造成不匹配;還有漏掉形參的定義是值不能傳遞等等。這些語(yǔ)法錯(cuò)誤有信息框的提示一般是能夠排除的。編譯、連接的成功并不意味著程序的最終成功。邏輯上的錯(cuò)誤機(jī)器不易檢查出來(lái),這時(shí)需要對(duì)數(shù)據(jù)結(jié)果進(jìn)行分析。這種錯(cuò)誤的查找是最難的,需要編程序的人有相當(dāng)?shù)哪托暮图?xì)心去把問(wèn)題找出來(lái)。這也是本次程序編輯過(guò)程中碰到的最大的難題。往往運(yùn)行之后得不到另人滿意的結(jié)果,此

10、時(shí)解決的方法一則可以用“分段檢查”的方法,在程序的不同位置設(shè)幾個(gè)printf函數(shù)語(yǔ)句,輸出有關(guān)變量的值,逐段往下檢查,或用debug®行調(diào)試,對(duì)檢查出的錯(cuò)誤進(jìn)行修改,當(dāng)調(diào)試完畢將設(shè)置的printf都刪去。若在程序中找不到問(wèn)題,則再來(lái)考慮算法是否邏輯嚴(yán)謹(jǐn),再進(jìn)行修改。如此循環(huán)往復(fù),直到最后程序運(yùn)行成功。在本次程序編輯過(guò)程中,我就是常遇到編譯能通過(guò),能夠運(yùn)行程序,但是總在輸入、刪除等操作完之后再想去看數(shù)據(jù)文件中存在的數(shù)據(jù)記錄的時(shí)候,卻一條記錄也顯示不出來(lái),我懷疑是哪個(gè)對(duì)方對(duì)n變量的定義或使用出錯(cuò)了,丁是在每個(gè)主要函數(shù)的操作過(guò)程中添加了printf語(yǔ)句用來(lái)顯示n的變化,例如在執(zhí)行某個(gè)函數(shù)前

11、添加插入語(yǔ)句顯示n的起始值,在執(zhí)行完該個(gè)函數(shù)后再添加插入語(yǔ)句顯示此時(shí)n的結(jié)果值,觀察n的變化是否正確,如果錯(cuò)誤了,也就說(shuō)明該函數(shù)編寫過(guò)程有錯(cuò)。諸如這樣的調(diào)試方法,不斷縮小檢查圍,最后將錯(cuò)誤找到,進(jìn)行修改。所以到最后我找到了錯(cuò)誤,及時(shí)改正,終丁把程序完成了,一切功能顯示正常。以上是調(diào)試的全過(guò)程。第四章軟件使用說(shuō)明4.1應(yīng)用程序運(yùn)行環(huán)境的要求程序運(yùn)行的環(huán)境Win9X/Win2000/WinXP/Win20034.2應(yīng)用程序功能的詳細(xì)說(shuō)明步驟1:根據(jù)數(shù)字提示從1-5中選擇要操作的功能,如圖4-1所示:圖4-1軟件使用圖示步驟2:按1鍵,會(huì)出現(xiàn)提示“插入信息”,按2,會(huì)出現(xiàn)“刪除信息”,按3,“修改信

12、息”,按4,會(huì)出現(xiàn)“查看信息”,按5,“保存”,按q鍵即可退出,如圖4-2所示:圖4-2軟件使用圖示步驟3:鍵入1回車,會(huì)出現(xiàn)提示“請(qǐng)輸入要?jiǎng)h除學(xué)生信息”,現(xiàn)在就可以刪除學(xué)生信息,如圖4-3所示:圖4-3軟件使用圖示步驟4:鍵入2及Enter鍵,會(huì)出現(xiàn)提示“請(qǐng)輸入要查找的學(xué)生信息”,然后根據(jù)提示將該學(xué)生的信息刪除,如圖4-4所示:圖4-4軟件使用圖示第五章課程設(shè)計(jì)心得與體會(huì)在課程設(shè)計(jì)過(guò)程中,遇到了不少的問(wèn)題。這迫使我不得不參考一些課外資料,向同學(xué)和老師們請(qǐng)教。不過(guò),最后在我的努力和老師同學(xué)們的幫助下,還是把程序?qū)懗鰜?lái)了,這令我非常高興。但是在運(yùn)行過(guò)程中乂出現(xiàn)了問(wèn)題。一開始就出現(xiàn)了十幾個(gè)錯(cuò)誤,這

13、令我的信心有所下降,有的錯(cuò)誤我根本就不知道是啥意思,我就向同學(xué)以及上網(wǎng)查一下資料。在經(jīng)過(guò)幾天的檢查與修改后,終丁能編譯出來(lái)了,這乂使得我非常高興。但是運(yùn)行的結(jié)果不是很理想,沒(méi)能夠達(dá)到我預(yù)想的那樣。在運(yùn)行出來(lái)之后,我有點(diǎn)不敢相信這是我通過(guò)努力做出來(lái)的,對(duì)丁我這個(gè)編程新手,在課程設(shè)計(jì)中,剛開始真有點(diǎn)對(duì)自己失去信心,在硬著頭皮的情況下,還是做出來(lái)了。發(fā)現(xiàn)其實(shí)事情并不像剛開始自己想的那樣?,F(xiàn)在回想起來(lái)好像就是開頭克服自己最難了,這大概就是人們說(shuō)的萬(wàn)事開頭難。附錄一:參考文獻(xiàn)1 譚浩強(qiáng).C+程序設(shè)計(jì).活華大學(xué).2 嚴(yán)蔚敏吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版).活華大學(xué)附錄二:程序清單#include<ios

14、tream.h>#include<string.h>#include<stdlib.h>#include<conio.h>#include<fstream.h>classstudentprivate:student*next;public:charstu_num15;/學(xué)號(hào)charstu_name30;/floatstu_score;/成績(jī)/*在該節(jié)點(diǎn)后插入一個(gè)幾點(diǎn)*/voidafterInsert(student*p);/*在該節(jié)點(diǎn)后刪除一個(gè)節(jié)點(diǎn)*/voidafterDelete();/*獲得下一個(gè)節(jié)點(diǎn)的指針*/student*getNe

15、xt()returnnext;/*查詢學(xué)生信息*/voidgetMage();/*學(xué)生信息修改*/voidchangeMage(intn,char*ptr);voidchangegrade(floatp);/*構(gòu)造*/student(char*num,char*name,floatscore);student();voidstudent:changegrade(floatp)(stu_score=p;student:student()/構(gòu)造(strcpy(stu_num,"0");strcpy(stu_name,"0”);stu_score=0;next='

16、;0'/*構(gòu)造student:student(char*num,char*name,floatscore)(strcpy(stu_num,num);strcpy(stu_name,name);stu_score=score;next='0'voidstudent:afterInsert(student*p)/插入節(jié)點(diǎn)(p->next=next;next=p;voidstudent:afterDelete()/刪除節(jié)點(diǎn)(student*p=next;next=p->next;deletep;voidstudent:getMage()/獲得信息(cout<

17、<"學(xué)號(hào):"<<stu_num<<":"<<stu_name;cout<<"c+成績(jī):"<<stu_score<<endl;voidstudent:changeMage(intn,char*ptr)(switch(n)(case1:strcpy(stu_num,ptr);break;case2:strcpy(stu_name,ptr);/建立鏈表函數(shù)voidconstruct_list(student*tail)(student*p=newstudent;c

18、harvery20;floatachieve;cout<<"請(qǐng)輸入學(xué)號(hào):"<<endl;cin>>very;p->changeMage(1,very);cout<<"請(qǐng)輸入:"<<endl;cin>>very;p->changeMage(2,very);cout<<"請(qǐng)輸入c+成績(jī):"<<endl;cin>>achieve;p->changegrade(achieve);system("cls&quo

19、t;);cout<<"信息輸入完畢"<<endl;for(;tail->getNext()!='0')tail=tail->getNext();tail->afterInsert(p);/*查詢信息*/student*findmege(student*head)loop:級(jí)菜單cout<<"1-按查詢2-按學(xué)號(hào)查詢q-返回上"<<endl;charp5,ptr20;student*mid=head;cin>>p;if(p0!='1'&&a

20、mp;p0!='2'&&p0!='q'|strlen(p)>1)system("cls");cout<<"對(duì)不起,你的輸入有誤,請(qǐng)重新輸入!"<<endl;gotoloop;switch(p0)case'1':system("cls");cout<<"請(qǐng)輸入要查找:"<<endl;cin>>ptr;for(;strcmp(ptr,mid->stu_name)!=0;mid=mid-

21、>getNext()if(mid->getNext()='0')cout<<"對(duì)不起,你要查找的人不存在,請(qǐng)確認(rèn)你的輸入是否正確!"<<endl;gotoloop;returnmid;case'2':system("cls");cout<<"請(qǐng)輸入您要查找的學(xué)號(hào):"<<endl;cin>>ptr;for(;strcmp(ptr,mid->stu_num)!=0;mid=mid->getNext()if(mid->g

22、etNext()='0')cout<<"對(duì)不起,您要查找的容不存在,請(qǐng)確認(rèn)您的輸入是否正確!"<<endl;gotoloop;returnmid;case'q':return'0'default:system("cls");cout<<"對(duì)不起,您的輸入有誤,請(qǐng)重新輸入!"<<endl;gotoloop;/*刪除鏈表節(jié)點(diǎn)*/voiddelete_list(student*head)(student*p='0'charsele

23、t4;system("cls");cout<<"在刪除前,系統(tǒng)會(huì)根據(jù)您的提示找到您要?jiǎng)h除的學(xué)生信息!"<<endl;p=findmege(head);if(p!='0')(cout<<"確認(rèn)要?jiǎng)h除嗎(yes/任意鍵返回)"<<endl;cin>>selet;if(strcmp(selet,"yes")=0)(for(;head->getNext()!=p;head=head->getNext();head->afterDe

24、lete();system("cls");cout<<"該信息刪除成功!"<<endl;/*修改節(jié)點(diǎn)信息*/voidchange_info(student*head)(system("cls");cout<<"在您修改前,系統(tǒng)會(huì)根據(jù)您提供的信息找的您要修改的信息:"<<endl;student*p='0'floatachieve;p=findmege(head);if(p!='0')(cout<<"請(qǐng)輸入c+成績(jī):

25、"<<endl;cin>>achieve;p->changegrade(achieve);system("cls");cout<<"修改成功"<<endl;/*輸出學(xué)生成績(jī)信息*/voidoutput(student*head)(system("cls");<<endl;cout<<"1-查看指定學(xué)生信息;2-查看所有學(xué)生信息;3-分段輸出學(xué)生信息charch;intn=0;head=head->getNext();cin>&

26、gt;ch;switch(ch)(case'1':head=findmege(head);if(head='0')break;head->getMage();break;case'2':while(head)(head->getMage();head=head->getNext();break;case'3':cout<<"a-60分以下;b-6070分之間;c-7080分之間;d-8090分之間;e-90100分之間:"<<endl;cin>>ch;swi

27、tch(ch)case'a':while(head)if(head->stu_score<=60)head->getMage();n+;head=head->getNext();break;case'b':while(head)if(head->stu_score>60&&head->stu_score<=70)head->getMage();n+;head=head->getNext();break;case'c':while(head)if(head->stu_

28、score>70&&head->stu_score<=80)head->getMage();n+;head=head->getNext();break;case'd':while(head)if(head->stu_score>80&&head->stu_score<=90)head->getMage();n+;head=head->getNext();break;case'e':while(head)if(head->stu_score>90&

29、&head->stu_score<=100)head->getMage();n+;head=head->getNext();if(n=0)cout<<"該分段沒(méi)有您要找的學(xué)生信息"<<endl;/*主菜單*/voidmainmenu(student*head)charselet10;intn=1;ofstreamoutfile;ifstreaminfile;student*p,*ptr;student*test=head,*mid;cout<<"*歡迎進(jìn)入學(xué)生信息管理系統(tǒng)*”<<endl;docout<<"*”<

溫馨提示

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