最新版c语言毕业课程设计实验报告书.docx

上传人:b****7 文档编号:9469803 上传时间:2023-02-04 格式:DOCX 页数:23 大小:352.38KB
下载 相关 举报
最新版c语言毕业课程设计实验报告书.docx_第1页
第1页 / 共23页
最新版c语言毕业课程设计实验报告书.docx_第2页
第2页 / 共23页
最新版c语言毕业课程设计实验报告书.docx_第3页
第3页 / 共23页
最新版c语言毕业课程设计实验报告书.docx_第4页
第4页 / 共23页
最新版c语言毕业课程设计实验报告书.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

最新版c语言毕业课程设计实验报告书.docx

《最新版c语言毕业课程设计实验报告书.docx》由会员分享,可在线阅读,更多相关《最新版c语言毕业课程设计实验报告书.docx(23页珍藏版)》请在冰豆网上搜索。

最新版c语言毕业课程设计实验报告书.docx

最新版c语言毕业课程设计实验报告书

C语言课程设计报告

院系:

信息工程系

专业:

11级计算机科学与技术

题目:

教小学生算术

姓名:

许庆超

学号:

指导教师:

夏学文

2012.12.31

湖北工程学院新技术学院

 

一、实验目的:

1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。

2.培养学生综合运用所学知识独立完成课题的能力。

3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。

4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。

5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。

6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核

二、实验内容:

(1)制作一个可供小学数学运算程序:

10以内加减法,能根据输入题数出题,判断做题是否正确。

正确的给鼓励,错误的发出警报,并给出正确答案,最后计算分数。

(2)执行编译操作,并根据提示调试此程序,排除所有的错误和警告。

直到编译成功为止。

(3)执行运行操作,逐一对每个模块进行调试。

直到全部程序运行成功为止。

三、需求分析:

通过此系统实现以下功能:

做个位数,十位数的加,减,乘和除,减法不能得负数,除法要除尽,屏幕上随机出现两个数,提示小学生给出答案,答错了要提示重新输入,直到答对为止。

要统计给分,且累计,够一定分数后可进级,即从个位进到十位。

同样,也可降级。

1.1加法功能:

用PLUS函数实现加法算数,答对输入的题量后可晋级,难度有所增加,结果错误后提示错误并且重新输入。

1.2减法功能:

用sub函数实现减法算数,并且结果不为负数,答对输入的题量后可晋级,难度有所增加,结果错误后提示错误并且重新输入。

1.3乘法功能:

用mul函数实现乘法算数,答对输入的题量后可晋级,难度有所增加,结果错误后提示错误并且重新输入。

1.4除法功能:

用div函数实现除法功能,并且生成的除法算数要除尽,答对输入的题量后可晋级,难度有所增加,结果错误后提示错误并且重新输入。

一.输入模块:

(2种算法)

加法:

请选择:

1

欢迎进入第一关!

请设定题目数量:

1

1+7=8

恭喜你,答对了!

恭喜你通过了第一关!

晋级模块:

是否继续挑战第一关?

y

(1)/n(0):

1

欢迎进入第二关!

请设定题目数量:

1

9+24=33

恭喜你,答对了!

恭喜你通过了第二关!

是否继续挑战第一关?

y

(1)/n(0):

0

欢迎进入第三关!

请设定题目数量:

1

78+58=136

恭喜你,答对了!

恭喜你通过了第三关!

乘法:

请选择:

1

欢迎进入第一关!

请设定题目数量:

1

1*7=7

恭喜你,答对了!

恭喜你通过了第一关!

晋级模块:

是否继续挑战第一关?

y

(1)/n(0):

1

欢迎进入第二关!

请设定题目数量:

1

34*0=0

恭喜你,答对了!

恭喜你通过了第二关!

是否继续挑战第一关?

y

(1)/n(0):

0

欢迎进入第三关!

请设定题目数量:

1

25*4=100

恭喜你,答对了!

恭喜你通过了第三关!

二.总体设计

主函数结构图:

三.算法设计:

1、本程序实现的功能要求:

利用for循环、do...while循环和switch完成的主菜单。

2、

输入想要测试的题目数

 

学生进行答题

 

判断正误

 

正确给出鼓励,错误报警,要求重新回答

3、进入第一步出现如下信息:

用户输入要练习的题数。

第二步:

输出算术式子

用户输入结果进行测试。

第三步:

输出测试结果

屏幕显示出本次测试的基本情况。

四.流程图

5.主要函数之间相互调用如下:

主函数调用:

六、调试情况,设计技巧及体会

(1)、调试中的问题:

a.运行后关掉黑屏后,输入的数据将不会保存,再运行时修改函数等将不会进行该数据,多次使用后发现,再关掉该屏前要输入5,数据就会保存.

b.在输入数据时要注意其输入形式,输错后数据将不会保存.就不会进行其他函数的使用.

c.c语言设计的体会:

(1).这次课程设计和以前所做题目截然不同,在这之前,以前从未尝试过写一个较大的程序,由于上学期C语言学得不是很好,所以设计过程中遇到好多问题,比如没有思路、不知如何下手等。

