You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
a666/机房收费管理系统.cpp

250 lines
5.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include<stdio.h>
#include<string.h>
#include<stdlib.h >
struct
{
char id[20];
char name[20];
char _class[5];
char online[1];
float _fee;
float begin_hour;
float begin_min;
float end_hour;
float end_min;
}student[15];
void dengji();
void shangji();
void fee();
void xiugai();
void chaxun();
int i,k,m;
int main(void)
{
int select;
do
{
printf("*****************欢迎进入机房收费管理系统*****************\n");
printf(" 1.学生登记\n");
printf(" 2.学生上机时间\n");
printf(" 3.学生下机时间及费用\n");
printf(" 4.修改学生信息\n");
printf(" 5.查询学生信息\n");
printf(" 6.退出系统\n");
printf("*****************欢迎进入机房收费管理系统*****************\n");
printf(" 请输入选项:");
scanf("%d",&select);
switch(select)
{
case 1: getchar();
dengji();
break;
case 2: getchar();
shangji();
break;
case 3:getchar();
fee();
break;
case 4:getchar();
xiugai();
break;
case 5:getchar();
chaxun();
break;
case 6: break;
default:break;
}
system("cls");
}while(select!=6);
return 0;
}
void dengji() //学生信息//
{
static int j=0;
system("cls");
printf("****************学生信息登记****************\n");
for(i=j;i<15;i++)
{
char c;
printf("班级:");
gets(student[i]._class);
printf("学号:");
gets(student[i].id);
printf("姓名:");
gets(student[i].name);
printf("是否继续输入?(输入Y或N)");
scanf("%c",&c);
if(c=='N'||c=='n')
{
j=i+1;
break;
}
getchar();
printf("\n");
}
}
void shangji() //上机//
{
char _id[20];
system("cls");
printf("****************上机时间登记****************\n");
printf("请输入上机学生的学号:");
gets(_id);
for(i=0;i<15;i++)
{
if(strcmp(_id,student[i].id)==0)
{
printf("上机时间:");
scanf("%f:%f",&student[i].begin_hour,&student[i].begin_min);
printf("输入任意键返回上一级........\n");
system("pause");
break;
}
}
if(i==14)
{
printf(" 该生信息未录入!\n");
printf(" 输入任意键返回上一级........\n");
system("pause");
}
}
void fee() //下机//
{
char _id[20];
system("cls");
printf("****************下机时间及费用登记****************\n");
printf("本机房每小时5元\n");
printf("输入下机学生学号:");
gets(_id);
for(i=0;i<15;i++)
{
if(strcmp(_id,student[i].id)==0)
{
if(!(student[i].begin_hour&&student[i].begin_min))
{
printf("该生未上机!\n");
system("pause");
break;
}
printf("下机时间:");
scanf("%f:%f",&student[i].end_hour,&student[i].end_min);
student[i]._fee=(student[i].end_hour+student[i].end_min/60-student[i].begin_hour-student[i].end_min/60)*5;
printf("该生上网费用为:%.1f\n",student[i]._fee);
printf("输入任意键返回上一级........\n");
system("pause");
break;
}
}
if(i==14)
{
printf(" 该生信息未录入!\n");
printf(" 输入任意键返回上一级........\n");
system("pause");
}
}
void chaxun() //查询//
{
system("cls");
printf("*************************************学生信息查询*************************************\n");
printf("班级\t\t");
printf("学号\t\t");
printf("姓名\t\t");
printf("上机时间\t");
printf("下机时间\t");
printf("上机费用\t");
printf("在线状态\n");
for(i=0;i<15;i++)
{
printf("%s\t\t",student[i]._class);
printf("%s\t\t",student[i].id);
printf("%s\t\t",student[i].name);
printf("%g:%g\t\t",student[i].begin_hour,student[i].begin_min);
printf("%g:%g\t\t",student[i].end_hour,student[i].end_min);
printf("%.1f\t\t",student[i]._fee);
if(student[i].begin_hour==0)
printf("未上机");
else if(student[i].begin_hour!=0&&student[i].end_hour==0)
printf("在线");
else if(student[i].begin_hour!=0&&student[i].end_hour!=0)
printf("离线");
printf("\n");
}
printf("*************************************学生信息查询*************************************\n");
printf("\n\n输入任意键返回上一级!");
getchar();
}
void xiugai() //修改//
{
char _id[20],name[20],banji[5];
int eh,em,n,bh,bm;
system("cls");
printf("****************修改学生信息****************\n");
printf("请输入要修改学生的学号:\n");
gets(_id);
for(i=0;i<15;i++)
{
if(strcmp(_id,student[i].id)==0)
{
printf("请选择要修改的内容1姓名 2班级 3上机时间 4下机时间\n");
scanf("%d",&n);
switch(n)
{
case 1:
printf("请输入新的姓名:\n");
getchar();
gets(name);
strcpy(student[i].name,name);
system("pause");
break;
case 2:
printf("请输入新的班级:\n");
getchar();
gets(banji);
strcpy(student[i]._class,banji);
system("pause");
break;
case 3:
printf("请输入新的上机时间:\n");
getchar();
scanf("%d:%d",&bh,&bm);
student[i].begin_hour=bh;student[i].begin_min=bm;
system("pause");
break;
case 4:
printf("请输入新的下机时间:\n");
getchar();
scanf("%d:%d",&eh,&em);
student[i].end_hour=eh;
student[i].end_min=em;
student[i]._fee=(student[i].end_hour+student[i].end_min/60-student[i].begin_hour-student[i].end_min/60)*5;
system("pause");
break;
}
}
}
}