面向對象程序設計大作業(yè)參考題目和要求_第1頁
面向對象程序設計大作業(yè)參考題目和要求_第2頁
面向對象程序設計大作業(yè)參考題目和要求_第3頁
面向對象程序設計大作業(yè)參考題目和要求_第4頁
面向對象程序設計大作業(yè)參考題目和要求_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、面向對象程序設計大作業(yè)參考題目1、學生信息管理(1)問題描述學生信息包括:學號,姓名,年齡,性別,出生年月,地址,電話,E-mail等。試設計一學生信息管理系統(tǒng),使之能提供以下功能:系統(tǒng)以菜單方式工作學生信息錄入功能(學生信息用文件保存)-輸入學生信息瀏覽功能輸出查詢、排序功能算法1、按學號查詢2、按姓名查詢學生信息的刪除與修改(可選項)(2)功能要求界面簡單明了;有一定的容錯能力,比如輸入的成績不在0100之間,就提示不合法,要求重新輸入;最好用鏈表的方式實現(xiàn)。(3)算法分析首先,一個學生包括這么多的屬性,應該考慮定義一個結構,其次,我們應該考慮數(shù)據(jù)的存儲形式:是定義一個數(shù)組來存儲,還是定義

2、一個鏈表呢?在這里假如我們以數(shù)組的方式來存儲,當然可以,但是我們知道,假如我們定義一個數(shù)組的話,我們首先必須知道學生人數(shù)大概是多少,以便我們確定數(shù)組的大小,但是題目中沒有給出,而且題目要求中有大量的刪除、插入操作,所以用鏈表的方式比較方便。對于菜單的實現(xiàn),其實也比較簡單,首先我們用printf語句把程序的功能列出來,然后等待用戶輸入而執(zhí)行不同的函數(shù),執(zhí)行完了一個功能后又回到菜單。文件的讀寫操作大家參照書中的有關文件的章節(jié)。2、學生綜合測評系統(tǒng)每個學生的信息為:學號、姓名、性別、家庭住址、聯(lián)系電話、語文、數(shù)學、外語三門單科成績、考試平均成績、考試名次、同學互評分、品德成績、任課教師評分、綜合測評

3、總分、綜合測評名次??荚嚻骄煽儭⑼瑢W互評分、品德成績、任課教師評分分別占綜合測評總分的60%,10%,10%,20%。A、學生信息處理(1) 輸入學生信息、學號、姓名、性別、家庭住址、聯(lián)系電話,按學號以小到大的順序存入文件中。提示:學生信息可先輸入到數(shù)組中,排序后可寫到文件中。(2) 插入(修改)同學信息:提示:先輸入將插入的同學信息,然后再打開源文件并建立新文件,把源文件和輸入的信息合并到新文件中(保持按學號有序)若存在該同學則將新記錄內(nèi)容替換源內(nèi)容,(3) 刪除同學信息:提示:輸入將刪除同學號,讀出該同學信息,要求對此進行確認,以決定是否刪除將刪除后的信息寫到文件中。(4) 瀏覽學生信息

4、:提示:打開文件,顯示該文件的學生信息。B、學生數(shù)據(jù)處理:(1) 按考試科目錄入學生成績并且按公式:考試成績(語文+數(shù)學+外語)/3 計算考試成績,并計算考試名次,提示:先把學生信息讀入數(shù)組,然后按提示輸入每科成績,計算考試成績,求出名次,最后把學生記錄寫入一個文件中。(2) 學生測評數(shù)據(jù)輸入并計算綜合測評總分及名次。提示:綜合測評總分(考試成績)*0.6+(同學互評分)*0.1+品德成績*0.1+任課老師評分*0.2。(3) 學生數(shù)據(jù)管理提示:輸入學號,讀出并顯示該同學信息,輸入新數(shù)據(jù),將改后信息寫入文件(4) 學生數(shù)據(jù)查詢:提示:輸入學號或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來。C、學生

