第一阶段程序代码中国矿业大学软件课程设计Word下载.docx
《第一阶段程序代码中国矿业大学软件课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《第一阶段程序代码中国矿业大学软件课程设计Word下载.docx(26页珍藏版)》请在冰点文库上搜索。
Pleaseinputaninteger:
"
<
endl;
cin>
>
iNumber;
cbrt(iNumber)<
pow(iNumber,1.0/3)<
return0;
2.//编程序,从键盘输入正整数n,求出n与其反序数之和并输出。
//例如,输入2038,输出应为2038+8302=10340。
.cpp:
intmain(intargc,char*argv[])
intiNumber=0,iTemp=0,iInsert=0;
inta=iNumber;
while(iNumber>
0)
iTemp=iNumber%10;
iInsert=iInsert*10+iTemp;
iNumber=iNumber/10;
a<
+"
iInsert<
="
a+iInsert<
3.编程序,使用如下所谓的简单变量“数据平移”方法来求出Fibonacci数列的第n项(的具体项值)并显示在屏幕上(正整数n通过键盘输入):
说明变量old1=1,old2=1,newItem;
新的Fibonacci项newItem总是“距它最近”的前两项(old1与old2)的累加和。
而后通过“old1=old2;
old2=newItem;
”进行所谓的“数据平移”。
接着计算另一个新的Fibonacci项newItem,依次循环,直到求出数列的第n项时为止。
Fibonacci数列的计算公式如下:
fib
(1)=1;
fib
(2)=1;
fib(n)=fib(n-1)+fib(n-2);
//对大于等于3的任意n。
拓展编程(选做),设计递归函数doublefib(intn);
用于求出Fibonacci数列的第n项(的具体项值)并返回,而后编制主函数对它进行调用。
longFib(longlNum)
longlF1=1,lF2=1,lFx=0;
for(inti=1;
i<
lNum-1;
++i)
lFx=lF1+lF2;
lF1=lF2;
lF2=lFx;
returnlFx;
intmain(intargc,char*argv[])
longiNum=0;
Pleaseinputaninteger(整?
数º
y要°
a大ä
¨
®
于®
²
3):
iNum;
第Ì
iNum<
次ä
?
的Ì
个?
y为a"
Fib(iNum)<
4.编程序,输入正整数m,它代表一个人民币钱数(元数)。
求取这样一个方案,使用最少张数的人民币纸币,凑成上述的钱数m,并输出求取结果。
注意,现在共有7种元以上面值的人民币纸币,分别为:
100,50,20,10,5,2,1。
iomanip>
intmain()
请?
输º
入¨
钱?
y量¢
;
intnumber;
cin>
number;
intbaiyuan=number/100,
wushiyuan=number%100/50,
ershiyuan=number%100%50/20,
shiyuan=number%100%50%20/10,
wuyuan=number%100%50%20%10/5,
eryuan=number%100%50%20%10%5/2,
yiyuan=number%100%50%20%10%5%2/1;
cout<
\t"
100元a"
setw(7)<
baiyuan<
张?
endl
<
50元a"
setw(9)<
wushiyuan<
20元a"
ershiyuan<
10元a"
shiyuan<
5元a"
wuyuan<
2元a"
eryuan<
1元a"
yiyuan<
endl;
5.编程序,循环进行如下的处理过程:
由计算机生成简单的四则运算题;
用户给出答案;
计算机判断对错。
直到用户回答说不再继续做了时结束程序。
提示:
可让用户选择指定出加、减、乘、除哪一种运算题,以及出一位数还是两位数的运算题;
而后通过使用“rand()%10”或“rand()%100”来获得一个0到9的一位整数随机值或得到0到99的两位整数随机值来为用户出题。
还可进一步对用户所做算术题的对错次数进行记录,结束程序时给出一个某种形式的成绩。
ctime>
cstdlib>
voidAddition();
voidMulti();
voidDivision();
voidSubtraction();
intiCounter;
欢迎来到考吧测试中心:
系统正在载入,请稍后·
·
载入成功,请选择要测试的种类:
A:
加法;
B:
减法;
C:
乘法;
D:
除法"
charchA='
'
请输入:
ABCD(注意锁定大写)"
chA;
欢迎来到数学训练中心"
if(chA=='
A'
)
Addition();
cout<
你的测试结果如下所示:
if(iCounter>
10)
{
cout<
您答对了"
iCounter<
道试题!
你的水平不错,可以进入高级测试!
}
if(iCounter<
5)
靠,你只做对了"
你真是菜鸟一个,重新练习吧!
C'
Multi();
B'
Subtraction();
D'
Division();
voidAddition()
请选择要训练的类型:
十以内的;
一百以内的"
charch='
ch;
srand(time(0));
inta=0,b=0,t=0;
如果想要结束测试,请按6个8键"
while
(1)
if(ch=='
a=rand()%10;
b=rand()%10;
a=rand()%100;
b=rand()%100;
}
b<
;
cin>
t;
if(t==a+b)
iCounter++;
elseif(t==888888)
break;
else
Yourinputiswrong!
}
voidMulti()
*"
if(t==a*b)
voidSubtraction()
-"
if(t==a-b)
voidDivision()
/"
if(t==a/b)
6.编程序,使用户任意输入一个年份以及该年的1月1日是星期几,而后任意指定某一天(再输入该年的任意一个月份日期),由程序计算出这一天是星期几。
注意,2月份闰年为29天,非闰年为28天;
可被4整除而不可被100整除的年份、或者可被400整除的年份均为闰年。
思考:
利用元年元月元日(即1年1月1日)是星期一的已知事实,可对程序进行改造,让用户仅输入一个表示日期的年月日,则程序就应计算出那一天是星期几。
boolIfLeapYear(long);
longlYear=0;
intiWeek=0;
Pleaseinputtheyearandwhatthefirstdayis:
lYear>
iWeek;
intiMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};
Pleaseinputonedayoftheyear:
(mon&
&
day)"
intiMon=0,iDay=0,iSumDay=0;
iMon>
iDay;
for(inti=0;
iMon;
iSumDay+=iMonth[i];
if(IfLeapYear(lYear))
iSumDay++;
intiLast=iSumDay%7;
if(iWeek+iLast>
7)
Thatdayis星?
期¨
iWeek+iLast-7<
iWeek+iLast<
return0;
boolIfLeapYear(longyear)
if(year%4==0&
year%100!
=0||year%400==1)
returntrue;
returnfalse;
7.罗马数字问题转换
StdAfx.h"
#include<
string>
请输入一个包含“MDCLXVI”的字符串:
stringst1="
intiSum=0;
//十进制数字之和;
intiData[7]={1000,500,100,50,10,5,1};
charchA[7]={'
M'
'
L'
X'
V'
I'
};
st1;
7;
++i)
if(st1[i]==chA[i])
iSum+=iData[i];
else
Youhaveinputawrongletter!
iSum=0;
//iSum置零;
iSum<
把十进制转换成罗马数制
请输入一个十进制数字(<
10000):
/*charchA[7]={'
*/
intiM=iNumber/1000;
intiD=(iNumber-iM*1000)/500;
intiC=(iNumber-iM*1000-iD*500)/100;
intiL=(iNumber-iM*1000-iD*500-iC*100)/50;
intiX=(iNumber-iM*1000-iD*500-iC*100-iL*50)/10;
intiV=(iNumber-iM*1000-iD*500-iC*100-iL*50-iX*10)/5;
intiI=iNumber-iM*1000-iD*500-iC*100-iL*50-iX*10-iV*5;
iM;
M"
for(i=0;
iD;
D"
iC;
C"
for(i=0;
iL;
L"
iX;
X"
iV;
V"
iI;
I"
恭喜你,做出来了!
8.编写程序求解骑士巡游问题:
#incl