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

下載本文檔

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

文檔簡(jiǎn)介

1、學(xué)生學(xué)籍管理系統(tǒng)程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告專(zhuān) 業(yè): 班 級(jí): 學(xué) 號(hào): 姓 名: 指導(dǎo)教師: 二OO八 年 六月二十六日C+課程設(shè)計(jì)學(xué)籍管理系統(tǒng)實(shí)驗(yàn)報(bào)告1、 對(duì)C+設(shè)計(jì)的學(xué)生學(xué)籍管理系統(tǒng)總體說(shuō)明我這次做的課程設(shè)計(jì)是學(xué)生學(xué)籍管理系統(tǒng),本程序采用C+程序語(yǔ)言編寫(xiě),運(yùn)用了基于對(duì)象和面向?qū)ο蟮某绦蛟O(shè)計(jì)。它主要是完成對(duì)學(xué)生的基本信息和成績(jī)進(jìn)行錄入、查詢(xún)和刪除功能。實(shí)施起來(lái)簡(jiǎn)單快捷,雖然程序簡(jiǎn)單,但可以作為老師的輔助軟件對(duì)學(xué)生的基本信息和各科成績(jī)進(jìn)行管理。2、 總體設(shè)計(jì) 本程序的流程圖如下:Main()函 數(shù)界面根據(jù)提示操作錄入(1);調(diào)用bulid函數(shù)(插入)查詢(xún)(2);根據(jù)界面提示操作刪除(3);調(diào)用d

2、elete函數(shù)(刪除)排序(4);根據(jù)提示調(diào)用taxis_credit或taxis_mark全部輸出(5);分別調(diào)用兩個(gè)類(lèi)的displaygoto to(返回menu)退出(其它)3、 對(duì)學(xué)生學(xué)籍管理系統(tǒng)的介紹()具體功能:a) 數(shù)據(jù)錄入功能:對(duì)B.TXT進(jìn)行數(shù)據(jù)錄入,只錄入每個(gè)學(xué)生的學(xué)號(hào)、課程編號(hào)、課程名稱(chēng)、學(xué)分、平時(shí)成績(jī)、實(shí)驗(yàn)成績(jī)、卷面成績(jī)共7個(gè)數(shù)據(jù). 綜合成績(jī)、學(xué)分由程序根據(jù)條件自動(dòng)運(yùn)算() 查詢(xún)功能:分為學(xué)生基本情況查詢(xún)和成績(jī)查詢(xún)兩種:A:學(xué)生基本情況查詢(xún):A1-輸入一個(gè)學(xué)號(hào)或姓名(可實(shí)現(xiàn)選擇),查出此生的基本信息并顯示輸出。A2-輸入一個(gè)宿舍號(hào)碼,可查詢(xún)出本室所有的學(xué)生的基本信息并顯

3、示輸出。B:成績(jī)查詢(xún):B1:輸入一個(gè)學(xué)號(hào)時(shí),查詢(xún)出此生的所有課程情況,格式如下:學(xué) 號(hào):xx 姓 名:xxxxx課程編號(hào):xxx 課程名稱(chēng):xxxxx 綜合成績(jī):xxxx 實(shí)得學(xué)分: xx課程編號(hào):xxx 課程名稱(chēng):xxxxx 綜合成績(jī):xxxx 實(shí)得學(xué)分: xx課程編號(hào):xxx 課程名稱(chēng):xxxxx 綜合成績(jī):xxxx 實(shí)得學(xué)分: xx 共修:xx科,實(shí)得總學(xué)分為: xxxb) 刪除功能:當(dāng)在A.TXT中刪除一個(gè)學(xué)生時(shí),自動(dòng)地在B.TXT中刪除此人所有信息。c) 排序功能:能實(shí)現(xiàn)選擇按綜合成績(jī)或?qū)嵉脤W(xué)分升序或降序排序并顯示數(shù)據(jù)。()源程序說(shuō)明:源程序清單及注釋如下:#include<i

4、ostream>#include<fstream>#include<iomanip>using namespace std;class Basicpublic: virtual int input(ifstream &its)=0;virtual void input()=0;virtual void display(ofstream &its)=0;virtual void display()=0;virtual void display_1() friend class College;protected:/把這些數(shù)放在這,方便調(diào)用Basic

5、*next;/指針int number;/學(xué)號(hào)char name40;/姓名int dom_number;/宿舍號(hào)double mark; /綜合成績(jī)int credit; /實(shí)得學(xué)分;class Student:virtual public Basicpublic:int input(ifstream &its)/輸入流its>>number;if(number=-1)return 0;elseits>>name>>sex>>dom_number>>phone_number;return 1; void input()/輸入

6、cout<<"學(xué)號(hào):"cin>>number;cout<<" 姓名:"cin>>name;cout<<"性別:"cin>>sex;cout<<"宿舍號(hào)碼:"cin>>dom_number;cout<<"電話號(hào)碼:"cin>>phone_number;void display(ofstream &its)/輸出流 its<<number<<&quo