5、綜合信息輸出提示:輸出學生信息到屏幕。3、圖書管理系統(tǒng)主要包括管理圖書的庫存信息、每一本書的借閱信息以及每一個人的借書信息。每一種圖書的庫存信息包括編號、書名、作者、出版社、出版日期、金額、類別、總入庫數(shù)量、當前庫存量、已借出本數(shù)等。每一本被借閱的書都包括如下信息:編號、書名、金額、借書證號、借書日期、到期日期、罰款金額等。每一個人的借書信息包括借書證號、姓名、班級、學號等。系統(tǒng)功能包括以下方面:A、借閱資料管理要求把書籍、期刊、報刊分類管理,這樣的話操作會更加靈活和方便,可以隨時對其相關資料進行添加、刪除、修改、查詢等操作。B、借閱管理 (1) 借出操作 (2) 還書操作 (3) 續(xù)借處理提

6、示:以上處理需要互相配合以及賠、罰款金額的編輯等操作完成圖書借還業(yè)務的各種登記。例如:讀者還書時不僅更新圖書的庫存信息,還應該自動計算該書應罰款金額。并顯示該讀者所有至當日內(nèi)到期未還書信息。C、讀者管理讀者等級:對借閱讀者進行分類處理,例如可分為教師和學生兩類。并定義每類讀者的可借書數(shù)量和相關的借閱時間等信息。 讀者管理:對讀者信息可以錄入,并且可對讀者進行掛失或注銷、查詢等服務的作業(yè)。D、統(tǒng)計分析隨時可以進行統(tǒng)計分析,以便及時了解當前的借閱情況和相關的資料狀態(tài),統(tǒng)計分析包括借閱排行榜、資料狀態(tài)統(tǒng)計和借閱統(tǒng)計、顯示所有至當日內(nèi)到期未還書信息等功能分析。E 系統(tǒng)參數(shù)設置:可以設置相關的罰款金額,

7、最多借閱天數(shù)等系統(tǒng)服務器參數(shù)。4、學校運動會管理系統(tǒng)問題描述: (1) 初始化輸入:N-參賽院系總數(shù),M-男子競賽項目數(shù),W-女子競賽項目數(shù);(2) 各項目名次取法有如下幾種:取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1;(3) 由程序提醒用戶填寫比賽結果,輸入各項目獲獎運動員的信息。(4) 所有信息記錄完畢后,用戶可以查詢各個院系或個人的比賽成績,生成團體總分報表,查看參賽院系信息、獲獎運動員、比賽項目信息等。5、個人通訊錄管理系統(tǒng)建立一通訊錄,輸入姓名、電話號碼、住址等信息,然后對通信簿進行顯示、查找、添加、修改及刪除。功能要求(1) 通訊錄的每一條

8、信息包括姓名、單位、固定電話、移動手機、分類(如同事、朋友、同學、家人等)、EMAIL、QQ等。(2) 輸入功能:可以一次完成若干條信息的輸入。(3) 顯示功能:完成全部通訊錄信息的顯示(一屏最多顯示10條,超過十條應能夠自動分屏顯示)(4) 查找功能:可以按姓名等多種方式查找通訊信息(5) 增加、刪除、修改功能:完成通訊錄信息的多種更新6、教師工資管理系統(tǒng)每個教師的信息為:教師號、姓名、性別、單位名稱、家庭住址、聯(lián)系電話、基本工資、津貼、生活補貼、應發(fā)工資、電話費、水電費、房租、所得稅、衛(wèi)生費、公積金、合計扣款、實發(fā)工資。注:應發(fā)工資=基本工資+津貼+生活補貼;合計扣款=電話費+水電費+房租

9、+所得稅+衛(wèi)生費+公積金;實發(fā)工資=應發(fā)工資 合計扣款。A、教師信息處理(1) 輸入教師信息(2) 插入(修改)教師信息:(3) 刪除教師信息:(4) 瀏覽教師信息:提示:具體功能及操作參考題1。B、教師數(shù)據(jù)處理:(1) 按教師號錄入教師基本工資、津貼、生活補貼、電話費、水電費、房租、所得稅、衛(wèi)生費、公積金等基本數(shù)據(jù)。(2) 教師實發(fā)工資、應發(fā)工資、合計扣款計算。提示:計算規(guī)則如題目。(3) 教師數(shù)據(jù)管理提示:輸入教師號,讀出并顯示該教師信息,輸入新數(shù)據(jù),將改后信息寫入文件(4) 教師數(shù)據(jù)查詢:提示:輸入教師號或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來。(5) 教師綜合信息輸出提示:輸出教師信

