C++課程設(shè)計(jì)成績管理系統(tǒng)_第1頁
C++課程設(shè)計(jì)成績管理系統(tǒng)_第2頁
C++課程設(shè)計(jì)成績管理系統(tǒng)_第3頁
C++課程設(shè)計(jì)成績管理系統(tǒng)_第4頁
C++課程設(shè)計(jì)成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、C+程序設(shè)計(jì)課程設(shè)計(jì)說明書題目: 學(xué)生成績管理系統(tǒng) 學(xué)生姓名: 姬和婷 學(xué) 號(hào): 201212030108 院 (系): 理 學(xué) 院 專 業(yè): 信息與計(jì)算科學(xué) 指導(dǎo)教師: 李 勇 2014 年 7 月 3 日陜 西 科 技 大 學(xué)C+程序設(shè)計(jì)課程設(shè)計(jì)任務(wù)書理學(xué)院信息與計(jì)算科學(xué) 專業(yè) 121 班級(jí) 姓名: 姬和婷 學(xué)號(hào): 201212030108.題目: 學(xué)生成績管理系統(tǒng) 課程設(shè)計(jì)從 2014 年 6 月 16日起到 2014 年 7 月 04 日1、課程設(shè)計(jì)的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等):1)設(shè)計(jì)內(nèi)容:制作學(xué)生成績管理系統(tǒng),實(shí)現(xiàn)數(shù)據(jù)錄入、數(shù)據(jù)刪除、數(shù)據(jù)瀏覽以及數(shù)據(jù)查詢等功能

2、。2)課程設(shè)計(jì)的要求:包括系統(tǒng)設(shè)計(jì)要求,開發(fā)環(huán)境要求,技術(shù)文檔要求三部分。系統(tǒng)設(shè)計(jì)要求:a) 學(xué)生成績管理系統(tǒng)中不同使用單位(用戶)的學(xué)生人數(shù)事先無法確定。b) 該學(xué)生成績管理系統(tǒng)要求有學(xué)生成績錄入,查詢,修改,刪除,保存文件。c) 系統(tǒng)使用文字菜單,用戶通過選擇菜單項(xiàng)的編號(hào),實(shí)現(xiàn)系統(tǒng)對子模塊的調(diào)用。也可用windows界面下的菜單欄、彈出式菜單、下拉菜單。d) 每個(gè)班級(jí)每門課程的成績可以從學(xué)生的成績總表提取出子表并存儲(chǔ)成一個(gè)文本文件。該文本文件名由班級(jí)號(hào)和課程名拼音字符串構(gòu)成。輸入班級(jí)號(hào)和課程名字符串后自動(dòng)生成文件名。如班,語文,則文件名為:c1yuwen.txt。 e) 每個(gè)學(xué)生學(xué)習(xí)的課程

3、有語文,英語,數(shù)學(xué),物理,化學(xué),生物。f) 學(xué)生的成績總表結(jié)構(gòu)約定為(學(xué)號(hào),姓名,課程名,平時(shí)成績,期末成績,總評(píng)成績)總評(píng)成績由程序自動(dòng)計(jì)算,總評(píng)成績平時(shí)成績30期末成績70。g) 學(xué)號(hào)是一個(gè)9位整數(shù)構(gòu)成的字符串, 學(xué)號(hào)的編碼規(guī)則:入學(xué)年份+在讀年級(jí)+在讀班級(jí)+班內(nèi)編號(hào);入學(xué)年份用4位整數(shù)構(gòu)成字符串,如2013年入學(xué)則表示為:”2013”;在讀年級(jí)用1位整數(shù)構(gòu)成字符串,如正在1年級(jí)讀書則表示為:”1”;在讀班級(jí)用2位整數(shù)構(gòu)成字符串,如正在1班讀書則表示為:”01”;班內(nèi)編號(hào)用2位整數(shù)構(gòu)成字符串,如在班內(nèi)編號(hào)為23號(hào)則表示為:”23”。開發(fā)環(huán)境要求:軟件環(huán)境:windowsXP/windows

4、 7,Visual C+硬件環(huán)境:計(jì)算機(jī)(Pen4 CPU, 512MRAM,60G以上硬盤,輸入輸出設(shè)備)技術(shù)文檔要求:按軟件工程技術(shù)文檔要求。要求流程圖繪制規(guī)范,模塊功能描述清晰,數(shù)據(jù)字典齊全。2、對課程設(shè)計(jì)成果的要求包括圖表、實(shí)物等硬件要求:1)提交課程設(shè)計(jì)報(bào)告按照系統(tǒng)設(shè)計(jì)要求,用Visual C+設(shè)計(jì)和開發(fā)一個(gè)應(yīng)用程序?qū)W生成績管理系統(tǒng),提交由需求分析;系統(tǒng)設(shè)計(jì)說明(包括主菜單、子菜單、模塊功能簡介、數(shù)據(jù)字典、系統(tǒng)結(jié)構(gòu)圖);系統(tǒng)技術(shù)文檔 (包括系統(tǒng)各模塊主要流程圖,軟件總體測試方案與測試記錄、局部測試方案與測試記錄、軟件調(diào)試和修改記錄、測試結(jié)論、運(yùn)行情況記錄),系統(tǒng)使用說明書,源程序代碼

