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/机房收费管理系统2.0.cpp

316 lines
6.8 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();
void tuichu();
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:tuichu();
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");
}
if(i==15)
printf("录入学生已满!");
}
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("上机时间:(格式例如1200)");
scanf("%f%f",&student[i].begin_hour,&student[i].begin_min);
printf("输入任意键返回上一级........\n");
system("pause");
break;
}
}
if(i==15)
{
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("下机时间:(格式例如1200)");
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==15)
{
printf(" 该生信息未录入!\n");
printf(" 输入任意键返回上一级........\n");
system("pause");
}
}
void chaxun() //查询//
{
char _id[20];
system("cls");
printf("*************************************学生信息查询*************************************\n");
printf(" 功能选择\n");
printf(" 1、单个查询\n");
printf(" 2、全部查询\n");
printf(" 请输入:");
scanf("%d",&k);
switch(k)
{
case 1:
getchar();
system("cls");
printf("请输入查询学生的学号:");
gets(_id);
for(i=0;i<15;i++)
{
if(strcmp(_id,student[i].id)==0)
{
system("cls");
printf("*************************************学生信息查询*************************************\n");
printf("姓名:%s\t",student[i].name);
printf("班级:%s\t",student[i]._class);
printf("学号:%s\t",student[i].id);
printf("上机时间: %g:%g\t",student[i].begin_hour,student[i].begin_min);
printf("下机时间: %g:%g\t",student[i].end_hour,student[i].end_min);
printf("上机费用: %.1f\n",student[i]._fee);
}
}
if(i==15)
printf("\n该生信息未录入!\n");
printf("\n\n输入任意键返回上一级!\n\n");
system("pause");
break;
case 2:
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输入任意键返回上一级!");
system("pause");
getchar();
break;
}
}
void xiugai() //修改//
{
char _id[20],name[20],banji[5];
int eh,em,n,bh,bm;
int m;
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下机时间 5删除该生信息\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;
case 5:
for(m=i+1;m<15;m++)
{
student[m-1]=student[m];
}
printf("您已成功删除该生信息!");
system("pause");
break;
}
break;
}
}
if(i==15)
{
printf("该生不存在请检查学号是否输入有误!\n");
system("pause");
}
}
void tuichu()
{
system("cls");
printf("*****************感谢使用机房收费管理系统*****************\n");
system("pause");
}