10、息到屏幕。7、教師工作量管理系統(tǒng)計算每個老師在一個學期中所教課程的總工作量。(教師單個教學任務的信息為:教師號、姓名、性別、職稱、認教課程、班級、班級數(shù)目、理論課時、實驗課時、單個教學任務總課時)A、教師信息處理(1) 輸入教師授課教學信息,包括教師號、姓名、性別、職稱、認教課程、班級、班級數(shù)目、理論課時、實驗課時。(2) 插入(修改)教師授課教學信息:(3) 刪除教師授課教學信息:(4) 瀏覽教師授課教學信息:B、教師工作量數(shù)據(jù)處理:(1) 計算單個教學任務總課時。計算原則如下表:班級數(shù)目單個教學任務總課時21.5*(理論課時+實驗課時)32*(理論課時+實驗課時)=42.5*(理論課時+實

11、驗課時)(2) 計算一個教師一個學期總的教學工作量??偟慕虒W工作量=所有單個教學任務總課時之和。(3)教師數(shù)據(jù)查詢:提示:輸入教師號或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來。C、教師綜合信息輸出提示:輸出教師信息到屏幕?;疽?、大作業(yè)可采取每人一題,可任選一題進行設計, 至少包含五個功能模塊?;蛘呙拷M完成一個課題,每組成員(不得超過5人)分工合作完成一個大作業(yè),每個人的任務不同。分組情況請于5月17號上報給老師。2、可以選擇老師提供的參考選題,也可以自選,如果自選,需要將自選題目的詳細內(nèi)容以及實現(xiàn)要求提供給老師,老師批準后方可采用。3、要求利用面向對象設計方法以及C+的編程思想來完成系統(tǒng)

12、的設計。4、要求有菜單、文件操作,數(shù)據(jù)使用數(shù)組、結構體、鏈表等均可,鍵盤操作或鼠標操作均可。5、模塊化程序設計:要求在設計的過程中,按功能定義函數(shù)或書寫多個文件,進行模塊化設計,各個功能模塊用函數(shù)的形式來實現(xiàn)。6、所選課題必須上機通過,并獲得滿意的結果。7、程序書寫風格:鋸齒型書寫格式。8、完成大作業(yè)報告書(格式見附錄一)。評價標準大作業(yè)成績評定的依據(jù)有設計文檔資料、具體實現(xiàn)設計方案的程序及大作業(yè)考勤登記表。優(yōu)(90分以上):必須要有一定的創(chuàng)意,有自己獨特的算法。按要求完成課題的全部功能,有完整的符合標準的文檔,文檔有條理、文筆通順,格式正確,其中有總體設計思想的論述,有正確的流程圖,程序完全

13、實現(xiàn)設計方案,設計方案先進,軟件可靠性好;良(80-89分):完成課題規(guī)定的功能,有完整的符合標準的文檔,文檔有條理、文筆通順,格式正確;有完全實現(xiàn)設計方案的軟件,設計方案較先進,無明顯錯誤;中(70-79分):完成課題規(guī)定的功能,有完整的符合標準的文檔,有基本實現(xiàn)設計方案的軟件,設計方案正確,但有少數(shù)失誤;及格:完成課題規(guī)定的大部分功能,有完整的符合標準的文檔,有基本實現(xiàn)設計方案的軟件,設計方案基本正確,個別功能沒有實現(xiàn),但錯誤不多;不及格:沒有完成課題規(guī)定的功能,沒有完整的符合標準的文檔,軟件沒有基本實現(xiàn)設計方案,設計方案不正確。 附錄一:(封面樣式)附件1:學 號: 面向對象程序設計大作

