水仙花数C++课程设计报告Word文档格式.docx
《水仙花数C++课程设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《水仙花数C++课程设计报告Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
(1)设计思想:
具体内容:
定义一个变量i,利用for语句依次对某个范围内的数进行计算,输出符合条件的数。
(2)设计表示:
关系图:
false
true
【附录】
源程序清单(必须有必要的注释)、测试数据及运行结果。
)
#include"
stdafx.h"
#include<
iostream>
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:
endl;
//输出符合条件的变量
cout<
return0;
}
实习题目二
B组第5题
试编程解决爱因斯坦台阶问题:
有人走一台阶,若以每步走两级则最后剩一级;
若每步走三级则剩两级;
若每步走四级则剩三级;
若每步走五级则剩四级;
若每步走六级则剩五级;
若每步走七级则刚好不剩。
问台阶共有几级?
设计一个程序,用户可以得到爱因斯坦台阶数。
一个数分别除以2、3、4、5、6、7,余数分别为1、2、3、4、5、0,计算出这个数。
定义一个变量n,利用for循环语句依次对某个范围内的数进行计算,输出符合条件的数。
#include"
#include<
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<
return0;
实习题目三
C组第8题
以面向对象的概念设计一个类,此类包含3个私有数据:
unlead(无铅汽油)、lead(有铅汽油)以及total(当天总收入)。
无铅汽油的价格是17元/公升,有铅汽油的价格是16元/公升。
请以构造函数方式建立此值。
试输入某天所加的汽油量,本程序将列出加油站当天的总收入。
设计一个程序,用户可以求出加油站当天的总收入。
设计一个程序,已知每种汽油的单价和售出的数量,可以求出加油站当天的总收入。
定义一个类,在public里构造函数,私有数据为unlead、lead、total,实现成员函数,在主函数中定义类的一个对象a,通过对象a调用成员函数,输出总收入。
关系图
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;
//主函数实现
doubleunlead,lead,total;
请输入无铅汽油量:
;
cin>
>
unlead;
请输入有铅汽油量:
lead;
Oila(unlead,lead,total);
//定义类的一个对象a
总收入是:
a.Gettotal()<
//通过对象a调用成员函数
实习题目四
C组第10题
编写一个程序,输入3个学生的英语和计算机成绩,并按总分从高到低排序(要求设计一个学生类Student)。
设计一个程序,分别输入3个学生的英语和计算机成绩,按总分从高到低排序。
输入3个学生的英语和计算机成绩,计算出总分并将总分从高到低进行排序。
定义一个类,,私有数据为english、computer,声明一个指针数组和一个对象指针,使用for循环,用冒泡排序法为总成绩排序,最后分别输出学生的总成绩和排序后的成绩。
classStudent{//定义Student类
inttotal;
//成员数据
voidgetscore(){//成员函数
输入英语成绩:
"
cin>
english;
输入计算机成绩:
computer;
total=english+computer;
}
voiddisp(){//成员函数
英语="
english<
计算机="
computer<
总分="
total<
intenglish,computer;
voidmain(){
Student*A[3];
//声明一个指针数组
Student*temp;
//声明一个对象指针
inti,j,n=3;
//声明变量
for(j=0;
j<
n;
j++){//使用for循环语句
A[j]=newStudent;
学生"
j+1<
A[j]->
getscore();
n-1;
j++)//用冒泡排序法为总成绩排序
for(i=j+1;
i++)
if(A[i]->
total>
A[j]->
total){
temp=A[j];
A[j]=A[i];
A[i]=temp;
}
排序结果如下:
//输出结果
for(i=0;
A[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)该类还包含有参构造函数、析构函数。
先声明定义类Complex,在公有数据里定义函数,输出虚根,再声明定义类Formula,在public里构造函数,定义一个以数组为参数的成员函数,使用if条件语句,确定有几个根,在主函数中提示用户输入方程的系数,判断根的个数并输出个数和根,提示用户是否继续,使用while循环确定是否继续。
cmath>
intw=0;
//在全局命名空间为全局变量赋初值
classComplex{//声明定义类Complex
voidroot(doublep,doubleq){//成员函数
x=p;
y=q;
}
voidshow(){//定义成员函数
if(y>
0)
x<
+"
y<
i"
else
if(y==0)
x;
else
//私有数据
doublex,y;
classFormula{//定义Formula类
Formula(doubleaa,doublebb,doublecc);
~Formula();