C語言程序設計課程設計報告學生信息查詢系統(tǒng)_第1頁
C語言程序設計課程設計報告學生信息查詢系統(tǒng)_第2頁
C語言程序設計課程設計報告學生信息查詢系統(tǒng)_第3頁
C語言程序設計課程設計報告學生信息查詢系統(tǒng)_第4頁
C語言程序設計課程設計報告學生信息查詢系統(tǒng)_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、c+語言程序設計課題設計報告課題名稱: 學生信息查詢系統(tǒng) 專業(yè): 電子信息工程 班級: 2班 姓名: 學號: 指導老師: 日期: 2011-05-06 仰恩大學計算機系一、 課程序設計目的(根據(jù)情況寫)(1) 了解面向對象程序設計與結構化程序設計的內在差別;(2) 了解類和對象的概念,學會對數(shù)據(jù)進行封裝處理,靈活應用類的繼承關系,學會用構造函數(shù)來進行對象的初始化工作,通過重載構造函數(shù)來對對象進行更為深入的數(shù)據(jù)初始化,用析構函數(shù)來清理和釋放對象所占用的系統(tǒng)資源;(3) 通過對象指針來訪問對象,從而完成對對象數(shù)據(jù)的調用與返還;(4) 利用動態(tài)內存分配在程序的運行中根據(jù)實際需要申請內存空間,使用結束

