C语言写有登录界面的十以内加减乘除运算自测小程序
时间: 2023-09-18 12:15:58 浏览: 40
好的,以下是基于C语言的有登录界面的十以内加减乘除运算自测小程序。建议在命令行中编译运行。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
/* 定义用户结构体 */
typedef struct {
char username[20]; // 用户名
char password[20]; // 密码
} User;
/* 定义题目结构体 */
typedef struct {
int num1; // 第一个数字
int num2; // 第二个数字
char operator; // 运算符
int result; // 结果
} Question;
/* 生成随机的十以内加减乘除运算题目 */
void generate_question(Question *question) {
question->num1 = rand() % 10 + 1;
question->num2 = rand() % 10 + 1;
switch (rand() % 4) {
case 0:
question->operator = '+';
question->result = question->num1 + question->num2;
break;
case 1:
question->operator = '-';
question->result = question->num1 - question->num2;
break;
case 2:
question->operator = '*';
question->result = question->num1 * question->num2;
break;
case 3:
question->operator = '/';
question->result = question->num1 / question->num2;
break;
}
}
/* 检查答案是否正确 */
int check_answer(Question question, int answer) {
return question.result == answer;
}
/* 登录函数 */
void login(User *user) {
printf("请输入用户名:");
scanf("%s", user->username);
printf("请输入密码:");
scanf("%s", user->password);
}
/* 注册函数 */
void register_user(User *user) {
printf("请输入用户名:");
scanf("%s", user->username);
printf("请输入密码:");
scanf("%s", user->password);
}
/* 主函数 */
int main() {
srand((unsigned) time(NULL)); // 初始化随机数种子
User user; // 定义用户
int choice; // 用户选择
do {
printf("请选择:\n");
printf("1. 登录\n");
printf("2. 注册\n");
printf("3. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1: // 登录
login(&user);
printf("欢迎回来,%s!\n", user.username);
int score = 0; // 得分
int total = 0; // 总题数
while (1) {
Question question; // 定义题目
generate_question(&question); // 生成题目
int user_answer; // 用户答案
printf("%d %c %d = ?", question.num1, question.operator, question.num2);
scanf("%d", &user_answer);
if (user_answer == -1) { // 用户输入-1退出
printf("您的最终得分为%d/%d\n", score, total);
break;
} else if (user_answer == question.result) { // 回答正确
printf("回答正确!\n");
score++;
} else { // 回答错误
printf("回答错误!正确答案为%d\n", question.result);
}
total++;
}
break;
case 2: // 注册
register_user(&user);
printf("注册成功,欢迎您,%s!\n", user.username);
break;
case 3: // 退出
printf("欢迎下次再来,再见!\n");
break;
default:
printf("输入错误,请重新输入!\n");
break;
}
} while (choice != 3);
return 0;
}
```
程序会先显示登录、注册、退出三个选项供用户选择。如果用户选择登录,程序会要求用户输入用户名和密码,如果输入正确,程序会欢迎用户,并开始出题,每回答一道题目,程序会判断答案是否正确,如果正确,得分加一;否则,不加分。如果用户输入-1,程序会显示用户的最终得分,然后退出程序。如果用户选择注册,程序会要求用户输入用户名和密码,并提示注册成功。如果用户选择退出,程序会显示欢迎下次再来的提示,并退出程序。