5、為附錄構(gòu)成的課程設(shè)計(jì)報(bào)告。2)課程設(shè)計(jì)報(bào)告版式要求打印版面要求:A4紙,頁邊距:上2cm,下2cm,左2.5cm、右2cm;字體:正文宋體、小四號(hào);行距:固定值20;頁眉1.5cm ,頁腳1.75cm;頁碼位于頁腳居中打印;奇數(shù)頁頁眉“C+程序設(shè)計(jì)課程設(shè)計(jì)”,偶數(shù)頁頁眉“學(xué)生成績管理系統(tǒng)”,頁眉宋體小5號(hào);段落及層次要求:每節(jié)標(biāo)題以四號(hào)黑體左起打印(段前段后各0.5行),節(jié)下為小節(jié),以小四號(hào)黑體左起打印(段前段后各0.5行)。換行后以小四號(hào)宋體打印正文。節(jié)、小節(jié)分別以1、1.1、1.1.1依次標(biāo)出,空一字符后接各部分的標(biāo)題。當(dāng)論文結(jié)構(gòu)復(fù)雜,小節(jié)以下的標(biāo)題,左起頂格書寫,編號(hào)依次用(1)、(2)

6、順序表示。字體為小四號(hào)宋體。 對條文內(nèi)容采用分行并敘時(shí),其編號(hào)用a)、b)順序表示,如果編號(hào)及其后內(nèi)容新起一個(gè)段落,則編號(hào)前空兩個(gè)中文字符。3)設(shè)計(jì)報(bào)告裝訂順序與規(guī)范封面-C+程序設(shè)計(jì)課程設(shè)計(jì)任務(wù)書-目錄-C+程序設(shè)計(jì)設(shè)計(jì)課程設(shè)計(jì)報(bào)告正文-設(shè)計(jì)體會(huì)及今后的改進(jìn)意見-參考文獻(xiàn)(資料)。要求左邊緣裝訂3、課程設(shè)計(jì)工作進(jìn)度計(jì)劃:時(shí)間設(shè)計(jì)任務(wù)及要求第17周需求分析、功能分解并深入學(xué)習(xí)動(dòng)態(tài)鏈表知識(shí)第18周編寫程序代碼(教師指導(dǎo)1周)第19周調(diào)試、完善、測試程序,完成課程設(shè)計(jì)報(bào)告 目 錄1 設(shè)計(jì)背景及要求11.1 設(shè)計(jì)背景11.2 設(shè)計(jì)要求11.3 開發(fā)環(huán)境要求12 系統(tǒng)文檔設(shè)計(jì)說明22.1 設(shè)計(jì)思想22

7、.2 菜單界面設(shè)計(jì)22.3 模塊功能簡介22.4 數(shù)據(jù)字典23 系統(tǒng)技術(shù)文檔說明33.1 系統(tǒng)學(xué)生成績的總表結(jié)構(gòu)33.2 系統(tǒng)各模塊主要流程圖33.3 軟件測試方案與測試記錄63.4 使用說明114 設(shè)計(jì)體會(huì)及改進(jìn)意見11參 考 文 獻(xiàn)12附 錄141 設(shè)計(jì)背景及要求1.1 設(shè)計(jì)背景鏈表是一種重要的數(shù)據(jù)結(jié)構(gòu),在一些軟件設(shè)計(jì)中會(huì)用到這方面的知識(shí)。鏈表是動(dòng)態(tài)地進(jìn)行存儲(chǔ)分配的一種結(jié)構(gòu)。用數(shù)組存放數(shù)據(jù)時(shí),必須事先定義固定的長度(即元素個(gè)數(shù))。比如,有的班級(jí)有100人,而有的班級(jí)只有30人,如果要用同一數(shù)組先后存放不同班級(jí)的學(xué)生數(shù)據(jù),則必須定義長度為100的數(shù)組。如果事先難以確定一個(gè)班的最多人數(shù),則必須

