c++數(shù)據(jù)結(jié)構(gòu)學(xué)生管理系統(tǒng)方案_第1頁
c++數(shù)據(jù)結(jié)構(gòu)學(xué)生管理系統(tǒng)方案_第2頁
c++數(shù)據(jù)結(jié)構(gòu)學(xué)生管理系統(tǒng)方案_第3頁
c++數(shù)據(jù)結(jié)構(gòu)學(xué)生管理系統(tǒng)方案_第4頁
c++數(shù)據(jù)結(jié)構(gòu)學(xué)生管理系統(tǒng)方案_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

.C++數(shù)據(jù)結(jié)構(gòu)學(xué)生管理系統(tǒng)單鏈表實(shí)現(xiàn)用模板類實(shí)現(xiàn),實(shí)現(xiàn)操作符的重載非常詳細(xì)的代碼及其操作stringname;//姓名stringID;//學(xué)號stringsex;//性別stringmajor;//專業(yè)stringbrithday;//生日intave;//均分Student();voidSetName(string&strname);voidSetSex(string&strsex);voidSetBrith(string&strbrith);voidSetID(string&strID);voidSetMajor(string&strmajor);voidEditPerson();booloperator!=(Student&stu);booloperator>(Student&stu);friendostream&operator<<(ostream&ost,Student&stu);friendifstream&operator>>(ifstream&ost,Student&stu);friendofstream&operator<<(ofstream&ost,Student&stu);stringGetName();ostream&operator<<(ostream&ost,Student&stu){ost<<"Name"<<<<endl;ost<<"Sex"<<stu.sex<<endl;ost<<"Brithday"<<stu.brithday<<endl;ost<<"IDost<<"Majorreturnost;}"<<stu.ID<<endl;"<<stu.major<<endl;.......ifstreamifstream&operator>>(ifstream&ost,Student&stu){ost>>;ost>>stu.sex;ost>>stu.brithday;ost>>stu.ID;ost>>stu.major;returnost;}ofstream&operator<<(ofstream&ost,Student&stu){ost<<<<endl;ost<<stu.sex<<endl;ost<<stu.brithday<<endl;ost<<stu.ID<<endl;ost<<stu.major<<endl;returnost;boolStudent::operator!=(Student&stu){if(==name)returnfalse;returntrue;}boolStudent::operator>(Student&stu1){if(stu1.ave>ave)returntrue;returnfalse;}.Case’a’:system("cls");//stu.EditPerson();cout<<"請輸入學(xué)生的姓名"<<endl;cin>>name;stu.SetName(name);cout<<"請輸入學(xué)生的性別"<<endl;cin>>sex;stu.SetSex(sex);cout<<"請輸入學(xué)生的生日"<<endl;cin>>brithday;stu.SetBrith(brithday);cout<<"請輸入學(xué)生的學(xué)號"<<endl;cin>>ID;stu.SetID(ID);cout<<"請輸入學(xué)生的專業(yè)"<<endl;cin>>major;stu.SetMajor(major);cout<<"請輸入平均成績"<<endl;cin>>ave;stu.SetAve(ave);list.Insert(1,stu);list.Save("Student.txt");cout<<"請輸入選擇(幫助選項(xiàng)-->h):"<<endl;case'b':system("cls");list.PrintLinkList();cout<<"請輸入選擇(幫助選項(xiàng)-->h):"<<endl;....length=list.ListLength();case'd':system("cls");list.DisplayName();cout<<endl;cout<<"請輸入學(xué)生的姓名"<<endl;cin>>name;stu.SetName(name);delstu=list.Find(stu);....case'd':list.DisplayName();cout<<endl;cout<<"請輸入學(xué)生的姓名"<<endl;cin>>name;stu.SetName(name);delstu=list.Find(stu);cout<<delstu;....case'f':systemsystem("cls");list.DisplayName();cin>>name;tu.SetName(name);delstu=list.Find(stu);pos=list.Locate(stu);list.Delete(pos);cout<<endl;cout<<"請輸入學(xué)生的姓名"<<endl;cin>>name;stu.SetName(name);cout<<"請輸入學(xué)生的性別"<<endl;cin>>sex;stu.SetSex(sex);cout<<"請輸入學(xué)生的生日"<<endl;cin>>brithday;stu.SetBrith(brithday);cout<<"請輸入學(xué)生的學(xué)號"<<endl;cin>>ID;stu.SetID(ID);cout<<"請輸入學(xué)生的專業(yè)"<<endl;cin>>major;cout<<"請輸入平均成績"<<endl;cin>>ave;stu.SetAve(ave);.case'g':list.Sort();list.PrintLinkList();LinkList.h#ifndefLinkList_H#defineLinkList_H.......#include<windows.h>#include<fstream>usingnamespacestd;template<classT>structNode{Tdata;Node<T>*next;template<classT>classLinkList{Node<T>*head;public:LinkList();LinkList(Ta[],intn);voidSetLinList(Ta[],intn);~LinkList();intListLength();TGet(intpos);TFind(Titem);intLocate(Titem);voidPrintLinkList();voidInsert(inti,Titem);TDelete(inti);voidInvert();friendvoidMerge(LinkList<T>voidDisplayNode(inti);voidSave(charfname[]);voidOpen(charfname[]);voidDisplayName();voidSort();#endifLinkList.cpp#include"LinkList.h"template<classT>//用于創(chuàng)建一個帶有頭結(jié)點(diǎn)的空鏈表LinkList<T>::LinkList()//元素自身的信息,數(shù)據(jù)域//后繼元素存儲地址,地址域//單鏈表的頭指針//求鏈表的長度//逆置函數(shù)&L1,LinkList<T>&L2);//歸并鏈表//保存//顯示名字//排序.{head=newNode<T>;//私有head->next=NULL;}template<classT>用于創(chuàng)建一個帶有頭結(jié)點(diǎn)的空鏈表LinkList<T>::LinkList(Ta[],intn)//尾插法{Node<T>*rear;rear=head;//指向當(dāng)前單鏈表的最后一個節(jié)點(diǎn)for(inti=0;i<n;i++){Node<T>*s;s=newNode<T>;s->data=a[i];rear->next=s;//rear=headrear=s;//rear一直是指向單鏈表的最后一項(xiàng)}rear->next=NULL;//單鏈表創(chuàng)建結(jié)束,最后一個節(jié)點(diǎn)的指針置為空}template<classT>voidLinkList<T>::SetLinList(Ta[],intn){head=newNode<T>;Node<T>*rear=head;for(inti=0;i<n;i++){Node<T>*s;s=newNode<T>;s->data=a[i];rear->next=s;rear=s;}rear->next=NULL;//單鏈表創(chuàng)建結(jié)束,最后一個節(jié)點(diǎn)的指針置為空}template<classT>intLinkList<T>::ListLength(){intnum=0;.Node<T>*p;p=head->next;while(p){p=p->next;num++;}returnnum;}template<classT>TLinkList<T>::Get(intpos){Node<T>*p;intj;p=head->next;//p指向頭結(jié)點(diǎn)的下一個節(jié)點(diǎn)while(p&&j<pos){p=p->next;}{cout<<"查找位置非法";exit(1);}returnp->data;}template<classT>TLinkList<T>::Find(Titem){Node<T>*p;p=head->next;while(p&&p->data!=item){p=p->next;}{cout<<"查找位置非法";exit(1);}returnp->data;.}template<classT>intLinkList<T>::Locate(Titem){Node<T>*p;p=head->next;intj;while(p&&p->data!=item){p=p->next;}returnj;return0;}template<classT>voidLinkList<T>::PrintLinkList(){Node<T>*p;p=head->next;while(p){cout<<p->data<<"";p=p->next;}}template<classT>voidLinkList<T>::Insert(inti,Titem){Node<T>*p;p=head;intj;while(p&&j<i-1){p=p->next;}{cerr<<"插入位置非法";exit(1);}.{Node<T>*s=newNode<T>;s->data=item;s->next=p->next;p->next=s;}}template<classT>TLinkList<T>::Delete(inti){Node<T>*p,*q;Tx;p=head;intj;while(p&&j<i-1){p=p->next;}{cerr<<"位置非法";exit(1);}{q=p->next;x=q->data;p->next=q->next;deleteq;returnx;}}/*利用頭插法*/template<classT>voidLinkList<T>::Invert(){Node<T>*p;p=head->next;head->next=NULL;//將逆置后的單鏈表初始化為空表.while(p!=NULL){Node<T>*q=p;p=p->next;q->next=head->next;head->next=q;}}template<classT>LinkList<T>::~LinkList(){Node<T>*q=newNode<T>;while(head!=NULL){q=head;head=head->next;deleteq;}}template<classT>voidMerge(LinkList<T>&L1,LinkList<T>&L2)//歸并鏈表{Node<T>*p1,*p2,*p3;p1=L1.head->next;//指向第一個數(shù)據(jù)的節(jié)點(diǎn)p2=L2.head->next;while((p1!=NULL)&&(p2!=NULL)){if((p1->data)<(p2->data)){p3->next=p1;p1=p1->next;p3=p3->next;}{p3->next=p2;p2=p2->next;p3=p3->next;}}p3->next=p1;.if(p2!=NULL)p3->next=p2;deleteL2.head;L2.head=NULL;}template<classT>voidLinkList<T>::Save(charfname[]){ofstreamfout(fname);fout<<ListLength()<<endl;Node<T>*p;p=head->next;while(p!=NULL){fout<<p->data<<endl;p=p->next;}fout.close();}template<classT>voidLinkList<T>::Open(charfname[]){ifstreamfin(fname);fin>>n;Titem;for(inti=0;i<n;i++){Node<T>*p=newNode<T>;fin>>p->data;fin>>item;Insert(i+1,item);}fin.close();}template<classT>voidLinkList<T>::DisplayName(){Node<T>*p;p=head->next;while(p){.cout<<p->data.GetName()<<endl;p=p->next;}}template<classT>voidLinkList<T>::Sort(){Node<T>*p;intlen=ListLength();for(inti=1;i<len;i++){p=head->next;for(intj=0;j<len-i;j++){if(p->data>p->next->data){Ttemp=p->data;p->data=p->next->data;p->next->data=temp;}p=p->next;}}}Student.h#include"LinkList.h"#include<string>#include<fstream>usingnamespacestd;classStudent;ostream&operator<<(ostream&os,Student&stu);ifstream&operator>>(ifstream&ost,Student&stu);ofstream&operator<<(ofstream&ost,Student&stu);classStudent{private:stringname;//stringID;//學(xué)號.stringsex;//性別stringmajor;//專業(yè)stringbrithday;//生日intave;//均分public:Student();voidSetName(string&strname);voidSetSex(string&strsex);voidSetBrith(string&strbrith);voidSetID(string&strID);voidSetMajor(string&strmajor);voidSetAve(intstrave);voidEditPerson();booloperator!=(Student&stu);booloperator>(Student&stu);friendostream&operator<<(ostream&ost,Student&stu);friendifstream&operator>>(ifstream&ost,Student&stu);friendofstream&operator<<(ofstream&ost,Student&stu);stringGetName();Student.cpp#include"Student.h"#include<iostream>usingnamespacestd;ostream&operator<<(ostream&ost,Student&stu){ost<<"Name"<<<<endl;ost<<"Sex"<<stu.sex<<endl;ost<<"Brithday"<<stu.brithday<<endl;ost<<"ID"<<stu.ID<<endl;ost<<"Major"<<stu.major<<endl;ost<<"Average"<<stu.ave<<endl;returnost;}ifstream&operator>>(ifstream&ost,Student&stu){ost>>;ost>>stu.sex;ost>>stu.brithday;ost>>stu.ID;ost>>stu.major;ost>>stu.ave;returnost;}.ofstream&operator<<(ofstream&ost,Student&stu){ost<<<<endl;ost<<stu.sex<<endl;ost<<stu.brithday<<endl;ost<<stu.ID<<endl;ost<<stu.major<<endl;ost<<stu.ave<<endl;returnost;}Student::Student(){}voidStudent::SetName(string&strname){name=strname;}voidStudent::SetSex(string&strsex){sex=strsex;}voidStudent::SetBrith(string&strbrith){brithday=strbrith;}voidStudent::SetID(string&strID){ID=strID;}voidStudent::SetMajor(string&strmajor){major=strmajor;}voidStudent::SetAve(intstrave){ave=strave;}boolStudent::operator!=(Student&stu){if(==name)returnfalse;returntrue;}boolStudent::operator>(Student&stu1).{if(stu1.ave>ave)returntrue;returnfalse;}stringStudent::GetName(){returnname;}voidStudent::EditPerson(){}Test.cpp#include"LinkList.cpp"#include"Student.h"#include<iostream>#include<string>#include<windows.h>usingnamespacestd;voidmenu(){cout<<"a、增加一個學(xué)生信息"<<endl;cout<<"b、打印鏈表"<<endl;cout<<"c、獲取當(dāng)前鏈表的長度"<<endl;cout<<"d、查詢學(xué)生的信息"<<endl;cout<<"e、刪除學(xué)生信息"<<endl;cout<<"f、修改學(xué)生的信息"<<endl;cout<<"g、按平均成績進(jìn)行排序"<<endl;cout<<"h、幫助"<<endl;cout<<"o、退出"<<endl;}voidmain(){charch;LinkList<Student>list;list.Open("Student.txt");stringname,sex,ID,brithday,major,newname;intlength,pos,ave;Studentstu,delstu;menu();cout<<"input"<<endl;.ch=getchar();switch(ch){case'h':system("cls");menu();break;case'a':system("cls");//stu.EditPerson();cout<<"請輸入學(xué)生的"<<endl;cin>>name;stu.SetName(name);cout<<"請輸入學(xué)生的性別"<<endl;cin>>sex;stu.SetSex(sex);cout<<"請輸入學(xué)生的生日"<<endl;cin>>brithday;stu.SetBrith(brithday);cout<<"請輸入學(xué)生的學(xué)號"<<endl;cin>>ID;stu.SetID(ID);cout<<"請輸入學(xué)生的專業(yè)"<<endl;cin>>major;stu.SetMajor(major);cout<<"請輸入平均成績"<<endl;cin>>ave;stu.SetAve(ave);list.Insert(1,stu);list.Save("Student.txt");cout<<"請輸入選擇(幫助選項(xiàng)-->h):"<<endl;break;case'b':system("cls");list.PrintLinkList();cout<<"請輸入選擇(幫助選項(xiàng)-->h):"<<endl;break;case'c':system("cls");length=list.ListLength();cout<<"length="<<length<<endl;cout<<"請輸入選擇(幫助選項(xiàng)-->h):"<<endl;br

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論