版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 題 目: 學(xué)生成績信息管理的設(shè)計與實現(xiàn)</p><p><b> 初始條件:</b></p><p> 理論:學(xué)完計算機基礎(chǔ)知識,掌握C/C++語言編程基礎(chǔ)和VC開發(fā)平臺的使用。</p><p> 實踐:計算機科學(xué)系實驗中心提供計算機及軟件開發(fā)環(huán)境。</p><p> 要求完成的主要任務(wù)
2、: (包括課程設(shè)計工作量及其技術(shù)要求,以及說明書撰寫等具體要求)</p><p> ?。?)系統(tǒng)需求分析,得到系統(tǒng)的數(shù)據(jù)需求和功能需求,分析結(jié)果用表格形式記錄。</p><p> (2)系統(tǒng)設(shè)計,包括內(nèi)存數(shù)據(jù)結(jié)構(gòu)設(shè)計、數(shù)據(jù)文件設(shè)計、代碼設(shè)計、輸入/輸出設(shè)計、用戶界面設(shè)計、處理過程設(shè)計。要求內(nèi)存數(shù)據(jù)用鏈表組織,數(shù)據(jù)文件用文本文件,用戶界面用字符界面,枚舉量用枚舉類型表示。至少實現(xiàn)數(shù)據(jù)記錄的
3、增加、修改、刪除、查詢及相應(yīng)結(jié)果的顯示,查詢應(yīng)能按不同數(shù)據(jù)項進行。</p><p> ?。?)編制好程序后,設(shè)計若干測試用例,上機測試并通過所設(shè)計的程序系統(tǒng)。</p><p> (4)設(shè)計報告按格式要求書寫。設(shè)計報告書正文的內(nèi)容應(yīng)包括:</p><p> 1.系統(tǒng)描述,包括問題說明、數(shù)據(jù)需求和功能需求;</p><p> 2.系統(tǒng)設(shè)計,
4、包括內(nèi)存數(shù)據(jù)結(jié)構(gòu)設(shè)計、數(shù)據(jù)文件設(shè)計、代碼設(shè)計、輸入/輸出設(shè)計、用戶界面設(shè)計、處理過程設(shè)計的說明;</p><p> 3.系統(tǒng)測試,包括測試用例的描述,測試方法和測試結(jié)果;</p><p> 4.設(shè)計的特點、不足、收獲與體會。</p><p><b> 時間安排:</b></p><p> 設(shè)計安排一周(21—21
5、周(7月6-10日)):</p><p> 周1上午:指導(dǎo)教師介紹開發(fā)平臺的使用、文件操作等。</p><p> 周1下午:完成系統(tǒng)分析、代碼設(shè)計、文件設(shè)計、輸入設(shè)計、</p><p> 輸出設(shè)計、用戶界面設(shè)計和處理過程設(shè)計。</p><p> 周2-周4:完成程序設(shè)計與調(diào)試,并撰寫設(shè)計報告書。</p><p>
6、; 周五全天:設(shè)計驗收并收取設(shè)計報告(第1-8節(jié)課到實驗中心進行上機驗收)。</p><p> 指導(dǎo)教師簽名: 2009 年 月 日</p><p> 系主任(或責(zé)任教師)簽名: 2009 年 月 日</p><p><b> 一 開發(fā)平臺</b></p>
7、;<p> Microsoft Visual C++6.0</p><p><b> 二 問題描述</b></p><p> 這個程序是用是管理學(xué)生的成績,要求能夠?qū)崿F(xiàn)學(xué)生成績的添加,刪除與修改,并能夠顯示學(xué)生和成績信息,這些基本功能雖然很小,但是就是這些小功能組合在一起,就能實現(xiàn)對一些大系統(tǒng)的管理,極大的簡化管理,方便人們的日常工作。</p
8、><p> 1.在數(shù)據(jù)處理領(lǐng)域,選定一個問題,采用C、C++,字符界面,文本文檔實現(xiàn)對數(shù)據(jù)的添加,刪除,修改,查詢等功能。</p><p> 2.對所選問題進行需求分析,建立分析模型。分析模型包括數(shù)據(jù)項、數(shù)據(jù)記錄型,功能說明;功能至少包括對數(shù)據(jù)記錄的增加、修改、刪除、查詢及相應(yīng)結(jié)果的顯示,查詢應(yīng)能按不同數(shù)據(jù)項進行。</p><p> 3.要求學(xué)生選用C/C++語言
9、或某種程序設(shè)計語言及相應(yīng)開發(fā)環(huán)境,針對數(shù)據(jù)處理內(nèi)容,實施一個小型完整程序的規(guī)劃,設(shè)計,程序設(shè)計與調(diào)試,最終達到一個小型完整程序功能目標(biāo)。鞏固和深化所學(xué)課程的知識,培養(yǎng)學(xué)生綜合運用所學(xué)課程知識,分析和解決實際問題的能力,使學(xué)生能比較全面而辯證地分析和處理問題,逐步樹立正確的設(shè)計思想;培養(yǎng)嚴(yán)謹(jǐn)認真的科學(xué)態(tài)度和嚴(yán)謹(jǐn)務(wù)實的工作作風(fēng)。</p><p><b> 2.1 系統(tǒng)概述</b></p&
10、gt;<p> 1、問題描述:對一個有N個學(xué)生的班級,通過該系統(tǒng)實現(xiàn)對該班級學(xué)生的成績信息進行錄入、顯示、修改、刪除等操作的管理。</p><p> 2、功能要求:1)本系統(tǒng)采用一個包含N個數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括:班級、學(xué)號、姓名、語文成績、數(shù)學(xué)成績、英語成績、計算機成績。2)本系統(tǒng)顯示這樣的菜單:</p><p><b> 學(xué)生成績管
11、理系統(tǒng)</b></p><p><b> 1.輸入學(xué)生信息</b></p><p><b> 2.輸出學(xué)生信息</b></p><p><b> 3.排序</b></p><p><b> 4.插入一條記錄</b></p>
12、<p> 5.按姓名查找,刪除一條記錄</p><p> 6.按姓名查找并顯示一個記錄</p><p> 7.按學(xué)號查找并顯示一個記錄</p><p> 8.按姓名查找并修改一條記錄</p><p> 9.從文件中讀入數(shù)據(jù)</p><p> 0.儲存數(shù)據(jù)并退出系統(tǒng)</p><
13、p> 請選擇(0-9): 3)執(zhí)行一個具體的功能之后,程序?qū)⒅匦嘛@示菜單。3、算法提示:</p><p> 數(shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體類型數(shù)組</p><p><b> 2.2數(shù)據(jù)需求</b></p><p> 學(xué)生的班級,學(xué)號,姓名,學(xué)生的數(shù)學(xué)、語文、英語、計算機的成績。</p><p><b>
14、2.3功能需求</b></p><p> 1.選擇錄入成績:分別輸入學(xué)生班級,學(xué)號,姓名,然后輸入各科目的成績,按回車鍵確定輸入。</p><p> 2.選擇顯示成績:將所輸入的所有信息顯示出來。</p><p> 3.選擇排序:對所輸入的信息按學(xué)號排序。如果在錄入成績時不是按學(xué)號順序進行錄入的,則這一步可以使記錄整齊有序。</p>
15、<p> 4.選擇插入記錄:就是在錄入成績后,若有遺漏,則進行追加記錄。</p><p> 5.選擇刪除記錄:先根據(jù)學(xué)生姓名進行查找,若成功,則刪除此學(xué)生的所有信息。</p><p> 6.選擇按姓名查找:以學(xué)生姓名為標(biāo)簽進行查找,若成功,則輸出該學(xué)生的所有信息。</p><p> 7.選擇按學(xué)號查找:以學(xué)生學(xué)號為標(biāo)簽進行查找,若成功,則輸出該學(xué)生
16、的所有信息。</p><p> 8.選擇修改記錄:先根據(jù)學(xué)生姓名進行查找,然后修改該學(xué)生的記錄。</p><p> 9.選擇讀入文件:從電腦上面讀入成績信息文件(若存在的話)。</p><p> 0.選擇存儲并退出:在實現(xiàn)所有功能后,將學(xué)生成績記錄保存到電腦上面并退出運行界面。</p><p><b> 三 算法設(shè)計<
17、/b></p><p> 3.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計</p><p> Struct Student</p><p><b> {</b></p><p> char num[10]; //學(xué)號</p><p> char cla[10]; //班級</p>
18、;<p> char name[20]; //姓名</p><p> char chian[10]; //語文</p><p> char shuxue[20]; //數(shù)學(xué)</p><p> char english[10]; //英語</p><p> char jsj[20]; //計
19、算機</p><p> }; //這是學(xué)生結(jié)構(gòu)體的定義</p><p><b> 3.2主要算法設(shè)計</b></p><p><b> 1>.錄入成績函數(shù)</b></p><p> int Input(Student stud[],int n)
20、//輸入數(shù)據(jù)。</p><p><b> {</b></p><p><b> int i=0;</b></p><p> char sign,x[10];</p><p> for(;sign != 'n' && sign != 'N';)&
21、lt;/p><p><b> {</b></p><p> cout<<setw(15)<<" "<<"班級:";</p><p> cin>>stud[n+i].cla;</p><p> cout<<setw(15
22、)<<" "<<"學(xué)號:";</p><p> cin>>stud[n+i].num;</p><p> cout<<setw(15)<<" "<<"姓名:";</p><p> cin>>stud
23、[n+i].name;</p><p> cout<<setw(15)<<" "<<"語文:";</p><p> cin>>stud[n+i].chian;</p><p> cout<<setw(15)<<" "<<
24、;"數(shù)學(xué):";</p><p> cin>>stud[n+i].shuxue;</p><p> cout<<setw(15)<<" "<<"英語:";</p><p> cin>>stud[n+i].english;</p>
25、<p> cout<<setw(15)<<" "<<"計算機:";</p><p> cin>>stud[n+i].jsj;</p><p><b> gets(x);</b></p><p> cout<<setw(10)&l
26、t;<" ";</p><p> cout<<"還有要輸入的信息嗎?(y/n)";</p><p> cin>>&sign;</p><p><b> i++;</b></p><p><b> }</b><
27、/p><p> return(n+i); </p><p><b> }</b></p><p><b> 2>.輸出記錄函數(shù)</b></p><p> void Display(Student stud[], int n) //輸出數(shù)據(jù)。</p><p>
28、<b> {</b></p><p><b> int i;</b></p><p> cout<< "班級 學(xué)號 姓名 語文 數(shù)學(xué) 英語 計算機"<<endl;</p><p> for(i=1;i<n+1;i++)</p><p><
29、;b> {</b></p><p> printf(stud[i-1].cla,stud[i-1].num,stud[i-1].name,stud[i-1].chian,stud[i-1].shuxue,stud[i-1].english,stud[i-1].jsj);</p><p><b> }</b></p><p&g
30、t;<b> }</b></p><p><b> 3>.刪除記錄函數(shù)</b></p><p> int Delete(Student stud[],int n) //按名字查找信息 刪除信息</p><p><b> {</b></p><p>
31、 char s[20];</p><p> int i=0,j;</p><p><b> cin>>s;</b></p><p> while(strcmp(stud[i].name,s)!=0&&i<n) i++; //查找判斷</p><p><b> if(i
32、==n) </b></p><p><b> {</b></p><p> printf("\t\t\t沒有發(fā)現(xiàn)!\n"); //返回失敗信息</p><p> return(n); </p><p><b> } </b></p><p&
33、gt; for(j=i;j<n-1;j++) //刪除操作</p><p><b> { </b></p><p> strcpy(stud[j].num,stud[j+1].num); </p><p> strcpy(stud[j].name,stud[j+1].name); </p><p> st
34、rcpy(stud[j].cla,stud[j+1].cla);</p><p> strcpy(stud[j].chian,stud[j+1].chian);</p><p> strcpy(stud[j].shuxue,stud[j+1].shuxue);</p><p> strcpy(stud[j].english,stud[j+1].english)
35、; </p><p> strcpy(stud[j].jsj,stud[j+1].jsj);</p><p><b> } </b></p><p> cout<<setw(15)<<" "<<"當(dāng)前信息已刪除成功!"<<endl; </p>
36、;<p> return(n-1); </p><p><b> }</b></p><p> 4>.按姓名查找記錄</p><p> void Query(Student stud[],int n) //按姓名查找</p><p><b> {</b><
37、;/p><p> char s[20];</p><p><b> int i=0;</b></p><p> cout<<setw(15)<<" "<<"輸入他(她)的姓名:";</p><p><b> cin>>s
38、;</b></p><p> while(strcmp(stud[i].name,s)!=0&&i<n) </p><p> i++; //查找判斷</p><p><b> if(i==n) </b></p><p><b> {</b><
39、/p><p> printf("\t\t\t沒有發(fā)現(xiàn)!\n"); //輸入失敗信息</p><p><b> return; </b></p><p><b> } </b></p><p> cout<<setw(15)<<"
40、; "<<"學(xué)號:"<<stud[i].num<<endl;</p><p> cout<<setw(15)<<" "<<"語文:"<<stud[i].chian<<endl;</p><p> cout<<s
41、etw(15)<<" "<<"數(shù)學(xué):"<<stud[i].shuxue<<endl;</p><p> cout<<setw(15)<<" "<<"英語:"<<stud[i].english<<endl;</p>
42、<p> cout<<setw(15)<<" "<<"計算機:"<<stud[i].jsj<<endl;</p><p><b> }</b></p><p> 5>.按學(xué)號查找記錄</p><p> 和按姓名查找記錄類
43、似,不再單獨列出</p><p><b> 6>.修改記錄函數(shù)</b></p><p> int Xiugai(Student stud[],int n) //修改信息</p><p><b> {</b></p><p> n=Delete(stud,n);</p
44、><p> cout<<setw(15)<<" "<<"輸入你要修改的學(xué)生信息"<<endl;</p><p> n=Insert(stud,n);</p><p> cout<<setw(15)<<" "<<"
45、修改完成"<<endl;</p><p> return(n);</p><p><b> }</b></p><p><b> 7>.保存記錄函數(shù)</b></p><p> void WritetoText(Student stud[],int n)
46、 </p><p><b> {</b></p><p><b> int i=0;</b></p><p><b> FILE *fp;</b></p><p> char filename[20];</p><p> cout<<
47、;setw(15)<<" "<<"將記錄寫人文件"<<endl;</p><p> cout<<setw(15)<<" "<<"輸入文件名:";</p><p> cin>>filename;</p><
48、p> fp=fopen(filename,"w");</p><p> fprintf(fp,"%d\n",n); </p><p> for(;i<n;)</p><p><b> {</b></p><p> fprintf(fp,"%-6s%
49、-5s%-5s%-5s%-5s%-5s%-5s\n",stud[i].cla,stud[i].num,stud[i].name,stud[i].chian,stud[i].shuxue,stud[i].english,stud[i].jsj); </p><p><b> i++;</b></p><p><b> }</b><
50、;/p><p> fclose(fp);</p><p><b> }</b></p><p><b> 3.3測試實例設(shè)計</b></p><p><b> 輸入信息:</b></p><p> 錄入信息后進行各種操作測試。</p>
51、<p> 將全部信息顯示出來;</p><p> 將葛恒亮的語文成績進行修改為85,其他的不變。然后在將全部信息顯示出來進行對比。</p><p> 分別按姓名和學(xué)號查找周國盛和蔡軍的信息。</p><p> 將葛恒亮的信息刪除。</p><p> 插入記錄:“班級 0707,學(xué)號 1,姓名 辛波……”。然后進行排序,不
52、然的話,這條記錄是排在最后的,排序是按學(xué)號進行排序的。</p><p> 最后將全部信息保存。</p><p><b> 四 調(diào)試報告</b></p><p> 主要針對程序設(shè)計及軟件開發(fā)的基礎(chǔ)內(nèi)容,強化抽象建模、算法設(shè)計、計算過程規(guī)劃與實施的能力。結(jié)合計算機科學(xué)導(dǎo)論、高級語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)等課程,強化和鞏固專業(yè)理論基礎(chǔ)和掌握編程技巧
53、,為后續(xù)的專業(yè)課程學(xué)習(xí)打下良好的基礎(chǔ)。</p><p> 輸入函數(shù)是將所有記錄通過結(jié)構(gòu)體保存在數(shù)組中的,排序函數(shù)可以將所有記錄根據(jù)學(xué)號從小到大進行排序,這樣可以是記錄更加有序,可觀性增加。最后保存的時候文件名和文件格式是預(yù)先設(shè)置好的。</p><p> 將所有的信息錄入后,將其通過輸出函數(shù)顯示。然后修改第一條記錄,雖然只是修改語文成績,但其他信息還需要重新輸入。因為這是一個變相的修改,
54、事實上是先將記錄刪除,再進行重新的錄入。所以修改之后的記錄是排在最后面的,但是可以通過排序函數(shù)使其重新有序。再進行刪除操作,將第一條記錄刪除。然后插入一條記錄,通過排序使其排在第一個位置,看起來好像是將第一條記錄修改了。事實上修改函數(shù)正是這樣實現(xiàn)的,先刪除再錄入。</p><p><b> 五 自我評價與總結(jié)</b></p><p> 通過本次試驗。我了解一些較為
55、復(fù)雜的函數(shù)及其應(yīng)用,對于編程的嚴(yán)謹(jǐn)性有了深刻的體會。</p><p> 原來編一些小程序的時候,態(tài)度比較隨便,出了錯誤也比較容易改正,但是這次的程序比較復(fù)雜,如果在寫的時候不認真的話,到調(diào)試的時候就會出現(xiàn)很對錯誤,并且由于程序較大,改正的時候也很麻煩,還不如開始的時候就小心一點,這樣調(diào)試起來不會太復(fù)雜,從而會更有效率的完成程序,也起到了鍛煉的作用,同時也端正了學(xué)習(xí)態(tài)度。</p><p>
56、 編程不是一件簡單的事情,同樣的一個問題,可以用不同的方法來解決,同一個程序也可以有很多的不同,你可以用簡單的語句來實現(xiàn)相同的功能,你同樣可以通過不同的功能函數(shù)組合來實現(xiàn)復(fù)雜的功能,你可以把程序越改越簡單,也可以添加更加復(fù)雜的功能,總之,編程是一件具有無限可能的事情,你可以發(fā)揮你自己的能力來自由操作,設(shè)計出屬于你自己的程序。編程同時也是一件非常有成就感的事情,如果你自己完成一個程序,不管它是多么的小,你總會感到非常高興。能在快樂中學(xué)習(xí)
57、知識也是一件不錯的事情。</p><p> 我以后也會努力學(xué)習(xí)編程的,雖然現(xiàn)階段我的能力還有限,解決一些問題往往需要很多時間,但是學(xué)習(xí)本身不是一件容易的事情,是必須付出努力才能得到回報的,不經(jīng)歷風(fēng)雨,怎能見彩虹。今天的努力,終將化為明天的果實,少壯不努力,老大徒傷悲。古人都知道如此,我們更應(yīng)該珍惜眼前的機會,努力學(xué)習(xí),為了以后燦爛的未來,我們應(yīng)該從現(xiàn)在開始努力!最后感謝學(xué)校給的這次課程設(shè)計機會和辛勤工作的老師。
58、</p><p><b> 附錄:</b></p><p><b> 源代碼:</b></p><p> 由于太長所以沒有附過來。</p><p><b> 運行結(jié)果:</b></p><p><b> 截圖</b><
59、;/p><p><b> 輸出所有信息:</b></p><p> 按姓名查找周國盛的信息記錄:</p><p> 按學(xué)號查找蔡軍的信息記錄:</p><p><b> 刪除葛恒亮的記錄:</b></p><p><b> 插入辛波的信息:</b>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計--學(xué)生成績管理
- c++課程設(shè)計--學(xué)生成績管理
- c++課程設(shè)計----學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計----學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)c++課程設(shè)計
- c++課程設(shè)計-學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計---學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計---學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計——學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計--學(xué)生成績管理系統(tǒng)
- c++學(xué)生成績管理系統(tǒng)課程設(shè)計
- c++課程設(shè)計--學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計--- 學(xué)生成績管理系統(tǒng)設(shè)計
- c++課程設(shè)計--學(xué)生成績管理系統(tǒng)設(shè)計與管理
- c語言課程設(shè)計--學(xué)生成績信息管理系統(tǒng)
- c++學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- c++學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- c++學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- c++課程設(shè)計---學(xué)生信息管理系統(tǒng)
- c++課程設(shè)計報告--學(xué)生成績管理系統(tǒng)
評論
0/150
提交評論