试编写程序实现小学生辅助教学系统。使用模板化程序设计方法,按下列要求编写程序。
在抄了
C语言---小学生计算机辅助教学系统
如有帮助,望采纳
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include <windows.h>
int one();
int two();
int three();
int four();
int five();
int six();
int rightCount = 0;
/*函数功能:判断两个数是否相等*/
int Pending(int s, int flag)
{
if (s == flag)
{
printf("Right\n");
rightCount++;
}
else
printf("Wrong\n");
return 0;
}
/*判断被除数是否为零*/
int Division(char b, double c)
{
int temp;
temp = 0;
if (b == '/' && c == 0)
{
printf("被除数为零");
temp = 1;
}
return temp;
}
/*产生随机数*/
int Srand1()//产生1~9
/*
函数功能:产生随机数
函数入口:无
函数返回值:随机数
*/
{
srand((unsigned int)time(NULL));
Sleep(10);
int i;
i= rand() % 9 + 1;
return i;
}
/*函数功能:产生随机数
函数传参:无
函数返回值:随机数*/
int Srand2()//产生1~9
{
Sleep(10);
int i;
i = rand() % 9 + 1;
return i;
}
int StatisticScore(int c)
/*
* 功能:传入算对的题数
入口参数:c
返回值:答题的分数
*/
{
int x;
x = c * 10;
return x;
}
double StatisticRate(double c)
/*
功能:算正确率
入口参数:c
返回值:答题的正确率*/
{
double y;
y = c/10;
return y;
}
int one()
/*任务一
* 无传参
* 无返回值*/
{
int a, c, d,m;
do
{
a = Srand1();
c = Srand2();
d = a * c;
printf("%d*%d=", a, c);
scanf_s("%d", &m);
Pending(d, m);
} while (m != d);
return 0;
}
/*任务二
无传参
无返回值*/
int two()
{
srand((unsigned)time(NULL));
int flag,count,temp;
flag = 0;
count = 0;
double a, c, s, e;
int b;
char p;
p = '/';
do
{
a = Srand1();
b = rand() % 4;
c = Srand2();
switch (b)
{
case 0:
temp = Division(p, c);
if (temp == 1)
break;
printf("%.2f/%.2f=", a, c);
s = a / c;
break;
case 1:
printf("%.2f*%.2f=", a, c);
s = a * c;
break;
case 2:
s = a + c;
printf("%.2f+%.2f=", a, c);
break;
default:
printf("%.2f-%.2f=", a, c);
s = a - c;
}
scanf_s("%lf", &e);
if (s == e){
flag++;
printf("Right\n");
}
else{
count++;
if (count != 4)
printf("Wrong ! Please try again.\n");
else{
printf("Wrong! You have tried three times! Test over!\n");
break;
}
}
} while (flag != 1);
flag = count = 0;
return 0;
}
int three()
/*任务三
无传参
无返回值*/
{
int a, c, d, m, flag;
flag = 0;
rightCount = 0;
do{
flag++;
a = Srand1();
c = Srand2();
d = a * c;
printf("%d*%d=", a, c);
scanf_s("%d", &m);
Pending(d, m);
} while (flag != 10);
int score= StatisticScore(rightCount);
double rate = StatisticRate(rightCount);
printf("得分: %d , 正确率:%.2f\n", score, rate);
return 0;
}
int four()
/*
任务四*/
{
int b, flag, parameter , s, x, temp;
double y;
double a, c;
flag = 0;
int score;
rightCount = 0;
double m, rate;
char p;
do{
flag++;
a = Srand1();
a = a * 1.0;
c = Srand2();
c = c * 1.0;
b = rand() % 4;
switch (b){
case 0:
p = '/';
temp = Division(p, c);
if (temp == 1)
break;
printf("%.2f/%.2f=", a, c);
s = a / c;
break;
case 1:
printf("%.2f*%.2f=", a, c);
s = a * c;
break;
case 2:
s = a + c;
printf("%.2f+%.2f=", a, c);
break;
default:
printf("%.2f-%.2f=", a, c);
s = a - c;
}
scanf_s("%lf", &m);
Pending(s, m);
} while (flag != 10);
score = StatisticScore(rightCount);
rate = StatisticRate(rightCount);
printf("得分为: %d ,正确率为: %.2f ", score, rate);
printf("\n");
return 0;
}
int five()
/*任务五
无传参
无返回值*/
{
int b, flag, x, temp;
double a, c;
rightCount = 0;
double rate = 0;
double y, s;
do {
flag = 0;
double m;
char p;
do {
a = Srand1();
a = (double)a;
c = Srand2();
c = (double)c;
b = rand() % 4;
switch (b) {
case 0:
p = '/';
temp = Division(p, c);
if (temp == 1)
{
continue;
}
printf("%.2f/%.2f=", a, c);
s = a / c;
break;
case 1:
printf("%.2f*%.2f=", a, c);
s = a * c;
break;
case 2:
s = a + c;
printf("%.2f+%.2f=", a, c);
break;
default:
printf("%.2f-%.2f=", a, c);
s = a - c;
}
scanf_s("%lf", &m);
flag++;
Pending(s, m);
} while (flag % 10 != 0);
int score = StatisticScore(rightCount);
// score = 1.0 * rightCount;
rate = StatisticRate(rightCount);
printf("%d %.2f", score, rate);
printf("\n");
} while (rate <= 0.75);
return 0;
}
int main()
{
int a,flag;
flag = 0;
printf("******************************************************************************\n");
printf(" * 1. 任务 1:随机产生 1 - 10 之间正整数,出乘法问题,直到学生答对为止。\n");
printf(" * 2. 任务 2:在任务 1 基础上,当学生答错时,最多给三次机会。 \n");
printf(" * 3. 任务 3:在任务 1 基础上,连做 10 道乘法题,不给机会重做,统计总分、正确率。\n");
printf(" * 4. 任务 4:在任务 3 基础上,随机产生 10 道四则运算题,不给机会重做,统计总分、正确率。 \n");
printf(" * 5. 任务 5:在任务 4 基础上,若回答正确率低于 75 % ,则再做 10 道题,直到正确率高于 75 % 为止。\n");
printf(" * 6. 退出 \n");
printf("***************************************************************************** \n");
while (scanf_s("%d", &a) != EOF){
if (a == 6) {
printf("程序已结束");
break;
}
switch (a){
case 1:
one();
break;
case 2:
two();
break;
case 3:
three();
break;
case 4:
four();
break;
case 5:
five();
break;
default:
printf("命令错误,程序已结束");
break;
}
if (flag == 1)
break;
printf("*********************************************************************************\n");
printf(" * 1. 任务 1:随机产生 1 - 10 之间正整数,出乘法问题,直到学生答对为止。\n");
printf(" * 2. 任务 2:在任务 1 基础上,当学生答错时,最多给三次机会。 \n");
printf(" * 3. 任务 3:在任务 1 基础上,连做 10 道乘法题,不给机会重做,统计总分、正确率。\n");
printf(" * 4. 任务 4:在任务 3 基础上,随机产生 10 道四则运算题,不给机会重做,统计总分、正确率。 *\n");
printf(" * 5. 任务 5:在任务 4 基础上,若回答正确率低于 75 % ,则再做 10 道题,直到正确率高于 75 % 为止。\n");
printf(" * 6. 退出 *\n");
printf("********************************************************************************** \n");
}
return 0;
}
我这边毕业设计做了个中小学教师学生交互系统,
1.学生管理员打印各科教学任务张贴到班级
2.教师打印各班难点重点帮助更好备课
3.学生管理员提交难题,和试卷侧重点
4.教师每天提前布置任务
5.管理员管理公告相关信息。
参考博客
https://download.csdn.net/download/qq_32663053/85964383
结构体应该代表一个学生信息,却只能记录一道题的信息。那10道题怎么存储呢???有多少个学生,要输入吗?
o
在写了