




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C+程序設(shè)計(jì)實(shí)現(xiàn)環(huán)節(jié)考核規(guī)定2.1 實(shí)踐環(huán)節(jié)考核大綱一、考核類型上機(jī)考核二、目的要求C+語言程序設(shè)計(jì)是計(jì)算機(jī)科學(xué)與應(yīng)用專業(yè)、信息管理專業(yè)(本科)的必修課,是培養(yǎng)學(xué)生實(shí)踐動(dòng)手能力的一門重要的專業(yè)課程,是為滿足計(jì)算機(jī)應(yīng)用領(lǐng)域與計(jì)算機(jī)應(yīng)用人才的需要而設(shè)計(jì)的。C+語言是一種面向?qū)ο蟮木幊陶Z言,它集抽象性、封裝性、繼承性和多態(tài)性等面向?qū)ο筇卣饔谝惑w,可以幫助人們開發(fā)出具有較高數(shù)據(jù)抽象程度,能夠充分體現(xiàn)信息隱蔽、軟件重用、易修改、易擴(kuò)充等特征的大型軟件。C+語言程序設(shè)計(jì)的實(shí)驗(yàn)采用 Microsoft Visual C+6.0。通過上機(jī)實(shí)踐,加深對(duì)課程的理解,更好地掌
2、握程序設(shè)計(jì)的基本方法,增強(qiáng)實(shí)踐動(dòng)手能力。三、考核環(huán)境硬件:586 以上的 PC 系列機(jī),主頻大于 166MHz,內(nèi)存大于 256MB,硬盤空間大于500MB。軟件:中文 Windows2000/NT/XP 操作系統(tǒng),Microsoft Visual C+6.0。四、考核方法考生抽取試題后,在 45 分鐘內(nèi),完成試卷中所要求的全部?jī)?nèi)容,并作必要的記錄??荚嚱Y(jié)束后,考生上交試卷。上機(jī)考核成績(jī)由現(xiàn)場(chǎng)老師初評(píng),經(jīng)考點(diǎn)負(fù)責(zé)人審核簽名,報(bào)主考院校核定。成績(jī)分合格、不合格兩類。五、考核內(nèi)容l掌握
3、160;MicrosoftVisualC+6.0 集成開發(fā)環(huán)境的使用,新建工程,編輯含有類C+源文件,存取文件,編譯文件,調(diào)試程序和運(yùn)行程序。l模板。包括:函數(shù)模板、類模板,練習(xí)編制函數(shù)模板和類模板。l熟悉面向?qū)ο缶幊趟枷牒投辔募幊桃?guī)范。l掌握公有繼承的賦值兼容性規(guī)則、構(gòu)造函數(shù)、復(fù)制構(gòu)造函數(shù)和析構(gòu)函數(shù)的設(shè)計(jì)方法。l練習(xí)各類運(yùn)算符的重載。l熟悉使用文件的基本方法。l熟悉繼承和包含以及虛函數(shù)的多態(tài)性。六、參考書目1.劉振安主編,C+程序設(shè)計(jì),機(jī)械工業(yè)出版社 2008 年2.雪萬鵬譯,C+程序設(shè)計(jì)教程,機(jī)械工業(yè)出版社 2005 年3.錢能,C+程序
4、設(shè)計(jì)教程,清華大學(xué)出版社 2006 年2.2 C+程序設(shè)計(jì)上機(jī)考核指導(dǎo)C+語言程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的課程,必須通過反復(fù)上機(jī)練習(xí),深入領(lǐng)悟面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想。通過實(shí)驗(yàn)教學(xué)加深理解和鞏固課堂和教材所學(xué)的內(nèi)容,提高實(shí)踐動(dòng)手能力。實(shí)驗(yàn)一 Microsoft Visual C+6.0 集成開發(fā)環(huán)境的使用一、實(shí)驗(yàn)?zāi)康呐c要求了解并初步掌握 Microsoft Visual C+6.0 集成開發(fā)環(huán)境的使用。二、實(shí)驗(yàn)內(nèi)容(1)創(chuàng)建項(xiàng)目(Project)1、 啟動(dòng) VC6.
5、02、 從主菜單中選擇【文件】|【新建】命令,打開【新建】對(duì)話框。單擊【工程】標(biāo)簽,從項(xiàng)目列表中單擊 Win32 Console Application 選項(xiàng);在【工程】文本框中輸入項(xiàng)目的名字,如“hello”,系統(tǒng)將自動(dòng)為用戶的項(xiàng)目分配一個(gè)默認(rèn)的目錄。3、 如果是 Visual C+6.0,系統(tǒng)將顯示一個(gè)詢問項(xiàng)目類型的程序向?qū)?,選擇an empty project(空項(xiàng)目)選項(xiàng),單擊【完成】按鈕,顯示新建項(xiàng)目信息;單擊【確定】按鈕結(jié)束。(2)添加程序代碼1、 從主菜單中選擇【文件】|
6、【新建】命令,打開【新建】對(duì)話框。2、 在【新建】對(duì)話框中打開【文件】選項(xiàng)卡,單擊 C+Source File 選擇,建立源文件;選擇“添加工程”復(fù)選框。在右邊的“文件”文本框中為文件指定一個(gè)名字,如“hello”。3、 編輯源文件。在【工作區(qū)】窗口中單擊 FileVIEW 標(biāo)簽,選擇并打開該窗口中 SourceFiles 下的文件,如 hello.app,在打開的【文件】窗口中輸入源文件。4、 在項(xiàng)目文件中增加文件。若在已有的項(xiàng)目文件中增加一個(gè)新文件,如 C+源文件“*.c
7、pp”或頭文件“*.h”需要執(zhí)行以下操作。打開相應(yīng)的項(xiàng)目文件,選擇【新建】|【文件】命令,選擇 C+編輯欄 Source 選擇,可增加 C+源文件;或選擇 C/C+Head File 選項(xiàng)增加 C/C+頭文件。在【文件】文本框輸入文件名,單擊【確定】按鈕。(3)編譯源文件先激活相應(yīng)的源文件窗口,選擇【編譯】|【編譯】命令或按 Ctrl+F7 鍵來編譯源文件,形成目標(biāo)文件(生成.obj 文件),若該項(xiàng)目中有多個(gè)源文件,可依次激活并編譯。(4)連接目標(biāo)文件,形成可執(zhí)行文件選擇【編譯】|【連
8、接】命令或快捷鍵 F7 連接程序,并形成可執(zhí)行文件。此命令也可直接將項(xiàng)目中的所有源文件進(jìn)行編譯并連接形成可執(zhí)行文件,使編譯和連接的過程結(jié)合在一起。(5)運(yùn)行程序選擇【編譯】|【執(zhí)行】命令或使用快捷鍵 Ctrl+F5 運(yùn)行該程序,將顯示一個(gè)類似于 DOS 的窗口,在窗口中第一行輸出程序計(jì)算結(jié)果,第二行輸出“Pressany key to continue”,提示用戶按任意鍵回到開發(fā)環(huán)境。三、程序練習(xí)定義一個(gè)關(guān)于日期的類,然后聲明對(duì)象,判斷該日期是否為閏年并輸出。本題練習(xí)的是定義類和使用類的方法#includ
9、e<iostream>using namespace std;class TDatepublic:void SetDate(int y,int m,int d);int isLeapYear();void Print();private:int year,month,day;void TDate:SetDate(int y,int m,int d)year=y;month=m;day=d;int TDate:isLeapYear()r
10、eturn (year%4=0 && year%100!=0)|(year%400=0);void TDate:Print()cout<<year<<"."<<month<<"."<<day<<endl;void main()TDate date1,date2;date1.SetDate(2004,5,4);date2.SetDate(2005,4,9);int leap=date1.isLeapY
11、ear();date1.Print();if(leap=1)cout<<"是閏年!"<<endl;elsecout<<"不是閏年!"<<endl;date2.Print();leap=date2.isLeapYear();if(leap=1)cout<<"是閏年!"<<endl;elsecout<<"不是閏年!"<<endl;四、實(shí)驗(yàn)要求按要求編寫實(shí)驗(yàn)程序,將實(shí)驗(yàn)程序調(diào)試運(yùn)行,寫出程序的運(yùn)行結(jié)果,并提交實(shí)驗(yàn)報(bào)告,寫出調(diào)試
12、運(yùn)行的分析和體會(huì)。實(shí)驗(yàn)二 類和對(duì)象的使用一、實(shí)驗(yàn)?zāi)康暮鸵螅?)熟悉類的定義格式和類中成員的訪問權(quán)限。(2)掌握對(duì)象的定義以及對(duì)象的初始化和賦值的操作。(3)掌握構(gòu)造函數(shù)和析構(gòu)函數(shù)的使用。二、實(shí)驗(yàn)內(nèi)容1 編寫一個(gè)程序,定義類 CPeople 包含個(gè)人信息名稱、年齡、薪水。并在類中定義構(gòu)造函數(shù)、析構(gòu)函數(shù)。題目分析:注意構(gòu)造函數(shù)、析構(gòu)函數(shù)的定義規(guī)則。源程序代碼:#include<iostream>#include<string>using namespace std;/類 Cpeople 的定義
13、class CPeopleintm_nAge;float m_fSalary;char* m_pstrName;public:CPeople();/缺省構(gòu)造函數(shù)CPeople(int age,float salary,char *name); /帶參數(shù)的構(gòu)造函數(shù)CPeople(const CPeople&);/拷貝構(gòu)造函數(shù)CPeople();/析構(gòu)函數(shù)char *GetName();float GetSalary();void SetSalary(float);int
14、;GetAge();void SetAge(int age);CPeople:CPeople()m_nAge=20;m_fSalary=3000.00f;m_pstrName=new char20;strcpy(m_pstrName,"無名氏");CPeople:CPeople(int age,float salary,char *name)m_nAge=age;m_fSalary=salary;m_pstrName=new char20;strcpy(m_pstrName,name);CPeople:C
15、People(const CPeople&AnotherPeople)m_nAge=AnotherPeople.m_nAge;m_fSalary=AnotherPeople.m_fSalary;m_pstrName=new char20;strcpy(m_pstrName,AnotherPeople.m_pstrName);CPeople:CPeople()if(m_pstrName!=NULL) delete m_pstrName;char *CPeople:GetName()return m_pstrName;int
16、60;CPeople:GetAge()return m_nAge;void CPeople:SetAge(int age)if(age<=0)cout<<"設(shè)置的年齡不合法"<<endl;elsem_nAge=age;float CPeople:GetSalary()return m_fSalary;void CPeople:SetSalary(float num)if(num<0)cout<<"設(shè)置的薪水?dāng)?shù)目不合法"<<en
17、dl;elsem_fSalary=num;void main()CPeople ZhangSan(65,2000.00f,"張 三");cout<<"以下為個(gè)人信息:n 姓名,年齡,薪水"<<endl;cout<<"-n"cout<<ZhangSan.GetName()<<""cout<<ZhangSan.GetAge()<<""cout<<Zhan
18、gSan.GetSalary()<<endl<<endl;CPeople A;A.SetAge(34);A.SetSalary(4000.00f);cout<<A.GetName()<<""cout<<A.GetAge()<<""cout<<A.GetSalary()<<endl<<endl;CPeople B(ZhangSan);cout<<B.GetName()<<""cout&l
19、t;<B.GetAge()<<""cout<<B.GetSalary()<<endl<<endl;三、實(shí)驗(yàn)和要求按要求編寫實(shí)驗(yàn)程序,將實(shí)驗(yàn)程序調(diào)試運(yùn)行,寫出程序的運(yùn)行結(jié)果,并提交實(shí)驗(yàn)報(bào)告,寫出調(diào)試運(yùn)行的分析和體會(huì)。實(shí)驗(yàn)三 繼承與派生一、實(shí)驗(yàn)?zāi)康暮鸵螅?)掌握派生類的定義方法和派生類構(gòu)造函數(shù)的定義方法。(2)掌握不同繼承方法的情況下,基類成員函數(shù)在派生類中的訪問權(quán)限。(3)了解派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序。了解多重繼承的定義方法,多重繼承的構(gòu)造函數(shù)和析構(gòu)函數(shù)的使用。二、實(shí)驗(yàn)內(nèi)容在類 CPeop
20、le 的基礎(chǔ)上,派生出學(xué)生類 CStudent,并實(shí)現(xiàn)對(duì)學(xué)生成績(jī)的統(tǒng)計(jì)和輸出。源程序代碼:#include<iostream>#include<string>#define MAXNUM 10using namespace std;class CPeopleintm_nAge;public:char* m_pstrName;CPeople(int age,char *name);CPeople();int GetAge();void SetAge(in
21、t age);void CopyPeople(CPeople *pAnother);CPeople:CPeople(int age,char *name)m_nAge=age;m_pstrName=new char20;strcpy(m_pstrName,name);CPeople:CPeople()if(m_pstrName!=NULL) delete m_pstrName;int CPeople:GetAge()return m_nAge;void CPeople:SetAge(i
22、nt age)m_nAge=age;void CPeople:CopyPeople(CPeople *pAnother)m_nAge=pAnother->m_nAge;strcpy(m_pstrName,pAnother->m_pstrName);class CStudent:public CPeoplefloat m_ArrayScoreMAXNUM;/用來存放成績(jī)的數(shù)組protected:int m_stuNo;/學(xué)號(hào)int m_courseNum;/課程數(shù)目float m_aScore;
23、/平均成績(jī)public:CStudent(intage,intNo,intNum,char*pName="noname"):CPeople(age,pName)m_stuNo=No;m_courseNum=Num;m_aScore=0.0f;/初始化成績(jī)數(shù)組cout<<"請(qǐng)輸入學(xué)生"<<m_pstrName<<m_courseNum<<"門課的成績(jī):"<<endl;for(int i=0;i<m_courseNum;+i)cin>>m_ArrayS
24、corei;void CaculateAverageScore()float SUM=0.0f;for(int i;i<m_courseNum;+i)SUM+=m_ArrayScorei;m_aScore=SUM/m_courseNum;float GetM_aScore()return m_aScore;friend ostream &operator <<(ostream &out,const CStudent &s);ostream
25、60;&operator <<(ostream &out,const CStudent &s)out<<"學(xué)生姓名"<<s.m_pstrName<<",學(xué)號(hào):"<<s.m_stuNo<<",成績(jī)列表:"<<endl;for(int i=0;i<s.m_courseNum;+i)out<<s.m_ArrayScorei<<endl;out<<
26、;"平均成績(jī)="<<s.m_aScore<<endl<<endl;return out;void main()CStudent stu1(16,29,3,"張三");stu1.CaculateAverageScore();cout<<stu1;注意:VC+6.0 不支持插入操作符和提取操作符作為友元運(yùn)算符重載,故改造如下:#include<iostream>#include<string>#define MAXNUM 10u
27、sing namespace std;class CPeopleintm_nAge;public:char* m_pstrName;CPeople(int age,char *name);CPeople();int GetAge();void SetAge(int age);void CopyPeople(CPeople *pAnother);CPeople:CPeople(int age,char *name)m_nAge=age;m_pstrName=new
28、160;char20;strcpy(m_pstrName,name);CPeople:CPeople()if(m_pstrName!=NULL) delete m_pstrName;int CPeople:GetAge()return m_nAge;void CPeople:SetAge(int age)m_nAge=age;void CPeople:CopyPeople(CPeople *pAnother)m_nAge=pAnother->m_nAge;strcpy(m_pstrName,pAnother-
29、>m_pstrName);class CStudent:public CPeoplefloat m_ArrayScoreMAXNUM;/用來存放成績(jī)的數(shù)組protected:int m_stuNo;/學(xué)號(hào)int m_courseNum;/課程數(shù)目float m_aScore;/平均成績(jī)public:CStudent(int age,int No,int Num,char* pName="no name"):CPeople(age,pName)m_stuNo=N
30、o;m_courseNum=Num;m_aScore=0.0f;/初始化成績(jī)數(shù)組cout<<"請(qǐng)輸入學(xué)生"<<m_pstrName<<m_courseNum<<"門課的成績(jī):"<<endl;for(int i=0;i<m_courseNum;i+)cin>>m_ArrayScorei;void CaculateAverageScore()float SUM=0.0f;for(int i=0;i<m_courseNum;i+)SUM+
31、=m_ArrayScorei;m_aScore=SUM/m_courseNum;float GetM_aScore()return m_aScore;ostream &operator <<(ostream &out);ostream & CStudent:operator<<(ostream &out)out<<"學(xué)生姓名"<<m_pstrName<<",學(xué)號(hào):"<<m_
32、stuNo<<",成績(jī)列表:"<<endl;for(int i=0;i<m_courseNum;i+)out<<m_ArrayScorei<<endl;out<<"平均成績(jī)="<<m_aScore<<endl<<endl;return out;void main()CStudent stu1(16,29,3,"張三");stu1.CaculateAverageScore();stu1<&l
33、t;cout;三、實(shí)驗(yàn)和要求按要求編寫實(shí)驗(yàn)程序,將實(shí)驗(yàn)程序調(diào)試運(yùn)行,寫出程序的運(yùn)行結(jié)果,并提交實(shí)驗(yàn)報(bào)告,寫出調(diào)試運(yùn)行的分析和體會(huì)。實(shí)驗(yàn)四 模板的使用一、實(shí)驗(yàn)?zāi)康暮鸵罅私夂瘮?shù)模板、類模板的概念,練習(xí)編制函數(shù)模板和類模板。二、實(shí)驗(yàn)內(nèi)容編寫一個(gè)程序,使用類模板對(duì)數(shù)組進(jìn)行排序、查找和求元素和的程序。要求:設(shè)計(jì)一個(gè)類模板 template <class T> class Array,用于對(duì) T 類型的數(shù)組進(jìn)行排序、查找和求元素和,然后由此產(chǎn)生模板類 Array<int>和 Arr
34、ay<double>。源程序代碼:#include<iostream>#include<iomanip>using namespace std;template <class T>class ArrayT *set;int n;public:Array(T *data,int i)set=data;n=i;Array();void sort();/排序int seek(T key);/查找指定的元素T SUM();/求
35、和void disp();/顯示所有的元素;template <class T>void Array<T>:sort()int i,j;T temp;for(i=1;i<n;i+)for(j=n-1;j>=i;j-)if(setj-1>setj)temp=setj-1;setj-1=setj;setj=temp;template <class T>int Array<T>:seek(T key)int i;for(i=0
36、;i<n;i+)if(seti=key) return i;return -1;template <class T>T Array<T>:SUM()T s=o;int i;for(i=0;i<n;i+)s+=seti;return s;template <class T>void Array<T>:disp()int i;for(i=0;i<n;i+)cout<<seti<<&
37、quot; "cout<<endl;void main()int a=6,3,8,1,9,4,7,5,2;double b=2.3,6.1,1.5,8.4,6.7,3.8;Array<int>arr1(a,9);Array<double>arr2(b,6);cout<<"arr1"<<endl;cout<<"原序列"arr1.disp();cout<<"8 在 arr1 中的位置:&
38、quot;<<arr1.seek(8)<<endl;arr1.sort();cout<<"排序后:"arr1.disp();cout<<"arr2"<<endl;cout<<"原序列"arr2.disp();cout<<"8.4 在 arr2 中的位置:"<<arr2.seek(8.4)<<endl;arr2.sort();cout<<"排序后:"
39、arr2.disp();三、實(shí)驗(yàn)和要求按要求編寫實(shí)驗(yàn)程序,將實(shí)驗(yàn)程序調(diào)試運(yùn)行,寫出程序的運(yùn)行結(jié)果,并提交實(shí)驗(yàn)報(bào)告,寫出調(diào)試運(yùn)行的分析和體會(huì)。實(shí)驗(yàn)五 使用向量一、實(shí)驗(yàn)?zāi)康暮鸵缶毩?xí)使用向量解決實(shí)際問題。二、實(shí)驗(yàn)內(nèi)容利用向量編寫程序;出圈游戲。假設(shè)有人為 n 的一個(gè)小組,他們順時(shí)針方向圍坐一圈。一開始任選一個(gè)正整數(shù)作為報(bào)數(shù)的上限值 m,從第一個(gè)人開始按順時(shí)針方向自 star 開始順序報(bào)數(shù),報(bào)到 m 時(shí)停止報(bào)數(shù)并出列。如此下去,直到所有人全部出列為止。要求按他們出列的順序輸出他們的名字。源程序代碼:#include<
40、;iostream>#include<string>#include<vector>using namespace std;void fun(vector<string> &rc,unsigned &rm,unsigned &ri)vector<string>:iterator p=rc.begin();unsigned j=1;/報(bào)數(shù)while(j<=rm)ri+;if(ri>=rc.size()/到終點(diǎn),返回到第一個(gè)位置計(jì)
41、數(shù)ri=0;j+;cout<<rcri<<","rc.erase(p+ri);/刪除出圈人的記錄if(ri>=rc.size() ri=0;/到終點(diǎn),返回到第一個(gè)位置計(jì)數(shù)void main()unsigned length=0,m,star,i;cout<<"請(qǐng)輸入人數(shù):"cin>>length;vector<string> c(length);cout<<"請(qǐng)輸入報(bào)數(shù)上限值m (m<=20)"cin&
42、gt;>m;while(m>20)cout<<"報(bào)數(shù)上限值太大,請(qǐng)重新輸入:"cin>>m;cout<<"從第幾個(gè)人的位置開始報(bào)數(shù)(不能大于"<<c.size()<<"):"cin>>star;while(star>c.size()cout<<"開始位置大于人數(shù),重新輸入:"cin>>star;cout<<"準(zhǔn)備輸入名字"<<endl;for(i=0;i<
43、;c.size();i+)cout<<"第"<<i+1<<"個(gè)人的名字:"cin>>ci;i=star-1;/計(jì)數(shù)位置初始值while(c.size()>1)fun(c,m,i);cout<<ci<<endl;三、實(shí)驗(yàn)和要求按要求編寫實(shí)驗(yàn)程序,將實(shí)驗(yàn)程序調(diào)試運(yùn)行,假設(shè)參加游戲的人數(shù)為 5 人,間隔數(shù)選10,從第三個(gè)人的位置開始報(bào)數(shù),5 個(gè)人的名字依次為:李紅、王強(qiáng)、李四、王五,寫出程序的運(yùn)行結(jié)果,并提交實(shí)驗(yàn)報(bào)告,寫出調(diào)試運(yùn)行的分析和體會(huì)。實(shí)驗(yàn)六
44、160;多態(tài)性和虛函數(shù)一、實(shí)驗(yàn)?zāi)康暮鸵笫煜だ^承和包含以及虛函數(shù)的多態(tài)性。二、實(shí)驗(yàn)內(nèi)容建立工程文件、類在頭文件(employee.h)中聲明、類在源文件(empfun.cpp)實(shí)現(xiàn)、在源文件(sy10_4.cpp)中編寫主程序。程序?qū)崿F(xiàn)的基本功能:小公司人員管理信息。某小公司主要有 3 類人員:經(jīng)理、兼職技術(shù)人員、兼職銷售員。這些人員分別具有以下屬性。經(jīng)理:姓名、編號(hào)、固定工資、當(dāng)月薪水、計(jì)算月薪、顯示信息;兼職技術(shù)人員:姓名、編號(hào)、工作小時(shí)、每小時(shí)工資額、當(dāng)月薪水、計(jì)算月薪、顯示信息;兼職銷售員 :姓名、編號(hào)、銷售額、銷售額提成、當(dāng)月薪水、計(jì)算月薪、
45、顯示信息;要求:人員編號(hào)基數(shù)為 1000,每輸入一個(gè)人員信息編碼加 1;月薪計(jì)算辦法是經(jīng)理固定月薪 8000 元;兼職技術(shù)人員按 100 元、小時(shí)領(lǐng)取月薪;兼職銷售員按當(dāng)月銷售額的 4%提成。根據(jù)題目要求,設(shè)計(jì)一個(gè)基數(shù) emplyee,然后派生出 technician(兼職技術(shù)人員)類、manager(經(jīng)理)類和 salesman(兼職銷售員)類。源程序代碼:/employee.h 頭文件#include<iostream>#include<string>usi
46、ng namespace std;class employee/定義職員類protected:char *name;/定義姓名int EmpNo;/個(gè)人編號(hào)double SUMPay;/月薪總額static int employeeNo;/本公司職員編號(hào)目前最大值public:employee();employee();virtual void pay()=0;/計(jì)算月薪函數(shù),解決:虛函數(shù)void displayStatus();/顯示人員信息;class technicia
47、n:public employee/兼職技術(shù)人員類(公有派生)protected:float hourlyRate;/每小時(shí)酬金int workHours;/當(dāng)月工作時(shí)數(shù)public:technician();void pay();/計(jì)算月薪void displayStatus();/顯示人員信息;class salesman:public employee/兼職銷售員類(公有派生)protected:double CommRate;/提成百分比double sales;/當(dāng)月銷售額public:sale
48、sman();void pay();/計(jì)算月薪void displayStatus();/顯示人員信息;class manager: virtual public employee/經(jīng)理類(公有派生)protected:float monthlyPay;/固定月薪public:manager();void pay();/計(jì)算月薪void displayStatus();/顯示人員信息;/empfun.cpp#include<iostream>#include<string>usin
49、g namespace std;#include "employee.h"int employee:employeeNo=1000;/員工編號(hào)基數(shù)employee:employee()char str20;cout<<"n 輸入雇員姓名"cin>>str;name=new charstrlen(str)+1; /動(dòng)態(tài)申請(qǐng)strcpy(name,str);EmpNo=employeeNo+;/新員工編號(hào)自動(dòng)生成SUMPay=0.0;/月薪總額初始
50、0;0employee:employee()delete name;/釋放空間void employee:displayStatus()cout<<name<<":"<<"編號(hào)"<<EmpNo<<",本月工資"<<SUMPay<<endl;technician:technician()hourlyRate=100;/每小時(shí)酬金 100 元void technician:pay()cout<<
51、"輸入本月工作時(shí)數(shù):"cin>>workHours;SUMPay=hourlyRate*workHours;void technician:displayStatus()cout<<"兼職技術(shù)人員:"employee:displayStatus();salesman:salesman()CommRate=0.04;/提成比例void salesman:pay()cout<<"輸入本月銷售額:"cin>>sales;SUMPay=sales*CommRate;/月薪=銷
52、售提成void salesman:displayStatus()cout<<"銷售員:"employee:displayStatus();manager:manager()monthlyPay=8000;void manager:pay()SUMPay=monthlyPay;/月薪總額=固定月薪void manager:displayStatus()cout<<"經(jīng)理:"employee:displayStatus();/sy10_4.cpp#include<iostream>#inclu
53、de<string>using namespace std;#include "employee.h"void main()/經(jīng)理manager m1;m1.pay();m1.displayStatus();/兼職技術(shù)人員technician t1;t1.pay();t1.displayStatus();/兼職銷售員salesman s1;s1.pay();s1.displayStatus();cout<<"n 使基類指針指向子類對(duì)象"<<
54、endl;employee *ptr4=&m1,&t1,&s1;for(int i=0;i<3;i+)ptri->displayStatus();三、實(shí)驗(yàn)和要求按要求編寫實(shí)驗(yàn)程序,將實(shí)驗(yàn)程序調(diào)試運(yùn)行,寫出程序的運(yùn)行結(jié)果,并提交實(shí)驗(yàn)報(bào)告,寫出調(diào)試運(yùn)行的分析和體會(huì)。實(shí)驗(yàn)七 缺少一、實(shí)驗(yàn)?zāi)康暮鸵髮?shí)驗(yàn)八 文件讀寫一、實(shí)驗(yàn)?zāi)康暮鸵笫煜な褂梦募幕痉椒?。熟悉?biāo)準(zhǔn)流對(duì)象 cin 和 cout 的使用方法,掌握系統(tǒng)提供的輸入操作和輸出操作函數(shù)。二、實(shí)驗(yàn)內(nèi)容簡(jiǎn)單通訊錄:編寫一個(gè)簡(jiǎn)單的通訊錄程序,在文件 myNote 中記錄朋友的姓名、年齡和電話號(hào)碼,允許用戶向其中添加信息,根據(jù)姓名查詢或顯示所有信息。源程序代碼:#include<iostream>#include<string>#include "iomanip"#include "fstream"using namespace std;class MyFriendprivate:unsigned
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年藥理學(xué)考試資料分析試題及答案
- 各科結(jié)合講解語文考試試題及答案
- 提升寵物營養(yǎng)師考試通過率的秘訣及試題及答案
- 食品檢測(cè)過程中的風(fēng)險(xiǎn)管理策略試題及答案
- 小學(xué)安全環(huán)保衛(wèi)生教育
- 食品中污染物檢測(cè)范圍試題及答案
- 小學(xué)生必背古詩知識(shí)競(jìng)賽
- 汽車美容師職業(yè)感知考試試題及答案
- 公務(wù)員省考寫作能力要求試題及答案
- 公路運(yùn)輸面試題及答案
- 2022年環(huán)保標(biāo)記試題庫(含答案)
- 幼兒園中班戶外建構(gòu)游戲《炭燒積木》活動(dòng)分析反思【幼兒教案】
- 醫(yī)務(wù)人員職業(yè)防護(hù)
- 2022年喀什地區(qū)喀什市教師招聘筆試《公共基礎(chǔ)知識(shí)》試題及答案解析
- GB/T 26516-2011按摩精油
- GB/T 1972-2005碟形彈簧
- GB 31603-2015食品安全國家標(biāo)準(zhǔn)食品接觸材料及制品生產(chǎn)通用衛(wèi)生規(guī)范
- GB 29415-2013耐火電纜槽盒
- 勞務(wù)投標(biāo)書技術(shù)標(biāo)
- DB13∕T 5480-2022 政務(wù)公開專區(qū)建設(shè)指南
- 班組工程量結(jié)算書
評(píng)論
0/150
提交評(píng)論