14、業(yè)題 目學生成績管理系統(tǒng)學 院文法學院專 業(yè)教育學班 級教育學1201姓 名指導教師鄢紅國2013年12月20日(正文部分)一、需求分析(標題均為小三號,宋體)(正文均為小四號,宋體,行距1.5倍)(對所選擇題目進行分析,描述問題。簡述課題要解決的問題是什么,有什么要求和限制條件。列出參與人員進行本設計時要達到的具體的目標。)二、總體設計(對設計目標進行總體分析,說明要采用的基本思路,說明遇到的問題和解決方法。說明完成本次大作業(yè)的完整過程。要描述程序的設計思想,畫出本次大作業(yè)完整的程序框圖或流程圖。)三、詳細設計(要求列出所有編寫的函數(shù)清單,說明每個函數(shù)的功能,各形式參數(shù)的意義,畫出各函數(shù)的調(diào)

15、用關系圖。即模塊功能說明(如函數(shù)功能、入口及出口參數(shù)說明,函數(shù)調(diào)用關系描述等)。)四、程序運行結果測試與分析(要針對程序處理的不同情況列出有代表性的輸入和輸出,用足夠多的實例說明程序完成了設計任務和目標。)五、結論與心得(主要說明程序調(diào)試中發(fā)現(xiàn)的問題和解決辦法,包括你在該設計中主要承擔什么任務,在設計中學到了什么,哪里遇到了困難,解決的辦法,可能但因時間關系沒有來得及完成的想法,今后的目標等。)六、致謝#include #include #include #include using namespace std;class Student public: string name; string

16、 ID; int grade; Student(string pName,string pID, int pgrade) name=pName; ID=pID; grade=pgrade; / 顯示學生的信息 void print() cout name t ID t grade endl; ; list lst;/學生鏈表,用于存放學生數(shù)據(jù) void print(list lst)/顯示鏈表中所有的學生 list:iterator it; cout tnametIDtgradeprint(); cout endl; void insertStudent()/插入一個學生 system(cls

17、); cout-請輸入學號IDtID; cout-請輸入姓名:tname; cout-請輸入分數(shù):tgrade; Student stu(tname,tID,tgrade); lst.push_back(stu); list:iterator it; for(it = lst.begin(); it != lst.end(); +it) it-print(); void deleteStudent()/按要求刪除一個學生 system(cls); cout-請輸入要刪除學生的學號ID:tID; bool flag=false; list:iterator it; for(it = lst.be

18、gin(); it != lst.end(); +it) if (it-ID=tID) cout-查找到,該學生信息如下:-print(); lst.erase(it); cout刪除完畢!endl; flag=true; break; if (flag=false) cout未找到!endl; void screenA()/顯示屏幕操作A cout*endl; cout 1-查詢endl; cout 2-插入endl; cout 3-刪除endl; cout 4-顯示endl; cout 5-退出endl; cout*endl; void searchByName()/按名字查找 cout-

19、請輸入姓名:tname; bool flag=false; list:iterator it; for(it = lst.begin(); it != lst.end(); +it) if (it-name=tname) cout-查找到,該學生信息如下:-print(); flag=true; break; if (flag=false) cout未找到!ch) system(cls); switch(ch) case 1: searchByName(); break; case 2:/插入學生 insertStudent(); break; case 3:/刪除學生 deleteStude

20、nt(); break; case 4:/顯示當前信息 cout-當前數(shù)據(jù)列表如下endl; print(lst); break; case 5:/退出 return 0; system(pause);system(cls); screenA(); cout系統(tǒng)退出endl; return 0;附件1:學 號: 面向對象程序設計大作業(yè)題 目學生成績管理系統(tǒng)學 院文法學院專 業(yè)教育學班 級教育學1201姓 名指導教師鄢紅國2013年12月20日 TOC o 1-3 h z u 目 錄一 設計目的.1二 大作業(yè)的內(nèi)容.2三 大作業(yè)的要求與數(shù)據(jù).3四 大作業(yè)應完成的工作.4五 總體設計(包含幾大功能

21、模塊).5六 詳細設計(各功能模塊的具體實現(xiàn)算法流程圖).6七 調(diào)試分析(包含各模塊的測試用例,及測試結果).7八 總結.8十 參考資料.9一 大作業(yè)的目的面向對象程序設計是一門實踐性很強的課程,通過大作業(yè)不僅可以全方位檢驗學生知識掌握程度和綜合能力,而且還可以進一步加深、鞏固所學課程的基本理論知識,理論聯(lián)系實際,進一步培養(yǎng)自己綜合分析問題和解決問題的能力。更好地掌握運用C+語言獨立地編寫、調(diào)試應用程序和進行其它相關設計的技能。二 大作業(yè)的內(nèi)容對學生信息(包括學號、語文、數(shù)學、英語、平均分)進行管理,包括學生成績的信息輸入、輸出、查詢、刪除、排序、統(tǒng)計、退出.將學生的成績信息進行記錄,信息內(nèi)容