但是通过查阅资料和咨询同学终于有了想法。

所以自己就慢慢设计了这个程序。

但是程序设计有些简单,没有运用链表知识,只应用了结构体和数组。

而且设计中还存在很多问题,管理系统不够完善,实现的功能不够详尽,没有实现自己想要实现的那么复杂和完善的功能。

(2)通过对此程序的编写,让我把书本上学到的应用到实际中去,但在编序后,再进行编译时出现了许多错误和警告。

这才让我认识到理论和实践是存在一定差别的。

最后,在多次查阅资料,询问同学后把程序给改编完成了。

它让我体会到自己的不足,所以自己以后要踏踏实实地把计算机年学好,为自己将来的发展打下坚实基础。

在此次程序编写中,发现的问题有:

1.函数应该是先定义后使用,所以一开始时,总是出现很多警告,说没有定义!

后来经过仔细检查,发现主函数应该是放在各个模块之后!

2.要注意全局变量的应用,若全局变量没定义好的话,对整个程序的编写与都有很大影响!

3.在删除模块中,刚开始存在很多问题,删除不了,或者删除后还能打印出来,结果后来发现是删除模块本身的问题。

(该块较难处理)

4.在查询模块中,刚开始那个按商品类别查询无法运行,经检查,是由于未定义成字符串数组形式,因此定义变量的类型非常重要。

(3)此次设计感受:

要想编写一个准确、高效并有使用价值的程序,一定先要对课本知识熟悉,还要掌握必要的上机操作能力,写程序其实很容易而关键在于调试程序。

这次设计,让我重新掌握了C语言,而且还得到了用C语言解决实际问题的宝贵经验。

程序运行:

主菜单运行情况:

加法运行情况:

减法运行情况:

乘法运行情况:

除法运行情况:

退出运行情况:

七.原程序清单:

//1.cpp:

Definestheentrypointfortheconsoleapplication.

//

#include

#include

#include

#include

voidmenu()

