完整word版,c++課程設(shè)計任務(wù)書1421813-15_第1頁
完整word版,c++課程設(shè)計任務(wù)書1421813-15_第2頁
完整word版,c++課程設(shè)計任務(wù)書1421813-15_第3頁
完整word版,c++課程設(shè)計任務(wù)書1421813-15_第4頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計任務(wù)書一、課程設(shè)計的目的與要求1、教學(xué)目的綜合運用所學(xué)過的知識進(jìn)行實際程序設(shè)計。2、教學(xué)要求從課程設(shè)計的目的出發(fā),用C+ 編寫簡單的的程序,程序要求如下:( 1)算法正確,容錯性能好;( 2)完成從用戶需求分析、到上機(jī)編程、調(diào)試和應(yīng)用等全過程。二、課程設(shè)計的題目、內(nèi)容及要求Part 1:小程序練習(xí)(必須全部完成)1 函數(shù)重載定義重載函數(shù)max3用于計算三個數(shù)的最大值(參數(shù)類型分別為int 和 double)。#include <iostream>using namespace std;int max3(int a,int b,int c)if(b>a)

2、 a=b;if(c>a) a=c;return a;double max3(double a,double b,double c)if(b>a) a=b;if(c>a) a=c;return a;int main( )int max3(int a,int b,int c);double max3(double a,double b,double c);int i1,i2,i3,i;cout<<”請輸入三個數(shù):”<<endl;cin>>i1>>i2>>i3;i=max3(i1,i2,i3);cout<<&q

3、uot;i.max3="<<i<<endl;double d1,d2,d3,d;cin>>d1>>d2>>d3;d=max3(d1,d2,d3);cout<<"d.max3="<<d<<endl;2 類的組合定義 point 類,數(shù)據(jù)成員包括 x,y ,成員函數(shù)包括構(gòu)造函數(shù), sety , gety 四個屬性函數(shù)。定義 line 類,端點由兩個 point 及計算線段長度的函數(shù) getlength 。在 main 函數(shù)中,定義#include<iostream&g

4、t;拷貝構(gòu)造函數(shù)和析構(gòu)函數(shù), 以及 setx ,getx ,類的對象組成,包括構(gòu)造函數(shù),析構(gòu)函數(shù)以line 的對象,并輸出其長度。1#include<cmath>using namespace std;class pointprivate:int x,y;public:point(int x,int y):x(x),y(y)point(point &p);int getx()return x;void setx(int x)this->x=x;int gety()return y;void sety(int y)this->y=y;point();point:p

5、oint(point &p)x=p.x;y=p.y;class lineprivate:point p1,p2;double len;public:line(point pt1,point pt2);line(line &l);double getlen()return len;line();line:line(point pt1,point pt2):p1(pt1),p2(pt2)double x=p1.getx()-p2.getx();double y=p1.gety()-p2.gety();len=sqrt(x*x+y*y);line:line(line &l):

6、p1(l.p1),p2(l.p2)len=l.len;int main()point po1(1,2),po2(3,4);line line(po1,po2);cout<<"the length of line is:"<<endl;cout<<line.getlen()<<endl;3 對象數(shù)組和函數(shù)定義 student類,數(shù)據(jù)成員包括姓名name和成績 score ,成員函數(shù)包括構(gòu)造函數(shù),拷貝構(gòu)造函數(shù)和析構(gòu)函數(shù)。 定義函數(shù)void highestscore(student s),輸出分?jǐn)?shù)最高的學(xué)生姓名和分?jǐn)?shù)。在 main函

7、數(shù)中定義 student sN ,調(diào)用 highestscore 函數(shù) ,輸出分?jǐn)?shù)最高的學(xué)生姓名和分?jǐn)?shù)。#include<iostream>2#include<string>const int N=3;using namespace std;class studentprivate:string name;int score;public:student(string n="",int s=0):name(n),score(s)student(student &stu)name=;score=stu.score;student

8、()friend istream &operator>>(istream &is,student &stu)is>>>>stu.score;return is;friend void highestscore(student s);void highestscore(student stu)int i,h,t;t=stu0.score;for(i=0;i<N;i+)if(t<stui.score)t=stui.score;h=i;cout<<"name:"<<st

9、<<"score:"<<stuh.score<<endl;void main()student s1N;for(int i=0;i<N;i+)cin>>s1i;highestscore(s1);4 靜態(tài)數(shù)據(jù)成員設(shè)計一個書類,能夠保存書名、定價,所有書的本數(shù)和總價。(將書名和定價設(shè)計為普通數(shù)據(jù)成員;將書的本數(shù)和總價設(shè)計為靜態(tài)數(shù)據(jù)成員)#include<iostream>#include<string>using namespace std;class bookprivate:strin

