c语言设计一个数据处理程序,验证账号密码后登陆,显示功能模块有3个以上模块,根据用户选择可以执行不同模块。 如成绩管理系统:(自己替换场景,如身高、体重、年龄、工资、全年立案数量…….) (1) 功能一:随机生成或输入20个学生成绩 (2) 功能二:统计平均分。 (3) 功能三:最低分; (4) 功能四:最高分
时间: 2024-03-08 11:47:38 浏览: 68
好的,我可以给你提供一个简单的用C语言实现的成绩管理系统的设计思路,具体实现需要根据具体的编程环境和技术栈来确定。
首先,你需要实现一个账号密码验证的功能,可以在程序开始时让用户输入账号密码,然后将其与已存储的账号密码进行比较。如果验证成功,则显示主菜单,否则提示用户输入错误并退出程序。
在主菜单中,你可以实现以下功能模块:
1. 随机生成或输入20个学生成绩:用户可以选择手动输入20个学生成绩,也可以选择让程序随机生成20个学生成绩。这个模块需要有一个数据输入界面或者读取文件的功能。
2. 统计平均分:用户选择这个模块后,程序会统计输入的学生成绩的平均分,并将结果显示出来。
3. 最低分:用户选择这个模块后,程序会找出输入的学生成绩中的最低分,并将结果显示出来。
4. 最高分:用户选择这个模块后,程序会找出输入的学生成绩中的最高分,并将结果显示出来。
在程序设计时,你需要考虑到用户的输入和程序的输出,还需要考虑错误处理和异常情况的处理。比如输入的成绩必须在一定的范围内,否则需要给出提示信息;如果程序出现异常,需要给出友好的提示信息。
下面是一个简单的代码示例,实现了以上的成绩管理系统功能模块:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define MAX_GRADE 100
#define MIN_GRADE 0
#define GRADE_COUNT 20
#define PASSWORD "123456"
// 验证账号密码
int verify(char* username, char* password) {
if (strcmp(password, PASSWORD) == 0) {
printf("欢迎,%s!\n", username);
return 1;
} else {
printf("账号或密码错误!\n");
return 0;
}
}
// 生成随即数
int random_int(int min, int max) {
return rand() % (max - min + 1) + min;
}
// 输入成绩
void input_grades(int* grades, int count) {
int i;
printf("请输入%d个成绩:\n", count);
for (i = 0; i < count; i++) {
scanf("%d", grades + i);
}
}
// 随机生成成绩
void generate_grades(int* grades, int count) {
int i;
printf("随机生成%d个成绩:\n", count);
for (i = 0; i < count; i++) {
grades[i] = random_int(MIN_GRADE, MAX_GRADE);
printf("%4d ", grades[i]);
}
printf("\n");
}
// 统计平均分
void average_grade(int* grades, int count) {
int i, sum = 0;
for (i = 0; i < count; i++) {
sum += grades[i];
}
printf("平均分为:%.2f\n", (float)sum / count);
}
// 找出最低分
void min_grade(int* grades, int count) {
int i, min = MAX_GRADE + 1;
for (i = 0; i < count; i++) {
if (grades[i] < min) {
min = grades[i];
}
}
printf("最低分为:%d\n", min);
}
// 找出最高分
void max_grade(int* grades, int count) {
int i, max = MIN_GRADE - 1;
for (i = 0; i < count; i++) {
if (grades[i] > max) {
max = grades[i];
}
}
printf("最高分为:%d\n", max);
}
int main() {
char username[20], password[20];
int grades[GRADE_COUNT];
int choice, verified = 0;
srand((unsigned)time(NULL));
printf("请输入账号:");
scanf("%s", username);
printf("请输入密码:");
scanf("%s", password);
verified = verify(username, password);
if (!verified) {
return 0;
}
while (1) {
printf("请选择功能:\n");
printf("1. 随机生成或输入20个学生成绩\n");
printf("2. 统计平均分\n");
printf("3. 最低分\n");
printf("4. 最高分\n");
printf("5. 退出程序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请选择输入方式:\n");
printf("1. 手动输入\n");
printf("2. 随机生成\n");
scanf("%d", &choice);
if (choice == 1) {
input_grades(grades, GRADE_COUNT);
} else if (choice == 2) {
generate_grades(grades, GRADE_COUNT);
} else {
printf("输入错误!\n");
}
break;
case 2:
average_grade(grades, GRADE_COUNT);
break;
case 3:
min_grade(grades, GRADE_COUNT);
break;
case 4:
max_grade(grades, GRADE_COUNT);
break;
case 5:
printf("程序已退出!\n");
return 0;
default:
printf("输入错误!\n");
break;
}
}
return 0;
}
```
上述代码中,我们使用了一个`verify`函数来验证账号密码,通过`strcmp`函数比较用户输入的密码和预设的密码是否一致。如果一致,返回1,验证成功;否则返回0,验证失败。
在主循环中,我们使用了一个`switch`语句来根据用户的选择执行不同的功能模块。比如,当用户选择功能一时,我们再显示一个二级菜单,让用户选择输入方式,然后根据用户选择的方式,调用`input_grades`或`generate_grades`函数来输入或生成学生成绩。其他功能模块的实现类似。
以上是一个简单的用C语言实现的成绩管理系统,你可以根据需要进行调整和优化。
阅读全文