帮我编写一个C语言程序,机房收费管理系统 (1)输入功能:输入若干名学生的学号、班级、姓名、开始上机时间和结束上机时间。 (2)计算功能:计算每个学生的上机费用(计算公式:上机费用=(结束上机时间-开始上机时间)*收费标准,(以分钟为单位)) (3)修改功能:修改学生上机的个人档案(如:增添或删除) (4)查询功能:按条件(班级、学号、姓名)查询学生上机信息,并能显示查询学生的相应全部档案。
时间: 2023-12-23 08:02:52 浏览: 295
机房收费管理系统课程设计(C语言)
4星 · 用户满意度95%
好的,以下是一个简单的C语言程序,实现机房收费管理系统的输入、计算、修改和查询功能,希望能够帮助到你:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 1000 // 最大学生数
#define FEE_RATE 0.1 // 收费标准(每分钟0.1元)
// 学生结构体
typedef struct {
char id[10]; // 学号
char class[10]; // 班级
char name[20]; // 姓名
int start_time; // 开始上机时间(以分钟为单位)
int end_time; // 结束上机时间(以分钟为单位)
double fee; // 上机费用
} Student;
// 学生数组
Student students[MAX_STUDENTS];
// 学生数
int student_count = 0;
// 输入学生信息
void input_student() {
char id[10], class[10], name[20];
int start_time, end_time;
printf("请输入学号、班级、姓名、开始上机时间和结束上机时间(以空格分隔):\n");
scanf("%s %s %s %d %d", id, class, name, &start_time, &end_time);
// 将输入的信息保存到学生数组中
strcpy(students[student_count].id, id);
strcpy(students[student_count].class, class);
strcpy(students[student_count].name, name);
students[student_count].start_time = start_time;
students[student_count].end_time = end_time;
student_count++;
}
// 计算学生上机费用
void calculate_fee(int index) {
int duration = students[index].end_time - students[index].start_time; // 上机时长
students[index].fee = duration * FEE_RATE; // 计算上机费用
}
// 修改学生信息
void modify_student() {
char id[10], class[10], name[20];
int start_time, end_time, index = -1;
printf("请输入要修改的学生学号:\n");
scanf("%s", id);
// 在学生数组中查找要修改的学生
for (int i = 0; i < student_count; i++) {
if (strcmp(students[i].id, id) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到该学生!\n");
return;
}
// 输入修改后的学生信息
printf("请输入学号、班级、姓名、开始上机时间和结束上机时间(以空格分隔):\n");
scanf("%s %s %s %d %d", id, class, name, &start_time, &end_time);
// 更新学生信息
strcpy(students[index].id, id);
strcpy(students[index].class, class);
strcpy(students[index].name, name);
students[index].start_time = start_time;
students[index].end_time = end_time;
calculate_fee(index); // 重新计算上机费用
printf("修改成功!\n");
}
// 查询学生信息
void query_student() {
char id[10], class[10], name[20];
int index = -1;
printf("请输入要查询的条件(学号、班级、姓名):\n");
scanf("%s", id);
// 在学生数组中查找符合条件的学生
for (int i = 0; i < student_count; i++) {
if (strcmp(students[i].id, id) == 0 ||
strcmp(students[i].class, id) == 0 ||
strcmp(students[i].name, id) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到符合条件的学生!\n");
return;
}
// 输出查询结果
printf("学号\t班级\t姓名\t开始时间\t结束时间\t上机费用\n");
printf("%s\t%s\t%s\t%d\t\t%d\t\t%.2f\n",
students[index].id, students[index].class, students[index].name,
students[index].start_time, students[index].end_time, students[index].fee);
}
int main() {
int choice;
while (1) {
printf("请选择功能:\n");
printf("1. 输入学生信息\n");
printf("2. 计算学生上机费用\n");
printf("3. 修改学生信息\n");
printf("4. 查询学生信息\n");
printf("5. 退出程序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
input_student();
break;
case 2:
printf("请输入要计算费用的学生索引:\n");
int index;
scanf("%d", &index);
calculate_fee(index);
printf("计算成功!\n");
break;
case 3:
modify_student();
break;
case 4:
query_student();
break;
case 5:
exit(0);
default:
printf("无效的选择!\n");
break;
}
}
return 0;
}
```
这个程序实现了输入、计算、修改和查询四个功能,可以根据用户的选择执行相应的操作。希望能够满足你的需求,如有问题可以继续向我提问。
阅读全文