8、把數(shù)組定義的足夠大,以便能存放任何班級(jí)的學(xué)生數(shù)據(jù)。顯然這會(huì)浪費(fèi)內(nèi)存。鏈表則沒有這種缺點(diǎn),它根據(jù)需要開辟內(nèi)存單元。如圖1-1所示表示最簡單的一種鏈表(單向鏈表)的結(jié)構(gòu)。A1356 B1475 C1021 DNULL1356147510211249 head1249圖1-1單向鏈表 鏈表有一個(gè)頭指針變量,圖中以head表示,它存放一個(gè)地址。該地址指向一個(gè)元素。鏈表中每一個(gè)元素稱為結(jié)點(diǎn),每個(gè)結(jié)點(diǎn)都應(yīng)包含兩個(gè)部分:1>用戶所需要的用到的實(shí)際數(shù)據(jù);2>下一個(gè)結(jié)點(diǎn)的地址。可以看出,head指向第一個(gè)元素,第一個(gè)元素指向第二個(gè)元素直到最后一個(gè)元素,該元素不再指向其他元素,它稱為表尾,它的地址部分

9、放一個(gè)NULL(表示空地址),鏈表到此結(jié)束。1.2 設(shè)計(jì)要求學(xué)生成績管理系統(tǒng)能方便用戶迅速、準(zhǔn)確處理學(xué)生的成績,得到想要的數(shù)據(jù)并能將學(xué)生的信息以文檔保存。本文介紹了簡易學(xué)生成績管理系統(tǒng)在Microsoft Visual C+ 6.0環(huán)境下的設(shè)計(jì)要求:學(xué)生成績管理系統(tǒng)中不同使用單位(用戶)的學(xué)生人數(shù)事先無法確定;系統(tǒng)使用文字菜單,用戶通過選擇菜單項(xiàng)的編號(hào),實(shí)現(xiàn)系統(tǒng)對子模塊的調(diào)用;系統(tǒng)的分析,功能模塊的設(shè)計(jì),系統(tǒng)的調(diào)試和測試。此系統(tǒng)的主要管理的信息有:學(xué)生的學(xué)號(hào),姓名和六門課的成績。本系統(tǒng)的主要功能有學(xué)生成績的錄入、顯示、查詢、刪除、修改,可以根據(jù)用戶的要求按姓名,學(xué)號(hào)查詢學(xué)生的成績信息,計(jì)算每位

10、學(xué)生的總分。1.3 開發(fā)環(huán)境要求軟件環(huán)境:windowsXP/windows 7,Visual C+硬件環(huán)境:計(jì)算機(jī)(Pen4 CPU, 512MRAM,60G以上硬盤,輸入輸出設(shè)備)2 系統(tǒng)文檔設(shè)計(jì)說明2.1 設(shè)計(jì)思想鏈表中各個(gè)元素在內(nèi)存中可以不是連續(xù)存放的。要找某一個(gè)元素,必須先找到上一個(gè)元素,根據(jù)它提供的下一個(gè)元素地址才能找到下一個(gè)元素。如果不提供頭指針,則整個(gè)鏈表都無法訪問。鏈表如同一條鐵鏈一樣,一環(huán)扣一環(huán),中間是不能斷開的。可見,鏈表的數(shù)據(jù)結(jié)構(gòu)必須利用指針變量才能實(shí)現(xiàn)。即:一個(gè)結(jié)點(diǎn)中應(yīng)包含一個(gè)指針變量,用它存放下一個(gè)節(jié)點(diǎn)的地址。用結(jié)構(gòu)體變量或類對象鏈表中的結(jié)點(diǎn)是最適合的。2.2 菜單

11、界面設(shè)計(jì)在菜單界面中包括“錄入學(xué)生成績、顯示學(xué)生成績、查詢學(xué)生成績、刪除學(xué)生成績、修改學(xué)生成績、安全退出系統(tǒng)”等全部的功能,這樣設(shè)計(jì)的原因:一是能使用戶對程序操作的流程更加清楚簡明,二是保證了用戶同時(shí)只能對一個(gè)文件進(jìn)行操作的系統(tǒng)要求,保證了系統(tǒng)不會(huì)發(fā)生打開文件紊亂或者出現(xiàn)致命錯(cuò)誤。2.3 模塊功能簡介學(xué)生成績管理信息系統(tǒng)包括7個(gè)模塊:錄入學(xué)生成績,顯示學(xué)生成績,查詢學(xué)生成績,刪除學(xué)生成績,修改學(xué)生成績,保存學(xué)生成績以及安全退出程序。a) 錄入學(xué)生成績:包括每個(gè)學(xué)生的學(xué)號(hào),姓名,各科課程成績,各科的平時(shí)成績,期末成績以及總評(píng)成績。b) 顯示學(xué)生成績:可以顯示學(xué)生的所有基本信息。c) 查詢學(xué)生成績

