高校學(xué)籍管理系統(tǒng)C++程序設(shè)計(jì)_第1頁(yè)
高校學(xué)籍管理系統(tǒng)C++程序設(shè)計(jì)_第2頁(yè)
高校學(xué)籍管理系統(tǒng)C++程序設(shè)計(jì)_第3頁(yè)
高校學(xué)籍管理系統(tǒng)C++程序設(shè)計(jì)_第4頁(yè)
高校學(xué)籍管理系統(tǒng)C++程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、專業(yè)資料專業(yè)資料VC+課程設(shè)計(jì)-高校學(xué)籍管理系統(tǒng)源程序、課程設(shè)計(jì)題目:學(xué)籍管理系統(tǒng) 二、目的與要求:1、目的:(1)要求學(xué)生達(dá)到熟練掌握C+語(yǔ)言的基本知識(shí)和技能;(2)基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和法;(3)能夠利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的面向?qū)ο蟪绦蛟O(shè)計(jì)問題2、基本要求:(1)要求利用面向?qū)ο蟮姆ㄒ约?C+的編程思想來完成系統(tǒng)的設(shè)計(jì);(2)要求在設(shè)計(jì)的過程中,建立清晰的類層次;(3)在系統(tǒng)的設(shè)計(jì)中,至少要用到面向?qū)ο蟮囊环N機(jī)制。3、創(chuàng)新要求:在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),如根據(jù)查找結(jié)果進(jìn)行修改的功能。4、寫出設(shè)計(jì)說明書三、設(shè)計(jì)法和基本原理:1、功能要求要求完成以下功能:1)

2、能夠從屏幕上讀取一個(gè)學(xué)生的信息并將信息存入到數(shù)據(jù)文件中。2)能夠?qū)⒅付ǖ男畔奈募袆h除。3)能夠按編號(hào)、姓名對(duì)學(xué)生的信息進(jìn)行檢索并將檢索結(jié)果顯示在屏幕上。4)可以統(tǒng)計(jì)全部學(xué)生的總成績(jī),及其在班上的排名。5)能夠統(tǒng)計(jì)各科的平均成績(jī)及及格率。6)要求有錯(cuò)誤提示功能,例如性別只能輸入男女,輸入錯(cuò)誤提示重新輸入。7)如果檢索不到相應(yīng)的信息應(yīng)提示用戶。2、問題的解決案:根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:a)寫出需求分析(做什么)b)分析系統(tǒng)中的各個(gè)實(shí)體之間的關(guān)系及其屬性和行為;c)根據(jù)問題描述,設(shè)計(jì)系統(tǒng)的類層次;d)完成類層次中各個(gè)類的描述(包括屬性和法);e)完成類中各個(gè)成員函數(shù)的定義;

3、f)用戶界面的設(shè)計(jì)g)分析系統(tǒng)功能模塊(系統(tǒng)流程圖)h)代碼編寫i)功能調(diào)試;j)完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使用說明書。源程序代碼如下:code/*course.dat-課程列表(只讀)student.dat- 學(xué)生信息*/#include #include #include #include class COURSE / 課程類private:static int coursenum;/ 課程數(shù)量static char (*coursename)20; /課程名稱public:static void LoadCourse() / 從文件 COURSE.DAT 裝入課程信息 ifstream f

