c语言机房收费管理系统 (1输入功能:输入30名学生的学号、班级、姓名、上机起始时间。 (2)计算功能:计算每个下机学生的上机费用,每小时1元。(上机费用一上机时间水,不足-小时按一小时计算) (3)查询功能:按条件(班级、学号、姓名)是示学生的上机时间。 (4)机器使用情况的显示的代码
时间: 2024-03-26 16:40:37 浏览: 62
C语言 机房收费管理系统
4星 · 用户满意度95%
好的,下面是一个简单的C语言机房收费管理系统的代码,实现了输入学生信息、计算上机费用、查询学生上机时间和显示机器使用情况等功能。请注意,这只是一个简单的示例代码,可能还需要根据实际情况进行修改和完善。
```
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 30
#define MAX_NAME_LEN 20
#define MAX_CLASS_LEN 10
// 学生信息结构体
typedef struct {
char id[10]; // 学号
char name[MAX_NAME_LEN]; // 姓名
char cls[MAX_CLASS_LEN]; // 班级
int start_time; // 上机起始时间
int end_time; // 下机时间
float fee; // 上机费用
} Student;
// 机器使用情况结构体
typedef struct {
int machine_no; // 机器编号
int total_time; // 总使用时间
} Machine;
// 输入学生信息
void input_students(Student students[], int n) {
int i;
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("学号:");
scanf("%s", students[i].id);
printf("班级:");
scanf("%s", students[i].cls);
printf("姓名:");
scanf("%s", students[i].name);
printf("上机起始时间:");
scanf("%d", &students[i].start_time);
}
}
// 计算上机费用
void calculate_fee(Student students[], int n) {
int i;
for (i = 0; i < n; i++) {
int time = students[i].end_time - students[i].start_time;
students[i].fee = (time % 60 == 0) ? (time / 60) : (time / 60 + 1);
}
}
// 查询学生上机时间
void query_time(Student students[], int n) {
char query[10];
printf("请输入要查询的条件(学号、班级、姓名):");
scanf("%s", query);
int i;
for (i = 0; i < n; i++) {
if (strcmp(query, students[i].id) == 0 || strcmp(query, students[i].cls) == 0 || strcmp(query, students[i].name) == 0) {
printf("学号:%s,班级:%s,姓名:%s,上机起始时间:%d,下机时间:%d\n", students[i].id, students[i].cls, students[i].name, students[i].start_time, students[i].end_time);
}
}
}
// 显示机器使用情况
void show_machine_usage(Student students[], int n) {
Machine machines[4] = {{1, 0}, {2, 0}, {3, 0}, {4, 0}}; // 有4台机器
int i;
for (i = 0; i < n; i++) {
if (students[i].end_time > 0) {
int machine_no = (students[i].id[0] - '0') % 4; // 学号的第一位作为机器编号
machines[machine_no].total_time += (students[i].end_time - students[i].start_time);
}
}
printf("机器使用情况:\n");
for (i = 0; i < 4; i++) {
printf("机器%d使用时间:%d分钟\n", machines[i].machine_no, machines[i].total_time);
}
}
int main() {
Student students[MAX_STUDENTS];
int n = 0;
int choice = 0;
while (1) {
printf("=========================\n");
printf("请选择要执行的操作:\n");
printf("1. 输入学生信息\n");
printf("2. 计算上机费用\n");
printf("3. 查询学生上机时间\n");
printf("4. 显示机器使用情况\n");
printf("5. 退出程序\n");
printf("=========================\n");
printf("请输入选择(1-5):");
scanf("%d", &choice);
switch (choice) {
case 1:
input_students(students, MAX_STUDENTS);
n = MAX_STUDENTS;
break;
case 2:
calculate_fee(students, n);
printf("计算完成!\n");
break;
case 3:
query_time(students, n);
break;
case 4:
show_machine_usage(students, n);
break;
case 5:
printf("程序已退出!\n");
return 0;
default:
printf("输入有误,请重新输入!\n");
break;
}
}
return 0;
}
```
阅读全文