写一个C语言项目代码,运行该代码出现一级界面包括游戏名称、开发者信息(专业、班级、学号、姓名)、选择功能键(加法、减法、乘法、除法、混合计算、退出游戏),单击一级界面的功能键,进入二级界面,二级界面功能键包括开始游戏、返回上一级、结束游戏,在二级界面点击“开始游戏”,在该区域随机出现一个题目如加法减法乘法除法以及混合运算,出现题目后,在该区域有一个答案框,把题目答案填入答案框,后台判断准确与否?如果正确,在该区域下方打印“哇!正确,继续-----” ; 如果错误,在该区域下方打印 “呜!错了,加油-----” 。分数显示区:记录游戏的每次的最高得分,记录本次游戏的实时得分,答对一道题,记10分,并增加显示一朵小红花第三步:显示本次游戏的得分,并显示与最高分的差距选择功能键:“结束”--结束游戏“重新玩”---返回第一步
时间: 2024-03-18 15:42:48 浏览: 68
以下是一个简单的C语言项目代码,实现了上述要求:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 定义全局变量,记录最高分和本次得分
int highest_score = 0;
int current_score = 0;
// 生成随机数
int get_random_number(int range) {
srand(time(NULL));
return rand() % range;
}
// 加法运算
int add(int a, int b) {
return a + b;
}
// 减法运算
int subtract(int a, int b) {
return a - b;
}
// 乘法运算
int multiply(int a, int b) {
return a * b;
}
// 除法运算
int divide(int a, int b) {
if (b == 0) {
return 0;
}
return a / b;
}
// 混合运算
int mix(int a, int b) {
int op = get_random_number(4);
switch(op) {
case 0: return add(a, b);
case 1: return subtract(a, b);
case 2: return multiply(a, b);
case 3: return divide(a, b);
}
}
// 显示一级界面
void show_main_menu() {
printf("欢迎进入小学生计算器游戏!\n");
printf("游戏名称:小学生计算器游戏\n");
printf("开发者信息:\n");
printf(" 专业:计算机科学与技术\n");
printf(" 班级:计科2001\n");
printf(" 学号:20010001\n");
printf(" 姓名:张三\n");
printf("请选择功能键:\n");
printf(" 1.加法\n");
printf(" 2.减法\n");
printf(" 3.乘法\n");
printf(" 4.除法\n");
printf(" 5.混合计算\n");
printf(" 6.退出游戏\n");
}
// 显示二级界面
void show_game_menu() {
printf("请选择功能键:\n");
printf(" 1.开始游戏\n");
printf(" 2.返回上一级\n");
printf(" 3.结束游戏\n");
}
// 显示题目和答案框
void show_question(int a, int b, char op) {
printf("请计算 %d %c %d = \n", a, op, b);
}
// 判断答案是否正确
int check_answer(int a, int b, char op, int answer) {
int result;
switch(op) {
case '+': result = add(a, b); break;
case '-': result = subtract(a, b); break;
case '*': result = multiply(a, b); break;
case '/': result = divide(a, b); break;
default: result = mix(a, b);
}
return result == answer;
}
// 显示得分
void show_score() {
printf("本次得分:%d\n", current_score);
printf("最高得分:%d\n", highest_score);
printf("差距:%d\n\n", highest_score - current_score);
}
int main() {
int choice1, choice2, answer;
char op;
while (1) {
system("clear"); // 清空屏幕
show_main_menu(); // 显示一级界面
scanf("%d", &choice1);
if (choice1 == 6) {
printf("游戏结束,再见!\n");
break;
}
if (choice1 < 1 || choice1 > 5) {
printf("输入有误,请重新输入!\n");
continue;
}
while (1) {
system("clear"); // 清空屏幕
show_game_menu(); // 显示二级界面
scanf("%d", &choice2);
if (choice2 == 2) {
break;
}
if (choice2 == 3) {
printf("游戏结束,再见!\n");
return 0;
}
if (choice2 != 1) {
printf("输入有误,请重新输入!\n");
continue;
}
// 生成随机数和运算符
int a = get_random_number(100);
int b = get_random_number(100);
int op_index = get_random_number(4);
switch(op_index) {
case 0: op = '+'; break;
case 1: op = '-'; break;
case 2: op = '*'; break;
case 3: op = '/'; break;
}
// 显示题目和答案框
show_question(a, b, op);
scanf("%d", &answer);
// 判断答案是否正确
if (check_answer(a, b, op, answer)) {
printf("哇!正确,继续-----\n");
current_score += 10;
} else {
printf("呜!错了,加油-----\n");
}
// 显示得分
show_score();
// 更新最高分
if (current_score > highest_score) {
highest_score = current_score;
}
}
}
return 0;
}
```
阅读全文