C++程序設計大作業(yè)(含源代碼)_第1頁
C++程序設計大作業(yè)(含源代碼)_第2頁
C++程序設計大作業(yè)(含源代碼)_第3頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、WORD格式面向對象程序設計旅營:一旅十四營*:石英豪學號: 141402053專業(yè)資料整理WORD格式設計本程序的目的:關于一些并不太復雜的集體來說,一般需要管理集體中的每個人的根本信息的,本程序專門為一些在校學生的根本信息的管理而設計的, 主要目的是通過本程序來實現(xiàn)簡單的記錄和查找學生的根本信息;程序功能簡介:本程序是通過面向對象的最重要的特點 “類 來設計出來的, 其功能是實現(xiàn)簡單的學生根本信息管理。 包括一些要求用戶從鍵盤輸入 記錄學生的根本信息、輸出學生的根本信息和用學生的學號來查找學生信息表中的某個學生的根本信息等功能;程序功能的詳細介紹:專業(yè)資料整理WORD格式本人設計程序時考慮

2、到的很所內容,其中輸入輸出學生的根本信息是最根本的功能。下專業(yè)資料整理WORD格式面來給大家介紹程序的核心類的構建:專業(yè)資料整理WORD格式在程序中共建立了兩種類,分別是person類和student類。 person作為student專業(yè)資料整理WORD格式類的基類,其內部是如下設計的:專業(yè)資料整理WORD格式class personpublic:void SetPersonAddress(char *AddressFromMain);void SetPersonSex(char *SexFromMain);void ShowPersonSex();void ShowPersonAddres

3、s();private:char Address25;char Sex2;可以看到, 在上面分別聲明了四個成員函數(shù)和兩個數(shù)據(jù)成員。四個成員函數(shù)的作用是對私有數(shù)據(jù)成員進展訪問包括輸入和輸出。所以當建立了一個 person 類之后就可以通過它的對象來訪問該類的數(shù)據(jù)成員。下面分別說明每一個成員函數(shù)的具體定義: 1設置輸入人地址的成員函數(shù):void person:SetPersonAddress(char *AddressFromMain)專業(yè)資料整理WORD格式strcpy(Address,AddressFromMain);通過 strcpy把字符指針的內容送入person 類中的數(shù)據(jù)成員Addre

4、ss 。 2設置輸入人性別的成員函數(shù):void person:SetPersonSex(char *SexFromMain)strcpy(Sex,SexFromMain);通過 strcpy把字符指針SexFromMain 的內容作為地址的存儲單元中的內容送入 person 類中 Sex 數(shù)據(jù)成員。 3輸出地址成員函數(shù):void person:ShowPersonAddress()cout<<Address<<endl;輸出 person 類中的 Address 數(shù)據(jù)成員的內容; 4輸出性別的成員函數(shù):void person:ShowPersonSex()cout<

5、;<Sex<<endl;輸出 person 類中的 Sex 數(shù)據(jù)成員的內容;接下來就是person 基類的派生類student類的內部設計如下:class student: public personpublic:void SetStudentInformation(char*NameFromMain,char *StudentAddressFromMain,char *StudentSexFromMain,char *StudentNumberFromMain, int *score); void ShowStudentInformation();friend void F

6、indStudentNumber(student *data);friend void FindStudentName(student *data);private:intMathResult,EnglishResult,CResult,CompilationLanguageResult,DigitalLogicResult,MarksismResult;char StudentNumber25;char Name25;float Average;int total;專業(yè)資料整理WORD格式當設計 student派生類的時候,最主要的特點就是利用了“類的一個特點繼承。專業(yè)資料整理WORD格式所

7、以說派生出來的 student 類也具有基類 person 的一些特點。在繼承的方式上本人使用了共有繼承方式 public ,下面來給大家介紹 student 類的內部構造:成員函數(shù)共有設置 ( 輸入 ) 學生信息、輸出學生信息等兩個。還有一個非成員函數(shù)的一個函數(shù),它為該 student 類的友元函數(shù),其功能是實現(xiàn)查找。除此之外還有從基類person 類繼承下來的一些成員函數(shù);數(shù)據(jù)成員分別為整形變量的學生成績包括數(shù)學成績、英語成績、C+成績、匯編語言成績、數(shù)字邏輯成績、馬克思哲學成績等,字符數(shù)組的學生學號和學生*以及整型變量的學生的總分和單精度變量的平均分;下面介紹 student派生類中的各