12、:按照學(xué)號(hào)可以任意查詢某個(gè)學(xué)生的所有基本信息。d) 刪除學(xué)生成績:可以根據(jù)學(xué)生姓名、學(xué)號(hào),對指定學(xué)生信息進(jìn)行刪除。e) 修改學(xué)生成績:根據(jù)學(xué)生姓名、學(xué)號(hào),修改指定學(xué)生的信息,可以隨時(shí)改正錯(cuò)誤與更新信息。f) 保存學(xué)生成績:可以存儲(chǔ)所有學(xué)生的信息。2.4 數(shù)據(jù)字典 程序中的數(shù)據(jù)字典如表2-1所示:表2-1 數(shù)據(jù)字典含義numchar學(xué)生學(xué)號(hào)namechar學(xué)生姓名Studentclass學(xué)生信息()_usualint每門課程的平時(shí)成績()_scoreint每門課程的卷面成績Totalfloat總評(píng)成績 3 系統(tǒng)技術(shù)文檔說明3.1 系統(tǒng)學(xué)生成績的總表結(jié)構(gòu)系統(tǒng)學(xué)生成績的總表結(jié)構(gòu)如圖3-1所示:主菜單

13、錄入成績顯示成績查詢成績刪除成績修改成績保存成績退出系統(tǒng)圖3-1 學(xué)生成績的總表結(jié)構(gòu)3.2 系統(tǒng)各模塊主要流程圖1)錄入成績流程圖根據(jù)系統(tǒng)提示,選擇1錄入學(xué)生信息,輸入一個(gè)學(xué)生成績后,按任意鍵錄入完成,輸出成績。錄入成績流程圖如圖3-2所示:選擇1錄入成績選項(xiàng)按任意字符錄入完成根據(jù)系統(tǒng)提示輸入學(xué)生信息根據(jù)系統(tǒng)提示輸入學(xué)生信息開始結(jié)束輸出成績圖3-2 錄入成績流程圖2)顯示成績流程圖選擇2顯示成績選項(xiàng)系統(tǒng)顯示已輸入的學(xué)生信息按任意字符顯示完成結(jié)束輸出成績開始根據(jù)系統(tǒng)提示,選擇2顯示學(xué)生成績,系統(tǒng)輸出成績。顯示成績流程圖如圖3-3所示:圖3-3 顯示成績流程圖3)查詢成績流程圖根據(jù)系統(tǒng)提示,選擇3

14、查詢學(xué)生信息,然后選擇查詢方式:按姓名or學(xué)號(hào)查找,系統(tǒng)將會(huì)顯示所查詢學(xué)生的信息,按任意鍵查詢完成,輸出成績。查詢成績流程圖如圖3-4所示:選擇3查詢成績選項(xiàng)根據(jù)系統(tǒng)提示選擇按學(xué)生姓名or學(xué)號(hào)查找系統(tǒng)顯示所查詢的學(xué)生成績按任意字符查詢完成結(jié)束輸入學(xué)生姓名or學(xué)號(hào)開始輸出成績圖3-4 查詢成績流程圖4)刪除成績流程圖選擇4刪除成績選項(xiàng)開始結(jié)束根據(jù)系統(tǒng)提示輸入要?jiǎng)h除的學(xué)生姓名輸出刪除成功根據(jù)系統(tǒng)提示,選擇4刪除學(xué)生信息,然后輸入所要?jiǎng)h除的學(xué)生姓名,輸出刪除成功。刪除成績流程圖如圖3-5所示:圖3-5 刪除成績流程圖5)修改成績流程圖根據(jù)系統(tǒng)提示,選擇5刪除學(xué)生信息,然后輸入所要修改的學(xué)生姓名,提示

15、已找到該學(xué)生的信息,輸入所修改學(xué)的新的信息,輸出修改成功。修改成績流程圖如圖3-6所示:選擇5刪除成績選項(xiàng)系統(tǒng)提示已找到該學(xué)生信息,請輸入新的信息!按任意字符繼續(xù)結(jié)束輸入要修改的學(xué)生的信息根據(jù)系統(tǒng)提示輸入要修改的學(xué)生姓名開始輸出修改成功圖3-6 刪除成績流程圖3.3 軟件測試方案與測試記錄1)首界面根據(jù)界面提示,運(yùn)行程序結(jié)果如圖3-7所示:圖3-7 首界面按任意鍵運(yùn)行程序結(jié)果如圖3-8所示:圖3-8 菜單界面2)錄入學(xué)生成績界面根據(jù)系統(tǒng)提示,選擇1輸入學(xué)生信息,輸入完一個(gè)學(xué)生成績后,按任意鍵返回主菜單,繼續(xù)選擇1進(jìn)行輸入下一個(gè)學(xué)生成績,循環(huán)上述直至輸入所有學(xué)生信息。運(yùn)行結(jié)果如圖3-9、3-10