{

printf("********************************************************************************");

printf("^_^_^_^_^_^_^_^_^_^_^_^小朋友,欢迎你们来学习小学算术_^_^_^_^_^_^_^_^_^_^_^_^_^_");

printf("");

printf("1.加法");

printf("2.减法");

printf("3.乘法");

printf("4.除法");

printf("0.退出");

printf("");

printf("快选择你要学习的内容吧!

");

printf("");

printf("^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_");

printf("********************************************************************************");

}

voidplus1()

{

intcount=0,m,n,s,total,k;

printf("欢迎进入第一关!

\n");

printf("请设定题目数量:

");

scanf("%d",&k);

while(count

printf("%d",m=rand()%10);

printf("+");

printf("%d",n=rand()%10);

printf("=");

total=m+n;

loopa:

scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!

\n");count++;}

else

{printf("回答错误,请重新回答!

\n");gotoloopa;}

}

printf("恭喜你通过了第一关!

\n");

}

voidplus2()

{

intcount=0,m,n,s,total,k;

printf("欢迎进入第二关!

\n");

printf("请设定题目数量:

");

scanf("%d",&k);

while(count

do{

m=rand()%10;

n=rand()%100;

}while(n<10);

printf("%d",m);

printf("+");

printf("%d",n);

printf("=");

total=m+n;

loopa:

scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!

\n");count++;}

else

{printf("回答错误,请重新回答!

\n");gotoloopa;}}

printf("恭喜你通过了第二关!

\n");

}

voidplus3()

{

intcount=0,m,n,s,total,k;

printf("欢迎进入第三关!

\n");

printf("请设定题目数量:

");

scanf("%d",&k);

while(count

do{

m=rand()%100;

n=rand()%100;

}while(m<10&&n<10);

printf("%d",m);

printf("+");

printf("%d",n);

printf("=");

total=m+n;

loopa:

scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!

\n");count++;}

else

{printf("回答错误,请重新回答!

\n");gotoloopa;}

}

printf("恭喜你通过了第三关!

\n");

}

voidsub1()

{

intcount=0,m,n,s,total,k;

printf("欢迎进入第一关!

\n");

printf("请设定题目数量:

");

scanf("%d",&k);

while(count

do{

m=rand()%10;

n=rand()%10;

}while(m<=n);

printf("%d",m);

printf("-");

printf("%d",n);

printf("=");

total=m-n;

loopa:

scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!

\n");count++;}

else

{printf("回答错误,请重新回答!

\n");gotoloopa;}

}

printf("恭喜你通过了第一关!

\n");

}

voidsub2()

{

intcount=0,m,n,s,total,k;

printf("欢迎进入第二关!

\n");

printf("请设定题目数量:

");

scanf("%d",&k);

while(count

do{

m=rand()%100;

n=rand()%10;

}while(m<10);

printf("%d",m);

printf("-");

printf("%d",n);

printf("=");

total=m-n;

loopa:

scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!

\n");count++;}

else

{printf("回答错误,请重新回答!

\n");gotoloopa;}

}

printf("恭喜你通过了第二关!

\n");

}

voidsub3()

{

intcount=0,m,n,s,total,k;

printf("欢迎进入第三关!

\n");

printf("请设定题目数量:

");

scanf("%d",&k);

while(count

do{

m=rand()%100;

n=rand()%100;

}while(m<=n||m<10||n<10);

printf("%d",m);

printf("-");

printf("%d",n);

printf("=");

total=m-n;

loopa:

scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!

\n");count++;}

else

{printf("回答错误,请重新回答!

\n");gotoloopa;}

}

printf("恭喜你通过了第三关!

\n");

}

voidplus()

{

inti;

plus1();

printf("是否继续挑战?

Y

(1)/N(0):

");

scanf("%d",&i);

if(i==1)

plus2();

else

return;

i=NULL;

printf("是否继续挑战?

Y

(1)/N(0):

");

scanf("%d",&i);

if(i==1)

plus3();

else

return;

}

voidsub()

{

inti;

sub1();

printf("是否继续挑战?

Y

(1)/N(0):

");

scanf("%d",&i);

if(i==1)

sub2();

else

return;

i=NULL;

printf("是否继续挑战?

Y

(1)/N(0):

");

scanf("%d",&i);

if(i==1)

sub3();

else

return;

}

voidmul1()

{

intcount=0,m,n,s,total,k;

printf("欢迎进入第一关!

\n");

printf("请设定题目数量:

");

scanf("%d",&k);

while(count

printf("%d",m=rand()%10);

printf("*");

printf("%d",n=rand()%10);

printf("=");

total=m*n;

loopa:

scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!

\n");count++;}

else

{printf("回答错误,请重新回答!

\n");gotoloopa;}

}

printf("恭喜你通过了第一关!

\n");

}

voidmul2()

{

intcount=0,m,n,s,total,k;

printf("欢迎进入第二关!

\n");

printf("请设定题目数量:

");

scanf("%d",&k);

while(count

do{

m=rand()%100;

n=rand()%10;

}while(m<10);

printf("%d",m);

printf("*");

printf("%d",n);

printf("=");

total=m*n;

loopa:

scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!

\n");count++;}

else

{printf("回答错误,请重新回答!

\n");gotoloopa;}

}

printf("恭喜你通过了第二关!

\n");

}

voidmul()

{

inti;

mul1();

printf("是否继续挑战?

Y

(1)/N(0):

");

scanf("%d",&i);

if(i==1)

mul2();

}

voiddiv1()

{

intcount=0,m,n,s,total,k;

printf("欢迎进入第一关!

\n");

printf("请设定题目数量:

");

scanf("%d",&k);

while(count

do{

m=rand()%10;

n=rand()%10;

}while(n==0||m%n!

=0);

printf("%d",m);

printf("/");

printf("%d",n);

printf("=");

total=m/n;

loopa:

scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!

\n");count++;}

else

{printf("回答错误,请重新回答!

\n");gotoloopa;}

}

printf("恭喜你通过了第一关!

\n");

}

voiddiv2()

{

intcount=0,m,n,s,total,k;

printf("欢迎进入第二关!

\n");

printf("请设定题目数量:

");

scanf("%d",&k);

while(count

do{

m=rand()%100;

n=rand()%10;

}while(n==0||m<10||m%n!

=0);

printf("%d",m);

printf("/");

printf("%d",n);

printf("=");

total=m/n;

loopa:

scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!

\n");count++;}

else

{printf("回答错误,请重新回答!

\n");gotoloopa;}

}

printf("恭喜你通过了第二关!

\n");

}

voiddiv3()

{

intcount=0,m,n,s,total,k;

printf("欢迎进入第三关!

\n");

printf("请设定题目数量:

");

scanf("%d",&k);

while(count

do{

m=rand()%100;

n=rand()%100;

}while(n==0||m<10||n<10||m%n!

=0);

printf("%d",m);

printf("/");

printf("%d",n);

printf("=");

total=m/n;

loopa:

scanf("%d",&s);

if(s==total)

{printf("恭喜你,答对了!

\n");count++;}

else

{printf("回答错误,请重新回答!

\n");gotoloopa;}

}printf("恭喜你通过了第三关!

\n");

}

voiddiv()

{

inti;

div1();

printf("是否继续挑战?

Y

(1)/N(0):

");

scanf("%d",&i);

if(i==1)

div2();

else

return;

i=NULL;

printf("是否继续挑战?

Y

(1)/N(0):

");

scanf("%d",&i);

if(i==1)

div3();

else

return;}

main()

{

voidmenu();

intk;

do{

menu();

printf("请选择:

");

scanf("%d",&k);

switch(k)

{

case1:

plus();break;

case2:

sub();break;

case3:

mul();break;

case4:

div();break;

case0:

break;

}printf("\n");

}while(k!

=0);

printf("\n");

return0;}

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

当前位置:首页 > 解决方案 > 商业计划

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

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