22、包含:(1)學生的學號(2)學生的姓名(3)學生的成績。假設,現(xiàn)收集到了一個班學生的所有成績信息,要求用C語言編寫一個簡單的成績管理系統(tǒng),可進行錄入、查詢、修改和瀏覽等功能。學習相關開發(fā)工具和應用軟件,熟悉系統(tǒng)建設過程。三 大作業(yè)的要求與數(shù)據(jù)1、用C語言實現(xiàn)系統(tǒng);2、對學生信息(包括學號、姓名、語文、數(shù)學、英語、平均分)進行管理,包括學生成績的信息輸入、輸出、查詢、刪除、排序、統(tǒng)計、退出.3、學生信息包括:其內(nèi)容較多,為了簡化討論,要求設計的管理系統(tǒng)能夠完成以下功能:(1) 每一條記錄包括一個學生的學號、姓名、3門課成績(2)、成績信息錄入功能:(成績信息用文件保存,可以一次完成若干條記錄的輸

23、入。)(3)、成績信息顯示瀏覽功能:完成全部學生記錄的顯示。(4)、查詢功能:完成按姓名查找學生記錄,并顯示。(5)成績信息的刪除:按學號進行刪除某學生的成績.(6)、排序功能:按學生平均成績進行排序。(7)、應提供一個界面來調(diào)用各個功能,調(diào)用界面和各個功能的操作界面應盡可能清晰美觀!四 大作業(yè)應完成的工作(1)編寫算法;(2)算法測試,并有具體的測試結果和結果分析;(3)撰寫大作業(yè)報告。內(nèi)容包括:封面扉頁設計任務書目錄總體設計方案(包括流程圖)使用說明及運行實例(包括界面)成員設計內(nèi)容簡介項目源程序代碼(注意注釋的使用)指導教師評語五 總體設計(包含幾大功能模塊) 1、成績錄入功能2、成績輸

24、出功能3、成績查詢功能4、刪除模塊 5、排序功能 6、統(tǒng)計功能 7、退出系統(tǒng)六 詳細設計(各功能模塊的具體實現(xiàn)算法流程圖)6.1各函數(shù)的功能和實現(xiàn)1、輸入初始的學生信息:輸入信息包括學生的姓名、學號以及學生的成績等相關信息;可用函數(shù)void input(STUDENT *data, int *len)來實現(xiàn)此操作。 2、成績輸出模塊:輸出學生的信息以及成績void output(STUDENT *data, int len):通過學生的姓名來查看學生的相關成績,同時也可以分別通過caverage()、maverage()、eaverage()和comaverage()來輸出成績的平均分數(shù)、最高

25、和最低分數(shù)。3、成績查詢模塊:可用void find(STUDENT *data, int len)來實現(xiàn)。找到就輸出此學生全部信息。4、刪除模塊:用函數(shù)void delete_item(STUDENT *data, int *len)來實現(xiàn)5、排序模塊:用函數(shù)void sort(STUDENT *data, int len)來實現(xiàn)6、統(tǒng)計功能能:用函數(shù)void stat(STUDENT *data, int len) 來實現(xiàn)7、退出系統(tǒng):可用一個函數(shù)exit()來實現(xiàn),首先將信息保存到文件中,釋放動態(tài)創(chuàng)建的內(nèi)存空間,再退出此程序。 如圖6.1結束開始輸出菜單根據(jù)菜單輸入n的值選擇程序輸入退出

26、輸出保存查找排序統(tǒng)計插入刪除 圖 6.1七 調(diào)試分析(包含各模塊的測試用例,及測試結果) 7.1源程序#include #include #include #define MAXN 35#define MAX_NAME 256typedef struct student /學生信息int no;char nameMAX_NAME;double Chinese;double math;double English;double mark_ave;double mark_tot; STUDENT;/*-輸入信息子程序-*/void input(STUDENT *data, int *len)int

