程序设计:小学生考试系统(三)
来源:互联网 发布:ubuntu ifconfig 编辑:程序博客网 时间:2024/05/02 01:18
问题及代码
/*烟台大学计算机与控制工程学院题目描述:做一个小学生考试系统,功能包括: (1)利用随即数出十道加减乘除的数学题; (2)小学生用户答题给出每道题的答案; (3)对小学生的答题进行评判; (4)计算出小学生答题的正确率;作者:展一完成时间:2017年 1月3日*/#include <stdio.h>#include <stdlib.h>#include <time.h>void first_menu();//主菜单void right_ans1(int*);//三到六年级考试系统void right_ans2(int*);//一、二年级考试系统int main(){ int score=0,choice,j,*p_score;//p_score取score地址,指向子函数中的做对题目数p p_score=&score;//将p的值复制给score srand(time(0));//初始化随机种子 printf(" 小天才数学考试系统\n"); for(j=0; j<3; j++) { first_menu(); scanf("%d",&choice); if(choice==1) right_ans1(p_score); else if(choice==0) right_ans2(p_score); else { printf("输入有误,请重新输入\n"); continue; } printf("共答对了%d道题,总得分为:%d分,正确率%.1f\n", score,score*10, 1.0*(score*10)/100); if(score*10>=60) { printf("恭喜你,成绩合格!"); break; } else { if(j<2) { printf("很抱歉,你的成绩不合格,请重新答题\n"); score=0; } else { printf("很抱歉,本次考试你未通过,请来年再考!"); break; } } } return 0;}/*************************************************************功能描述:选择年级题目的主菜单*************************************************************/void first_menu(){ printf("请输入以下编号进入所在年级题库:\n"); printf("0:一、二年级\n");//针对不同年级的学生进行分开测试 printf("1:三到六年级\n"); printf("请输入:");}/*************************************************************功能描述:进行三到六年级数学考试并累计回答正确题目数…输入参数:right_answer-题目正确答案 i-循环变量 seed-加减乘除随机变量 first_num-第一个随机数 second_num-第二个随机数 t-学生回答的答案返 回 值:…做对题的数目…其他说明:运用了一个指针p_score*************************************************************/void right_ans1(int*p_score)//三到六年级考试系统{ int right_answer,i,seed,first_num,second_num,t; for(i=0; i<10; i++) { printf("第 %d 题: ", i+1); seed=rand()%4; do { first_num=rand()%100+1; second_num=rand()%100+1; if(first_num<second_num&&(seed==1))//减法套保证被减数大于减数,除法要保证被除数大于除数 { right_answer=first_num; first_num=second_num; second_num=right_answer; } if(first_num<second_num&&(seed==3)) { right_answer=first_num; first_num=second_num; second_num=right_answer; } if(first_num%second_num!=0&&(seed==3)) { first_num=first_num-(first_num%second_num); } } while((first_num+second_num)>=100||first_num*second_num>=100); switch(seed) { case 0: right_answer=first_num+second_num; printf("%d+%d=", first_num, second_num); break; case 1: right_answer=first_num-second_num; printf("%d—%d=", first_num, second_num); break; case 2: right_answer=first_num*second_num; printf("%d×%d=", first_num, second_num); break; case 3: right_answer=first_num/second_num; printf("%d÷%d=", first_num, second_num); break; } scanf("%d", &t); if(t==right_answer) { printf(" right! \n"); (*p_score)++; } else printf(" wrong! \n"); }}/*************************************************************功能描述:进行一、二年级数学考试并累计回答正确题目数…输入参数:right_answer-题目正确答案 i-循环变量 seed-加减乘除随机变量 first_num-第一个随机数 second_num-第二个随机数 t-学生回答的答案返 回 值:…做对题的数目…其他说明:运用了一个指针p_score*************************************************************/void right_ans2(int*p_score)//一、二年级考试系统{ int right_answer,i,c,first_num,second_num,t; for(i=0; i<10; i++) { printf("第 %d 题: ", i+1); c=rand()%2; first_num=rand()%10+1; second_num=rand()%10+1; if(first_num<second_num&&(c==1)) { right_answer=first_num; first_num=second_num; second_num=right_answer; } switch(c) { case 0: right_answer=first_num+second_num; printf("%d+%d=", first_num, second_num); break; case 1: right_answer=first_num-second_num; printf("%d—%d=", first_num, second_num); break; } scanf("%d", &t); if(t==right_answer) { printf(" right! \n"); (*p_score)++; } else printf(" wrong! \n"); }}运行结果
测试数据一:
choice:0
score: 10
测试数据二:
choice:1
score:1 1 1
0 0
- 程序设计:小学生考试系统(三)
- 程序设计:小学生考试系统(二)
- 程序设计1小学生考试系统
- 程序设计实训一 小学生考试系统
- 程序设计实训报告--小学生考试系统
- 程序设计实训报告-小学生考试系统
- 第十周 项目三 小学生考试系统
- 程序设计实训项目一 小学生考试系统
- 小学生数学考试系统(实现基本功能)
- 小学生数学考试系统
- 小学生数学考试系统
- 小学生考试系统
- 小学生考试系统
- 课程设计:小学生考试系统
- 19-小学生考试系统
- 小学生考试系统
- 小学生考试系统
- 第十周项目三——小学生数学考试系统(1)
- 生命倒计时-倒数9116日
- 安卓漫漫路之读取本地html文件.
- C#中子类对父类中虚方法的处理有重写(override)和覆盖(new),他们有什么区别?
- json
- cartographer analysis - first chapter
- 程序设计:小学生考试系统(三)
- 使用了 :before 等伪元素中的其中一个来做 animation 动画; 在 animation 动画改变了其中的某个 rem 的值; 在这样的前提下,又是使用有这个 bug 的版本浏览器,那么就
- python学习——运算符
- Unity发布的ios包在iphone上声音小的原因
- 深入研究java.lang.Object类
- HTML入门学习笔记--基础标签(2)
- Linux 下 pip 升级遇到的问题 python3.5
- Android Service AIDL 简单使用
- 初识AudioManager