c语言课设报告书.docx
- 文档编号:4352141
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:10
- 大小:18.91KB
c语言课设报告书.docx
《c语言课设报告书.docx》由会员分享,可在线阅读,更多相关《c语言课设报告书.docx(10页珍藏版)》请在冰豆网上搜索。
c语言课设报告书
软件学院
程序设计基础课程设计报告书
题目:
__使用菜单选择趣味程序__________
*************
班级:
1525
******
学号:
************
课设时间:
2016年6月16日
成绩
二○一六年六月
课程设计任务书
题目
使用菜单选择趣味程序
一、设计内容及要求
菜单是应用程序的界面,使用控制语句可以改变程序的的执行顺序,所以做一个含有多菜单项的菜单演示程序,再选择某一个菜单项,执行相应的功能。
设计:
1、菜单内容
1.FindNum2.FindRoot3.Detective4.Diamond5.GoodBye!
Input1-5:
2、FindNum:
要想恢复下面的等式,应该在空格处填哪个数字?
3【】*6237=【】3*3564
3、FindRoot:
编程求一个方程ax2+bx+c=0的程序。
4、Detective:
一道侦探题,一辆汽车撞人后逃跑,4个目击者提供如下线索:
甲:
牌照3、4位相同;乙:
牌号为31****;丙:
牌照5、6位相同;丁:
3~6位是一个整数的平方。
5、Diamond:
*
***
*****
*******
*****
***
*
二、设计原始资料
无
三、设计完成后提交的成果及其相关资料。
1、完整的源程序。
2、课程设计报告书电子版。
3、课程设计报告书纸质版一份。
四、主要参考资料
1、《c程序设计》谭浩强清华大学出版社。
2、《c程序设计课程设计》刘振安机械工业出版社
五、进程安排
1、2016年6月13日:
下达任务指导老师做必要的讲解。
2、2016年6月13日-2016年6月22日:
指导老师在机房定时(根据机房实际情况以及课程需要确定时间)辅导学生完成设计题目。
3、2016年6月23日-2016年6月24日:
学生提交设计成果。
指导教师根据学生的成果给出成绩。
一设计目的
进一步加深、巩固所学专业课程(C语言程序设计)的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。
掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。
二课程设计的内容
使用菜单选择趣味程序
功能:
设计分两步,首先设计一个含有多个菜单项的菜单演示程序,然后再为这些菜单项配上相应的功能。
要求:
使用数字1-5来选择菜单项,其它输入则不起作用。
三课程设计的要求与数据
1.用C语言实现系统;
2.使用数字1-5来选择菜单项,其它输入则不起作用。
四课程设计应完成的工作
1.编写算法;
2.算法测试,并有具体的测试结果和结果分析;
3.撰写课程设计报告。
五总体设计
一、设计一个菜单程序
(1)菜单内容
程序运行后,给出5个菜单项的内容和输入提示。
1.FindNum
2.FindRoot
3.Detective
4.Diamond
5.Goodbye!
Input1-5;
二、增加菜单项的处理功能
这其实是5道编译题,目的是锻炼使用控制语句的能力。
(1)编写一函数实现确定一数字,使等式3_*6237=_3*3564成立。
(2)编写一函数实现求ax2+bx+c=0的根,其abc的值从键盘上输入。
一般将系数设计成float型,,可以把变量设为double型,使用库函数sqrt求平方根,sqrt在头文件math.h中定义。
(3)这是一道侦探题。
一辆汽车撞人后逃跑,4个目击者提供线索
甲:
拍照三、四位相同乙:
牌号为31xxxx
丙:
牌照五、六位相同丁:
三—六位是一个整数的平方
为了从这些线索中求出牌照号码,只要求出后四位再加上31000即可。
这四位又是前两位相同,后两位也相同,互相又不相同并且是某个整数平方的数。
可以仍然使用穷举法。
利用计算机的计算速度快的特点找出符合条件的数。
因为后面4位数,1000的平方根>31,所以穷举实验时不需从1开始,而是从31开始寻找一个整数的平方。
下面直接使用for语句格式,用循环变量与endfor构成结束标记。
给出算法思想。
BEGIN
for(i<1;i<=9;i++)
for(j=0;j<=9;j++)
IFi!
=jTHEN
{
i*1000+i*100+j*10+j->k
for(c=31;c*c=k;c++);
IFc*c=kTHEN
printf(“牌照号码是:
%ld\n”,310000+k);
ENDIF
Endforc
}
ENDIF
Endforj
Endfori
END
(4)本题要求编译打印以下图案的程序,注意题目还要求在左边留出一些空格.
*
***
*****
*******
*****
***
*
(5)Goodbye!
这里除了输出一个简单的信息之外,还必须结束程序运行。
使用语句“exit(0);”即可正确结束程序运行。
六调试分析
7.1源程序:
#include
#include
#include
#include
voidFindNum();
voidFindRoot();
voidDetective();
voidDiamond();
intmenu_select();
voidmain()
{
for(;;){
switch(menu_select()){
case1:
FindNum();
break;
case2:
FindRoot();
break;
case3:
Detective();
break;
case4:
Diamond();
break;
case5:
printf("Goodbye!
\n");
exit(0);
}
}
}
//菜单选择操作
intmenu_select()
{
chars;
intcn;
printf("1.FindNum\n");
printf("2.FindRoot\n");
printf("3.Detective\n");
printf("4.Diamond\n");
printf("5.Goodbye!
\n");
printf("Input1-5:
");
do{
s=getchar();
cn=(int)s-48;
}while(cn<0||cn>6);
returncn;
}
//求正确的数字完成等式
//答案:
num=6
voidFindNum()
{
charbegin;
inti;
printf("要使下面的等式成立,应在()中填上哪个相同的数字?
\n");
printf("3()×6237=()3×3564\n");
printf("求解结果为:
\n");
for(i=1;i<10;i++)
if((30+i)*6237==(10*i+3)*3564)
{
printf("number=%d\n",i);
break;
}
}
//解一元二次方程
voidFindRoot()
{
floata,b,c;
doublex1,x2,d,p,q;
printf("这是一个求方程ax2+bx+c=0的根的程序。
\n");
printf("把变量设为double型,使用库函数math进行计算.\n");
printf("输入方程系数a,b,c:
\n");
scanf("%f,%f,%f",&a,&b,&c);
d=b*b-4*a*c;
printf("方程的解是:
\n");
if(d>0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("X1=%5.2f\tX2=%5.2f\n",x1,x2);
}
elseif(d==0)
{
x1=x2=(-b)/(2*a);
printf("X1=X2=%5.2f\n",x1);
}
else
{
p=(-b)/(2*a);
q=sqrt(-d)/(2*a);
printf("X1=%5.2f+%5.2fi\tX2=%5.2f-%5.2fi\n",p,q,p,q);
}
}
//侦探交通事故肇事车辆的车牌号码
//答案:
牌照号码是:
317744
voidDetective()
{
inti,j,k,c;
printf("一辆汽车撞人后逃跑。
4个目击者提供如下线索:
\n");
printf("甲:
牌照三、四位相同;\n");
printf("乙:
牌号为31xxxx;\n");
printf("丙:
牌照五、六位相同;\n");
printf("丁:
三至六位是一个整数的平方:
\n");
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
if(i!
=j)
{
k=i*1000+i*100+j*10+j;
for(c=31;c*c<=k;c++);
if(c*c==k)
printf("牌照号码是:
%ld。
\n",310000+k);
}
}
//编制打印菱形图案程序
voidDiamond()
{
inti,j,k;
printf("打印菱形图案。
\n");
for(i=1;i<=4;i++)
{
for(j=1;j<=16-i;j++)
printf("");
for(k=1;k<=(2*i-1);k++)
printf("*");
printf("\n");
}
for(i=1;i<=3;i++)
{
for(j=1;j<=i+12;j++)
printf("");
for(k=1;k<=(7-2*i);k++)
printf("*");
printf("\n");
}
}
七课程设计遇到的问题
1.用Devc++编译程序,voidmain()无法运行,显示错误为必须返回到int,将程序改为intmain()后,程序正常运行。
2.第三道编译题开始无输出结果,检查后发现丢了一串源代码for(j=0;j<=9;j++),修改完成后输出结果为317744。
八总结
由于本课题中的许多知识点都要靠自己课外获取,难免出现错误,比如的设计与预想偏差很大,自己通过不断解决问题来完善程序设计。
明白了一个系统的菜单和提示信息非常重要,有了这些之后,调试过程得以顺利完成。
通过这次课程设计,我明确了自己的不足之处,提高了自己的独立思考和动手能力,克服困难,取得成功,感促颇多!
我了解编写程序最重要的是细心和耐心,这就必须要求我们对待事情要认真!
可能会很枯燥乏味,但必须要坚持到底,不能半途而废。
下面是我总结的一点经验:
1.要对系统的功能和要求做详细的分析
2.分解任务,有条有理
3.做好每个小环节,小细节
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 报告书