2、后釋放所占用的內存空間;(5) 通過繼承與派生來簡化程序代碼簡化程序設計,有效利用已有的類模塊資源。(6)以學生信息管理為應用背景,用面向對象程序設計建立學生信息管理程序,實現(xiàn)創(chuàng)建班級、添加學生信息、修改學生信息、刪除學生信息、打印學生信息、退出六個程序 功能。開發(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.等。二、 實現(xiàn)過程(1) c+編程基礎知識介紹c+程序源程序文件1源程序文件2源程序文件3編譯預處理命令全局變量聲明函數(shù)1函數(shù)

3、n函數(shù)首部函數(shù)體局部變量聲明執(zhí)行語句數(shù)據(jù)類型:對數(shù)據(jù)類型定義是非常重要的,它可以為數(shù)據(jù)在內存中分配適合的存儲區(qū)域、確定數(shù)據(jù)范圍,并且可以規(guī)定數(shù)據(jù)所能進行的有效操作;1:對數(shù)據(jù)類型的分類有: 2:常量和變量:變量(variable):取值在程序的執(zhí)行過程中可改變值的量;常量(constant):取值在程序的執(zhí)行過程中始終保持不變的量。又分為文字常量(literal constant)常變量(也稱為符號常量)3:運算符和表達式:包括c+運算符、優(yōu)先級和結合性 ;基本運算符及其表達式(即算術運算符及算符表達式;賦值運算符與賦值表達式;自增、自減運算;邏輯運算、邏輯表達式及其求值優(yōu)化;位運算;逗號運算

4、符與逗號表達式;sizeof( )運算符) ; 語句(包括表達式語句;表達式; 空語句;復合語句若干語句 流程控制語句:用來控制或改變程序的執(zhí)行方向);算術類型轉換和賦值類型轉換 ;求值次序與副作用 等知識。程序流程控制a:復合語句:將多個語句組合在一起,用一對花括號將這些語句組合在一起,稱為復合語句(主要用到if、for、while、switch)分支流程if 語句 if (條件表達式) 語句1 else 語句2循環(huán)流程while語句 while(條件表達式1) 語句1; if(條件表達式2) break; 語句2; 語句3;循環(huán)流程for語句 for(初始化表達式;條件表達式;循環(huán)表達式)

5、 循環(huán)體語句 循環(huán)流程switch語句 switch(條件表達式) case 1: 語句1;break; case n: 語句1;break;*【break語句使用:用在while,dowhile,for和switch語句中,在循環(huán)語句中,break用來從最近的封閉循環(huán)體內跳出,在switch語句中,break用來跳出switch語句。】 b:函數(shù)的調用:調用一個函數(shù)就是暫時中斷現(xiàn)有程序的運行,轉去執(zhí)行被調用函數(shù),當被調用函數(shù)執(zhí)行結束以后,再返回到中斷處繼續(xù)執(zhí)行的過程,如下表: main() 調用fun()或者其他自定義函數(shù)結束保存:返回地址當前現(xiàn)場恢復:主調程序現(xiàn)場返回地址fun()返回43

6、52617c:函數(shù)的嵌套:執(zhí)行過程如下表:main()調fun1()或自定義其他函數(shù)結束fun1()調fun2()返回fun2()返回367812495(2)程序的概要設計(流程圖)1:總體(主函數(shù)):設計學生信息管理系統(tǒng)界面,定義程序功能選擇的方式,用switch循環(huán)進行程序選擇(即程序功能選擇);通過構造函數(shù)的調用來實現(xiàn)不同函數(shù)功能,從而進行程序的使用。1:設計學生管理系統(tǒng)界面2:定義選擇功能選項switch循環(huán)語句實現(xiàn)功能選擇case 2case 3case 1case 4case 5case 6 不同的case調用不同的構造函數(shù),實現(xiàn)相應的功能2:主構造函數(shù):包括創(chuàng)建班級【addcla

7、ss()】、添加學生信息【addstud ()】、修改學生信息【changestu()】、刪除學生信息【delstu】、打印學生信息【disstu】 五個構造函數(shù) 。a:創(chuàng)建班級【addclass()】 創(chuàng)建班級首先用new先給班級開辟一個動態(tài)內存n來計數(shù)創(chuàng)建班級數(shù)后 超過未超過classnamen數(shù)組存入創(chuàng)建的班級信息,n自加1,完成班級創(chuàng)建跳出班級創(chuàng)建定義數(shù)據(jù)類型輸入班級信息b:添加加學生信息【addstu()】:退出添加模塊學號不存在是信息儲存否判斷是否創(chuàng)建班級 學號存在,返回重新輸入while循環(huán)輸入學號進行判斷未超數(shù)提示創(chuàng)建班級,跳出添加學生信息用find(studno)構造函數(shù)以學

8、號為線索查找學生超數(shù)用count計數(shù)添加信息數(shù)添加失敗輸入所需添加信息分別調用cstudent(*)setmath(*)setenglish(*)完成數(shù)據(jù)輸入,存在studentcount數(shù)組中,count自加d:修改學生信息【changestu()】:是信息儲存否判斷是否創(chuàng)建班級while循環(huán)輸入學號進行判斷提示創(chuàng)建班級,跳出添加學生信息打印出該學生信息,及所需修改數(shù)據(jù)輸入所需修改信息分別調用srtaddr(*)settel(*)setaverage(*)setmath(*)setenglish(*)存儲修改后數(shù)據(jù)學號存在用find(studno)構造函數(shù)以學號為線索查找學生退出數(shù)據(jù)修改模塊

9、c:刪除學生信息【delstu()】:不存在學號n是否判斷是否創(chuàng)建班級while循環(huán)輸入學號進行判斷提示創(chuàng)建班級,跳出添加學生信息studentn+1及后所有指針都向前移動一位,最后一位置1學號n存在用find(studno)構造函數(shù)以學號為線索查找學生退出數(shù)據(jù)刪除模塊f:打印學生信息【dispstu()】是否判斷是否創(chuàng)建班級for循環(huán)調用getclassname(*)打印班級名稱提示創(chuàng)建班級,跳出添加學生信息分別調用getstudno()getname()getidno()getaddr()gettel()getmath()getenglish()getaverage()獲得所有數(shù)據(jù),完成數(shù)

10、據(jù)的獲取和打印退出數(shù)據(jù)打印模塊用studenti數(shù)組,從第0個到studenti為空,打印出所有學生信息(2) 程序的詳細設計a:創(chuàng)建班級void cclass:addclass(char *classname,int *cstudent) int n=0; int claccname;if(n!=10)cout<<"輸入班級名稱"<<endl;cin>>classname;clas=new class(classname);n+;cout<<"添加成功"<<endl;return true;e

11、lse cout<<"班級數(shù)超額"<<endl;b:添加學生信息void cclass:addstu ()if(clas=null) 未創(chuàng)建班級else 已創(chuàng)建班級定義數(shù)據(jù)類型cout<<"請輸入學生的學號:" cin>>studno;while(clas->find(studno)!=-1) 查找該學號學生 存在該學號學生 重新輸入學號; 完成數(shù)據(jù)定義if(clas->count< 50) 未超數(shù)clas->studentclas->sum=new cstudent(stud

12、no,idno,name,addr,tel); 開辟內存clas->studentclas->sum->setmath(math);clas->studentclas->sum->setenglish(english); 完成數(shù)據(jù)添加存儲this->clas->count+; 計數(shù)添加學生數(shù)else 超數(shù)情況 c:修改學生信息void cclass:changestu ()if(cc=null) 未創(chuàng)建班級 else 已創(chuàng)建班級 數(shù)據(jù)定義cout<<"請輸入要修改學生的學號:" cin>>studno;

13、if(clas->find(studno)!=-1) 找到該學生 打印該學生信息 輸入修改信息cc->studentm->setaddr(addr);cc->studentm->settel(tel);cc->studentm->setmath(math);cc->studentm->setenglish(english);cc->studentm->setaverage(math,english); 儲存修改后數(shù)據(jù)else 未找到該學生d:刪除學生信息void cclass:delstu ()if(this->clas=

14、null) 班級未創(chuàng)建else 班級已創(chuàng)建int studno;cout<<"請輸入要刪除學生的學號:" cin>>studno;int i= clas>find(studno);if(clas>find(studno)=-1) 未找到該學生 else for(int j=i; i< 50;i+) studenti后指針向前移動一位,且最后一位數(shù)組內容置空,學生數(shù)減1cout<<"學生刪除成功!"<<endl;e:打印學生信息void cclass: dispstu()if(cc=null

15、) 未創(chuàng)建班級 else 已創(chuàng)建班級 cout<<"班級名稱:"<<cc->getclassname()<<endl;for(int i=0; i<50;i+) for循環(huán)完成數(shù)據(jù)整體輸出if(class->studenti != null) student數(shù)組不為空 打印學生信息(4)測試用例(針對每個功能設計測試方案,包括輸入數(shù)據(jù)、輸出數(shù)據(jù))針對每個功能設計一組(最少一個)測試用例,用來驗證程序的正確性。1: 創(chuàng)建班級2:添加學生信息3:刪除學生信息刪除123號學生數(shù)據(jù):刪除123號學生后所有數(shù)據(jù):4:修改學生信息修

16、改123號數(shù)據(jù):修改123號學生后數(shù)據(jù);5:打印學生信息 三、 課題總結1陳述遇到的問題及解決辦法: a:問題:沒辦法對對象內數(shù)據(jù)進行獲取及處理解決方法:構建一個get*()構造函數(shù)來獲取對象內數(shù)據(jù),用set*()構造函數(shù)來處理對象內數(shù)據(jù),以便進行數(shù)據(jù)的輸入及修改; b:問題:對類的指針數(shù)組使用比較生疏 解決方法:深入了解面向對象數(shù)據(jù)與結構數(shù)據(jù)的區(qū)別,用->運算符來移動指針實現(xiàn)數(shù)據(jù)的存入與調用 c:問題:在添加、修改、刪除都要進行學生查找在程序中出現(xiàn)代碼重復利用,代碼復雜 解決方法:構建構造函數(shù)find(studeno)來完成查找工作,這樣只需在需要時調用構造函數(shù),無需重復輸入查找功能代碼,從而大大簡化代碼2:有何收獲 a:熟悉掌握了類得創(chuàng)建及對象的處理調用;b.熟悉掌握了面向對象數(shù)據(jù)的添加,修改,刪除,打??;c.糾正對break用法的錯誤理解,break只用在兩個地方,一個是case,一個是循環(huán)的跳出,對于最后程序的退出應使用exit(0);d.熟悉循環(huán)在程序中的應用,在添加,修改,刪除

溫馨提示

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

評論

0/150

提交評論