C++課程設計-學生學籍管理系統_第1頁
C++課程設計-學生學籍管理系統_第2頁
C++課程設計-學生學籍管理系統_第3頁
C++課程設計-學生學籍管理系統_第4頁
C++課程設計-學生學籍管理系統_第5頁
已閱讀5頁,還剩15頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、精選優質文檔-傾情為你奉上 課程名稱:+面向對象程序設計 課程設計題目:大學生學籍管理系統 目錄:一、 系統設計目標、意義二、 系統設計思路三、 系統功能介紹四、 輸入輸出的設計(1) 界面的設計(2) 數據輸出設計(3) 系統運行結果五、 詳細設計(1) 系統功能結構圖(2) UML六、 附錄七、 系統設計、開發過程中遇到的問題八、 心得體會學生學籍管理系統一、系統設計目標、意義(一)系統實現的目標 1、課程設計的任務: 制作一個小型的學生學籍管理系統,要求制作一個菜單,實現數據的錄入,數據的顯示,數據查找,數據的刪除,數據的保存,數據的統計,數據的修改,系統的退出。系統的設計要求用到C+面

2、向對象的程序設計,要求用到類來實現,同時每一個功能用到一個函數。2、(1)基本功能:學生基本信息(編號,姓名,性別,籍貫,民族,生日,政治面貌,省份證,數學成績,英語成績,計算機成績)成績統計(各科總成績,各科平均成績,各科的及格率)(2)擴展功能:學生數據的添加、修改、與刪除學生數據的讀取與存儲 3、系統特點:系統要能夠對相應的數據進行很好的測試,系統的統計對每一科的總成績,平均成績,及格律都進行了統計;系統數據的錄入 除可以手工錄入外,還可以采用文件的錄入;系統統計學生的基本信息較全面,包括學號,姓名,民族,政治面貌,身份證號,生日,性別,數學、英語、計算機的成績;程序中查找運用了兩種查找

3、方式即學號查找和姓名查找。(二)系統設計的意義通過設計此項程序,能夠對學生的學籍進行統一的管理,對學生的學籍進行錄入、修改、保存等功能進行處理,從而能夠較快地對信息進行處理,系統數據的錄入 除可以手工錄入外,還可以采用文件的錄入;系統統計學生的基本信息較全面,程序中查找運用了兩種查找方式即學號查找和姓名查找,方便查詢。二、系統設計思路第一步:分析題目,建立類并派生出它的子類,畫出類圖。 第二步:畫出流程,根據流程圖編寫程序清單 第三步:上機調試程序(使用單步調試,設置斷點、分塊調試的方法)。 第四步:及時整理資料,撰寫課程設計報告中有關這個題目的內容。三、系統功能介紹(一)程序對學生學籍的數據

4、處理要求 能夠輸入并瀏覽學生的基本信息; 能夠實現對學生信息的查詢和修改; 能夠對成績進行統計; 能夠對學生的信息進行保存;(二)系統功能:資料維護:系統維護包括對各學生信息和成績的錄入操作。資料維護:對數據表中的信息進行瀏覽。系統查詢:可以對不同科目的總成績、不及率、各科平均成績相關信息。四、輸入輸出的設計1界面的設計、界面設計程序運行后會出現一個簡捷的窗口,便于用戶查詢數據。、功能設計通過主窗體調用其他窗體,具體實現可以參照系統分析相關內容。應用系統主控界面包括學生信息錄入,查找等功能模塊。學生信息錄入功能完成學生信息和成績的輸入。記錄查詢功能可以對數據各分類的記錄進行查詢。2數據輸出設計