4、(course.dat);fcoursenum;coursename=new charcoursenum20;for(int i=0; icoursename;f.close();friend class STUDENT;friend class COLLEGE;;int COURSE:coursenum=0;char (*COURSE二coursename)20=0;class STUDENT / 學(xué)生類private:char num20;/ 學(xué)號(hào)char name20; / 姓名char sex; 性別char cname20; / 班級(jí)float *grade;/成績(jī)(動(dòng)態(tài)數(shù)組)flo

5、at sum;各科總分STUDENT *next;public:STUDENT()grade=new floatCOURSE二coursenum;next=0;STUDENT()delete grade;void Input()sum=0;coutnum; /輸入學(xué)生一般信息coutname;coutsex; sex=toupper(sex);coutcname;for(int i=0; iCOURSE:coursenum; i+) / 輸入學(xué)生各科成績(jī)coutCOURSE:coursenamegrade;sum+=grade; / 計(jì)算總分void Input(ifstream &f)(fn

6、um;fname;fsex; sex=toupper(sex);fcname;for(int i=0; igrade; fsum;static void OutputT()(coutsetw(10) 學(xué)號(hào)setw(20) 姓名setw(5) 性別setw(10)班級(jí);for(int i=0; iCOURSE:coursenum; i+)coutsetwCOURSE二coursename;coutsetw(10) 總分endl;void Output()(coutsetw(10)num; /輸出學(xué)生一般信息coutsetw(20)name;coutsetw(5)sex;coutsetw(10)c

7、name;for(int i=0; iCOURSE:coursenum; i+) /輸出學(xué)生各科成績(jī),總分(coutsetwgrade;coutsetw(10)sumendl;void Output(ofstream &f)fsetw(10)num; /輸出學(xué)生一般信息fsetw(20)name;fsetw(5)sex;fsetw(10)cname;for(int i=0; iCOURSE:coursenum; i+) /輸出學(xué)生各科成績(jī),總分fsetwgrade;fsetw(10)sumnext;delete p;P=SL; void Set();/課程設(shè)置(增,刪,改,存)void Add

8、();/增加學(xué)生void Delete();/ 刪除學(xué)生void Modify();/ 修改學(xué)生void Query();/查詢學(xué)生信息(按姓名,學(xué)號(hào))void Print(); /輸出所有學(xué)生信息void Stat();/統(tǒng)計(jì)課程平均成績(jī),課程合格率void SumSort(); /按總分排名(高- 低) void NumSort(); /按學(xué)號(hào)排序(低- 高) void Save();/學(xué)生數(shù)據(jù)存盤void Load();/裝入學(xué)生數(shù)據(jù);/增加學(xué)生void COLLEGE:Add() coutnext)p2=p2-next; p2-next=p;/ 學(xué)生結(jié)點(diǎn)p-Input();/輸入學(xué)生信

9、息查找學(xué)生結(jié)點(diǎn)(返回1-找到,0-未找到.結(jié)點(diǎn)指針由pl返回,p2為前看指針)int COLLEGE二Find(char *ID,STUDENT *p1,STUDENT *p2) *p1=SL-next;*p2=SL;while(*p1)if(strcmp(*p1)-num,ID)=0)break; / 找到else*p2=*p1; / 繼續(xù)查找*p1=(*p1)-next;return *p1?1:0;/刪除學(xué)生void COLLEGE:elete()coutn* 刪除學(xué)生 *n;char No20;STUDENT *p1,*p2;coutNo;if(!Find(No,&p1,&p2)cou

10、tnext=p1-next; / 連接delete p1;cout正確刪除!n;/修改學(xué)生void COLLEGE:Modify()coutn*修改學(xué)生 *n;char No20;STUDENT *p1,*p2;coutNo;if(!Find(No,&p1,&p2)coutOutput(); /輸出原來的學(xué)生信息(做提示)p1-Input(); /輸入此學(xué)生信息(更新)cout修改完成!n;/*承上*/查詢學(xué)生信息按學(xué)號(hào)或姓名查找,如果找到顯示該學(xué)生,如果未找到,也給出相應(yīng)提示void COLLEGE:uery()coutnext;char No20;char Name20;char ch;d

11、ocoutch;while(ch!=1&ch!=2);int flag=0; /未找到0,找到1if(ch=1) /按學(xué)號(hào)查coutNo;while(p)if(strcmp(p-num,No)=0)flag=1; break;else p=p-next;else /按姓名查coutName;while(p)if(strcmp(p-name,Name)=0)flag=1; break;elsep=p-next;if(flag=1) /如果找到,顯示此同學(xué)信息p-OutputT();p-Output();else /否則給出未找到提出cout指定的學(xué)生沒有找到!n; /輸出所有學(xué)生信息void C

12、OLLEGE:rint()coutnext;STUDENT:OutputT(); 輸出標(biāo)題 while(p) /循環(huán)輸出各位學(xué)生信息 p-Output();p=p-next;/學(xué)生數(shù)據(jù)存盤void COLLEGE二Save()ofstream f(student.dat);STUDENT *p=SL-next;while(p) /遍歷學(xué)生鏈表 p-Output;寫入文件 p=p-next;f.close();coutnext; while(p) SL-next=p-next;delete p;p=SL-next;/裝入學(xué)生數(shù)據(jù)void COLLEGEad()Clear();ifstream f

13、(student.dat);STUDENT *p=SL;STUDENT *p2=new STUDENT;p2-Input(f);while(f)p-next=p2;p=p-next;p2=new STUDENT;p2-Input;delete p2;f.close();統(tǒng)計(jì)課程平均成績(jī),課程合格率void COLLEGE二Stat()float *sum=new floatCOURSE:coursenum; /各科平均成績(jī)float *pass=new floatCOURSE:coursenum; 各科合格人數(shù),/n= 合格率int n=0; / 學(xué)生人數(shù)for(int i=0; inext;

14、 n=0;sum=pass=0;while(p) /遍歷學(xué)生鏈表n+;/人數(shù)sum=sum+p-grade; /某科總分if(p-grade=60)pass+; / 某科合格人數(shù) p=p-next;for(i=0; iCOURSE:coursenum; i+)coutsetprecision(4)setiosflags(ios二showpoint);coutCOURSE二coursename平均:sum/n”,合格率:pass/n*100.%endl;delete sum;delete pass;void COLLEGE:ValueS2ToS1(STUDENT &s1,STUDENT &s2)

15、strcpy(s1.num,s2.num); /學(xué)號(hào)strcpy(,); / 姓名s1.sex=s2.sex; 性別strcpy(ame,ame); / 班級(jí)for(int i=0; inext;while(pl)p2=p1-next;while(p2)if(p2-sump1-sum)STUDENT t;ValueS2ToS1(t,*p1);ValueS2ToS1(*p1,*p2);ValueS2ToS1(*p2,t);p2=p2-next;p1=p1-next;void COLLEGE二NumSort() /按學(xué)號(hào)排序(低- 高)STUDENT *p1,*p2;p

16、1=SL-next;while(p1)p2=p1-next;while(p2)if(strcmp(p2-num,p1-num)next;p1=p1-next;void main()char ch;COLLEGE c; /定義大學(xué)對(duì)象cout.setf(ios:left);/顯示主菜單,接受選擇,并分支調(diào)用大學(xué)類的相應(yīng)功能的成員函數(shù) don高校學(xué)籍管理系統(tǒng)忌n;cout1 一增加學(xué)生 n”;cout2 刪除學(xué)生 n”;cout3 一修改學(xué)生 n;cout4 一查詢學(xué)生 n;cout5 輸出學(xué)生信息n;cout6 綜合統(tǒng)計(jì)(課程平土成績(jī),課程合格率)n”;cout7 一總分排序 n”;cout8

17、學(xué)號(hào)排序 n;coutS 一數(shù)據(jù)存盤 n;coutL 一數(shù)據(jù)裝入 n;coutch; ch=toupper(ch);switch(ch)case 1: c.Add(); break;case 2: c.Delete();break;case 3: c.Modify();break;case 4: c.Query(); break;case 5: c.Print(); break;case 6: c.Stat(); break;case 7: c.SumSort(); break;case 8: c.NumSort(); break;case S: c.Save(); break;case L:

18、 c.Load(); break;while(ch!=Q);3、2數(shù)據(jù)文件1、course.dat :3C+英語(yǔ)高數(shù)2、student.dat86101chenkaijunM M860177599623286102zhaoweiF M860155857721786103wubinM M860185879226486104shijunM M860158908523386105wangzhuguoM M86016670862223、3運(yùn)行結(jié)果參考高校學(xué)籍管理系統(tǒng)1 增加學(xué)生2刪除學(xué)生3修改學(xué)生4查詢學(xué)生5輸出學(xué)生信息6-綜合統(tǒng)計(jì)(課程平均成績(jī),課程合格率7總分排序8學(xué)號(hào)排序S-數(shù)據(jù)存盤L 數(shù)據(jù)裝入

19、Q退出 請(qǐng)選擇(1-8,SLQ)高校學(xué)籍管理系統(tǒng)1 增加學(xué)生2刪除學(xué)生3修改學(xué)生4查詢學(xué)生 5輸出學(xué)生信息6-綜合統(tǒng)計(jì)(課程平均成績(jī),課程合格率7總分排序8-學(xué)號(hào)排序S-數(shù)據(jù)存盤L 數(shù)據(jù)裝入Q退出請(qǐng)選擇(1-8,SLQ):5*輸出學(xué)生信息*學(xué)號(hào) 姓名性別班級(jí) C+ 英語(yǔ)高數(shù)總分 TOC o 1-5 h z 86101 chenkaijunM M860177599623286102 zhaoweiF M860155857721786103 wubinM M860185879226486104 shijunM M860158908523386105 wangzhuguoM M86016670862

20、22高校學(xué)籍管理系統(tǒng)1 -增加學(xué)生2刪除學(xué)生3修改學(xué)生4查詢學(xué)生5輸出學(xué)生信息6-綜合統(tǒng)計(jì)(課程平均成績(jī),課程合格率)7總分排序8學(xué)號(hào)排序S-數(shù)據(jù)存盤L 數(shù)據(jù)裝入Q退出請(qǐng)選擇(1-8,SLQ):7高校學(xué)籍管理系統(tǒng)1 -增加學(xué)生2刪除學(xué)生 3修改學(xué)生4查詢學(xué)生 5輸出學(xué)生信息 6-綜合統(tǒng)計(jì)(課程平均成績(jī),課程合格率)7總分排序8-學(xué)號(hào)排序S-數(shù)據(jù)存盤L 數(shù)據(jù)裝入Q退出請(qǐng)選擇(1-8,SLQ):5*輸出學(xué)生信息*輸出學(xué)生信息*學(xué)號(hào) 姓名86103 wubin86104 shijun86101 chenkaijun86105 wangzhuguo86102 zhaowei性別班級(jí) C+M M8601

21、85M M860158M M860177M M8601F M860155英語(yǔ)高數(shù)總分879226490852335996232670862228577217高校學(xué)籍管理系統(tǒng)1 增加學(xué)生2刪除學(xué)生3修改學(xué)生4查詢學(xué)生5輸出學(xué)生信息 6-綜合統(tǒng)計(jì)(課程平均成績(jī),課程合格率) 7總分排序 8-學(xué)號(hào)排序S-數(shù)據(jù)存盤L 數(shù)據(jù)裝入Q退出請(qǐng)選擇(1-8,SLQ):qPress any key to continun/查詢學(xué)生信息按學(xué)號(hào)或姓名查找,如果找到顯示該學(xué)生,如果未找到,也給出相應(yīng)提示void COLLEGE:uery()coutnext;char No20;char Name20;char ch;d

22、ocoutch;while(ch!=1&ch!=2);int flag=0; / 未找到0,找到1if(ch=1) / 按學(xué)號(hào)查coutNo;while(p)if(strcmp(p-num,No)=0)flag=1; break;elsep=p-next;else /按姓名查coutName;while(p)if(strcmp(p-name,Name)=0)flag=1; break;else p=p-next;if(flag=1) /如果找到,顯示此同學(xué)信息p-OutputT();p-Output();else /否則給出未找到提出 cout指定的學(xué)生沒有找到!n;/輸出所有學(xué)生信息void

23、 COLLEGE:rint() coutnext;STUDENT:OutputT(); 輸出標(biāo)題 while(p) /循環(huán)輸出各位學(xué)生信息 p-Output();p=p-next;/學(xué)生數(shù)據(jù)存盤void COLLEGE:Save()ofstream f(student.dat);STUDENT *p=SL-next;while(p) /遍歷學(xué)生鏈表 p-Output(f); /寫入文件p=p-next;f.close();coutnext;while(p)SL-next=p-next;delete p;p=SL-next;/裝入學(xué)生數(shù)據(jù)void COLLEGEad()Clear();ifstr

24、eam f(student.dat);STUDENT *p=SL;STUDENT *p2=new STUDENT;p2-Input(f);while(f)p-next=p2;p=p-next;p2=new STUDENT;p2-Input(f);delete p2;f.close();統(tǒng)計(jì)課程平均成績(jī),課程合格率void COLLEGE:Stat()float *sum=new floatCOURSE:coursenum; /各科平均成績(jī)/n=合格float *pass=new floatCOURSE:coursenum; /n=合格率int n=0; / 學(xué)生人數(shù)for(int i=0; i

25、next; n=0;sum=pass=0;while(p) /遍歷學(xué)生鏈表n+;/人數(shù)sum=sum+p-grade; /某科總分if(p-grade=60)pass+; / 某科合格人數(shù) p=p-next;for(i=0; iCOURSE:coursenum; i+)coutsetprecision(4)setiosflags(ios二showpoint);coutCOURSE二coursename平均:sum/n”,合格率:pass/n*100.%endl;delete sum;delete pass;void COLLEGE:ValueS2ToS1(STUDENT &s1,STUDENT

26、 &s2)strcpy(s1.num,s2.num); /學(xué)號(hào)strcpy(,); / 姓名s1.sex=s2.sex; 性別strcpy(ame,ame); / 班級(jí)for(int i=0; inext;while(pl)p2=p1-next;while(p2)if(p2-sump1-sum)STUDENT t;ValueS2ToS1(t,*p1);ValueS2ToS1(*p1,*p2);ValueS2ToS1(*p2,t);p2=p2-next;p1=p1-next;void COLLEGE二NumSort() /按學(xué)號(hào)排序(低- 高)STUDENT *p1,

27、*p2;p1=SL-next;while(p1)p2=p1-next;while(p2)if(strcmp(p2-num,p1-num)next;p1=p1-next;void main()char ch;COLLEGE c; /定義大學(xué)對(duì)象cout.setf(ios:left);/顯示主菜單,接受選擇,并分支調(diào)用大學(xué)類的相應(yīng)功能的成員函數(shù) don高校學(xué)籍管理系統(tǒng)忌n;cout1 一增加學(xué)生 n”;cout2 刪除學(xué)生 n”;cout3 一修改學(xué)生 n;cout4 一查詢學(xué)生 n;cout5 輸出學(xué)生信息n;cout6 綜合統(tǒng)計(jì)(課程平土成績(jī),課程合格率)n”;cout7 一總分排序 n”;c

28、out8 學(xué)號(hào)排序 n;coutS 一數(shù)據(jù)存盤 n;coutL 一數(shù)據(jù)裝入 n;coutch; ch=toupper(ch);switch(ch)case 1: c.Add(); break;case 2: c.Delete();break;case 3: c.Modify();break;case 4: c.Query(); break;case 5: c.Print(); break;case 6: c.Stat(); break;case 7: c.SumSort(); break;case 8: c.NumSort(); break;case S: c.Save(); break;case L: c.Load(); break;while(ch!=Q);3、2數(shù)據(jù)文件1、course.dat :3C+英語(yǔ)高數(shù)2、student.dat :86101chenkaijunM M860177599623286102zhaoweiF M860155857721786103wubinM M860185879226486104shijun

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論