版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、面向?qū)ο蟮某绦蛟O(shè)計課程設(shè)計報告姓 名: 學(xué) 號: 班 級: 院 系 日期: 目錄1 課程設(shè)計目的2 項目要求與簡介3 設(shè)計題目 題目 學(xué)生成績管理系統(tǒng)4 測試運行的結(jié)果.5 心得體會與進(jìn)一步的改進(jìn)6 參考書目7 源代碼 程序設(shè)計語言(C+)課程設(shè)計一 設(shè)計目的1.進(jìn)一步掌握用進(jìn)行類的定義和操作 2.進(jìn)一步掌握類的繼承和派生3.掌握在Visual C+6進(jìn)行編程的技術(shù)4.綜合利用上述知識,編寫面向?qū)ο蟮暮唵纬绦?。培養(yǎng)團(tuán)結(jié)合作能力和自主學(xué)習(xí)的能力二 項目要求與簡介1.要求系統(tǒng)具備一定的存儲記憶功能 2.要求系統(tǒng)能夠處理常見異常并作出反映3。系統(tǒng)具備常用的學(xué)生信息處理功能4.本系統(tǒng)還處于1。1版本
2、,還會發(fā)布后續(xù)版本三 設(shè)計題目題目 學(xué)生成績管理系統(tǒng)(一).系統(tǒng)的主要功能1.增加學(xué)生系統(tǒng)可以提示用戶輸入增加的學(xué)生個數(shù),添入到student.dat2。刪除首先由用戶輸入要刪除的位置,然后系統(tǒng)調(diào)用刪除函數(shù)3.查找系統(tǒng)提示用戶輸入要查找的學(xué)號,成績,姓名然后系統(tǒng)再傳遞用戶選擇的項目分別調(diào)用以上三個函數(shù)4.修改系統(tǒng)提示用戶要修改的位置,然后傳遞給修改函數(shù)。接著系統(tǒng)出現(xiàn)提示提示用戶修改的項目,可以修改學(xué)號,姓名或者成績5.成績信息用戶選擇該功能以后,系統(tǒng)出現(xiàn)提示。總共有六項,求平均成績,成績排序低于平均成績的學(xué)生信息,高于90分的學(xué)生信息,低于60分的學(xué)生信息或退出該功能6.顯示所有學(xué)生信息調(diào)用此
3、功能,系統(tǒng)讀取文件中當(dāng)前所有內(nèi)容輸出7。當(dāng)前學(xué)生總數(shù)讀取long。txt中保存的信息并輸出8。交換兩個學(xué)生信息調(diào)用函數(shù)交換兩個學(xué)生的信息9。插入學(xué)生信息在指定位置新建一個學(xué)生信息,位置由用戶輸入(二)。系統(tǒng)總體框架開始界面主要提示的菜單界面查找信息修改信息成績信息交換信息學(xué)生總數(shù)刪除學(xué)生信息新建學(xué)生信息(三).系統(tǒng)數(shù)據(jù)結(jié)構(gòu)定義class student/這是數(shù)據(jù)節(jié)點public:student();student(student c)this->number=c。getnumber(); this->setname(c.getname()); this->setsex(c.g
4、etsex());this->grade=c.getgrade();void setname(char name1)strcpy(this-name,name1);void setnumber(int num)this->number=num;void setgrade(double grade1)thisgrade=grade1;void setsex(char sex1)strcpy(this->sex,sex1);char *getname()return this>name;double getgrade()return this->grade;int g
5、etnumber()return this->number;char getsex()return this>sex;private:char name20;char sex5;double grade;int number;;四 測試運行的結(jié)果<1測試新建學(xué)生信息功能2測試查看學(xué)生總數(shù)功能<3>測試插入學(xué)生信息功能<4>測試顯示所有學(xué)生信息功能<5>測試學(xué)生成績信息功能6測試交換學(xué)生信息功能7>測試刪除學(xué)生信息功能<7測試修改學(xué)生信息功能8>測試查找學(xué)生信息功能五 心得體會與進(jìn)一步改進(jìn)通過此次VC課程設(shè)計,我了解了Vis
6、ual C6的調(diào)試和找錯基本方法。系統(tǒng)的設(shè)計基本實現(xiàn)了老師所要求的功能,同時還增添加了交換學(xué)生信息的新功能。同時在設(shè)計過程中,對于系統(tǒng)的功能還有許多不完善的地方,例如為了是對輸入信息的限制,沒有在系統(tǒng)中做限制用戶可以隨意輸入,由此可能導(dǎo)致系統(tǒng)出錯。另外對于刪除沒有實現(xiàn)按學(xué)號刪除,因此還需要更多的設(shè)計來完善對于表達(dá)式的處理;設(shè)計一開始是以鏈表為基礎(chǔ)的,后來進(jìn)行不下去了。重新用了現(xiàn)在C中對文件處理的知識;界面風(fēng)格只是使用默認(rèn)的,沒有創(chuàng)新,這個需要在以后的設(shè)計中加以改進(jìn)。此次的課程設(shè)計讓自己在學(xué)習(xí)新知識上有了更高的理解,有些只是只有在你想到要用時才會自己去學(xué),同時自己在編程上的理解更深一層,逐步了解
7、編程在實際中的運用,掌握了更多編程方法和思想,拓寬了知識面,為進(jìn)一步的學(xué)習(xí)繼續(xù)打牢根基.六 參考書目Visualc+入門到精通七 源代碼class list:public studentpublic:void display()ifstream infile;int a=1;infile。open("student.dat”,ios:binary);student c;while(infile。read((char *)c,sizeof(c)))cout" 第”a<<"個學(xué)生信息"endl;cout<”姓名:"<<
8、c。getname()<endl;cout<<”性別:”<c。getsex()endl;cout<"成績:”<<c。getgrade()endl;cout"學(xué)號:”<<c.getnumber()endl;a+;cout<<endl;infile。close();/顯示學(xué)生信息void write(int i)int a,t,b=0;char name120;char sex15;int number1;double grade1; ofstream outfile;outfile.open(”student.
9、dat",ios:app);student c;for(a=1;a=i;a+)cout<”請輸入姓名:";cin>name1;c。setname(name1);cout<<”請輸入學(xué)生學(xué)號:”;cin>number1;c。setnumber(number1);cout<<"請輸入學(xué)生性別 :";cinsex1;c。setsex(sex1);cout”請輸入學(xué)生成績:";cingrade1;c。setgrade(grade1);outfile.write((char * )c,sizeof(c);outf
10、ile。close();ifstream infile;/infile.seekg(0,ios::end); infile。open(”long。txt”); if(infile.is_open() while(!infile.eof() char temp50; infile.getline(temp,50); b=atoi(temp); else b=0; infile.close();ofstream outfile1(”long。txt");t=i+b;outfile1<t;outfile1.close();/增加學(xué)生信息void modify2(int i,int j
11、)int cap1; ifstream infile; infile.open("long。txt"); infile>cap1; infile。close();student c;ifstream infile1("student。dat");ofstream outfile(”temp.dat");int a;for(a=1;a<i;a+)infile1。read((char *)c,sizeof(c);outfile。write((char )&c,sizeof(c));outfile.close();infile1.
12、close();ifstream infile2("student.dat”);infile2。seekg(sizeof(c)(i1);infile2.read((char *)&c,sizeof(c));char name120;cout<”輸入姓名:"cin>name1;c.setnumber(c。getnumber());c。setgrade(c.getgrade();c。setname(name1);c。setsex(c.getsex());ofstream outfile1("temp。dat”,ios::app);outfile1.
13、write(char *)&c,sizeof(c);outfile1.close();ifstream infile3("student。dat"); infile3。seekg(sizeof(c)i);ofstream outfile2(”temp.dat",ios::app);for(a=i+1;a<=cap1;a+)infile3。read(char )&c,sizeof(c);outfile2.write(char )&c,sizeof(c);outfile2。close();infile3。close();ifstream
14、infile4(”temp.dat");ofstream outfile3(”student.dat");for(a=1;a=cap1;a+) infile4.read(char *)c,sizeof(c);outfile3。write(char *)c,sizeof(c);remove(”temp。dat”);infile4.close();outfile3。close();void modify1(int i,int j)int cap1; ifstream infile; infile。open(”long。txt"); infile>>cap1
15、; infile。close();student c;ifstream infile1("student。dat”);ofstream outfile("temp.dat”);int a;for(a=1;ai;a+)infile1。read(char )c,sizeof(c));outfile。write(char *)&c,sizeof(c);outfile.close();infile1.close();ifstream infile2("student。dat");infile2.seekg(sizeof(c)(i1);infile2.re
16、ad(char )c,sizeof(c));int number1;cout<"輸入學(xué)號:”;cin>>number1;c。setnumber(number1);c.setgrade(c.getgrade();c。setname(c.getname();c。setsex(c。getsex());ofstream outfile1(”temp。dat",ios:app);outfile1。write(char *)c,sizeof(c));outfile1.close();ifstream infile3("student。dat”); infil
17、e3。seekg(sizeof(c)*i);ofstream outfile2("temp.dat",ios:app);for(a=i+1;a=cap1;a+)infile3.read((char )c,sizeof(c);outfile2。write(char *)c,sizeof(c));outfile2。close();infile3。close();ifstream infile4("temp。dat”);ofstream outfile3("student.dat”);for(a=1;a<=cap1;a+) infile4。read((c
18、har )&c,sizeof(c);outfile3。write(char *)&c,sizeof(c));remove(”temp。dat");infile4.close();outfile3。close();void modify3(int i,int j)int cap1; ifstream infile; infile.open("long。txt"); infile>cap1; infile。close();student c;ifstream infile1(”student.dat");ofstream outfile
19、(”temp。dat”);int a;for(a=1;a<i;a+)infile1.read(char )c,sizeof(c);outfile。write(char *)c,sizeof(c));outfile.close();infile1.close();ifstream infile2(”student。dat");infile2.seekg(sizeof(c)(i1);infile2.read((char )c,sizeof(c));char sex15;cout<”輸入性別:”;cin>sex1;c。setnumber(c.getnumber());c.
20、setgrade(c.getgrade();c。setname(c.getname();c.setsex(sex1);ofstream outfile1("temp。dat”,ios:app);outfile1。write((char *)&c,sizeof(c);outfile1.close();ifstream infile3("student。dat"); infile3。seekg(sizeof(c)*i);ofstream outfile2("temp。dat”,ios::app);for(a=i+1;a<=cap1;a+)inf
21、ile3.read((char *)c,sizeof(c);outfile2。write((char )c,sizeof(c);outfile2。close();infile3。close();ifstream infile4(”temp。dat");ofstream outfile3("student。dat");for(a=1;a<=cap1;a+) infile4.read(char )&c,sizeof(c);outfile3。write(char *)&c,sizeof(c));remove("temp。dat”);inf
22、ile4。close();outfile3.close();void modify4(int i,int j)int cap1; ifstream infile; infile。open(”long.txt”); infile>cap1; infile。close();student c;ifstream infile1("student.dat");ofstream outfile("temp.dat”);int a;for(a=1;a<i;a+)infile1.read(char )&c,sizeof(c);outfile.write(ch
23、ar )c,sizeof(c);outfile.close();infile1。close();ifstream infile2(”student.dat");infile2.seekg(sizeof(c)*(i-1);infile2。read(char *)c,sizeof(c));double grade1;cout<"輸入成績:”;cin>>grade1;c.setnumber(c。getnumber();c.setgrade(grade1);c。setname(c。getname());c.setsex(c.getsex();ofstream ou
24、tfile1(”temp。dat",ios:app);outfile1。write((char )&c,sizeof(c);outfile1。close();ifstream infile3(”student.dat"); infile3.seekg(sizeof(c)*i);ofstream outfile2("temp.dat”,ios::app);for(a=i+1;a=cap1;a+)infile3.read(char *)c,sizeof(c);outfile2.write((char *)c,sizeof(c));outfile2.close(
25、);infile3.close();ifstream infile4(”temp。dat");ofstream outfile3(”student.dat");for(a=1;a=cap1;a+) infile4.read(char )c,sizeof(c);outfile3。write((char )&c,sizeof(c));remove(”temp。dat");infile4。close();outfile3.close(); void modify(int i) int cap1; ifstream infile; infile.open(”lon
26、g.txt”); infile>cap1; infile。close(); student c; ifstream infile1(”student.dat”); if(i<=cap1) int j=1; while(j!=0) cout<<" _”<endl; cout<" |* 請輸入你想執(zhí)行的操作*|”<<endl; cout<<" |* 1。修改學(xué)生學(xué)號 *|”<endl; cout<" |* 2。修改學(xué)生姓名 |”<endl; cout<” * 3。修改學(xué)生性別
27、 *|”<endl; cout<" * 4。修改學(xué)生成績 *|"<<endl; cout<” |* 5。顯示該學(xué)生信息 *|”<endl; cout<<” | 0。退出操作 |”<endl; cout<” -”endl; cin>j; switch(j) case 1: this->modify1(i,j); break; case 2: thismodify2(i,j);break; case 3: this->modify3(i,j); break; case 4: this->modi
28、fy4(i,j); break; case 5: infile1。seekg(sizeof(c)(i-1); infile1.read((char *)&c,sizeof(c)); cout<" 第"<<i<"個學(xué)生信息”<endl; cout<<"姓名:”<c。getname()<endl; cout<<"性別:"<c.getsex()endl; cout<”成績:"<c.getgrade()<endl; cout"
29、學(xué)號:”<c。getnumber()endl; break; case 0: break; else cout"你修改的位置有誤"endl; /修改學(xué)生信息 void change(int i,int j) int cap1,t; if(ij) t=i; i=j; j=t; student b; ifstream infile; infile。open(”long。txt”); infile>>cap1; infile.close(); if(i!=j) if(i<=cap1j<=cap1) b=thisDelete(i); this>i
30、nsert(j1,b); b=thisDelete(j); this->insert(i,b); /交換兩學(xué)生信息 void sort() int cap1,i,j; student a,b; ifstream infile; infile。open(”long。txt”); infile>>cap1; infile.close(); for(i=0;i<cap11;i+) for(j=i+1;jcap1;j+) ifstream infile1("student。dat”); ifstream infile2(”student.dat"); inf
31、ile1.seekg(sizeof(a)(i)); infile1.read(char )&a,sizeof(a)); infile2.seekg(sizeof(b)(j); infile2.read((char )b,sizeof(b)); if(a。getgrade()=b。getgrade()) this-change(i+1,j+1); infile1。close(); infile2.close(); /從大到小排列成績 void insert(int i,student b) int cap1; ifstream infile;infile。open(”long。txt&q
32、uot;);infile>cap1;infile。close();if(i<=cap1)student c;ifstream infile1(”student.dat”);ofstream outfile("temp.dat");int a;for(a=1;ai;a+)infile1。read((char *)c,sizeof(c));outfile.write((char )c,sizeof(c));outfile.close();infile1.close();ofstream outfile1("temp.dat”,ios::app);outfi
33、le1。write(char * )b,sizeof(b));outfile1.close();ifstream infile2("student。dat”);infile2.seekg(sizeof(c)(i-1);ofstream outfile2("temp.dat”,ios:app);for(a=i;a<=cap1;a+)infile2。read(char )&c,sizeof(c);outfile2。write(char *)c,sizeof(c);outfile2.close();infile2.close();ifstream infile3(”
34、temp.dat”);ofstream outfile3("student.dat");for(a=1;a<=cap1+1;a+)infile3。read((char )&c,sizeof(c));outfile3.write((char *)&c,sizeof(c));remove(”temp。dat”);cap1+;infile3。close();outfile3.close();ofstream outfile4(”long。txt”);outfile4<cap1;outfile4。close();elsecout<”你輸入的插入位置
35、有誤”<endl;/插入學(xué)生信息 student Delete(int i) int cap1; ifstream infile1(”long.txt");infile1cap1;infile1.close();student c,b;ifstream infile2("student。dat",ios:binary); int a;ofstream outfile1(”temp1.dat");for(a=1;a<i;a+)infile2.read(char )&c,sizeof(c);outfile1。write((char )c,
36、sizeof(c); infile2。seekg(sizeof(c)*(i1);infile2。read((char )c,sizeof(c)); b=c; infile2。seekg(sizeof(c)*(i));ofstream outfile2(”temp1。dat",ios:app);for(a=i+1;a=cap1;a+)infile2。read(char *)c,sizeof(c);outfile2.write((char *)&c,sizeof(c);infile2。close();outfile1。close();outfile2。close();ofstre
37、am outfile3("student。dat”);ifstream infile3(”temp1.dat");for(a=1;a=cap11;a+)infile3。read((char *)&c,sizeof(c);outfile3.write(char *)c,sizeof(c));infile3.close();outfile3。close();cap1-;ofstream outfile4("long。txt”);outfile4cap1;outfile4.close();remove("temp1.dat”);return b;/刪除
38、學(xué)生信息 void find_number(int number1) student c; ifstream infile;infile。open("student。dat”);while(infile。read(char *)&c,sizeof(c))if(c。getnumber()=number1) cout<” 學(xué)號為"<<number1<”的學(xué)生信息"endl; cout<"姓名:”<c.getname()<endl; cout<<"性別:”<c。getsex()<
39、;endl; cout"成績:”<<c.getgrade()<endl; cout<”學(xué)號:"<c.getnumber()<endl;infile.close();void find_grade(double grade1) student c; ifstream infile;infile.open(”student.dat");while(infile。read(char )&c,sizeof(c)if(c.getgrade()=grade1) cout<” 成績?yōu)?quot;<<grade1”的學(xué)
40、生信息”<endl; cout”姓名:"<<c.getname()<<endl; cout<”性別:"c.getsex()<endl; cout<”成績:"<c.getgrade()endl; cout<”學(xué)號:"<<c。getnumber()<endl;infile.close();void find_name(char *name1) student c; ifstream infile;infile。open(”student.dat”);while(infile。rea
41、d(char *)&c,sizeof(c)))if(!strcmp(c.getname(),name1)) cout" 姓名為"<name1<"的學(xué)生信息”<endl; cout<”姓名:”c.getname()<endl; cout<"性別:"<c.getsex()<<endl; cout<<”成績:"<c。getgrade()<<endl; cout<”學(xué)號:”<<c。getnumber()<<endl;inf
42、ile.close();/查找學(xué)生信息int length()ifstream infile(”long.txt");int a;infilea;return a;/學(xué)生總數(shù)double average()int cap1;ifstream infile; infile.open(”long.txt"); infile>>cap1;int i;double total=0,average;student c;ifstream infile1("student。dat”);for(i=1;i=cap1;i+)infile1.read(char *)c,s
43、izeof(c);total=total+c。getgrade();infile1.close();average=total/cap1;return average;/求平均成績void low_average()student c;double average=this-average();ifstream infile1("student。dat");while(infile1。read((char )c,sizeof(c))if(c.getgrade()average)cout<<"姓名:”c.getname()endl; cout<”性
44、別:”<c。getsex()endl; cout<”成績:"<<c.getgrade()<endl; cout<”學(xué)號:”<c。getnumber()endl;infile1.close();/低于平均成績void high()student c;double average=this>average();ifstream infile1(”student.dat");while(infile1。read(char *)c,sizeof(c)))if(c.getgrade()>90)cout”姓名:”<c.getn
45、ame()endl; cout<"性別:”<<c。getsex()<<endl; cout<<”成績:"c。getgrade()<<endl; cout<"學(xué)號:"<c.getnumber()<<endl;infile1。close();void low()student c;double average=this-average();ifstream infile1(”student。dat”);while(infile1.read((char )&c,sizeof(
46、c))if(c.getgrade()60)cout"姓名:"<c。getname()endl; cout”性別:”<c。getsex()<endl; cout"成績:"<<c.getgrade()endl; cout<”學(xué)號:”<c.getnumber()<<endl;infile1。close();list();void show()int j=1,cap1;char name120;char sex15;int number1;double grade1;student d;list c;int
47、a,b;cout<" 歡 迎 使 用 學(xué) 生 管 理 系 統(tǒng)”<<endl;while(j!=0)cout<” _"<endl;cout<" * 請輸入你想執(zhí)行的操作*|"<endl;cout" |* 1。增加學(xué)生信息 *|”endl;cout<” |* 2。查看學(xué)生總數(shù) *|”<endl;cout<” * 3。刪除學(xué)生信息 *|”<endl;cout<<" |* 4。插入學(xué)生信息 *|"<endl;cout<” |* 5.查找學(xué)生信息
48、 *"<endl;cout<” * 6。學(xué)生成績信息 *|”endl; cout<" * 7。顯示所有信息 *"<<endl;cout” |* 8.修改學(xué)生信息 *”<<endl; cout” |* 9.交換學(xué)生信息 *|”<endl; cout<" * 0。退出操作 *|"<endl; cout<<" -”endl;cin>j;switch(j)case 1:cout<"你想添加的學(xué)生個數(shù):"cin>a;c.write(a);break; case 2:cout"當(dāng)前學(xué)生總數(shù):”<c.length()<endl;break;case 3: ifs
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工現(xiàn)場卸料風(fēng)險點告知卡
- 職場技能提升的家庭作業(yè)實踐案例
- 家庭健康教育從理論到實踐的探索
- 科技展會中的人工智能與用戶體驗研究報告
- 二手房銷售合同樣本大全
- 臨時倉儲設(shè)備租賃合同2025
- 二手房買賣合同補充協(xié)議書范本
- 產(chǎn)品銷售獨家代理合同樣本
- 中介代理辦公租賃合同
- 人事管理外包合同細(xì)則
- 中層領(lǐng)導(dǎo)的高績效管理
- 小小銀行家-兒童銀行知識、理財知識培訓(xùn)
- 物業(yè)公司縮減人員方案范本
- 機(jī)械基礎(chǔ)知識競賽題庫附答案(100題)
- 2022年上學(xué)期八年級期末考試數(shù)學(xué)試卷
- 閱讀理解特訓(xùn)卷-英語四年級上冊譯林版三起含答案
- 國庫集中支付培訓(xùn)班資料-國庫集中支付制度及業(yè)務(wù)操作教學(xué)課件
- 屋面及防水工程施工(第二版)PPT完整全套教學(xué)課件
- 2023年上海青浦區(qū)區(qū)管企業(yè)統(tǒng)一招考聘用筆試題庫含答案解析
- 2023年高一物理期末考試卷(人教版)
- 2023版押品考試題庫必考點含答案
評論
0/150
提交評論