16、所示:圖3-9 錄入學(xué)生成績界面圖3-10 錄入學(xué)生成績界面3)顯示學(xué)生成績界面根據(jù)系統(tǒng)提示,選擇2顯示學(xué)生信息,運(yùn)行結(jié)果如圖3-11、3-12所示: 圖3-11 顯示學(xué)生成績界面圖3-12 顯示學(xué)生成績界面4)查詢學(xué)生成績界面根據(jù)系統(tǒng)提示,選擇3查詢學(xué)生信息,然后選擇查詢方式:按姓名or學(xué)號(hào)查找,系統(tǒng)將會(huì)顯示所查詢學(xué)生的信息,按任意鍵返回主菜單,運(yùn)行結(jié)果如圖3-13、3-14所示:圖3-13 查詢學(xué)生成績界面圖3-14 查詢學(xué)生成績界面5)刪除學(xué)生成績界面根據(jù)系統(tǒng)提示,選擇4刪除學(xué)生信息,然后輸入所要?jiǎng)h除的學(xué)生姓名,提示刪除成功,按任意鍵返回主菜單,運(yùn)行結(jié)果如圖3-15所示:圖3-15 刪除

17、學(xué)生成績界面6)修改學(xué)生成績界面根據(jù)系統(tǒng)提示,選擇5刪除學(xué)生信息,然后輸入所要修改的學(xué)生姓名,提示已找到該學(xué)生的信息,輸入所修改學(xué)的新的信息,修改成功按任意鍵返回主菜單,運(yùn)行結(jié)果如圖3-16所示:圖3-16 修改學(xué)生成績界面7)保存學(xué)生成績界面、安全退出系統(tǒng)界面根據(jù)系統(tǒng)提示,選擇6直接保存學(xué)生成績;選擇0,菜單界面消失。3.4 使用說明先進(jìn)入到運(yùn)行界面,會(huì)顯示菜單界面。此界面有7個(gè)選項(xiàng),每個(gè)對應(yīng)的選項(xiàng)可以進(jìn)行相應(yīng)的學(xué)生信息管理的操作,選擇輸入的話就可以在數(shù)據(jù)中錄入學(xué)生的成績信息;選擇查詢就可將對應(yīng)的學(xué)生信息顯示出來;選擇修改就可以對學(xué)生的信息進(jìn)行修改;選擇刪除,就可以在數(shù)據(jù)中將此學(xué)生的信息刪除

18、掉。選擇退的話,就可以退出學(xué)生成績信息管理系統(tǒng)。4 設(shè)計(jì)體會(huì)及改進(jìn)意見通過一個(gè)多星期的C+語言課程設(shè)計(jì),感覺自己收獲頗多。首先,鏈表知識(shí)老師上課沒有教學(xué),但課程設(shè)計(jì)其中一種方法主要是用鏈表,因?yàn)橐O(shè)計(jì)所要求達(dá)到的功能,使用鏈表相當(dāng)方便,但不怎么容易理解,所以在這方面我很了很多的時(shí)間看課本和參考課外書,使C+語言的知識(shí)強(qiáng)化了不少。其次,在做課程設(shè)計(jì)的過程中,發(fā)現(xiàn)了平時(shí)很多沒有注意到的問題。例如:返回值函數(shù)和不返回值函數(shù)兩者在主函數(shù)中的調(diào)用是不同的。更重要的是,這次課程設(shè)計(jì)雖然花了不少時(shí)間,但正是這些時(shí)間,讓我見識(shí)到了C+語言的重要性。這個(gè)學(xué)生成績管理系統(tǒng)是在自己知識(shí)范圍內(nèi)完成的,在具體操作中對這

19、學(xué)期所學(xué)的C+語言的理論知識(shí)得到鞏固。通過實(shí)際操作,學(xué)會(huì) C+語言程序編程的基本步驟、基本方法,開發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問題、解決問題的能力。由于在開始設(shè)計(jì)的時(shí)候思路不時(shí)很清晰,對于一些問題不能很好的提出解決問題的方法,在設(shè)計(jì)過程中,代碼總是重復(fù)的修改。相信在以后的學(xué)習(xí)中,會(huì)不斷加強(qiáng)自己分析問題的能力。參 考 文 獻(xiàn)1譚浩強(qiáng).C+程序設(shè)計(jì)M北京:清華大學(xué)出版社,2004,6.2譚浩強(qiáng).C+程序設(shè)計(jì)解題與上機(jī)指導(dǎo)M北京:清華大學(xué)出版社,2005,3.附 錄# include <iostream># include <fstream># include <

