第一阶段程序代码中国矿业大学软件课程设计.docx

上传人:b****5 文档编号:11847275 上传时间:2023-04-06 格式:DOCX 页数:26 大小:21.56KB
下载 相关 举报
第一阶段程序代码中国矿业大学软件课程设计.docx_第1页
第1页 / 共26页
第一阶段程序代码中国矿业大学软件课程设计.docx_第2页
第2页 / 共26页
第一阶段程序代码中国矿业大学软件课程设计.docx_第3页
第3页 / 共26页
第一阶段程序代码中国矿业大学软件课程设计.docx_第4页
第4页 / 共26页
第一阶段程序代码中国矿业大学软件课程设计.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

第一阶段程序代码中国矿业大学软件课程设计.docx

《第一阶段程序代码中国矿业大学软件课程设计.docx》由会员分享,可在线阅读,更多相关《第一阶段程序代码中国矿业大学软件课程设计.docx(26页珍藏版)》请在冰豆网上搜索。

第一阶段程序代码中国矿业大学软件课程设计.docx

第一阶段程序代码中国矿业大学软件课程设计

1.编程序用迭代法求a的立方根,求立方根的迭代公式为:

:

Xi+1=(2*Xi)/3+a/(3*Xi*Xi)

假定X的初值为a,迭代到|Xi+1-Xi|<10的-5次方为止.显示a=3,27的值,并通过调用pow(a,1.0/3)函数加以验证.。

程序代码:

#include"stdafx.h"

#include

#include

usingnamespacestd;

doublecbrt(doublex)

{

doublex1,x2;

if(x==0.0)

{

return0.0;

}

x1=x;

x2=(2.0*x1+x/(x1*x1))/3.0;

while(fabs((x2-x1)/x1)>=1E-5)

{

x1=x2;

x2=(2.0*x1+x/(x1*x1))/3.0;

}

returnx2;

}

intmain(intargc,char**argv)

{

intiNumber=0;

cout<<"Pleaseinputaninteger:

"<

cin>>iNumber;

cout<

cout<

return0;

}

2.//编程序,从键盘输入正整数n,求出n与其反序数之和并输出。

//例如,输入2038,输出应为2038+8302=10340。

.cpp:

#include"stdafx.h"

#include

usingnamespacestd;

intmain(intargc,char*argv[])

{

intiNumber=0,iTemp=0,iInsert=0;

cout<<"Pleaseinputaninteger:

"<

cin>>iNumber;

inta=iNumber;

while(iNumber>0)

{

iTemp=iNumber%10;

iInsert=iInsert*10+iTemp;

iNumber=iNumber/10;

}

cout<

return0;

}

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项(的具体项值)并返回,而后编制主函数对它进行调用。

程序代码:

#include"stdafx.h"

#include

usingnamespacestd;

longFib(longlNum)

{

longlF1=1,lF2=1,lFx=0;

for(inti=1;i

{

lFx=lF1+lF2;

lF1=lF2;

lF2=lFx;

}

returnlFx;

}

intmain(intargc,char*argv[])

{

longiNum=0;

cout<<"Pleaseinputaninteger(整?

数ºy要°a大䨮于®¨²3):

"<

cin>>iNum;

cout<<"第̨²"<

"<<"的Ì?

个?

数ºy为a"<

cout<

return0;

}

4.编程序,输入正整数m,它代表一个人民币钱数(元数)。

求取这样一个方案,使用最少张数的人民币纸币,凑成上述的钱数m,并输出求取结果。

注意,现在共有7种元以上面值的人民币纸币,分别为:

100,50,20,10,5,2,1。

程序代码:

#include"stdafx.h"

#include

#include

usingnamespacestd;

intmain()

{

cout<<"请?

输º?

入¨?

钱?

的Ì?

数º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"<

"<

<<"\t"<<"50元a"<

"<

<<"\t"<<"20元a"<

"<

<<"\t"<<"10元a"<

"<

<<"\t"<<"5元a"<

"<

<<"\t"<<"2元a"<

"<

<<"\t"<<"1元a"<

"<

}

