数据结构课程设计之算术题测试程序

本文介绍了一种用C语言实现的算术题测试程序,用户可以自定义题数,程序能生成包含四则运算和括号的随机表达式,验证表达式合法性,接收用户输入并计算分数,同时具有一定的容错性和良好的交互性。
摘要由CSDN通过智能技术生成





项目场景:大学在读生完成课程设计

        该算法要求我们做到算术题测试的一些功能,利用此程序能给反馈给用户想要的测试题目数量,并且能够实现给出的题目可以包含四则运算中的某些运算,获取用户输入的计算答案,并最终及时反馈给用户所得的测试分数,完善一下算法返回测试所用时长。

具体功能:

1.能随机出题, 题数由用户输入确定, 算术题包括加减乘除四则运算, 表达式项数应不限, 可以包含括号;

2.需要进行表达式的合法性验证;

3.用户交互输入答案;

4.计算机核对用户答案;

5.能对用户的测试评分;

设计要求:

1. 系统具有一定的容错性;

2. 要求具有较好的交互性。






问题描述:

 对于上述功能的实现我们有可能会遇到以下一些问题:

1.随机出题意味着要让程序能够反馈给用户一些题目,这些题目是不确定的。

2.算术题包括加减乘除的四则运算,运算符号是随机的,包含括号的四则运算。

3.算术表达式的项数也是不确定的,表达式的合法性就是为了排除0作为运算的项。

4.括号的出现位置是不确定的,并且能够在获取用户输入的答案后,对此进行验证。

5.能够在用户输完答案后,反馈给用户测试分数,(反馈给用户做题时长,(选做))。






设计思路:

         该程序需要做到随机出题(包含四则运算和括号),意味着我们需要写出一个能够生成随机数,随机运算符和随机位置添加括号的算法,最后通过三者衔接输出给用户,这样就做到随机出题,表达式合法性我们则需要避免项数0的出现即可,用户交互输入答案并且对答案进行核对,那么只需要先存储用户答案和计算机事先算好的答案后进行对比反馈给用户分数即可。

        本程序的要求用户输入的内容包括:

        (1) 题目的数量,也就是num的值;

        (2) 用户计算后的结果,也就是user的值。

        本程序要求输出的内容是包括

        (1) 根据用户输入的num所反馈给用户的题目;

        (2) 用户通过此次测试所得分数;

        (3) 用户在此次测试中所用时长。

        所以,根据上面的模型分析及输入输出参数分析,可以定义一种数据结构后进行算法实现。






解决方案:

(1)    算术表达式的出题过程Questions函数

void Questions(int num)
{//首先随机项数的出现次数要根据用户输入的num来确定 
	int q,n[20];//用n记录随机项数的多少(项数至少是两项)
	int p,m,t[5];//t数组先存放0,1,2,3的数字用来实现加减乘除符号的随机 
	int flag=1;//标识符 &题目顺序 
	srand(time(NULL)); //设置随机种子
	for(q=0;q<num;q++) n[q] = rand()%4 + 2;//此处n的取值为2-5
	for(p=0;p<num;p++){
		for(m=0;m<n[p];m++){
			s[m] = rand() % 9 &#
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值