20、string.h>#include <conio.h>/用getch()using namespace std;class Student/定義Student類public:char name20;char num10;int Chinese_score, Chinese_usual;int Math_score, Math_usual;int English_score, English_usual;int Phsics_score, Phsics_usual; int Chemsitry_score, Chemsitry_usual; int Biology_score,

21、 Biology_usual;int usual;/平時(shí)成績int final;/期末成績float Total;/總評(píng)成績Student *Next;void Input()/定義錄入成績的函數(shù)cout<<"請輸入學(xué)生姓名:" cin>>name; cout<<"請輸入學(xué)生學(xué)號(hào):" cin>>num; cout<<"請輸入語文成績:" cin>>Chinese_score; cout<<"請輸入語文平時(shí)成績:" cin>&g

22、t;Chinese_usual; cout<<"請輸入數(shù)學(xué)成績:" cin>>Math_score; cout<<"請輸入數(shù)學(xué)平時(shí)成績:" cin>>Math_usual; cout<<"請輸入英語成績:" cin>>English_score; cout<<"請輸入英語平時(shí)成績:" cin>>English_usual; cout<<"請輸入物理成績:" cin>>Phsic

23、s_score; cout<<"請輸入物理平時(shí)成績:" cin>>Phsics_usual; cout<<"請輸入化學(xué)成績:" cin>>Chemsitry_score; cout<<"請輸入化學(xué)平時(shí)成績:" cin>>Chemsitry_usual; cout<<"請輸入生物成績:" cin>>Biology_score; cout<<"請輸入生物平時(shí)成績:" cin>>Bi

24、ology_usual;usual=Chinese_usual+Math_usual+English_usual+Phsics_usual+Chemsitry_usual+Biology_usual;final=Chinese_score+Math_score+English_score+Phsics_score+Chemsitry_score+Biology_score; Total=usual*0.3+final*0.7;void Show()/定義顯示成績的函數(shù) cout<<"姓名:"<<name<<endl; cout<&l

25、t;"學(xué)號(hào):"<<num<<endl; cout<<"語文:"<<Chinese_score<<endl; cout<<"語文平時(shí)成績:"<<Chinese_usual<<endl; cout<<"數(shù)學(xué):"<<Math_score<<endl; cout<<"數(shù)學(xué)平時(shí)成績:"<<English_usual<<endl; cout&

26、lt;<"英語:"<<English_score<<endl; cout<<"英語平時(shí)成績:"<<English_usual<<endl; cout<<"物理:"<<Phsics_score<<endl; cout<<"物理平時(shí)成績:"<<Phsics_usual<<endl; cout<<"化學(xué):"<<Chemsitry_score&

27、lt;<endl; cout<<"化學(xué)平時(shí)成績:"<<Chemsitry_usual<<endl; cout<<"生物:"<<Biology_score<<endl; cout<<"生物平時(shí)成績:"<<Biology_usual<<endl; cout<<"平時(shí)成績:"<<usual<<endl; cout<<"期末成績:"<&l

28、t;final<<endl; cout<<"總評(píng)成績:"<<Total<<endl;void ReadFile(istream & in)in>>name>>num>>Chinese_score>>Math_score>>English_score>>Phsics_score>>Chemsitry_score>>Biology_score>>usual>>final>>Total;clas

29、s Studentmassage/定義Studentmassage類public:Studentmassage();/聲明構(gòu)造函數(shù) Studentmassage();/聲明析構(gòu)函數(shù) void ShowMenu();/菜單 void Find();/聲明查詢成績的函數(shù) void alter();/聲明修改成績的函數(shù) void del();/聲明刪除成績的函數(shù) void Save();/聲明保存成績的函數(shù) void Display()/定義顯示成績的函數(shù)for(Student * p=Head->Next;p!=End;p=p->Next)p->Show();cout<&l