5.编程序,循环进行如下的处理过程:

由计算机生成简单的四则运算题;用户给出答案;计算机判断对错。

直到用户回答说不再继续做了时结束程序。

提示:

可让用户选择指定出加、减、乘、除哪一种运算题,以及出一位数还是两位数的运算题;而后通过使用“rand()%10”或“rand()%100”来获得一个0到9的一位整数随机值或得到0到99的两位整数随机值来为用户出题。

还可进一步对用户所做算术题的对错次数进行记录,结束程序时给出一个某种形式的成绩。

#include

#include

#include

usingnamespacestd;

voidAddition();

voidMulti();

voidDivision();

voidSubtraction();

intiCounter;

intmain(intargc,char*argv[])

{

cout<<"欢迎来到考吧测试中心:

"<

cout<<"系统正在载入,请稍后····"<

cout<<"载入成功,请选择要测试的种类:

A:

加法;B:

减法;C:

乘法;D:

除法"<

charchA='';

cout<<"请输入:

ABCD(注意锁定大写)"<

cin>>chA;

cout<<"欢迎来到数学训练中心"<

if(chA=='A')

{

Addition();

cout<<"你的测试结果如下所示:

"<

if(iCounter>10)

{

cout<<"您答对了"<

"<

cout<<"你的水平不错,可以进入高级测试!

"<

}

if(iCounter<5)

{

cout<<"靠,你只做对了"<

"<

cout<<"你真是菜鸟一个,重新练习吧!

"<

}

}

if(chA=='C')

{

Multi();

cout<<"你的测试结果如下所示:

"<

if(iCounter>10)

{

cout<<"您答对了"<

"<

cout<<"你的水平不错,可以进入高级测试!

"<

}

if(iCounter<5)

{

cout<<"靠,你只做对了"<

"<

cout<<"你真是菜鸟一个,重新练习吧!

"<

}

}

if(chA=='B')

{

Subtraction();

cout<<"你的测试结果如下所示:

"<

if(iCounter>10)

{

cout<<"您答对了"<

"<

cout<<"你的水平不错,可以进入高级测试!

"<

}

if(iCounter<5)

{

cout<<"靠,你只做对了"<

"<

cout<<"你真是菜鸟一个,重新练习吧!

"<

}

}

if(chA=='D')

{

Division();

cout<<"你的测试结果如下所示:

"<

if(iCounter>10)

{

cout<<"您答对了"<

"<

cout<<"你的水平不错,可以进入高级测试!

"<

}

if(iCounter<5)

{

cout<<"靠,你只做对了"<

"<

cout<<"你真是菜鸟一个,重新练习吧!

"<

}

}

return0;

}

voidAddition()

{

cout<<"请选择要训练的类型:

A:

十以内的;B:

一百以内的"<

charch='';

cin>>ch;

srand(time(0));

inta=0,b=0,t=0;

cout<<"如果想要结束测试,请按6个8键"<

while

(1)

{

if(ch=='A')

{

a=rand()%10;

b=rand()%10;

}

if(ch=='B')

{

a=rand()%100;

b=rand()%100;

}

cout<

cin>>t;

if(t==a+b)

{

iCounter++;

}

elseif(t==888888)

{

break;

}

else

{

cout<<"Yourinputiswrong!

"<

}

}

}

voidMulti()

{

cout<<"请选择要训练的类型:

A:

十以内的;B:

一百以内的"<

charch='';

cin>>ch;

srand(time(0));

inta=0,b=0,t=0;

cout<<"如果想要结束测试,请按6个8键"<

while

(1)

{

if(ch=='A')

{

a=rand()%10;

b=rand()%10;

}

if(ch=='B')

{

a=rand()%100;

b=rand()%100;

}

cout<

cin>>t;

if(t==a*b)

{

iCounter++;

}

elseif(t==888888)

{

break;

}

else

{

cout<<"Yourinputiswrong!

"<

}

}

}

voidSubtraction()