7、t; "<<name<<" "<<sex<<" "<<dom_number<<" "<<phone_number<<endl;void display()/輸出cout<<number<<setw(10)<<name<<setw(6)<<sex<<setw(10)<<dom_number<<setw(13)<<phone_n

8、umber<<endl;private:char sex5;/性別char phone_number20;/電話號(hào)碼;class Course:virtual public Basicpublic:int input(ifstream &its)/輸入流函數(shù)its>>number;if(number=-1)return 0;else its>>chass_number>>chass_name>>chass_mark>>peacetime_mark>>experiment_mark>>txt_

9、mark;account();return 1;void input()/輸入函數(shù)cout<<"學(xué)號(hào)="cin>>number;cout<<"課程編號(hào)="cin>>chass_number;cout<<"課程名稱(chēng)="cin>>chass_name;cout<<"學(xué)分="cin>>chass_mark;cout<<"平時(shí)成績(jī)="cin>>peacetime_mark;cout&l

10、t;<"實(shí)驗(yàn)成績(jī)="cin>>experiment_mark;cout<<"卷面成績(jī)="cin>>txt_mark;account(); void account()/計(jì)算綜合成績(jī)和實(shí)得學(xué)分int i;if(experiment_mark=-1) mark=peacetime_mark*0.15+experiment_mark*0.15+txt_mark*0.7;else mark=peacetime_mark=peacetime_mark*0.3+txt_mark*0.7;i=mark/10;switch(i)

11、case 10: credit=chass_mark;break;case 9: credit=chass_mark;break;case 8: credit=chass_mark*0.8;break;case 7: credit=chass_mark*0.7;break;case 6: credit=chass_mark*0.6;break;default:credit=0;break;void display(ofstream &its)/輸出流函數(shù)its<<number<<" "<<chass_number<<&

12、quot; "<<chass_name<<" "<<chass_mark<<" "<<peacetime_mark<<" "<<experiment_mark<<" "<<txt_mark<<endl;void display()/輸出函數(shù)cout<<number<<setw(10)<<chass_number<<setw(11)<&

13、lt;chass_name<<setw(5)<<chass_mark<<setw(7)<<peacetime_mark<<setw(10)<<experiment_mark<<setw(10)<<txt_mark<<setw(10)<<mark<<setw(10)<<credit<<endl;void display_1() cout<<"課程編號(hào):"<<chass_number<<&

14、quot; "<<"課程名稱(chēng):"<<chass_name <<" "<<"綜合成績(jī):"<<mark<<" "<<"實(shí)得學(xué)分:"<<credit<<endl;private:char chass_number30;/課程編號(hào)char chass_name30;/課程名稱(chēng)int chass_mark; /學(xué)分int peacetime_mark;/平時(shí)成績(jī)int experiment

15、_mark;/實(shí)驗(yàn)成績(jī)int txt_mark; /卷面成績(jī);class College/鏈表類(lèi)public:College(int i)/構(gòu)造函數(shù)建立初鏈,i=0建立Student鏈表,i=1建立Course鏈表ji=0;Basic *p;int t;PL=i;if(PL=0)/根據(jù)PL,打開(kāi)相應(yīng)的文件f.open("A.txt",ios:in); head=new Student;p=new Student;else f.open("B.txt",ios:in);head=new Course;p=new Course;if(!f)/判斷f是否打開(kāi)文

16、件cout<<"錯(cuò)誤"<<endl;abort();t=head->input(f); head->next=p;p->next=NULL;for(;)/讀入文件數(shù)據(jù),并將數(shù)據(jù)插入鏈表中if(i=0)p=new Student;else p=new Course; t=p->input(f);if(t=0)break;head=Build(p);f.close();/關(guān)閉文件College() save();Basic *Build(Basic *p)/插入函數(shù),將p有序的插入鏈表中Basic *p1=head,*p2=hea

17、d;int i;for(i=0;p1->next!=NULL;i+)if(i=0&&p->number<p1->number)/處理頭鏈p->next=p1;head=p;ji+;break;else if(p->number<p1->number)/處理中間p2->next=p;p->next=p1;ji+;break;else if(i=ji)/處理尾p2=p1;p1=p1->next;p2->next=p;p->next=p1;ji+;break;p2=p1;p1=p1->next;ret

18、urn head;void display()/輸出鏈表信息Basic *a=head;for(;a->next!=NULL;a=a->next)a->display();void find_number()/查找學(xué)號(hào)(student)int i;Basic *h=head;cout<<"請(qǐng)輸入你想找的學(xué)號(hào):"cin>>i;for(;h->next!=NULL;h=h->next)if(h->number=i)h->display();break;void find_name()/查找姓名(student)c

19、har i40;Basic *h=head;cout<<"請(qǐng)輸入你想找的姓名:"cin>>i;for(;h->next!=NULL;h=h->next)if(strcmp(h->name,i)=0)h->display();break;void find_dom_number()/查找宿舍號(hào)碼(student)int i;Basic *h=head;cout<<"請(qǐng)輸入你想找的宿舍號(hào)碼:"cin>>i;for(;h->next!=NULL;h=h->next)if(h-&

20、gt;dom_number=i)h->display(); Basic *get_head()return head; void find(Basic *a)/輸入一個(gè)學(xué)號(hào)時(shí),查詢(xún)出此生的所有課程情況(Course)int i;Basic *h=head; cout<<"請(qǐng)輸入你想查的學(xué)號(hào):"cin>>i;for(;a->next!=NULL;a=a->next)if(a->number=i)cout<<"學(xué) 號(hào):"<<i<<" "cout<&l

21、t;"姓 名:"<<a->name<<endl;break;for(;h->next!=NULL;h=h->next)if(h->number=i)h->display_1();void Delete(int j)/刪除,j表示學(xué)號(hào) Basic *p1=head,*p2=head;int i=0; for(;p1->next!=NULL;)if(i=0&&p1->number=j)/處理頭head=p1->next;i=-1;/保證下次還可以刪除頭鏈else if(p1->numb

22、er=j)/處理尾p2->next=p1->next;p2=p1;p1=p1->next;i+; void delete_student(College &b)/當(dāng)在A.TXT中刪除一個(gè)學(xué)生時(shí),自動(dòng)地在B.TXT中刪除此人所有信息(student)int i;cout<<"請(qǐng)輸入你想刪除的學(xué)生的學(xué)號(hào):"cin>>i;Delete(i);b.Delete(i); void taxis_mark()/綜合成績(jī)排序(Course)Basic *a=head;Basic *m90,*t;int i,j,k,b;cout<<

23、;"升序-1 降序-2"<<endl;cin>>b;if(b=1)/升序for(i=0;a->next!=NULL;i+)mi=a;a=a->next;for(j=0;j<i;j+)for(k=j;k<i;k+)if(mj->mark>mk->mark)t=mj;mj=mk;mk=t;cout<<"按綜合成績(jī)升序排序?yàn)?quot;<<endl;for(j=0;j<i;j+)mj->display();else if(b=2)/降序 for(i=0;a->ne

24、xt!=NULL;i+)mi=a;a=a->next;for(j=0;j<i;j+)for(k=j;k<i;k+)if(mj->mark<mk->mark)t=mj;mj=mk;mk=t;cout<<"按綜合成績(jī)降序排序?yàn)?quot;<<endl;for(j=0;j<i;j+)mj->display();void taxis_credit()/學(xué)分排序(Course)Basic *a=head;Basic *m90,*t;int i,j,k,b;cout<<"升序-1 降序-2"&

25、lt;<endl;cin>>b;if(b=1)/升序for(i=0;a->next!=NULL;i+)mi=a;a=a->next;for(j=0;j<i;j+)for(k=j;k<i;k+)if(mj->credit>mk->credit)t=mj;mj=mk;mk=t;cout<<"按學(xué)分升序排序?yàn)?quot;<<endl;for(j=0;j<i;j+)mj->display();else if(b=2)/降序 for(i=0;a->next!=NULL;i+)mi=a;a=a-

26、>next;for(j=0;j<i;j+)for(k=j;k<i;k+)if(mj->credit<mk->credit)t=mj;mj=mk;mk=t;cout<<"按學(xué)分降序排序?yàn)?quot;<<endl;for(j=0;j<i;j+)mj->display();void save() /保存函數(shù)Basic *h=head;int i=-1; if(PL=0) s.open("A.txt",ios:out); else if(PL=1) s.open("B.txt",i

27、os:out); for(;h->next!=NULL;h=h->next)h->display(s);s<<i<<endl;s.close();private:ifstream f;ofstream s;Basic *head;/鏈表的頭指針int ji;/計(jì)算插入的數(shù) int PL;/判斷建立怎樣的鏈表;int main() int i,k10; Course *c;College a(0),b(1);cout<<" * 歡迎進(jìn)入! *"<<endl;cout<<" *學(xué)籍管理系統(tǒng)*

28、"<<endl;cout<<" * *"<<endl;cout<<" * *"<<endl; to:cout<<" * <1> 錄入 <2> 查詢(xún) <3> 刪除 *"<<endl;cout<<" * *"<<endl; cout<<" * <4> 排序 <5> 全部輸出 <其他> 結(jié)束 *"<

29、;<endl;cout<<" * *"<<endl;cout<<" * *"<<endl;cout<<" *"<<endl;cin>>i;if(i=1)c=new Course;c->input();b.Build(c); goto to;else if(i=2) cout<<"1-學(xué)生基本情況查詢(xún) 2-成績(jī)查詢(xún)"<<endl; cin>>k0; if(k0=1)cout<<"1-學(xué)號(hào)查詢(xún) 2-姓名查詢(xún) 3

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論