版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、c+語(yǔ)言程序設(shè)計(jì)課題設(shè)計(jì)報(bào)告課題名稱: 學(xué)生信息查詢系統(tǒng) 專業(yè): 電子信息工程 班級(jí): 2班 姓名: 學(xué)號(hào): 指導(dǎo)老師: 日期: 2011-05-06 仰恩大學(xué)計(jì)算機(jī)系一、 課程序設(shè)計(jì)目的(根據(jù)情況寫)(1) 了解面向?qū)ο蟪绦蛟O(shè)計(jì)與結(jié)構(gòu)化程序設(shè)計(jì)的內(nèi)在差別;(2) 了解類和對(duì)象的概念,學(xué)會(huì)對(duì)數(shù)據(jù)進(jìn)行封裝處理,靈活應(yīng)用類的繼承關(guān)系,學(xué)會(huì)用構(gòu)造函數(shù)來(lái)進(jìn)行對(duì)象的初始化工作,通過(guò)重載構(gòu)造函數(shù)來(lái)對(duì)對(duì)象進(jìn)行更為深入的數(shù)據(jù)初始化,用析構(gòu)函數(shù)來(lái)清理和釋放對(duì)象所占用的系統(tǒng)資源;(3) 通過(guò)對(duì)象指針來(lái)訪問(wèn)對(duì)象,從而完成對(duì)對(duì)象數(shù)據(jù)的調(diào)用與返還;(4) 利用動(dòng)態(tài)內(nèi)存分配在程序的運(yùn)行中根據(jù)實(shí)際需要申請(qǐng)內(nèi)存空間,使用結(jié)束
2、后釋放所占用的內(nèi)存空間;(5) 通過(guò)繼承與派生來(lái)簡(jiǎn)化程序代碼簡(jiǎn)化程序設(shè)計(jì),有效利用已有的類模塊資源。(6)以學(xué)生信息管理為應(yīng)用背景,用面向?qū)ο蟪绦蛟O(shè)計(jì)建立學(xué)生信息管理程序,實(shí)現(xiàn)創(chuàng)建班級(jí)、添加學(xué)生信息、修改學(xué)生信息、刪除學(xué)生信息、打印學(xué)生信息、退出六個(gè)程序 功能。開(kāi)發(fā)環(huán)境(1)系統(tǒng)環(huán)境:windows xp,windows 7(2)編程環(huán)境:visual c+.net,visual c+ 6.x,visual studio 2005,visual studio 2010.等。二、 實(shí)現(xiàn)過(guò)程(1) c+編程基礎(chǔ)知識(shí)介紹c+程序源程序文件1源程序文件2源程序文件3編譯預(yù)處理命令全局變量聲明函數(shù)1函數(shù)
3、n函數(shù)首部函數(shù)體局部變量聲明執(zhí)行語(yǔ)句數(shù)據(jù)類型:對(duì)數(shù)據(jù)類型定義是非常重要的,它可以為數(shù)據(jù)在內(nèi)存中分配適合的存儲(chǔ)區(qū)域、確定數(shù)據(jù)范圍,并且可以規(guī)定數(shù)據(jù)所能進(jìn)行的有效操作;1:對(duì)數(shù)據(jù)類型的分類有: 2:常量和變量:變量(variable):取值在程序的執(zhí)行過(guò)程中可改變值的量;常量(constant):取值在程序的執(zhí)行過(guò)程中始終保持不變的量。又分為文字常量(literal constant)常變量(也稱為符號(hào)常量)3:運(yùn)算符和表達(dá)式:包括c+運(yùn)算符、優(yōu)先級(jí)和結(jié)合性 ;基本運(yùn)算符及其表達(dá)式(即算術(shù)運(yùn)算符及算符表達(dá)式;賦值運(yùn)算符與賦值表達(dá)式;自增、自減運(yùn)算;邏輯運(yùn)算、邏輯表達(dá)式及其求值優(yōu)化;位運(yùn)算;逗號(hào)運(yùn)算
4、符與逗號(hào)表達(dá)式;sizeof( )運(yùn)算符) ; 語(yǔ)句(包括表達(dá)式語(yǔ)句;表達(dá)式; 空語(yǔ)句;復(fù)合語(yǔ)句若干語(yǔ)句 流程控制語(yǔ)句:用來(lái)控制或改變程序的執(zhí)行方向);算術(shù)類型轉(zhuǎn)換和賦值類型轉(zhuǎn)換 ;求值次序與副作用 等知識(shí)。程序流程控制a:復(fù)合語(yǔ)句:將多個(gè)語(yǔ)句組合在一起,用一對(duì)花括號(hào)將這些語(yǔ)句組合在一起,稱為復(fù)合語(yǔ)句(主要用到if、for、while、switch)分支流程if 語(yǔ)句 if (條件表達(dá)式) 語(yǔ)句1 else 語(yǔ)句2循環(huán)流程while語(yǔ)句 while(條件表達(dá)式1) 語(yǔ)句1; if(條件表達(dá)式2) break; 語(yǔ)句2; 語(yǔ)句3;循環(huán)流程for語(yǔ)句 for(初始化表達(dá)式;條件表達(dá)式;循環(huán)表達(dá)式)
5、 循環(huán)體語(yǔ)句 循環(huán)流程switch語(yǔ)句 switch(條件表達(dá)式) case 1: 語(yǔ)句1;break; case n: 語(yǔ)句1;break;*【break語(yǔ)句使用:用在while,dowhile,for和switch語(yǔ)句中,在循環(huán)語(yǔ)句中,break用來(lái)從最近的封閉循環(huán)體內(nèi)跳出,在switch語(yǔ)句中,break用來(lái)跳出switch語(yǔ)句?!?b:函數(shù)的調(diào)用:調(diào)用一個(gè)函數(shù)就是暫時(shí)中斷現(xiàn)有程序的運(yùn)行,轉(zhuǎn)去執(zhí)行被調(diào)用函數(shù),當(dāng)被調(diào)用函數(shù)執(zhí)行結(jié)束以后,再返回到中斷處繼續(xù)執(zhí)行的過(guò)程,如下表: main() 調(diào)用fun()或者其他自定義函數(shù)結(jié)束保存:返回地址當(dāng)前現(xiàn)場(chǎng)恢復(fù):主調(diào)程序現(xiàn)場(chǎng)返回地址fun()返回43
6、52617c:函數(shù)的嵌套:執(zhí)行過(guò)程如下表:main()調(diào)fun1()或自定義其他函數(shù)結(jié)束fun1()調(diào)fun2()返回fun2()返回367812495(2)程序的概要設(shè)計(jì)(流程圖)1:總體(主函數(shù)):設(shè)計(jì)學(xué)生信息管理系統(tǒng)界面,定義程序功能選擇的方式,用switch循環(huán)進(jìn)行程序選擇(即程序功能選擇);通過(guò)構(gòu)造函數(shù)的調(diào)用來(lái)實(shí)現(xiàn)不同函數(shù)功能,從而進(jìn)行程序的使用。1:設(shè)計(jì)學(xué)生管理系統(tǒng)界面2:定義選擇功能選項(xiàng)switch循環(huán)語(yǔ)句實(shí)現(xiàn)功能選擇case 2case 3case 1case 4case 5case 6 不同的case調(diào)用不同的構(gòu)造函數(shù),實(shí)現(xiàn)相應(yīng)的功能2:主構(gòu)造函數(shù):包括創(chuàng)建班級(jí)【addcla
7、ss()】、添加學(xué)生信息【addstud ()】、修改學(xué)生信息【changestu()】、刪除學(xué)生信息【delstu】、打印學(xué)生信息【disstu】 五個(gè)構(gòu)造函數(shù) 。a:創(chuàng)建班級(jí)【addclass()】 創(chuàng)建班級(jí)首先用new先給班級(jí)開(kāi)辟一個(gè)動(dòng)態(tài)內(nèi)存n來(lái)計(jì)數(shù)創(chuàng)建班級(jí)數(shù)后 超過(guò)未超過(guò)classnamen數(shù)組存入創(chuàng)建的班級(jí)信息,n自加1,完成班級(jí)創(chuàng)建跳出班級(jí)創(chuàng)建定義數(shù)據(jù)類型輸入班級(jí)信息b:添加加學(xué)生信息【addstu()】:退出添加模塊學(xué)號(hào)不存在是信息儲(chǔ)存否判斷是否創(chuàng)建班級(jí) 學(xué)號(hào)存在,返回重新輸入while循環(huán)輸入學(xué)號(hào)進(jìn)行判斷未超數(shù)提示創(chuàng)建班級(jí),跳出添加學(xué)生信息用find(studno)構(gòu)造函數(shù)以學(xué)
8、號(hào)為線索查找學(xué)生超數(shù)用count計(jì)數(shù)添加信息數(shù)添加失敗輸入所需添加信息分別調(diào)用cstudent(*)setmath(*)setenglish(*)完成數(shù)據(jù)輸入,存在studentcount數(shù)組中,count自加d:修改學(xué)生信息【changestu()】:是信息儲(chǔ)存否判斷是否創(chuàng)建班級(jí)while循環(huán)輸入學(xué)號(hào)進(jìn)行判斷提示創(chuàng)建班級(jí),跳出添加學(xué)生信息打印出該學(xué)生信息,及所需修改數(shù)據(jù)輸入所需修改信息分別調(diào)用srtaddr(*)settel(*)setaverage(*)setmath(*)setenglish(*)存儲(chǔ)修改后數(shù)據(jù)學(xué)號(hào)存在用find(studno)構(gòu)造函數(shù)以學(xué)號(hào)為線索查找學(xué)生退出數(shù)據(jù)修改模塊
9、c:刪除學(xué)生信息【delstu()】:不存在學(xué)號(hào)n是否判斷是否創(chuàng)建班級(jí)while循環(huán)輸入學(xué)號(hào)進(jìn)行判斷提示創(chuàng)建班級(jí),跳出添加學(xué)生信息studentn+1及后所有指針都向前移動(dòng)一位,最后一位置1學(xué)號(hào)n存在用find(studno)構(gòu)造函數(shù)以學(xué)號(hào)為線索查找學(xué)生退出數(shù)據(jù)刪除模塊f:打印學(xué)生信息【dispstu()】是否判斷是否創(chuàng)建班級(jí)for循環(huán)調(diào)用getclassname(*)打印班級(jí)名稱提示創(chuàng)建班級(jí),跳出添加學(xué)生信息分別調(diào)用getstudno()getname()getidno()getaddr()gettel()getmath()getenglish()getaverage()獲得所有數(shù)據(jù),完成數(shù)
10、據(jù)的獲取和打印退出數(shù)據(jù)打印模塊用studenti數(shù)組,從第0個(gè)到studenti為空,打印出所有學(xué)生信息(2) 程序的詳細(xì)設(shè)計(jì)a:創(chuàng)建班級(jí)void cclass:addclass(char *classname,int *cstudent) int n=0; int claccname;if(n!=10)cout輸入班級(jí)名稱classname;clas=new class(classname);n+;cout添加成功endl;return true;else cout班級(jí)數(shù)超額endl;b:添加學(xué)生信息void cclass:addstu ()if(clas=null) 未創(chuàng)建班級(jí)else 已
11、創(chuàng)建班級(jí)定義數(shù)據(jù)類型coutstudno;while(clas-find(studno)!=-1) 查找該學(xué)號(hào)學(xué)生 存在該學(xué)號(hào)學(xué)生 重新輸入學(xué)號(hào); 完成數(shù)據(jù)定義if(clas-countstudentclas-sum=new cstudent(studno,idno,name,addr,tel); 開(kāi)辟內(nèi)存clas-studentclas-sum-setmath(math);clas-studentclas-sum-setenglish(english); 完成數(shù)據(jù)添加存儲(chǔ)this-clas-count+; 計(jì)數(shù)添加學(xué)生數(shù)else 超數(shù)情況 c:修改學(xué)生信息void cclass:change
12、stu ()if(cc=null) 未創(chuàng)建班級(jí) else 已創(chuàng)建班級(jí) 數(shù)據(jù)定義coutstudno;if(clas-find(studno)!=-1) 找到該學(xué)生 打印該學(xué)生信息 輸入修改信息cc-studentm-setaddr(addr);cc-studentm-settel(tel);cc-studentm-setmath(math);cc-studentm-setenglish(english);cc-studentm-setaverage(math,english); 儲(chǔ)存修改后數(shù)據(jù)else 未找到該學(xué)生d:刪除學(xué)生信息void cclass:delstu ()if(this-cla
13、s=null) 班級(jí)未創(chuàng)建else 班級(jí)已創(chuàng)建int studno;coutstudno;int i= clasfind(studno);if(clasfind(studno)=-1) 未找到該學(xué)生 else for(int j=i; i 50;i+) studenti后指針向前移動(dòng)一位,且最后一位數(shù)組內(nèi)容置空,學(xué)生數(shù)減1cout學(xué)生刪除成功!endl;e:打印學(xué)生信息void cclass: dispstu()if(cc=null) 未創(chuàng)建班級(jí) else 已創(chuàng)建班級(jí) cout班級(jí)名稱:getclassname()endl;for(int i=0; istudenti != null) stu
14、dent數(shù)組不為空 打印學(xué)生信息(4)測(cè)試用例(針對(duì)每個(gè)功能設(shè)計(jì)測(cè)試方案,包括輸入數(shù)據(jù)、輸出數(shù)據(jù))針對(duì)每個(gè)功能設(shè)計(jì)一組(最少一個(gè))測(cè)試用例,用來(lái)驗(yàn)證程序的正確性。1: 創(chuàng)建班級(jí)2:添加學(xué)生信息3:刪除學(xué)生信息刪除123號(hào)學(xué)生數(shù)據(jù):刪除123號(hào)學(xué)生后所有數(shù)據(jù):4:修改學(xué)生信息修改123號(hào)數(shù)據(jù):修改123號(hào)學(xué)生后數(shù)據(jù);5:打印學(xué)生信息 三、 課題總結(jié)1陳述遇到的問(wèn)題及解決辦法: a:?jiǎn)栴}:沒(méi)辦法對(duì)對(duì)象內(nèi)數(shù)據(jù)進(jìn)行獲取及處理解決方法:構(gòu)建一個(gè)get*()構(gòu)造函數(shù)來(lái)獲取對(duì)象內(nèi)數(shù)據(jù),用set*()構(gòu)造函數(shù)來(lái)處理對(duì)象內(nèi)數(shù)據(jù),以便進(jìn)行數(shù)據(jù)的輸入及修改; b:?jiǎn)栴}:對(duì)類的指針數(shù)組使用比較生疏 解決方法:深入了解
15、面向?qū)ο髷?shù)據(jù)與結(jié)構(gòu)數(shù)據(jù)的區(qū)別,用-運(yùn)算符來(lái)移動(dòng)指針實(shí)現(xiàn)數(shù)據(jù)的存入與調(diào)用 c:?jiǎn)栴}:在添加、修改、刪除都要進(jìn)行學(xué)生查找在程序中出現(xiàn)代碼重復(fù)利用,代碼復(fù)雜 解決方法:構(gòu)建構(gòu)造函數(shù)find(studeno)來(lái)完成查找工作,這樣只需在需要時(shí)調(diào)用構(gòu)造函數(shù),無(wú)需重復(fù)輸入查找功能代碼,從而大大簡(jiǎn)化代碼2:有何收獲 a:熟悉掌握了類得創(chuàng)建及對(duì)象的處理調(diào)用;b.熟悉掌握了面向?qū)ο髷?shù)據(jù)的添加,修改,刪除,打印;c.糾正對(duì)break用法的錯(cuò)誤理解,break只用在兩個(gè)地方,一個(gè)是case,一個(gè)是循環(huán)的跳出,對(duì)于最后程序的退出應(yīng)使用exit(0);d.熟悉循環(huán)在程序中的應(yīng)用,在添加,修改,刪除,打印以及界面的顯示等都用到了循環(huán)。e.學(xué)會(huì)應(yīng)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024個(gè)人合同合作協(xié)議范本
- 2024工藝品買賣合同范本
- 2024勞動(dòng)合同法中英文對(duì)照上
- 聯(lián)營(yíng)創(chuàng)業(yè)合同書(shū)
- 2024年二手車交易協(xié)議
- 戶外廣告牌租用協(xié)議
- 2024房屋裝修合同寫房屋裝修合同協(xié)議清單樣式
- 2024工程承攬協(xié)議合同
- 2024子女撫養(yǎng)協(xié)議書(shū)
- 2024車輛買賣合同范本大全
- 《人行自動(dòng)門安全要求》標(biāo)準(zhǔn)
- 廣鐵集團(tuán)校園招聘機(jī)考題庫(kù)
- 第一章、總體概述:施工組織總體設(shè)想、工程概述、方案針對(duì)性及施工標(biāo)段劃分
- 2024-2030年中國(guó)語(yǔ)言服務(wù)行業(yè)發(fā)展規(guī)劃與未來(lái)前景展望研究報(bào)告
- 2024-2030年白玉蝸牛養(yǎng)殖行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及發(fā)展前景與投資機(jī)會(huì)研究報(bào)告
- HGT 2902-2024《模塑用聚四氟乙烯樹(shù)脂》
- 2024 年上海市普通高中學(xué)業(yè)水平等級(jí)性考試 物理 試卷
- 國(guó)家開(kāi)放大學(xué)??啤斗ɡ韺W(xué)》(第三版教材)形成性考核試題及答案
- 計(jì)量基礎(chǔ)知識(shí)考核試題及參考答案
- 眼科學(xué)基礎(chǔ)病例分析
- 混合痔中醫(yī)護(hù)理 方案
評(píng)論
0/150
提交評(píng)論