27、 no;putchar(n);printf(%sn, 請輸入新的記錄,如果需要退出當前菜單請輸入-1.);printf(%sn, 格式:n學號n);printf(%sn, 姓名 語文 數(shù)學 英語);putchar(n);printf(如:n);printf(1n);printf(楊江彬 93 95 89n);scanf(%d, &no);while(no != -1) data*len.no = no;scanf(%s %lf %lf %lf, data*, &data*len.Chinese, &data*len.math,&data*len.English);data*le

28、n.mark_ave=(data*len.Chinese+data*len.math+data*len.English)/3.0;data*len.mark_tot=data*len.Chinese+data*len.math+data*len.English;(*len)+;scanf(%d, &no); /*-輸出信息子程序-*/void output(STUDENT *data, int len) int i;system(cls); printf(%8s, 學號); printf(%8s, 姓名); printf(%8s, 語文); printf(%8s, 數(shù)學); printf(%1

29、0s, 英語); printf(%12s, 平均分); printf(%10s, 總分); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); for (i = 0; i len; i+) printf(%8d, datai.no); printf(%8s, ); printf(%8.1lf, datai.Chinese); printf(%8.1lf, datai.math); printf(%10.1lf, datai.English); printf(%12.1lf, datai.mark_ave); pr

30、intf(%10.1lf, datai.mark_tot); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); printf(按回車鍵繼續(xù).); getchar(); getchar();/*-排序子程序-*/void sort(STUDENT *data, int len) int i,j,k; STUDENT temp; for (i=0; ilen-1; i+) for (k=i, j=i+1; j dataj.mark_ave) k=j;if (k != i) temp = datai;datai = datak;data

31、k = temp; /*-搜索子程序-*/void find(STUDENT *data, int len) int find_no, result ; int i;lab: result=0; printf(%sn, 請輸入需要查找的學生的學號,退出當前菜單請輸入 -1.); scanf(%d, &find_no); if (find_no = -1) return; /*exit the fine sub program*/ while( dataresult.no != find_no & result = len ) printf(%sn, 未查詢到相關信息); goto lab; e

32、lse system(cls); printf(%sn, 查詢信息如下:); for (i =0; i 80; i+) putchar(=); putchar(n); printf(%8s, 學號); printf(%8s, 姓名); printf(%8s, 語文); printf(%8s, 數(shù)學); printf(%10s, 英語); printf(%12s, 平均分); printf(%10s, 總分); putchar(n); printf(%8d, dataresult.no); printf(%8s, ); printf(%8.1lf, dataresu

33、lt.Chinese); printf(%8.1lf, dataresult.math); printf(%10.1lf, dataresult.English); printf(%12.1lf, dataresult.mark_ave); printf(%10.1lf, dataresult.mark_tot); putchar(n);for (i =0; i 80; i+) putchar(=); putchar(n); goto lab; /*-插入子程序-*/void insert(STUDENT *data, int *len) int no, pos;double Chinese,

34、 math, English, mark_ave, mark_tot;int i; char nameMAX_NAME;lab: printf(%sn, 輸入新的記錄,退出當前菜單請輸入-1.); printf(%sn, 格式:學號); printf(%sn, 姓名 語文 數(shù)學 英語); scanf(%d, &no); if (no = -1) return; data*len.no = no; scanf(%s %lf %lf %lf, name, &Chinese, &math, &English); mark_ave=(Chinese+math+English)/3.0; mark_to