30、t;"輸入任意字符 繼續(xù)"getch();void AddItem()/定義錄入成績的函數(shù)End->Input(); End->Next=new Student; End=End->Next; cout<<"添加成功!"<<endl; cout<<"輸入任意字符繼續(xù)" getch();private:Student * Head,* End; ifstream in; ofstream out; Student *FindItem(char *name)for(Student *

31、p=Head;p->Next!=End;p=p->Next)/匹配成功則返回上一個(gè)指針,不成功則返回空指針if(!strcmp(p->Next->name,name)return p;return NULL;Student *FindNUM(char *num)for(Student * p=Head;p->Next!=End;p=p->Next)/匹配成功則返回上一個(gè)指針,不成功則返回空指針if(!strcmp(p->Next->num,num)return p;return NULL;Studentmassage:Studentmassage

32、()/定義構(gòu)造函數(shù) Head=new Student; Head->Next=new Student; End=Head->Next; if(in) cout<<"這是一個(gè)新系統(tǒng),無學(xué)生信息。請先輸入:"<<endl; else while(!in.eof() End->ReadFile(in); if(End->name0='0')break; End->Next=new Student; End=End->Next; in.close(); cout<<"讀取學(xué)生信息成功!

33、"<<endl; Studentmassage:Studentmassage()/定義析構(gòu)函數(shù) Save(); for(Student *temp;Head->Next!=End;) temp=Head->Next; Head->Next=Head->Next->Next; delete temp; delete Head,End;void Studentmassage:ShowMenu()/菜單 cout<<" 學(xué) 生 成 績 管 理 系 統(tǒng) "<<endl; cout<<"

34、 "<<endl; cout<<" 1.錄入學(xué)生成績 "<<endl; cout<<" 2.顯示學(xué)生成績 "<<endl; cout<<" 3.查詢學(xué)生成績 "<<endl; cout<<" 4.刪除學(xué)生成績 "<<endl; cout<<" 5.修改學(xué)生信息 "<<endl;cout<<" 6.保存學(xué)生信息 "<&l

35、t;endl; cout<<" 0.安全退出系統(tǒng) "<<endl; cout<<"nttntt請選擇:"void Studentmassage:Find()/定義查詢成績函數(shù)char name20; char num10;int x; Student *p=NULL; cout<<"ntt*n" cout<<"tt1.按學(xué)生姓名查找ntt2.按學(xué)生學(xué)號(hào)查找" cout<<"ntt*n請選擇:" cin>>x; s

36、witch(x)case 1:cout<<"tt請輸入要查找的學(xué)生的姓名:"cin>>name;if(p=FindItem(name)p->Next->Show();cout<<"輸入任意字符繼續(xù)"getch();elsecout<<"tt沒有找到該姓名的學(xué)生 "<<'n'<<endl;cout<<"輸入任意字符繼續(xù)"getch(); break;case 2:cout<<"tt請輸

37、入要查找的學(xué)生的學(xué)號(hào):"cin>>num;if(p=FindNUM(num)p->Next->Show();cout<<"輸入任意字符繼續(xù)"getch();elsecout<<"tt沒有找到該學(xué)號(hào)的學(xué)生 "<<'n'<<endl;cout<<"輸入任意字符繼續(xù)"getch();break;void Studentmassage:alter()/定義修改成績的函數(shù)char name20; Student *p=NULL; cou

38、t<<"tt請輸入要修改的人的姓名:"cin>>name;if(p=FindItem(name)cout<<"tt已找到該學(xué)生的信息,請輸入新的信息!"<<endl;p->Next->Input();cout<<"修改成功!"<<endl;cout<<"輸入任意字符繼續(xù)"getch();elsecout<<"tt沒有找到!"<<endl;cout<<"輸入

39、任意字符繼續(xù)"getch();void Studentmassage:del()/定義刪除成績的函數(shù)char name20; Student *p=NULL,*temp=NULL; cout<<"tt請輸入要?jiǎng)h除的學(xué)生的姓名:"<<endl;cin>>name; if(p=FindItem(name)temp=p->Next; p->Next=p->Next->Next; delete temp; cout<<"tt刪除成功!"<<endl; cout<&

40、lt;"輸入任意字符繼續(xù)" getch();elsecout<<"tt沒有找 !"<<endl; cout<<"輸入任意字符 繼續(xù)" getch();void Studentmassage:Save()/定義保存函數(shù)for(Student *p=Head->Next;p!=End;p=p->Next)out<<p->name<<"t"<<p->num<<"t"<<p->C

41、hinese_score<<"t"<< Chinese_usual<<"t"<<p->Math_score<<"t"<<p->Math_usual<<"t"<<p->English_score<<"t"<<p->English_usual<<"t"<<p->Phsics_score<<&quo

42、t;t"<<p->Phsics_usual<<"t"<<p->Chemsitry_score<<"t"<<p->Chemsitry_usual<<"t"<<p->Biology_score<<"t"<<p->Biology_usual<<"t"<<p->usual<<"t"<<

43、p->final<<p->Total<<'n'out.close();int main()int x,i=0; bool quit=false; cout<<"tt§§§§§§§§§§§§§§§§§§§§§§§§§§"<<endl; for(i

44、=0;i<3;i+)cout<<"tttttttt "<<endl; cout<<"tt【 歡迎進(jìn)入學(xué)生成績管理系統(tǒng) 】"<<endl;for(i=0;i<3;i+)cout<<"tttttttt "<<endl;cout<<"tt§§§§§§§§§§§§§§§§§

45、;§§§§§§§§§n"<<endl;Studentmassage Grade;cout<<"按任意鍵開始"getch();while(!quit)system("cls");Grade.ShowMenu();cin>>x;switch(x)case 0:quit=true;break;case 1:Grade.AddItem();break;case 2:Grade.Display();break;case 3:Gra

46、de.Find();break;case 4:Grade.del();break;case 5:Grade.alter();break; case 6:Grade.Save();break;return 0;附錄#include<iostream> #include<fstream> #include<string> #include<ctime> #include<iomanip> #define NULL 0 using namespace std; int n;/定義全局變量n用來確定學(xué)生的人數(shù) struct student /

47、定義一個(gè)學(xué)生信息結(jié)構(gòu)體 char class_020; string num; /學(xué)生的學(xué)號(hào)用九位字符表示,為使用方便用string類 char name20; string subject6; float average6; float final_score6; student *next; stud100; /各個(gè)模塊函數(shù) char filename20; void meun(int m); /菜單函數(shù) student *creat() ; / 創(chuàng)建鏈表函數(shù) void print(student *head); / 輸出鏈表函數(shù) void search(student *head); /

48、 查找信息函數(shù) void Insert(struct student *head);/插入信息函數(shù) student *del(student *head,string num) ; void update(struct student *head) ;/修改信息函數(shù) void Dele(student *head); / 刪除信息函數(shù) /文件操作的兩個(gè)函數(shù) void save() ; /保存函數(shù) void read(); /讀入函數(shù) /菜單函數(shù) void meun(int m) static student *head; switch(m) case 1: head=creat();print

49、(head);break; case 2: Insert(head);break; case 3: search(head);break; case 4: update(head);break; case 5: Dele(head);break; case 6: save();break; void meun1() int m; char c; do cout<<"*"<<endl; cout<<"*制作人:陜西科技大學(xué) 理學(xué)院 信息122 李萍*"<<endl; cout<<"* 歡

50、迎來到學(xué)生成績管理系統(tǒng) *"<<endl; cout<<"* 1 創(chuàng)建學(xué)生信息 *"<<endl; cout<<"* 2 插入學(xué)生信息 *"<<endl; cout<<"* 3 查找學(xué)生信息 *"<<endl; cout<<"* 4 修改學(xué)生信息 *"<<endl; cout<<"* 5 刪除學(xué)生信息 *"<<endl; cout<<"

51、;* 6 保存學(xué)生信息 *"<<endl; cout<<"*"<<endl; cout<<"*"<<endl; cout<<"請輸入您想完成的操作:" cin>>m; meun(m); cout<<"你要繼續(xù)操作嗎?(Y/N):"<<endl; cin>>c; system("cls"); while(c='Y'); if(c='N')

52、 cout<<endl; cout<<"-"<<endl; cout<<"=>> 陜西科技大學(xué)學(xué)生成績管理系統(tǒng) <<="<<endl; /*結(jié)束程序*/ cout<<" * 陜 西 科 技 大 學(xué) *"<<endl; cout<<" * 理 學(xué) 院 *"<<endl; cout<<" * 信 息 122 班 *"<<endl; cout<

53、;<" * 2 0 1 2 1 2 0 3 0 2 0 2 *"<<endl; cout<<" * 衷 心 感 謝 您 的 使 用 *"<<endl; cout<<"=>> 陜西科技大學(xué)生成績管理系統(tǒng) <<="<<endl; cout<<"-"<<endl; /主函數(shù)入口 int main() system("cls"); time_t t; time(&t); /密碼設(shè)置

54、cout<<"*歡迎進(jìn)入陜西科技大學(xué)學(xué)生管理系統(tǒng)*n"<<endl << " 當(dāng)前系統(tǒng)時(shí)間是: " << ctime(&t)<<endl; cout<<" 進(jìn)入該系統(tǒng)設(shè)有密碼,只有三次機(jī)會(huì)! n"<<endl; cout<<" 溫馨向您提示,登錄密碼為 567890 n"<<endl; cout<<" 請您輸入密碼: " string str;int i=1; cin&

55、gt;>str; if(str="567890") cin.get(); cout<<"文件路徑與文件名?格式應(yīng)為:盤符:文件名.txt"<<endl; cin>>filename; meun1(); else for(i=1;i<=2;i+) cout<<i<<"次密碼錯(cuò)誤,請重新輸入密碼!"<<endl; cin>>str; if(i=2) cout<<"您無權(quán)使用本系統(tǒng)!"<<endl; r

56、eturn 0; /建立動(dòng)態(tài)鏈表 student *creat() int i; student *head,*p1,*p2; n=0; p1=p2=new student; cout<<"輸入學(xué)生學(xué)號(hào)和成績(要結(jié)束學(xué)號(hào)輸入000000000):"<<endl; cout<<"請輸入第"<<n+1<<"個(gè)學(xué)生的信息:"<<endl; cout<<"學(xué)號(hào):" cin>>p1->num; cout<<"

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論