10、g name;int price,num;static int count,sum;3public:book(string na,int p,int n):name(na),price(p),num(n)count+=num;sum+=num*price;void display()cout<<" 書名 :"<<name<<endl;cout<<" 價格 :"<<price<<endl;cout<<" 所有書的本數(shù):"<<num<&l

11、t;endl;cout<<" 總價 :"<<sum<<endl;book();int book:count=0;int book:sum=0;void main()book a("c grammer",100,10),b("c+ grammer",50,6);a.display();b.display();5 動態(tài)內(nèi)存分配定義 point 類,數(shù)據(jù)成員包括 x,y ,成員函數(shù)包括構(gòu)造函數(shù), 拷貝構(gòu)造函數(shù)和析構(gòu)函數(shù), 以及 setx ,getx , sety , gety 四個屬性函數(shù)。在 main

12、函數(shù)中,用 new 和 delete 分配和釋放 N 個 point 的數(shù)組。( N 是const常量, N=10 )#include<iostream>using namespace std;class pointprivate:int x,y;void setx(int x)this->x=x;void sety(int y)this->y=y;public:point(int x=0,int y=0);point(const point &p)x=p.x;y=p.y;void setxy(int x,int y)setx(x);sety(y);int ge

13、tx()return x;int gety()4return y;void showpoint()cout<<"x="<<x<<"y="<<y<<endl;point();inline point:point(int x,int y)this->x=x;this->y=y;void main()point *pt=new point10;(*pt).setxy(1,2);(*pt).showpoint();delete pt;6 類的繼承定義一個point類,包含私有數(shù)據(jù)成員x,y

14、,成員函數(shù)包括無參構(gòu)造函數(shù),帶參構(gòu)造函數(shù),set 和 get屬性函數(shù)。定義circle類,從 point類公有派生,增加數(shù)據(jù)成員半徑r,成員函數(shù)包括無參構(gòu)造函數(shù),帶參構(gòu)造函數(shù),計算面積函數(shù)getarea。在 main函數(shù)中定義一個circle的對象,并計算其面積。#include<iostream>using namespace std;class pointprivate:int x,y;public:point():x(0),y(0)point(int x,int y):x(x),y(y)int getx()return x;void setx(int x)this->x

15、=x;int gety()return y;void sety(int y)this->y=y;point();class circle:public pointprivate:int r;public:circle(int x,int y,int r):point(x,y),r(r)int getr()return r;void setr(int r)5this->r=r;void getarea()cout<<"area:"<<r*r*3.14<<endl;int main()circle c(1,2,3);c.getar

16、ea();7 虛基類定義 vehicle 類,數(shù)據(jù)成員包括私有的 weight ,公有的構(gòu)造函數(shù), 析構(gòu)函數(shù)和輸出函數(shù) dispaly ;從 vehicle 類公有派生 car 類,增加數(shù)據(jù)成員載人數(shù) personnum ,公有的構(gòu)造函數(shù) ,析構(gòu)函數(shù)和輸出 display ;從 vehicle 類公有派生 truck 類,增加數(shù)據(jù)成員載貨量 laod, 公有的構(gòu)造函數(shù), 析構(gòu)函數(shù)和輸出函數(shù) display ;從 car 類和 truck 類共同公有派生出 pickup 類,包括公有的構(gòu)造函數(shù)和輸出函數(shù)。 在 main 函數(shù)中, 定義 pickup類對象,并輸出其基本信息。#include<

17、;iostream>using namespace std;class vehicleprivate:int weight;public:vehicle(int w):weight(w)void display()cout<<"weight:"<<weight<<endl;vehicle();class car:virtual public vehicleprivate:int personnum;public:car(int p,int w):vehicle(w),personnum(p)void display()cout<

18、;<"personnum:"<<personnum<<endl;car();class truck:virtual public vehicleprivate:int load;public:truck(int w,int l):vehicle(w),load(l)void display()cout<<"load:"<<load<<endl;truck()6;class pickup:virtual public car,public truckpublic:pickup(int w,i

19、nt l,int p,int w1,int w2):vehicle(w),car(w1,p),truck(w2,l) void display();void main()pickup p(10,20,30,40,50);p.vehicle:display();p.car:display();p.truck:display();p.pickup:display();8 運算符重載,友元函數(shù)和this 指針定義一個計數(shù)器類 counter ,具備自增,自減功能(前后綴);輸入輸出試該類。#include<iostream>using namespace std;class counte