35、t=Chinese+math+English; pos = 0; while (datapos.mark_ave mark_ave) & (pos = pos; i-) datai+1 = datai; datapos.no = no; strcpy(, name); datapos.Chinese = Chinese; datapos.math = math; datapos.English = English; datapos.mark_ave = mark_ave; datapos.mark_tot = mark_tot; (*len)+; goto lab;/*

36、-刪除子程序-*/void delete_item(STUDENT *data, int *len) int no, i, pos;lab: pos=0; printf(%sn, 輸入需要刪除的學生的學號,退出當前菜單請輸入-1.)scanf(%d, &no); if (no = -1) return; while( (datapos.no != no) & (pos = *len) printf(%sn, 未找到需要刪除的學生); goto lab; else for (i = pos+1;i *len; i+) datai-1 = datai; *len = *len -1; if (*l

37、en = 0) printf(%sn, 沒有任何記錄,請按回車鍵返回.); getchar(); getchar(); return; goto lab; /*-統(tǒng)計子程序-*/void stat(STUDENT *data, int len) int no_59=0, no_69=0, no_79=0, no_89=0, no_100=0; int i; for (i = 0;i len; i+) if (datai.mark_ave =59) no_59+; else if (datai.mark_ave =69) no_69+;else if (datai.mark_ave =79) n

38、o_79+;else if (datai.mark_ave = 89) no_89+;else no_100+; system(cls); for (i =0; i 80; i+) putchar(=);putchar(n); printf(%10s, 分數(shù)); printf(%10s, 0-59); printf(%10s, 60-69); printf(%10s, 70-79); printf(%10s, 80-89); printf(%10s, 90-100);putchar(n); putchar(n); printf(%10s, 學生); printf(%10d, no_59); p

39、rintf(%10d, no_69); printf(%10d, no_79); printf(%10d, no_89); printf(%10d, no_100); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); printf(按回車鍵返回); getchar(); getchar();/*-顯示信息子程序-*/void paint() int i;system(cls); printf(%55sn, 海都學院學生成績管理系統(tǒng)n); printf( 制作者: n); for (i = 0; i 80; i+) putchar(

40、=); putchar(n); printf( 1 輸入信息 2 輸出信息n); printf( 3 按平均分排序 4 按學號查找n); printf( 5 插入 6 按學號刪除n); printf( 7 按平均分輸出統(tǒng)計信息 8 保存到文件n); printf( 0 退出n);for (i = 0; i= 79; i+) putchar(=); putchar(n); printf(%sn, 請輸入各操作對應的序號:);void save(STUDENT *data, int len)/將數(shù)據(jù)保存到文件int i;FILE *fp;fp=fopen(成績統(tǒng)計表.txt,w);fprintf(

41、fp,%8s, 學號); fprintf(fp,%8s, 姓名); fprintf(fp,%8s, 語文); fprintf(fp,%8s, 數(shù)學); fprintf(fp,%10s, 英語); fprintf(fp,%12s, 平均分); fprintf(fp,%10sn, 總分); fprintf(fp,=n); putchar(n); for (i = 0; i len; i+) fprintf(fp,%8d, datai.no); fprintf(fp,%8s, ); fprintf(fp,%8.1lf, datai.Chinese); fprintf(fp,%8.

42、1lf, datai.math); fprintf(fp,%10.1lf, datai.English); fprintf(fp,%12.1lf, datai.mark_ave); fprintf(fp,%10.1lfn, datai.mark_tot); fprintf(fp,=n);fclose(fp);printf(文件已保存到成績統(tǒng)計表.txt);getchar();getchar();/*-主程序-*/void main() STUDENT dataMAXN; int len = 0; char ctrl_ch; paint(); scanf(%c, &ctrl_ch); while

43、 (ctrl_ch != 0) ; case 1:input(data, &len);break;case 2:output(data, len);break;case 3:sort(data, len);break;case 4:find(data, len);break;case 5:insert(data, &len);break;case 6:delete_item(data, &len);break;case 7:stat(data, len);break;case 8:save(data, len);break;default:if (ctrl_ch != n) printf(%s

44、n, 輸入錯誤!);break; if (ctrl_ch != n) paint(); scanf(%c, &ctrl_ch); 7.2調(diào)試與測試 算法調(diào)試過程中出現(xiàn)的問題及解決方法(以下為其中一例)-Configuration: Cpp1 - Win32 Debug-Compiling.Cpp1.cppC:Documents and SettingsAdministrator桌面Cpp1.cpp(9) : error C2065: MAX_MAME : undeclared identifierC:Documents and SettingsAdministrator桌面Cpp1.cpp(9) : error C2057: expected constant expressionC:Documents and SettingsAdministrator桌面Cpp1.cpp(10)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論