當前位置

首頁 > 教育範文 > 工作報告 > 中南大學c++實踐報告

中南大學c++實踐報告

推薦人: 來源: 閱讀: 3.33W 次

大學生實訓指的是在大學生即將畢業走進社會前期,經過實際項目的技能提升,加強自己的實際動手操作能力,從而爲將來的進入職場打下堅實的基礎。下面是小編收集的,歡迎大家參考!

中南大學c++實踐報告

  【】

姓 名:

學 號:

專 業:

班 級:

指導教師: ***

面向對象程序設計課程設計

日 期

201x.12.15——201x.12.19

地 點

圖書館15號機房

項目名稱

面向對象程序設計課程設計

  實訓目的能力目標

培養分析問題、解決問題的能力

培養考慮問題的周密性和邏輯思維能力

培養實際動手能力

培養C++知識的綜合運用能力

培養自學能力(UML)

熟悉軟件開發流程

  實訓要求:

1、獨立完成作業。

2、遇到不懂的地方自己查找資料。

3、程序保存到ftp: ,以自己名字命名的文件夾下。

4、實訓結束之前,要求每人寫出實訓報告。電子版發送到,紙質文檔統一送交,否則沒有實訓成績。

實訓內容(過程及步驟)

星期一

實訓內容:

一、隨機產生100以內的一個自然數,給出7次機會猜測數的大小

要求:

1、 如果猜對了,提示:“真聰明,您猜對了!”,並退出程序

2、 如果猜得數比隨機數大,給出提示“你猜的數太大了”

3、 如果猜得數比隨機數小,提示“您猜的數太小了”,

4、 如果超出七次沒有猜對,提示“很遺憾,您沒有猜對”,並退出程序。

程序:

#include

#include

#include

void main()

{

cout<<"請輸入你要猜數的大小"<

int m,n,i=0;

srand(time(NULL));//隨機數字

m=rand()%100;

for(i;i<7;i++)

{

cin>>n;

if(n==m)

{

cout<<"真聰明,你猜對了!"<

break;

}

if(n>m)

{cout<<"你猜的數太大了!"<

if(n

{

cout<<"你猜的數太小了!"<

}

if(n!=m&&i==6)

{

cout<<"很遺憾,你沒有猜對!"<

}

}

}

運行結果:

二、輸入三個數,判斷能不能組成三角形

要求:

1、輸入-1,0,-1,提示“你輸入的爲負數”

2、輸入1,2,3,提示“你輸入的三個數不能組成三角形”

3、輸入3,4,5提示“輸入的三個數能組成三角形,並且是一個直角三角形”

4、輸入3,3,4提示“輸入的三個數能組成三角形,並且是一個等腰三角形”

5、 輸入3,3,3提示“輸入的三個數能組成三角形,並且是一個等邊三角形”

程序:

#include

void main()

{

int a,b,c;

cout<<"輸入三角形的三邊"<

cin>>a>>b>>c;

if(a<0||b<0||c<0)

{cout<<"你輸入的爲負數"<

if((a+b)>c&&(a+c)>b&&(b+c)>a)

{

if(a==b&&b==c)

{cout<<"輸入的三個數能組成三角形,並且是一個等邊三角形"<

else

if((a*a+b*b)==(c*c)||(c*c+b*b)==(a*a)||(a*a+c*c)==(b*b))

{

if(a==b||b==c||a==c)

{cout<<"輸入的三個數能組成三角形,並且你輸入的是個等腰直角三角形"<

else

cout<<"輸入的三個數能組成三角形,並且你輸入的是個直角三角形"<

}

else

if(a==b||b==c||a==c)

{cout<<"輸入的三個數能組成三角形,並且你輸入的是個等腰三角形"<

else

cout<<"你輸入的三個數可以組成三角形"<

}

else

cout<<"你輸入的三個數不能組成三角形"<

}

運行結果:

星期二

實訓內容:

一、聲明類Date

要求:

1、使用戶可以設置日期,並在輸入錯誤時提示。

a一年12個月,若輸入12以外的數,提示“輸入月份錯誤”

b每個月依次有{31,28/29,31,30,31,30,31,31,30,31,30,31}若輸入的數值超過該月天數,提示“輸入天數錯誤”。

2、可以查詢兩個日期之間相差天數

注意:閏年

程序:

#include

using namespace std;

int to_start(int year,int month,int day);

long onehundred();

void getdate();

bool isleap(int year);

int maxday(int year,int month);

int main()

{

int yy,mm,dd;

long number1,number2;

cout<<"設置日期:";

cin>>yy>>mm>>dd;

number1=to_start(yy,mm,dd);

if(mm>12||mm<1)

{

cout<<"輸入月份錯誤!"<

cin>>yy>>mm>>dd;

}

if(dd>maxday(yy,mm)||dd<1)

{

cout<<"輸入天數錯誤!"<

cin>>yy>>mm>>dd;

}

cout<<"設置下一個日期:";

cin>>yy>>mm>>dd;

number2=to_start(yy,mm,dd);

if(mm>12||mm<1)

{

cout<<"輸入月份錯誤!"<

cin>>yy>>mm>>dd;

}

if(dd>maxday(yy,mm)||dd<1)

{

cout<<"輸入天數錯誤!"<

cin>>yy>>mm>>dd;

}

cout<<"兩日期相差天數: "<

}

int to_start(int year,int month,int day)

{

long count;

long yearday,monthday=0;

yearday=(year-1)/100*onehundred()+(year-1)/400+(year-1)%100/4+(year-1)%100*365;

for(int i=1;i

{

int t;

switch(i)

{

case 4:

case 6:

case 9:

case 11:

t=30;

break;

case 2:

t=28;

break;

default:

t=31;

}

monthday+=t;

}

count=monthday+yearday+day;

if(year%4==0&&year%100!=0&&month<3)

count--;

return count;

}

long onehundred()

{

long count;

count=24+100*365;

return count;

}

int maxday(int year,int month)

{

switch(month)

{

case 4:

case 6:

case 9:

case 11:

return 30;

case 2:

if(isleap(year))

return 29;

else

return 28;

default:

return 31;

}

}

bool isleap(int year)

{

if(year%4!=0||(year%400!=0&&year%100==0))

return false;

else

return true;

}

運行結果:

二、數組排序

1、定義交換兩個整型數的函數swap

2、定義sort函數給數組排序,調用swap函數

3、修改swap函數和sort函數,使之可用於任意類型

#include

template

void swap(T &x,T&y)

{

T m;

m=x;

x=y;

y=m;

}

template

void sort(T *a,T b)

{

int i,j;

for(i=0;i

{

for(j=i;j

if(a[i]>a[j])

swap(a[i],a[j]);

}

for(i=0;i

{ cout<

}

void main()

{

int a[15]={0,12,33,60,88,69,34,16,75,66,54,65,36,48,58};

sort(a,15);

}

運行結果如下圖: