linux系统下用C语言实现小学算术运算测试程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在linux系统下用C语言实现小学算术运算测试程序

XX大学软件学院

小学算术运算测试程序

1、题目与要求

我计划编写的题目是:小学算术运算测试程序。制作一个可供小学数学运算的程序:10 以内加减法,能根据输入题数出题,判断题是否正确,最后计算分数。并用 make 工程管理器编译,编写 makefile 文件。

2、内容及主要任务

小学算术运算测试程序:要求完成 10 以内的加减运算。能根据用户输入的想要练习的题目数自行出题。用户输入答案后可以判断正误,并能给出算对及算错的题目数,最后计算出分数。同时,对于用户算错的题目会发出报警声,提示用户注意,同时给出正确结果。做完一次测试后用户可决定是否继续进行下一次测试。

3、题目设计意义

通过本课题的毕业设计,熟悉了关于 linux 下 C 语言的系统软件程序设计,可以比较深入的了解和掌握 WINSOCK 控件基本属性、方法和事件,理解网络聊天通信的概念,输控制协议(TCP)进行数据交流,初步掌握网络聊天通信程序的设计方法。并能巩固和扩展大学期间的学习内容,进行项目的设计开发训练,更好的适应社会的需求。随着计算机网络技术的快速发展,人们的交流方式越来越多,传统的通信方式在速度和可靠性方面已经很难满足人们的需要,即时通信系统已成为人们的新宠。同时,即时通信系统对现代企业也有着重大意义,它为诸企业开拓了网络应用的新领域。自从它诞生以来,以实时交互、资费低廉等优点,受到广大个人用户的喜爱,已经成为网络生活中不可或缺的一部分。本着学以致用的原则,本人开发了这套多点聊天系统,以满足网络用户的通讯需求。该系统具有操作简单、界面友好、功能专一等特点。本报告就系统的开发过程做了详细的介绍,并对系统的原理、总体设计等方面做了深入细致的讨论。

4、主要内容

本程序共分为五个模块:出题模块、答题模块、检查计分模块、评分模块和评价模块;下面分别对这五个模块的算法做一下介绍。

(1)出题模块:

一个答题系统自然而然首先就是要有题目且能够根据条件出题;在本模块中,首先设了一个含有 15 个指针的指针数组,指针数组里的每个指针都指向了相应题号的 1 选择题,这样就实现了对题目的储存;然后用 scanf 函数来实现从键盘上输入题号,用 if 语句控制输题的范围;题号不在 1--15 的范围内就提示选题出错;在输入题号的过程中输入相同题号是在所难免的;但是在答题系统中输入相同题号显然没有意义,所以另外设了一个静态一维数组来储存已输过的题号;且数组的第一个元素初始化为 0,然后每输入一个题号就赋给这个数组,同时用 for 语句来使当前的题号一一与储存在一维数组中已输过的题号进行比较,如题号有相同,就提示重答,重答的功能是通过对出题模块函数的递归调用来实现的,如题号没有相同,就通过输入的题号借助指针数组里的指针找到与题号对应的选择题, puts 函数来实现对选择题的输出;用最后用 return 语句将其他模块返回来每道题的小分数返回到主函数中(在主函数中调用出题模块函数)。

(2)答题模块:

出完题后自然是从键盘上输入答案了,在本模块中,提示输入答案后,用scanf 函数来实现使从键盘上输入的一个答案选项(A、B、C、D) 赋给一个用来记录答案的字符变量;用 return 语句将这个变量返回到出题模块中。

(3)检查计分模块:

输入答案选项后,就要判断答案的正确性和计分了,在本模块中,要设一个字符数组来储存每道题的正确答案; if 语句来控制在答题模块中输入的答案是否为用 A、B、C、D 中的某一个;若不是,就提示选的答案不在答案范围内,若是,根据在出题模块中输的题号使在答题模块中输入的答案选项与储存正确答案数组中的相应答案选项相比较,若相同,就提示答案正确,与此同时用变量记录下这道题所得的小分,否则,就提示答案错误并给出当前题目的正确答案,不计分; return 语句将得分返回到出题系统中(在出题模用块函数中调用检查计分模块函数)。

(4)评分模块:

做完题后,就要根据做题的对错个数来评分;在本模块中,首先就要提示题

目全做完, switch 语句根据总小分来选择性地选出 11 个不同的分数中的一个分数,用并且打印出该分数 (在主函数中调用评分模块函数) 。

(5)评价模块:

最后一步就是要根据不同的总得分段来给出不同的评语,在本模块中用 if 语句根据不同的总分数段来打印出不同的评语(在主函数中调用评价模块函数) 。主函数将这五个模块直接地或间接地联系在一起,使它们构成本程序,现在就来介绍主函数的算法。主函数对出题模块函数、评价模块函数进行了调用;首先提示开始答题,为了要答 10 次题,就要设一个 for 语句来控制对出题模块函数调用的次数,即需要答一定次数的题,与此同时用一个变量来累加由出题模块函数返回来每道题的小分数;接下来分别对评分模块函数和评价模块函数进行调用。以上就是对本程序算法的介绍。

5、程序结构及主要过程

(1)本程序共包含了顺序结构、选择结构、循环结构三种在 C 程序中的主要结构,其中穿插了数组(一维数组、字符数组)、指针 (指针数组)、函数调用(递归调用)等知识,该程序覆盖了本学期所学的除结构体外的大部分知识。

(2)本程序结构和过程思路如下:为了要答题,首先要有题目,设一个指针数组来实现;把相应的题目调出,应用指针的功能实现;调出题目后,就要给用户答题了,用一个输入函数实现;再经过系统的判断,用一个字符数组储存正确答案结合判断语句实现;最后累加计分,用循环结构实现。

(3)总之,该程序的总体结构和过程很好的体现了现在所提倡的对一个程序结构模块化的思想。

6、程序模块功能说明

本程序一共有五个模块,它们分别是:出题模块(question_out()),答题模块 (answer()),检查计分模块(check()),评分模块(count()),评价模块(assessment()),现在就来分别介绍这五个模块的功能。

(1)出题模块(question_out()):这一模块主要负责对题目的储存和调出这两个功能。

(2)答题模块(answer()):这一模块主要负责将用户端的答案通过键盘输入到系统。

(3)检查计分模块(check()):这一模块主要负责检查判断用户所提供的答案是否正确并根据它来记录每题所的总分。

(4)评分模块(count()):这一模块主要负责统计总得分并打印。

(5)评价模块(assessment()) :这一模块主要负责根据给出的总得分打印相应的评语。

相关文档
最新文档