{

cout<<"请选择要训练的类型:

A:

十以内的;B:

一百以内的"<

charch='';

cin>>ch;

srand(time(0));

inta=0,b=0,t=0;

cout<<"如果想要结束测试,请按6个8键"<

while

(1)

{

if(ch=='A')

{

a=rand()%10;

b=rand()%10;

}

if(ch=='B')

{

a=rand()%100;

b=rand()%100;

}

cout<

cin>>t;

if(t==a-b)

{

iCounter++;

}

elseif(t==888888)

{

break;

}

else

{

cout<<"Yourinputiswrong!

"<

}

}

}

voidDivision()

{

cout<<"请选择要训练的类型:

A:

十以内的;B:

一百以内的"<

charch='';

cin>>ch;

srand(time(0));

inta=0,b=0,t=0;

cout<<"如果想要结束测试,请按6个8键"<

while

(1)

{

if(ch=='A')

{

a=rand()%10;

b=rand()%10;

}

if(ch=='B')

{

a=rand()%100;

b=rand()%100;

}

cout<

"<

}

}

}

6.编程序,使用户任意输入一个年份以及该年的1月1日是星期几,而后任意指定某一天(再输入该年的任意一个月份日期),由程序计算出这一天是星期几。

注意,2月份闰年为29天,非闰年为28天;可被4整除而不可被100整除的年份、或者可被400整除的年份均为闰年。

思考:

利用元年元月元日(即1年1月1日)是星期一的已知事实,可对程序进行改造,让用户仅输入一个表示日期的年月日,则程序就应计算出那一天是星期几。

程序代码:

#include"stdafx.h"

#include

usingnamespacestd;

boolIfLeapYear(long);

intmain(intargc,char*argv[])

{

longlYear=0;

intiWeek=0;

cout<<"Pleaseinputtheyearandwhatthefirstdayis:

"<

cin>>lYear>>iWeek;

intiMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};

cout<<"Pleaseinputonedayoftheyear:

(mon&&day)"<

intiMon=0,iDay=0,iSumDay=0;

cin>>iMon>>iDay;

for(inti=0;i

{

iSumDay+=iMonth[i];

}

if(IfLeapYear(lYear))

{

iSumDay++;

}

intiLast=iSumDay%7;

if(iWeek+iLast>7)

{

cout<<"Thatdayis星?

期¨²"<

}

cout<<"Thatdayis星?

期¨²"<

return0;

}

boolIfLeapYear(longyear)

{

if(year%4==0&&year%100!

=0||year%400==1)

{

returntrue;

}

returnfalse;

}

7.罗马数字问题转换

程序代码:

#include"StdAfx.h"

#include

#include

usingnamespacestd;

intmain()

{

cout<<"请输入一个包含“MDCLXVI”的字符串:

"<

stringst1="";

intiSum=0;//十进制数字之和;

intiData[7]={1000,500,100,50,10,5,1};

charchA[7]={'M','D','C','L','X','V','I'};

cin>>st1;

for(inti=0;i<7;++i)

{

if(st1[i]==chA[i])

{

iSum+=iData[i];

}

else

{

cout<<"Youhaveinputawrongletter!

"<

iSum=0;//iSum置零;

break;

}

}

cout<

return0;

}

把十进制转换成罗马数制

程序代码:

#include"StdAfx.h"

#include

#include

usingnamespacestd;

intmain()

{

intiNumber=0;

cout<<"请输入一个十进制数字(<10000):

"<

cin>>iNumber;

intiData[7]={1000,500,100,50,10,5,1};

/*charchA[7]={'M','D','C','L','X','V','I'};*/

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;

for(inti=0;i

{

cout<<"M"<<'';

}

for(i=0;i

{

cout<<"D"<<'';

}

for(i=0;i

{

cout<<"C"<<'';

}

for(i=0;i

{

cout<<"L"<<'';

}

for(i=0;i

{

cout<<"X"<<'';

}

for(i=0;i

{

cout<<"V"<<'';

}

for(i=0;i

{

cout<<"I"<<'';

}

cout<

cout<

cout<<"恭喜你,做出来了!

"<

return0;

}

8.编写程序求解骑士巡游问题:

程序代码:

#include"StdAfx.h"

#incl

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1