5、主要運行界面:統計界面:查找界面:顯示界面:錄入界面:保存界面:修改界面:刪除界面:3、系統運行的結果:(僅部分)五、詳細設計1、系統功能結構圖:主程序 菜單程序初始化程序退出統計修改刪除查找顯示輸入2、(1)類:student 數據成員:編號,姓名,性別,籍貫,民族,生日,政治面貌,省份證,數學成績,英語成績,計算機成績(2)類:school成員函數:錄入函數Input():輸入編號到計算機的成績;統計函數count():統計各科的總成績,計算平均成績,統計各科的及格率;查詢函數found():按學號或姓名查找學生的記錄;修改函數mend():修改指定學號學生成績記錄;刪除函數del():刪

6、除指定學號學生記錄;輸出函數show():輸出班級所有學生成績記錄;UML圖:Student#number:int#name20:char#sex6:char#place20:char#nation6:char#birth20:char#party10: char#id20:char#score3:float+student*next;       +student()         +student() + * getname():char+getnumber():int+getscore(inti)double+ ge

7、tg():float+ input():void+input(ifstream & is): void +output():void+output(ofstream&os):voidschool+school()+school()+ input():void+ mend():void+ del():void+ find:int+found():void+ show():void+ count():void+ save():void+ begin():void+ clear():void+mainmenu():char+getkey():int+setkey(intk):void

8、- *head: student - key:int六、附錄:(主要代碼)#include<iostream.h>#include<string.h>#include<fstream.h>#include<iomanip.h> /操縱符定義在其中class student protected: int number; char name20;char sex6; char place20;char nation6; char birth20;char party10; char id20;float score3;public: student

9、*next; student() student() char* getname() return name; int getnumber() return number;double getscore(int i) return scorei;float getg() return (score0+score1+score2); void input() int e=1;cout<<"ttt按提示輸入:"<<endl;cout<<"tt輸入編號: " cin>>number;cout<<&qu

10、ot;tt輸入姓名: " cin>>name;docout<<"tt輸入性別: " cin>>sex; if(strcmp(sex,"男")=0 | strcmp(sex,"女")=0) cout<<"tt輸入籍貫: "cin>>place; cout<<"tt輸入民族: "cin>>nation;cout<<"tt輸入生日: "cin>>birth; cou

11、t<<"tt輸入政治面貌: "cin>>party; cout<<"tt輸入身份證號: "cin>>id; cout<<"tt輸入數學分數: "cin>>score0;cout<<"tt輸入英語分數: "cin>>score1; cout<<"tt輸入計算機分數: "cin>>score2; e=0; else cout<<"ttt無此類型性別!重新輸入!

12、"<<endl; e=1; while(e); return ;void input(ifstream & is) is>>number>>name>>sex>>place>>nation>>birth>>party>>id >>score0>>score1>>score2;is.get(); void output()cout<<"學生基本信息如下:"<<endl; cout<<

13、;"編號:"<<number<<" 姓名:"<<name<<" 性別:"<<sex <<" 籍貫:"<<place<<" 民族:"<<nation<<" 生日:"<<birth<<" 政治面貌:"<<party<<endl<<"身份證號:"<<id

14、<<" 數學:"<<score0<<" 英語:"<<score1 <<" 計算機:"<<score2<<" 總分:"<<getg()<<endl<<endl;void output(ofstream & os) os<<setw(6)<<number <<setw(15)<<name<<setw(20)<<place

15、<<setw(6)<<nation<<setw(20)<<birth<<setw(20)<<party <<setw(20)<<id<<setw(6)<<score0<<setw(6)<<score1<<setw(6)<<score2<<endl;/操縱符指定寬度class school public: school() head=new student; head->next=NULL; key=0; sch

16、ool() delete head; void input(); void mend(); void del();int find(student *p,int num,char *pn="");void found(); void show(); void count();void save(); void begin(); void clear();char mainmenu();int getkey() return key;void setkey(int k) key=k; private: student *head; int key;/錄入函數void scho

17、ol:input()student *p,*p2=NULL;p=head; int n;while(p->next)p=p->next;while(n) p2=new student; p2->input(); p->next=p2; p2->next=NULL; p=p->next; school:setkey(1); cout<<"ttt按1繼續,按0返回 : " cin>>n; /子查找函數int school:find(student *p1,int num,char *pn) student *p; p=

