#include #include #include 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("上机时间:(格式例如12:00)"); 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("下机时间:(格式例如12:00)"); 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"); }