利用C语言开发一个小学生算术四则运算测试系统〞_第1页
利用C语言开发一个小学生算术四则运算测试系统〞_第2页
利用C语言开发一个小学生算术四则运算测试系统〞_第3页
利用C语言开发一个小学生算术四则运算测试系统〞_第4页
利用C语言开发一个小学生算术四则运算测试系统〞_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——利用C语言开发一个“小学生算术四则运算测试系统〞

武汉理工大学华夏学院

课程设计

课程名称C语言程序设计

题目利用C语言开发一个“小学生算术四则运算测试系统〞

专业____电子商务_____班级______1091_______学号_____20510809105_____姓名______张宇_______成绩_________________指导教师杨沙、王绪梅

2023年6月28日至2023年7月2日

课程设计任务书

设计题目:利用C语言开发一个“小学生算术四则运算测试系统〞设计目的

1.2.3.4.

加深对《C语言程序设计》课程所学知识的理解;把握结构化程序设计的基本方法;

学会编制结构明了、风格良好、数据结构选择恰当的C语言程序;把握多模块的C语言程序的调试方法。

设计任务(在规定的时间内完成以下任务)

任务描述:利用C语言开发一个“小学生算术四则运算测试系统〞

该系统是让计算机充当一位给小学生布置作业的算术老师,为学生出题、阅卷

该系统应具备以下功能:

1.为小学生出题(分别进行+、-、*、÷等不同运算)2.学生做题后,进行评阅;

学生每做一题后,评阅时给出“答题正确,很好〞或“答题错误,重做〞等字样;

3.加、减、乘、除运算功能可以自由选择实现;

4.运算数值可以控制在两位(或三位)数的四则运算范围内。

具体要完成的任务是:

1完成整个规定任务的设计及调试,得出正确结果,并经教师检查及辩论;2.写出规范的课程设计说明书;

3.课程设计终止后交设计说明书等文档和设计内容。设计说明书的主要内容是详细

写出在设计过程中所用到的主要技术或方法;

4.从6月28日起,学生每天至少要到设计教室半天以上;

5.课程设计报告按国际通用格式书写,具体格式要求请在网络上查阅

时间安排

6月28日上午1-103教室动员全体学生,给学生下任务书;下午查阅相关资料;

6月29日~7月1日完成选题的设计及报告的书写;7月2日上午提交课程设计报告并辩论。

指导教师签名:2023年6月27日教研室主任(或责任教师)签名:

2023年6月27日

1、问题描述

1.1在最开始设计此程序过程中,我定义的变量flag为字符型,当把原程序段中对应于下面的程序段的程序段改为:??

scanf(\while(temp!=answer){

printf(\答案错误,重做\\n\printf(\请输入正确的答案:\\n\scanf(\}

printf(\继续请按y,退出测试请按n\\n\scanf(\

while(flag!=y,此函数的主要功能是为小学生出题(分别进行+,—,*,/等不同运算),并且保证给出的算式中的数字和结果均不超过三位数。系统自动计算出正确的答案,然后此正确的答案赋给变量answer。4.2通过调用函数srand((unsigned)time(NULL));初始化随机数发生器,使rand()函数调用的返回值不一样,这样就使连续做同一种算法时,系统两次给出的算式不一致。

4.3程序中有一个while(1)和其循环体中的if(flag==0)break;语句,学生可以选择退出程序或者继续做题。

4.4在main()函数外定义一个外部变量type,此变量表示小学生选择题目的类型,选中择1时候需要做加法运算,选择2时候做减法运算,选择3做乘法运算,选择4做除法运算,选中择的不是1234中的一个数时,通过使用while语句要求小学生输入正确的题目类型。

4.5提醒要求小学生输入自己的答案,并将小学生输入的答案赋给变量temp,然后用while(temp!=answer)语句判断小学生输入的答案是否与正确答案一致,假使不同则通过此while的循环体提醒答案错误,要求重新输入正确答案,直到输入的答案正确后提醒答案正确;假使小学生一开始输入的答案是正确的则直接提醒答案正确。

4.6定义了一个变量flag,当给flag赋值1时可以继续做题,赋值为0时通过break语句退出整个循环while(1),此时也就退出了测试系统。

4.7设计函数question_get(),首先在main()函数作函数声明,然后开始设计此函数,考虑到当小学生输入数字1需要做加法运算,输入2时候做减法运算,输入时3做乘法运算,输入4时做除法运算,所以通过条件ifelse语句分状况设计算法。

3.试验环境

Microsoftvisualc++

4.程序调试

源程序:

#include#include

#include//用到了time()函数,所以要包含time.h头文件

//srand(time(NULL))中的time(NULL)就是time函数调用

inttype;main(){

intquestion_get();//函数声明

intanswer;inttemp;intflag;

4.心得体会

5.1在我们设计程序时候,将一个大的问题分成几个模块,运用不同的函数将这些模块分别设计出来,然后运用函数调用,我们就可以将这些功能不同的模块联系在一起。

5.2在设计程序过程中,我原先定义的变量flag为字符型,当输入y时继续做下题,输入n时退出系统,我发现无论按哪个字母,在看结果时候发现有两条继续测试请按1,退出测试请按0:语句输出,后来经过老师的讲解我明白了,在连续的2个scanf函数中,以字符形式输入第一个scanf函数时候,回车键会以字符形式存储在其次个scanf函数中。

5.3要使计算机自动为学生出题,使用了函数srand((unsigned)time(NULL));这个函数调用中使用time(NULL)函数返回值(当前时间)作实参,初始化随机数发生器。rand()函数调用返回一个随机数,理论上说,rand()返回一个随机数,但是每次调用时,随机数发生器返回的随机数序列都是一样的,所以,用当前时间(time(NULL)返回值)作种子对随机数发生器进行初始化,由于每次当前时间不一样,所以随机数发生器产生的随机数序列不一样,即rand()函数调用的返回值不一样,就达到了得到真随机数而不是伪随机数的目的。

5.4深知自己技术水平还不高,编这样的程序遇到了好多困难,但我相信经过今后的不断学习,我的变成能力会有很大的提高。

srand((unsigned)time(NULL));/*srand((unsigned)time(NULL));这个函数调用中使用time(NULL)函数返回值(当前时间)作实参,初始化随机数发生器。*/

/*rand()函数调用返回一个随机数,理论上说,rand()返回一个随机数,但是每次调用时,随机数发生器返回的随机数序列都是一样的,所以,

用当前时间(time(NULL)返回值)作种子对随机数发生器进行初始化,由于每次当前时间不一样,所以随机数发生器产生的随机数序列不一样,

即rand()函数调用的返回值不一样,就达到了得到真随机数而不是伪随机数的目的。*/

printf(\小学生算术四则运算测试系统\\n\while(1){

printf(\请你选择测试题目的种类,只需输入数字:\\n\printf(\加法2.减法3.乘法4.除法\\n\scanf(\

while(type!=1/*通过函数调用返回计算机算出的正确答案*/

printf(\请输入你的答案:\\n\

scanf(\学生输入自己的答案

while(temp!=answer)/*判断学生的答案是否与正确的答案一致,若不同则需要输入正确答案,直到答案正确*/{

printf(\答案错误,重做\\n\printf(\请输入正确的答案:\\n\scanf(\}

printf(\答案正确,很好\\n\

printf(\继续测试请按1,退出测试请按0:\\n\scanf(\

while(flag!=1}}

intquestion_get()/*此函数作用为为小学生出题,并返回计算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论