水仙花数C++课程设计报告.docx
《水仙花数C++课程设计报告.docx》由会员分享,可在线阅读,更多相关《水仙花数C++课程设计报告.docx(21页珍藏版)》请在冰豆网上搜索。
![水仙花数C++课程设计报告.docx](https://file1.bdocx.com/fileroot1/2022-10/19/260de8fd-a97c-42f6-b98b-a7b75f998c3a/260de8fd-a97c-42f6-b98b-a7b75f998c3a1.gif)
水仙花数C++课程设计报告
C++课程设计报告
姓名:
XXXXXXXXXXX
学号:
2011100XXXX
学院:
信息工程学院
专业:
地理信息系统
课程设计报告
实习题目一
【需求规格说明】
题号:
A组第2题
题目:
编写一个程序,求出所有的“水仙花数”。
所谓水仙花数,是指一个三位数,其各位数字的立方和恰好等于该数本身。
例如153=1*1*1+5*5*5+3*3*3,所以153是水仙花数。
问题描述:
设计一个程序,用户可以得到水仙花数。
问题分析:
设计一个程序,可以将一定范围内的水仙花数从中筛选出来。
【算法设计】
(1)设计思想:
具体内容:
定义一个变量i,利用for语句依次对某个范围内的数进行计算,输出符合条件的数。
(2)设计表示:
关系图:
false
true
【附录】
具体内容:
源程序清单(必须有必要的注释)、测试数据及运行结果。
)
#include"stdafx.h"
#include
usingnamespacestd;
intmain(){
inti;//定义一个变量
for(i=100;i<1000;i++)//在初始语句中给循环变量赋初值
if((i%10)*(i%10)*(i%10)+(((i-i%10)/10)%10)*(((i-i%10)/10)%10)*(((i-i%10)/10)%10)+((i-i%100)/100)*((i-i%100)/100)*((i-i%100)/100)=i)
cout<<"Theansweris:
"<
cout<return0;
}
实习题目二
【需求规格说明】
题号:
B组第5题
题目:
试编程解决爱因斯坦台阶问题:
有人走一台阶,若以每步走两级则最后剩一级;若每步走三级则剩两级;若每步走四级则剩三级;若每步走五级则剩四级;若每步走六级则剩五级;若每步走七级则刚好不剩。
问台阶共有几级?
问题描述:
设计一个程序,用户可以得到爱因斯坦台阶数。
问题分析:
一个数分别除以2、3、4、5、6、7,余数分别为1、2、3、4、5、0,计算出这个数。
【算法设计】
(1)设计思想:
定义一个变量n,利用for循环语句依次对某个范围内的数进行计算,输出符合条件的数。
(2)设计表示:
关系图:
false
true
【附录】
具体内容:
源程序清单(必须有必要的注释)、测试数据及运行结果。
)
#include"stdafx.h"
#include
usingnamespacestd;
intmain(){
intn;//定义一个变量
for(n=1;n<=10000;n++)//在初始语句中给循环变量赋初值
if(n%2==1&&n%3==2&&n%4==3&&n%5==4&&n%6==5&&n%7==0)
//嵌套使用if语句
cout<<"Theansweris:
"<cout<return0;
}
实习题目三
【需求规格说明】
题号:
C组第8题
题目:
以面向对象的概念设计一个类,此类包含3个私有数据:
unlead(无铅汽油)、lead(有铅汽油)以及total(当天总收入)。
无铅汽油的价格是17元/公升,有铅汽油的价格是16元/公升。
请以构造函数方式建立此值。
试输入某天所加的汽油量,本程序将列出加油站当天的总收入。
问题描述:
设计一个程序,用户可以求出加油站当天的总收入。
问题分析:
设计一个程序,已知每种汽油的单价和售出的数量,可以求出加油站当天的总收入。
【算法设计】
(1)设计思想:
定义一个类,在public里构造函数,私有数据为unlead、lead、total,实现成员函数,在主函数中定义类的一个对象a,通过对象a调用成员函数,输出总收入。
(2)设计表示:
关系图
【附录】
具体内容:
源程序清单(必须有必要的注释)、测试数据及运行结果。
)
#include"stdafx.h"
#include
usingnamespacestd;
constdoubleUNLEAD_PRICE=17;//无铅汽油的单价
constdoubleLEAD_PRICE=16;//有铅汽油的单价
classOil{//定义Oil类
public:
//外部接口
Oil(doubleun,doublelea,doubleto);//构造函数
doubleGettotal();//成员函数
private:
//私有数据
doubleunlead;
doublelead;
doubletotal;
};
//类的实现
Oil:
:
Oil(doubleun,doublelea,doubleto){//构造函数初始化数据成员
unlead=un;
lead=lea;
total=to;
}
doubleOil:
:
Gettotal(){
total=unlead*UNLEAD_PRICE+lead*LEAD_PRICE;//计算总收入
returntotal;
}
//主函数实现
intmain(){
doubleunlead,lead,total;
cout<<"请输入无铅汽油量:
";
cin>>unlead;
cout<<"请输入有铅汽油量:
";
cin>>lead;
Oila(unlead,lead,total);//定义类的一个对象a
cout<<"总收入是:
"<return0;
}
实习题目四
【需求规格说明】
具体内容:
题号:
C组第10题
题目:
编写一个程序,输入3个学生的英语和计算机成绩,并按总分从高到低排序(要求设计一个学生类Student)。
问题描述:
设计一个程序,分别输入3个学生的英语和计算机成绩,按总分从高到低排序。
问题分析:
输入3个学生的英语和计算机成绩,计算出总分并将总分从高到低进行排序。
【算法设计】
(1)设计思想:
定义一个类,,私有数据为english、computer,声明一个指针数组和一个对象指针,使用for循环,用冒泡排序法为总成绩排序,最后分别输出学生的总成绩和排序后的成绩。
(2)设计表示:
关系图:
【附录】
具体内容:
源程序清单(必须有必要的注释)、测试数据及运行结果。
)
#include"stdafx.h"
#include
usingnamespacestd;
classStudent{//定义Student类
public:
//外部接口
inttotal;//成员数据
voidgetscore(){//成员函数
cout<<"输入英语成绩:
";
cin>>english;
cout<<"输入计算机成绩:
";
cin>>computer;
total=english+computer;
}
voiddisp(){//成员函数
cout<<"英语="<}
private:
//私有数据
intenglish,computer;
};
//主函数实现
voidmain(){
Student*A[3];//声明一个指针数组
Student*temp;//声明一个对象指针
inti,j,n=3;//声明变量
for(j=0;jA[j]=newStudent;
cout<<"学生"<A[j]->getscore();
}
for(j=0;jfor(i=j+1;iif(A[i]->total>A[j]->total){
temp=A[j];
A[j]=A[i];
A[i]=temp;
}
cout<<"排序结果如下:
"<for(i=0;iA[i]->disp();
}
实习题目五
【需求规格说明】
题号:
第11题
题目:
求解一元二次方程。
一元二次方程的定义为:
ax2+bx+c=0
(1)如果b2-4ac>0,方程有两个不同的实根,分别是:
(2)如果b2-4ac<0,方程没有实根,但有虚根;
(3)如果b2-4ac=0,方程有一个实根。
请你编写一个程序,使其能求出多个二次方程的根。
该程序要询问用户是否想继续解下一个方程。
用户输入1来继续,输入其它数字,则终止程序。
程序要求用户输入a,b和c,然后根据前面的条件计算,并输出答案。
要求:
使用类实现,
(1)a,b,c为该类的私有成员变量;
(2)求根的实现为该类的成员函数,形式为:
//函数返回值:
实根的个数;
//参数:
x-用以返回实根值的复数类类型的数组;
longCalResult(Complexx[]);
(3)该类还包含有参构造函数、析构函数。
问题描述:
设计一个程序,用户可以得到水仙花数。
问题分析:
设计一个程序,可以将一定范围内的水仙花数从中筛选出来。
【算法设计】
(1)设计思想:
具体内容:
先声明定义类Complex,在公有数据里定义函数,输出虚根,再声明定义类Formula,在public里构造函数,定义一个以数组为参数的成员函数,使用if条件语句,确定有几个根,在主函数中提示用户输入方程的系数,判断根的个数并输出个数和根,提示用户是否继续,使用while循环确定是否继续。
(2)设计表示:
关系图:
【附录】
具体内容:
源程序清单(必须有必要的注释)、测试数据及运行结果。
)
#include"stdafx.h"
#include
#include
usingnamespacestd;
intw=0;//在全局命名空间为全局变量赋初值
classComplex{//声明定义类Complex
public:
//外部接口
voidroot(doublep,doubleq){//成员函数
x=p;
y=q;
}
voidshow(){//定义成员函数
if(y>0)
cout<else
if(y==0)
cout<else
cout<}
private:
//私有数据
doublex,y;
};
classFormula{//定义Formula类
public:
//外部接口
Formula(doubleaa,doublebb,doublecc);//构造函数
~Formula();