8、個成員函數(shù)的定義局部:設置 ( 輸入 ) 學生信息的成員函數(shù):Voidstudent:SetStudentInformation(char*NameFromMain,char*StudentAddressFromMain,char* StudentSexFromMain,char *StudentNumberFromMain, int *score)strcpy(Name,NameFromMain);SetPersonAddress(StudentAddressFromMain);SetPersonSex(StudentSexFromMain);strcpy(StudentNumber ,St

9、udentNumberFromMain);for(int i=0; i<6; i+)switch(i)case 0:MathResult=score0;case 1:EnglishResult=score1;case 2:CResult=score2;case 3:CompilationLanguageResult=score3;case 4:DigitalLogicResult=score4;case 5:MarksismResult=score5;total=MathResult+EnglishResult+CResult+CompilationLanguageResult+Digi

10、talLogicResult+MarksismResult;Average=total/6.0;專業(yè)資料整理WORD格式可以看到在設計student類的輸入成員函數(shù)時其內部同時調用了從基類繼承下來的一些成員函數(shù),這就是繼承的特點。下面將會詳細地介紹該成員函數(shù)的功能:首先是 student類的兩個字符數(shù)組變量學生*和學生學號的賦值通過strcpy來直接實現(xiàn),也就是可通過該類的成員函數(shù)來給數(shù)據(jù)成員賦值。還有兩個數(shù)據(jù)成員是不能夠被繼承下來的基類的兩個字符數(shù)組學生性別和家庭地址,它們是通過student派生類的成員函數(shù)中調用從基類person 中繼承下來的成員函數(shù),從而改變對不能被繼承下來的基類的數(shù)據(jù)

11、成員賦值。接著就是對student類中自己的數(shù)據(jù)成員學生成績的賦值,它們是通過一個簡單的switch case語句來實現(xiàn)的。輸出學生信息的成員函數(shù):void student:ShowStudentInformation()cout<<endl;cout<<" 學生的根本信息如下: "<<endl<<endl;cout<<" 學生的* : "<<Name<<endl<<endl;cout<<"學生的學號為: "<<St

12、udentNumber<<endl<<endl;cout<<" 學生的家庭地址為: "ShowPersonAddress();cout<<endl;cout<<" 學生的性別為: "ShowPersonSex();cout<<endl;cout<<" 學生的考試課程成績如下: "<<endl<<endl;專業(yè)資料整理WORD格式cout<<"學生的離散數(shù)學課程成績?yōu)? "<<MathR

13、esult<<"分"<<endl<<endl;專業(yè)資料整理WORD格式cout<<"學生的英語課程成績?yōu)? "<<EnglishResult<<"分 "<<endl<<endl;專業(yè)資料整理WORD格式cout<<"學生的C+課程成績?yōu)? "<<CResult<<"分 "<<endl<<endl;專業(yè)資料整理WORD格式cout<<

14、;"學 生 的 匯 編 語 言 課 程 成 績 為"<<endl<<endl;:"<<CompilationLanguageResult<<"分專業(yè)資料整理WORD格式cout<<"學生的數(shù)字邏輯課程成績?yōu)? "<<DigitalLogicResult<<"分 "<<endl<<endl;專業(yè)資料整理WORD格式cout<<"學生的馬克思主義哲學課程成績?yōu)? "<<

15、MarksismResult<<"分 "<<endl<<endl;專業(yè)資料整理WORD格式cout<<"學生的總分為:"<<total<<"分 "<<endl<<endl;專業(yè)資料整理WORD格式cout<<" 學生的平均分為:"<<Average<<" 分"<<endl<<endl;專業(yè)資料整理WORD格式輸出學生信息的成員函數(shù)的定義中不難

16、發(fā)現(xiàn)輸出時不僅會輸出 student 派生類自己的數(shù)據(jù)成員的值還會同時輸出不能被繼承下來的基類 person 中的數(shù)據(jù)成員的值。這顯然只能通過繼承下來的成員函數(shù)來實現(xiàn)如 ShowPersonAddress 和 ShowPersonSex。專業(yè)資料整理WORD格式下面來介紹三個非成員函數(shù),其中兩個為的分別用學生學號和學生*來進展查找程序運行時保持一個用戶界面的功能。Student 類共有兩個友元函數(shù),分別是student類的友元函數(shù)。 它就是實現(xiàn)查找功能,另一個是一個單獨的普通函數(shù)。其功能是當friend void FindStudentNumber(student專業(yè)資料整理WORD格式*da

17、ta)和friend void FindStudentName(student *data),它們兩個都有查找功能,只是專業(yè)資料整理WORD格式一個用學生的學號另一個用學生的*進展查找。下面詳細介紹student類的兩個友元函數(shù)中的用學號查找的函數(shù)是如何的定義:void FindStudentNumber(student *data)char findnum25;cout<<" 請輸入學號:"cin>>findnum;int i=0;for(i;i<StuNum;i+)if(strcmp(datai.StudentNumber,findnum)

18、=0)cout<<" 在第 "<<i+1<<" 個編號里有您查找的記錄: "<<endl; datai.ShowStudentInformation();if(strcmp(datai.StudentNumber,findnum)<0)|(strcmp(datai.StudentNumber ,findnum)>0)專業(yè)資料整理WORD格式cout<<"在編號 "<<i+1<<"里沒有您查找的記錄!"<<en

19、dl;專業(yè)資料整理WORD格式專業(yè)資料整理WORD格式下面詳細介紹student類的兩個友元函數(shù)中的用*查找的函數(shù)是如何的定義:void FindStudentName(student *data)char findname25;cout<<" 請輸入*:"cin>>findname;int i=0;for(i;i<StuNum;i+)if(strcmp(datai.Name,findname)=0)cout<<" 在第 "<<i+1<<" 個編號里有您查找的記錄: "

20、<<endl; datai.ShowStudentInformation();專業(yè)資料整理WORD格式if(strcmp(datai.Name,findname)<0)|(strcmp(datai.Name,findname)>0)cout<<" 在編號 "<<i+1<<" 里沒有您查找的記錄!"<<endl;可以看出 student類的兩個友元函數(shù)即查找分別用學號和* 函數(shù)的定義都很相似,主要是算法是一致。 因為在 student類中數(shù)據(jù)成員學生*和學生學號都是用字符數(shù)組來定義的,

21、所以上面的兩個分別用學號和*來查找的函數(shù)的算法是根本一致的,只是一個是用student類的一個對象中里面的 name* 去查找, 另一個是用 student 類的一個對象中里面的StudentNumber 學生*去查找。在整個查找函數(shù)先是在函數(shù)的參數(shù)表中聲明student類的對象指針,在主函數(shù)main 中當調用查找函數(shù)時把main 函數(shù)中定義的 student類的數(shù)組的首地址傳送給查找函數(shù)。在查找函數(shù)中先定義一個字符數(shù)組,再提示用戶輸入要查找的學生的*或學號,當*或學號在相應的學生編號里的相應的name*和StudentNumber 學生學號相等時查找便成功并提示用戶該學號或*為根本信息的學生

22、信息輸出在屏幕上,當不相等時查找不成功并提示用戶沒有找到學生的記錄。下面介紹非成員函數(shù)即普通函數(shù)程序運行時保持一個用戶界面功能的函數(shù):void paint()int i;cout<<"學生信息管理系統(tǒng) "<<endl;for (i = 0; i<80; i+)putchar('%');cout<<endl;cout<<"(1)輸入學生的信息(3)用學號查找學生根本信息"<<endl;cout<<endl;cout<<"(2)輸出學生信息(4

23、)用*查找學生根本信息"<<endl;cout<<endl;cout<<"(0)退出程序 "<<endl;cout<<"備注:如果您還沒有輸入任何信息,請先輸入信息再輸出!"<<endl;cout<<endl;for (i = 0; i<80; i+)putchar('%');cout<<endl;上面的普通函數(shù)只是一個簡單的函數(shù),其功能只是在屏幕上保持如下一個畫面:學生信息管理系統(tǒng)%專業(yè)資料整理WORD格式(1)輸入學生的信息

24、(3)用學號查找學生根本信息(2)輸出學生信息(4)用*查找學生根本信息(0) 退出程序備注:如果您還沒有輸入任何信息,請先輸入信息再輸出!%接著給大家介紹主函數(shù)main 的定義局部:void main()char StuSex2,StuName25 ,StuAddress25,StuNumber25;int StuScore6,ctrl;int i=0,j;student stuStuNum;paint();cout<<" 請選擇一個序號"<<endl;cin>>ctrl;while (ctrl != 0)switch(ctrl)cas

25、e 1:for(i; i<StuNum; i+ )system("cls");cout<<" 請 輸 入 第 "<<i+1<<"個 學 生 的 基 本 信 息 :"<<endl;cout<<" 請輸入學生的*:"cin>>StuName;cout<<endl;cout<<" 請輸入學生的性別: "cin>>StuSex;cout<<endl;cout<<&qu

26、ot; 請輸入學生的學號: "cin>>StuNumber;cout<<endl;cout<<" 請輸入學生的家庭地址: "cin>>StuAddress;cout<<endl;cout<<" 請按順序輸入學生的考試成績"<<endl;cout<<endl;cout<<" 離散數(shù)學課程成績: "cin>>StuScore0;專業(yè)資料整理WORD格式cout<<endl;cout<<&

27、quot; 英語課程成績 : "cin>>StuScore1;cout<<endl;cout<<"C+ 課程成績 : "cin>>StuScore2;cout<<endl;cout<<" 匯編語言課程成績: "cin>>StuScore3;cout<<endl;cout<<" 數(shù)字邏輯課程成績: "cin>>StuScore4;cout<<endl;cout<<" 馬克思主

28、義哲學課程成績: "cin>>StuScore5;cout<<endl<<endl;stui.SetStudentInformation(StuName,StuAddress,StuSex,StuNumber,StuScore);break;case 2:cout<<endl;system("cls");for(j=0; j<StuNum; j+)stuj.ShowStudentInformation();system("pause");break;case 3:cout<<en

29、dl;system("cls");FindStudentNumber(stu);system("pause");break;case 4:cout<<endl;system("cls");FindStudentName(stu);system("pause");break;專業(yè)資料整理WORD格式if (ctrl != 'n')system("cls");paint();cout<<" 請選擇一個序號"<<endl;cin&

30、gt;>ctrl;main 主函數(shù)的實現(xiàn)比較長,主要是因為在main 函數(shù)中不僅僅定義了普通變量基本變量 用來暫時存放從鍵盤輸入的學生根本信息,還定義了student類的對象數(shù)組, 且使用了 while循環(huán)和switch case語句來不停地進展選擇,case 的每一個分句分別實現(xiàn)不同的功能, case 1主要實現(xiàn)輸入,用for循環(huán)來把student對象數(shù)組的每一個對象本別進展賦值; case 2主要實現(xiàn)輸出功能,輸出時用for循環(huán)調用每一個student數(shù)組對象的ShowStudentInformation()函數(shù)輸出學生信息的成員函數(shù); case 3和 case 4主要就是實現(xiàn)查找功

31、能, 只是因為查找函數(shù)不是student類的成員函數(shù), 所以可以直接調用函數(shù),在實參表里寫了student對象數(shù)組的首地址,把student對象數(shù)組的首地址傳遞給查找函數(shù);程序源代碼:#include<iostream>#include<iomanip>using namespace std;const int StuNum=1;class personpublic:void SetPersonAddress(char *AddressFromMain);void SetPersonSex(char *SexFromMain);void ShowPersonSex();

32、void ShowPersonAddress();private:char Address25;char Sex2;void person:SetPersonAddress(char *AddressFromMain)strcpy(Address,AddressFromMain);專業(yè)資料整理WORD格式void person:SetPersonSex(char *SexFromMain)strcpy(Sex,SexFromMain);void person:ShowPersonAddress()cout<<Address<<endl;void person:ShowP

33、ersonSex()cout<<Sex<<endl;class student: public personpublic:voidSetStudentInformation(char*NameFromMain,char *StudentAddressFromMain,char *StudentSexFromMain,char *StudentNumberFromMain, int *score);void ShowStudentInformation();friend void FindStudentNumber(student *data);friend void F

34、indStudentName(student *data);private:intMathResult,EnglishResult,CResult,CompilationLanguageResult,DigitalLogicResult,MarksismResult;char StudentNumber25;char Name25;float Average;int total;專業(yè)資料整理WORD格式voidstudent:SetStudentInformation(char*StudentAddressFromMain,char*StudentSexFromMain,charint *sc

35、ore)*NameFromMain,char *StudentNumberFromMain,專業(yè)資料整理WORD格式strcpy(Name,NameFromMain);SetPersonAddress(StudentAddressFromMain);SetPersonSex(StudentSexFromMain);strcpy(StudentNumber ,StudentNumberFromMain);專業(yè)資料整理WORD格式for(int i=0; i<6; i+)switch(i)case 0:MathResult=score0;case 1:EnglishResult=score1

36、;case 2:CResult=score2;case 3:CompilationLanguageResult=score3;case 4:DigitalLogicResult=score4;case 5:MarksismResult=score5;total=MathResult+EnglishResult+CResult+CompilationLanguageResult+DigitalLogicResult+MarksismResult;Average=total/6.0;void student:ShowStudentInformation()cout<<endl;cout

37、<<" 學生的根本信息如下: "<<endl<<endl;cout<<" 學生的* : "<<Name<<endl<<endl;cout<<"學生的學號為: "<<StudentNumber<<endl<<endl;cout<<" 學生的家庭地址為: "ShowPersonAddress();cout<<endl;cout<<" 學生的性別

38、為: "ShowPersonSex();cout<<endl;cout<<" 學生的考試課程成績如下: "<<endl<<endl;cout<<"學生的離散數(shù)學課程成績?yōu)?"<<MathResult<<"分"<<endl<<endl;專業(yè)資料整理WORD格式cout<<" 學生的英語課程成績?yōu)? "<<EnglishResult<<"專業(yè)資料整理WORD

39、格式分 "<<endl<<endl;cout<<"學 生 的C+課 程 成 績 為 :"<<CResult<<"分"<<endl<<endl;cout<<"學生的匯編語言課程成績?yōu)?"<<CompilationLanguageResult<<"分"<<endl<<endl;cout<<"學生的數(shù)字邏輯課程成績?yōu)?"<<D

40、igitalLogicResult<<"分"<<endl<<endl;cout<<"學 生 的 馬 克 思 主 義 哲 學 課 程 成 績 為 :"<<MarksismResult<<"分 "<<endl<<endl;cout<<" 學生的總分為: "<<total<<"分"<<endl<<endl;cout<<"學 生

41、 的 平 均 分 為 : "<<Average<<"分"<<endl<<endl;void FindStudentNumber(student *data)char findnum25;cout<<" 請輸入學號:"cin>>findnum;int i=0;for(i;i<StuNum;i+)if(strcmp(datai.StudentNumber,findnum)=0)cout<<" 在第 "<<i+1<<&

42、quot; 個編號里有您查找的記錄:"<<endl;datai.ShowStudentInformation();if(strcmp(datai.StudentNumber,findnum)<0)|(strcmp(datai.StudentNumber,findnum)>0)cout<<"在 編 號 "<<i+1<<"里 沒 有 您 查 找 的 記錄 !"<<endl;void FindStudentName(student *data)專業(yè)資料整理WORD格式char f

43、indname25;cout<<" 請輸入*:"cin>>findname;int i=0;for(i;i<StuNum;i+)if(strcmp(datai.Name,findname)=0)cout<<" 在第 "<<i+1<<" 個編號里有您查找的記錄:"<<endl;datai.ShowStudentInformation();if(strcmp(datai.Name,findname)<0)|(strcmp(datai.Name,findna

44、me)>0)專業(yè)資料整理WORD格式cout<<"在 編 號"<<i+1<<"里沒有您查找的記專業(yè)資料整理WORD格式錄!"<<endl;void paint()專業(yè)資料整理WORD格式int i;cout<<"for (i = 0; i<80; i+)putchar('%');cout<<endl;cout<<"(1)輸入學生的信息cout<<endl;cout<<"(2)輸出學生信息co

45、ut<<endl;cout<<"(0)退出程序 "<<endl;cout<<"學生信息管理系統(tǒng)"<<endl;(3)用學號查找學生根本信息"<<endl;(4)用*查找學生根本信息"<<endl;備注:如果您還沒有輸入任何信息,請先輸入信息專業(yè)資料整理WORD格式再輸出! "<<endl;cout<<endl;for (i = 0; i<80; i+)putchar('%');cout<<endl;void main()charStuSex2,StuName25 ,StuAddress25,StuNumber25;專業(yè)資料整理WORD格式int StuScore6,ctrl;int i=0,j;student stuStuNum;paint();cout<<" 請選擇一個序號"<<endl;cin>>ctrl;while (ctrl !=

溫馨提示

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

評論

0/150

提交評論