假定某校有N各学生,系统可以根据学生每次上机时记录学号和上机时间,下机时自动计算费用。要求: (1)系统以菜单方式工作 (2)系统可以设置上机每小时的价格,默认为每小时1元, (3)系统可以输入功能N名学生的学号、专业,年级、姓名。 (4)计算功能:计算每个下机学生的上机费用,每小时1元。 (上机费用=上机时间* 价格 ,不足半小时按1小时的价格减半计算,超过半小时但不足一小时的按1小时计算) (5)查询功能:按条件(班级、学号、姓名)显示学生的上机时间。 (6)机器使用情况的显示(显示方式不限但要一目了然)用c语言简单表达
时间: 2023-12-22 12:05:55 浏览: 43
好的,以下是一个简单的用 C 语言实现的学生上机费用管理系统:
```c
#include <stdio.h>
#include <string.h>
// 学生信息结构体
typedef struct {
char id[20]; // 学号
char major[20]; // 专业
char grade[10]; // 年级
char name[20]; // 姓名
int time; // 上机时间
} Student;
// 全局变量,用于存储学生信息
Student students[100];
int count = 0;
// 全局变量,用于存储每小时的价格
int price = 1;
// 设置每小时价格的函数
void set_price() {
printf("请输入每小时价格:");
scanf("%d", &price);
printf("设置成功!\n");
}
// 输入学生信息的函数
void input_student() {
printf("请输入学生信息:\n");
printf("学号:");
scanf("%s", students[count].id);
printf("专业:");
scanf("%s", students[count].major);
printf("年级:");
scanf("%s", students[count].grade);
printf("姓名:");
scanf("%s", students[count].name);
printf("输入成功!\n");
count++;
}
// 计算上机费用的函数
void calculate_fee() {
char id[20];
printf("请输入下机学生的学号:");
scanf("%s", id);
int i;
for (i = 0; i < count; i++) {
if (strcmp(students[i].id, id) == 0) {
int time = students[i].time;
int fee;
if (time % 60 >= 30) {
fee = (time / 60 + 1) * price;
} else {
fee = (time / 60) * price + price / 2;
}
printf("%s的上机费用为%d元。\n", students[i].name, fee);
students[i].time = 0;
return;
}
}
printf("未找到该学生!\n");
}
// 查询学生上机时间的函数
void query_time() {
char keyword[20];
printf("请输入查询关键字(班级、学号、姓名):");
scanf("%s", keyword);
int i;
for (i = 0; i < count; i++) {
if (strcmp(students[i].id, keyword) == 0 ||
strcmp(students[i].major, keyword) == 0 ||
strcmp(students[i].grade, keyword) == 0 ||
strcmp(students[i].name, keyword) == 0) {
printf("%s的上机时间为%d分钟。\n", students[i].name, students[i].time);
}
}
}
// 显示机器使用情况的函数
void show_usage() {
printf("机器使用情况如下:\n");
int i;
for (i = 0; i < count; i++) {
if (students[i].time > 0) {
printf("%s正在使用机器,已上机%d分钟。\n", students[i].name, students[i].time);
}
}
}
// 主函数
int main() {
int choice;
do {
printf("欢迎使用学生上机费用管理系统!\n");
printf("1. 设置每小时价格\n");
printf("2. 输入学生信息\n");
printf("3. 计算上机费用\n");
printf("4. 查询学生上机时间\n");
printf("5. 显示机器使用情况\n");
printf("6. 退出系统\n");
printf("请输入选项:");
scanf("%d", &choice);
switch (choice) {
case 1:
set_price();
break;
case 2:
input_student();
break;
case 3:
calculate_fee();
break;
case 4:
query_time();
break;
case 5:
show_usage();
break;
case 6:
printf("感谢使用!\n");
break;
default:
printf("无效选项,请重新输入!\n");
}
} while (choice != 6);
return 0;
}
```
这个程序使用了结构体来存储学生信息,使用了全局变量来存储每小时的价格和学生信息,使用了循环和条件语句来实现菜单功能,使用了 switch 语句来处理用户选项。