c语言课设报告书Word格式.docx
- 文档编号:17276946
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:10
- 大小:18.91KB
c语言课设报告书Word格式.docx
《c语言课设报告书Word格式.docx》由会员分享,可在线阅读,更多相关《c语言课设报告书Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
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<
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
}
Endforj
Endfori
END
(4)本题要求编译打印以下图案的程序,注意题目还要求在左边留出一些空格.
***
*******
(5)Goodbye!
这里除了输出一个简单的信息之外,还必须结束程序运行。
使用语句“exit(0);
”即可正确结束程序运行。
六调试分析
7.1源程序:
#include<
stdio.h>
stdlib.h>
ctype.h>
math.h>
voidFindNum();
voidFindRoot();
voidDetective();
voidDiamond();
intmenu_select();
voidmain()
for(;
;
){
switch(menu_select()){
case1:
FindNum();
break;
case2:
FindRoot();
case3:
Detective();
case4:
Diamond();
case5:
printf("
Goodbye!
\n"
);
exit(0);
}
}
//菜单选择操作
intmenu_select()
chars;
intcn;
printf("
1.FindNum\n"
2.FindRoot\n"
3.Detective\n"
4.Diamond\n"
5.Goodbye!
Input1-5:
"
do{
s=getchar();
cn=(int)s-48;
}while(cn<
0||cn>
6);
returncn;
//求正确的数字完成等式
//答案:
num=6
voidFindNum()
charbegin;
inti;
要使下面的等式成立,应在()中填上哪个相同的数字?
\n"
3()×
6237=()3×
3564\n"
求解结果为:
for(i=1;
10;
if((30+i)*6237==(10*i+3)*3564)
{
number=%d\n"
i);
//解一元二次方程
voidFindRoot()
floata,b,c;
doublex1,x2,d,p,q;
这是一个求方程ax2+bx+c=0的根的程序。
把变量设为double型,使用库函数math进行计算.\n"
输入方程系数a,b,c:
scanf("
%f,%f,%f"
&
a,&
b,&
c);
d=b*b-4*a*c;
方程的解是:
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);
X1=X2=%5.2f\n"
x1);
else
p=(-b)/(2*a);
q=sqrt(-d)/(2*a);
X1=%5.2f+%5.2fi\tX2=%5.2f-%5.2fi\n"
p,q,p,q);
//侦探交通事故肇事车辆的车牌号码
牌照号码是:
317744
voidDetective()
inti,j,k,c;
一辆汽车撞人后逃跑。
4个目击者提供如下线索:
牌照三、四位相同;
牌号为31xxxx;
牌照五、六位相同;
三至六位是一个整数的平方:
if(i!
=j)
k=i*1000+i*100+j*10+j;
for(c=31;
c*c<
=k;
if(c*c==k)
牌照号码是:
%ld。
310000+k);
//编制打印菱形图案程序
voidDiamond()
inti,j,k;
打印菱形图案。
for(i=1;
=4;
for(j=1;
=16-i;
for(k=1;
k<
=(2*i-1);
k++)
*"
=3;
=i+12;
=(7-2*i);
七课程设计遇到的问题
1.用Devc++编译程序,voidmain()无法运行,显示错误为必须返回到int,将程序改为intmain()后,程序正常运行。
2.第三道编译题开始无输出结果,检查后发现丢了一串源代码for(j=0;
j++),修改完成后输出结果为317744。
八总结
由于本课题中的许多知识点都要靠自己课外获取,难免出现错误,比如的设计与预想偏差很大,自己通过不断解决问题来完善程序设计。
明白了一个系统的菜单和提示信息非常重要,有了这些之后,调试过程得以顺利完成。
通过这次课程设计,我明确了自己的不足之处,提高了自己的独立思考和动手能力,克服困难,取得成功,感促颇多!
我了解编写程序最重要的是细心和耐心,这就必须要求我们对待事情要认真!
可能会很枯燥乏味,但必须要坚持到底,不能半途而废。
下面是我总结的一点经验:
1.要对系统的功能和要求做详细的分析
2.分解任务,有条有理
3.做好每个小环节,小细节
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 报告书