18、head;while(p->next) (*p1)=p; if( (p->next)->getnumber()=num|!strcmp( (p->next)->getname(),pn ) ) return 1; p=p->next;return 0; /查找函數void school:found() student *p;int num=-1,n=9; char name20=""do cout<<"tt1:按編號查找,2:按姓名查找: " cin>>n;while(n<1|n>2

19、);if(n=1) cout<<"ttt輸入編號: " cin>>num;if(n=2) cout<<"ttt輸入姓名: "cin>>name; if(!find(&p,num,name) ) cout<<"tt找不到你要查找的內容!"<<endl;return;(p->next)->output();/刪除函數void school:del() student *p,*p2; int num;cout<<"ttt輸入編號

20、: " cin>>num;if( !find(&p,num,"") ) cout<<"tt找不到你要刪除的內容!"<<endl;return;(p->next)->output();p2=p->next; p->next=p2->next;delete p2;school:setkey(1); void school:show() /顯示函數 student *p; p=head;while(p->next) (p->next)->output();p=

21、p->next;/修改函數void school:mend() student *p; int num=-1,n;char name20=""do cout<<"tt1:按編號修改,2:按姓名修改: " cin>>n;while(n<1|n>2);if(n=1) cout<<"ttt輸入編號: " cin>>num;if(n=2)cout<<"ttt輸入姓名: "cin>>name;if( !find(&p,num,n

22、ame) ) cout<<"tt找不到你要修改的內容!"<<endl;return;(p->next)->output(); (p->next)->input();school:setkey(1);void school:save() /保存函數 student *p; p=head;ofstream os("student.txt",ios:out);if (school:getkey()=1) while(p->next) (p->next)->output(os); p=p->

23、next; cout<<"ttt文件已保存! "<<endl;school:setkey(0);void school:begin()/初始化函數 student *p,*p2;p=head; clear();long t;ifstream is("student.txt",ios:in); if(!is) ofstream os("student.txt",ios:out);os.close();return ;int num=-1;while(1) num=-1; t=is.tellg(); is>&

24、gt;num;is.seekg(t); if(num<0) is.close(); return;p2=new student; p2->input(is);p->next=p2; p2->next=NULL; p=p->next;void school:clear()/清空函數 student *p,*p2;p=head->next;while( p )p2=p; p=p->next;delete p2;void school:count()/統計函數 student *p; p=head;int n=0;double g3=0,0,0; float

25、 j3=0,0,0;while(p->next) p=p->next; n+; for(int i=0;i<3;i+) gi=gi+( p->getscore(i) ); (p->getscore(i) )>=60.0? ji+ : 0 ;cout<<"ttbbbb數學總分:"<<g0<<" 平均分:"<<g0/n<<" 及格率:"<<j0/n<<endl<<"ttbbbb英語總分:"

26、<<g1<<" 平均分:"<<g1/n<<" 及格率:"<<j1/n<<endl<<"ttbbbb計算機總分: "<<g2<<" 平均分: "<<g2/n<<" 及格率:"<<j2/n<<endl;/主選菜單函數char school:mainmenu()char n6;cout<<"nn 歡迎進入學籍管理系統"

27、;<<endl<<endl<<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<" * * 1: 錄入學生信息 * *"<<endl<<" * * 2: 顯示學生信息 * *"<<end

28、l<<" * * 3: 查找學生信息 * *"<<endl<<" * * 4: 刪除學生信息 * *"<<endl<<" * * 5: 修改學生信息 * *"<<endl<<" * * 6: 統計學生成績 * *"<<endl<<" * * 7: 保存學生信息 * *"<<endl<<" * * 0: 退出系統 * *"<<endl<<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<" 請選擇:"cin>>n;return n0;/主函數void main()school pp;int k=1; char n; p

溫馨提示

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

評論

0/150

提交評論