c语言课程设计报告实验报告书文档格式.docx
《c语言课程设计报告实验报告书文档格式.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告实验报告书文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
(2)执行编译操作,并根据提示调试此程序,排除所有的错误和警告。
直到编译成功为止。
(3)执行运行操作,逐一对每个模块进行调试。
直到全部程序运行成功为止。
三、需求分析:
通过此系统实现以下功能:
做个位数,十位数的加,减,乘和除,减法不能得负数,除法要除尽,屏幕上随机出现两个数,提示小学生给出答案,答错了要提示重新输入,直到答对为止。
要统计给分,且累计,够一定分数后可进级,即从个位进到十位。
同样,也可降级。
1.1加法功能:
用PLUS函数实现加法算数,答对输入的题量后可晋级,难度有所增加,结果错误后提示错误并且重新输入。
1.2减法功能:
用sub函数实现减法算数,并且结果不为负数,答对输入的题量后可晋级,难度有所增加,结果错误后提示错误并且重新输入。
1.3乘法功能:
用mul函数实现乘法算数,答对输入的题量后可晋级,难度有所增加,结果错误后提示错误并且重新输入。
1.4除法功能:
用div函数实现除法功能,并且生成的除法算数要除尽,答对输入的题量后可晋级,难度有所增加,结果错误后提示错误并且重新输入。
一.输入模块:
(2种算法)
加法:
请选择:
1
欢迎进入第一关!
请设定题目数量:
1+7=8
恭喜你,答对了!
恭喜你通过了第一关!
晋级模块:
是否继续挑战第一关?
y
(1)/n(0):
欢迎进入第二关!
9+24=33
恭喜你通过了第二关!
欢迎进入第三关!
78+58=136
恭喜你通过了第三关!
乘法:
:
1*7=7
34*0=0
25*4=100
二.总体设计
主函数结构图:
三.算法设计:
1、本程序实现的功能要求:
利用for循环、do...while循环和switch完成的主菜单。
2、
输入想要测试的题目数
学生进行答题
判断正误
正确给出鼓励,错误报警,要求重新回答
3、进入第一步出现如下信息:
用户输入要练习的题数。
第二步:
输出算术式子
用户输入结果进行测试。
第三步:
输出测试结果
屏幕显示出本次测试的基本情况。
四.流程图
五.主要函数之间相互调用如下:
主函数调用:
六、调试情况,设计技巧及体会
(1)、调试中的问题:
a.运行后关掉黑屏后,输入的数据将不会保存,再运行时修改函数等将不会进行该数据,多次使用后发现,再关掉该屏前要输入5,数据就会保存.
b.在输入数据时要注意其输入形式,输错后数据将不会保存.就不会进行其他函数的使用.
c.c语言设计的体会:
(
(1).这次课程设计和以前所做题目截然不同,在这之前,以前从未尝试过写一个较大的程序,由于上学期C语言学得不是很好,所以设计过程中遇到好多问题,比如没有思路、不知如何下手等。
但是通过查阅资料和咨询同学终于有了想法。
所以自己就慢慢设计了这个程序。
但是程序设计有些简单,没有运用链表知识,只应用了结构体和数组。
而且设计中还存在很多问题,管理系统不够完善,实现的功能不够详尽,没有实现自己想要实现的那么复杂和完善的功能。
(2)通过对此程序的编写,让我把书本上学到的应用到实际中去,但在编序后,再进行编译时出现了许多错误和警告。
这才让我认识到理论和实践是存在一定差别的。
最后,在多次查阅资料,询问同学后把程序给改编完成了。
它让我体会到自己的不足,所以自己以后要踏踏实实地把计算机年学好,为自己将来的发展打下坚实基础。
在此次程序编写中,发现的问题有:
1.函数应该是先定义后使用,所以一开始时,总是出现很多警告,说没有定义!
!
后来经过仔细检查,发现主函数应该是放在各个模块之后!
2.要注意全局变量的应用,若全局变量没定义好的话,对整个程序的编写与都有很大影响!
3.在删除模块中,刚开始存在很多问题,删除不了,或者删除后还能打印出来,结果后来发现是删除模块本身的问题。
。
(该块较难处理)
4.在查询模块中,刚开始那个按商品类别查询无法运行,经检查,是由于未定义成字符串数组形式,因此定义变量的类型非常重要。
(3)此次设计感受:
要想编写一个准确、高效并有使用价值的程序,一定先要对课本知识熟悉,还要掌握必要的上机操作能力,写程序其实很容易而关键在于调试程序。
这次设计,让我重新掌握了C语言,而且还得到了用C语言解决实际问题的宝贵经验。
程序运行:
主菜单运行情况:
加法运行情况:
减法运行情况:
乘法运行情况:
除法运行情况:
退出运行情况:
七.原程序清单:
//1.cpp:
Definestheentrypointfortheconsoleapplication.
//
#include<
stdafx.h>
stdio.h>
stdlib.h>
time.h>
voidmenu()
{
printf("
********************************************************************************"
);
^_^_^_^_^_^_^_^_^_^_^_^小朋友,欢迎你们来学习小学算术_^_^_^_^_^_^_^_^_^_^_^_^_^_"
"
1.加法"
2.减法"
3.乘法"
4.除法"
0.退出"
快选择你要学习的内容吧!
printf("
^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_"
}
voidplus1()
intcount=0,m,n,s,total,k;
\n"
请设定题目数量:
"
scanf("
%d"
&
k);
while(count<
k){
m=rand()%10);
+"
n=rand()%10);
="
total=m+n;
loopa:
s);
if(s==total)
{printf("
count++;
else
回答错误,请重新回答!
gotoloopa;
voidplus2()
intcount=0,m,n,s,total,k;
do{
m=rand()%10;
n=rand()%100;
}while(n<
10);
m);
n);
total=m+n;
loopa:
if(s==total)
{printf("
else
}}
voidplus3()
intcount=0,m,n,s,total,k;
scanf("
while(count<
do{
m=rand()%100;
}while(m<
10&
&
n<
}
voidsub1()
do{
m=rand()%10;
n=rand()%10;
}while(m<
=n);
-"
total=m-n;
{printf("
voidsub2()
m=rand()%100;
printf("
voidsub3()
m=rand()%100;
n=rand()%100;
=n||m<
10||n<
}
voidplus()
inti;
plus1();
是否继续挑战?
Y
(1)/N(0):
i);
if(i==1)
plus2();
return;
i=NULL;
plus3();
voidsub()
sub1();
sub2();
sub3();
voidmul1()
*"
total=m*n;
voidmul2()
voidmul()
inti;
mul1();
mul2();
voiddiv1()
}while(n==0||m%n!
=0);
/"
total=m/n;
voiddiv2()
}while(n==0||m<
10||m%n!
voiddiv3()
}printf("
voiddiv()
div1();
div2();
div3();
main()
voidmenu();
intk;
menu();
switch(k)
{
case1:
plus();
break;
case2:
sub();
case3:
mul();
case4:
div();
case0:
}printf("
}while(k!
return0;