20、rprivate:double number;public:counter(double num=0):number(num)friend counter operator +(counter &c,int);friend counter operator -(counter &c,int);friend counter operator +(counter &c);friend counter operator -(counter &c);friend istream &operator>>(istream &is,counter

21、&c)is>>c.number;return is;friend ostream &operator<<(ostream &os,counter &c)os<<c.number;return os;counter();counter operator +(counter &c) c+; return c;counter operator -(counter &c) c-;return c;counter operator +(counter &c,int)counter ctemp;>>,&

22、lt;< 功能。在main函數(shù)里測7ctemp=c.number;c.number+;return ctemp;counter operator -(counter &c,int)counter ctemp;ctemp=c.number;c.number-;return ctemp;int main() counter c1,c2;cin>>c1;c2=operator+(c1,2);cout<<"count before:"<<c2<<"count after:"<<c1<

23、<endl;9 虛函數(shù)和抽象類定義一個抽象類shape ,包括公有的計算面積area函數(shù),計算體積volume函數(shù),輸出基本信息函數(shù)printinfo(三個函數(shù)均為純虛函數(shù))。從shape公有派生point類,增加私有數(shù)據(jù)成員x,y 坐標(biāo),以及構(gòu)造函數(shù), 析構(gòu)函數(shù)。 從 point 公有派生 circle 類,增加私有數(shù)據(jù)成員半徑 r,以及構(gòu)造函數(shù), 析構(gòu)函數(shù)。從 circle 公有派生 cylinder 類,增加私有數(shù)據(jù)成員高度 h ,以及構(gòu)造函數(shù),析構(gòu)函數(shù)。(在定義三個派生類的過程中,自己考慮需要重定義哪個虛函數(shù))。在main函數(shù)中,定義shape類的指針,指向派生類的對象,輸出三類

24、對象的基本信息,面積,體積;(將shape指針改為引用再嘗試)。#include<iostream>using namespace std;class shapepublic:virtual double area()=0;virtual double volume()=0;virtual void printinfo()=0;class point:public shape private:int x,y;public:point(int x,int y):x(x),y(y)double area()return 0;double volume()return 0;void pr

25、intinfo()cout<<"point:x="<<x<<",y="<<y<<endl;point();class circle:public pointprivate:int r;public:8circle(int x,int y,int r):point(x,y),r(r)double area()return 3.14*r*r;void printinfo()cout<<"area:"<<area<<endl;circle();c

26、lass cylinder:public circleprivate:int h;public:cylinder(int x,int y,int r,int h):circle(x,y,r),h(h)double volume()return circle:area()*h;void printinfo()cout<<"volume:"<<volume<<endl;cylinder();void fun(shape *p)p->printinfo();void main()point p(1,1);circle c(1,1,3);c

27、ylinder C(1,1,3,4);/*p.printinfo();c.printinfo();C.printinfo();*/fun(&p);fun(&c);fun(&C);10 模板設(shè)計一個堆棧的類模板Stack ,在模板中用類型參數(shù)T 表示棧中存放的數(shù)據(jù),用非類型參數(shù)MAXSIZE 代表棧的大小。#include<iostream.h>const int Maxsize=5;template<typename T>class stackprivate:T elemMaxsize;int top;public:stack()top=0;vo

28、id push(T e)if (top=Maxsize)9cout<<" 棧已滿! "<<endl;return ;elemtop=e;top+;T pop()if(top=0)cout<<" ???! "<<endl; return -1;top -;return elemtop;void main() stack <int> s; s.push(1); s.push(2); s.push(3); s.push(4); s.push(5); s.push(6); cout<<s.po

29、p()<<endl;11 文件讀寫定義學(xué)生類數(shù)組,有N 個人( N=5 ),包括姓名和語數(shù)外三名課的成績,通過重載<< 和 >> 運算符實現(xiàn)學(xué)生數(shù)組的文件讀寫。(姓名用string name;)#include<iostream>#include<fstream>using namespace std;class stuprivate:char name10;int chi,mat,eng;public:stu(char s="",int c=0,int m=0,int e=0)strcpy(name,s);chi

30、=c;mat=m;eng=e;friend ostream&operator<<(ostream &os,stu &s)os<<<<" "<<s.chi<<" "<<s.mat<<" "<<s.eng<<endl;return os;friend istream&operator>>(istream &is,stu &s)is>>&g

31、t;>s.chi>>s.mat>>s.eng;10return is;const int N=5;void main() stu sN; int i=0;fstream iof("c:student.txt",ios:out|ios:binary); if(!iof.is_open ()cout<<"file open failed"<<endl; return ;elsefor(int i=0;i<N;i+) cin>>si; cout<<si;iof.write(ch

32、ar *)&si,sizeof(stu) ;iof.close ();stu s1N; iof.open("c:student.txt",ios:out|ios:binary); if(!iof.is_open()return ;else int i=0;iof.read(char *)&s1i,sizeof(stu);while(!iof.eof()cout<<s1i;i+;iof.read(char *)&s1i,sizeof(stu);iof.close();Part 2:小型軟件的開發(fā)(選做一題,且由個人獨立開發(fā)完成)1 教師通信

33、錄的設(shè)計基本要求:定義教師 ( teacher )類,其中至少包括姓名、性別、 電話、地址、郵政編碼、 郵箱、 QQ號和類別 (例如:同學(xué)、朋友等)。功能要求:1 、設(shè)計菜單實現(xiàn)功能選擇;2 、輸入功能:輸入人員信息,并保存到文件中;3 、查詢功能:1 )能夠根據(jù)姓名、電話精確查詢?nèi)藛T信息;112 )能夠根據(jù)地址進(jìn)行模糊查詢?nèi)藛T信息;3 )根據(jù)人員類別查詢?nèi)藛T信息4 、根據(jù)姓名對人員信息排序輸出5 、能根據(jù)姓名、電話修改人員信息6 、能根據(jù)姓名、電話刪除人員信息2 職工工資管理基本要求:定義職工( employee )類,其中至少包括姓名、性別、工號、電話、所在科室和工資。功能要求:1 、設(shè)計

34、菜單實現(xiàn)功能選擇;2 、輸入功能:輸入職工信息,并保存到文件中;3 、查詢功能:1 )能夠根據(jù)工號精確查詢職工信息;2 )能夠根據(jù)姓名、科室查詢職工信息3 )分科室進(jìn)行工資統(tǒng)計,計算各科室的平均工資4 、根據(jù)職工的工資排序輸出5 、根據(jù)工號修改職工信息6 、根據(jù)工號刪除職工信息#include<iostream>#include<string>using namespace std;class employeeprivate:string name,sex,office;int id,phone number,salary;public:employee()3 公司員工

35、管理系統(tǒng)基本要求:設(shè)計一個虛基類Staff (員工),包括編號、 姓名和年齡保護(hù)數(shù)據(jù)成員以及相關(guān)的成員函數(shù);由 Staff派生出工程師類Engineer 包含專業(yè)和職稱保護(hù)數(shù)據(jù)成員以及相關(guān)的成員函數(shù),再由 Staff派生出領(lǐng)導(dǎo)類Leader ,包括職務(wù)和部門保護(hù)數(shù)據(jù)成員以及相關(guān)的成員函數(shù);然后由Engineer和 Leader 類派生出主任工程師類Chairman 。功能要求:1、增加員工數(shù)據(jù)信息2、更新員工數(shù)據(jù)信息3、查詢員工數(shù)據(jù)信息4、刪除員工數(shù)據(jù)信息5、良好的人際交互界面、方便操作124 三角形的種類與面積基本要求:定義點( point )類,包含點的坐標(biāo) x 和 y;通過繼承點類派生出

36、線段( line )類;通過線段( line )類的組合定義三角形( triangle )類。功能要求:1 、設(shè)計菜單實現(xiàn)功能選擇;2 、輸入三角形的三個頂點坐標(biāo);3 、判斷三角形的種類(一般三角形、等腰三角形、等邊三角形、直角三角形和不能構(gòu)成三角形);4、計算并輸出三角形的面積。5 字符串類的設(shè)計基本要求:定義點字符串( string )類,包含存放字符串的字符數(shù)組和字符串中字符的個數(shù)。功能要求:1 、設(shè)計菜單實現(xiàn)功能選擇;2 、字符串的輸入與賦值 ;3 、字符串的運算,包括:1)連接2)復(fù)制3)查找4)交換5)求子串6)比較4 、字符串的輸出6 學(xué)生成績管理基本要求:定義學(xué)生( student )類,其中至少包括姓名、性別、學(xué)號、班級和四門功課的成績。功能

溫馨提示

  • 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

提交評論