当前位置

首页 > 教育范文 > 工作报告 > 中南大学c++实践报告

中南大学c++实践报告

推荐人: 来源: 阅读: 2.65W 次

大学生实训指的是在大学生即将毕业走进社会前期,经过实际项目的技能提升,加强自己的实际动手操作能力,从而为将来的进入职场打下坚实的基础。下面是小编收集的,欢迎大家参考!

中南大学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);

}

运行结果如下图: