PAGE
1 设计目的
(1)进一步巩固和复习C程序设计的基础知识;
(2)培养学生结构化程序、模块化程序设计的方法和能力;
(3)了解软件的编制过程及各环节的具体内容;
(4)提高学生程序调试技巧、软件设计能力和代码规范化等素质;
提高学生分析问题、解决问题以及实际运用能力。
2 任务概述
面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。
功能要求:
(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;
(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;
(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;
(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;
(5)总成绩90以上显示“SMART”
,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”
3 模块划分
小学生测验系统包括系统出题,判断题目是否合规,学生答题,判断正误计算得分
,输出等级退出系统几个功能,功能模块图如图3.1所示。
小学生测验
判断题目是否合规系统出题学生答题输出等级退出系统判断正误计算得分
判断题目是否合规
系统出题
学生答题
输出等级退出系统
判断正误计算得分
图3.1 小学生测验系统功能模块图
4 主要函数说明及其N-S
(1)小学生测验系统main()函数的N-S图,如图4.1所示
定义变量
i=1
i<=10
a=rand()%51 b=rand()%51 c=rand()%2
T d==0 F
c=a+b c=a-b
c<0||c>50
输出回答第几题和对应的算式
k=3
k>=1
输入答案result
result==c
T F
输出回答正确 输出回答错误
grade+=score[k-1]
break
k--
T k==0 F
下一道
i++
Grade(grade) getch()
图4.1 main()函数N-S图
定义主函数main()的功能是:随机选择0~50之间的两个数进行随机加减法运算,共出10道题目,确保答案在0~50之间,同时保证所出题目不重复,让学生回答,每道题有三次机会,第一次回答正确得10分,第二次回答正确得7分,第三次回答正确得5分,否则不得分,最后算出总得分划分等级
5 程序运行数据及其结果
.图5.1 答错一题一次得分图
。 图5.2 答错一题两次得分图
图5.3 答错一题三次得分图
图5.4 全部答对得分图
6 课程设计心得
通过这次课程设计我学到了许多。同时也巩固了许多C语言的知识