#include#define MaxSize 81
int a[81]={0};
time_t b[81],e[81];
int m;
char timestr1[80];
char timestr2[80];
struct student_info
{
char name[10]; //姓名
int seat; //机号
long stu_num; //学号
int time; //上机时间
}StudentList[MaxSize];
void Insert();
void Empty();
void Search();
void Update();
void Delete();
void Dispallmoney();
void Show();
int main()
{
int i,j;
system("color 3A"); //字体和背景颜色
for(j=0;j<80;j++)
{
StudentList[j].time=0; //给所有机子上机时间赋值为0,代表空机
StudentList[j].seat=j; //给所有机子编号
}
printf("\t\t\t*****************************\n\n");//显示一个简易菜单
printf("\t\t\t 欢迎使用机房管理系统\n\n");
printf("\t\t\t*****************************\n\n");
do
{printf("\n");
printf("\t\t\t1------输入学生信息(Insert)\n");
printf("\t\t\t2------查询空机位(Empty)\n");
printf("\t\t\t3------查询上机情况(Search)\n");
printf("\t\t\t4------修改上机信息(Update)\n");
printf("\t\t\t5------删除上机信息(Delete)\n");
printf("\t\t\t6------显示学生上机费用(Dispallmoney)\n");
printf("\t\t\t7------显示所有上机信息(Show)\n");
printf("\t\t\t8------退出(Exit)\n");
scanf("%d",&i); //接受用户的选择
switch(i)
{case 1:Insert(); //调用学生信息输入函数
break;
case 2:Empty(); //调用空机号检索函数
break;
case 3:Search(); //调用上机信息查询函数
break ;
case 4:Update(); //调用上机信息修改函数
break;
case 5:Delete();
break;
case 6:Dispallmoney(); //调用计费函数
break;
case 7:Show(); //调用上机信息全显示函数
break;
case 8:break;
default:printf("错误选择!请重选");break;
}
}while(i!=8);
return 0;
}
void Insert()
{int i;
printf("请输入你要上级的机号:");
scanf("%d",&i);
if(i>81)
{printf("请输入小于81的数");return;}
else if(i<=80)
{a[i]=i;
printf("请输入上机者姓名:");
scanf("%s",StudentList[i].name);
printf("请输入上机者学号:");
scanf("%ld",&StudentList[i].stu_num);
b[i]=time(NULL);
strftime(timestr1,79,"%H:%M:%S",localtime(&b[i]));
}
}
void Empty()
{
int i;
printf("空机号为:\n");
for(i=1;i<81;i++) //检测空机号并将其输出
if(a[i]==0)
printf("%d\t",i);
}
void Search()
{int i;
printf("请输入要查询的机号:");
scanf("%d",&i);
if(a[i]>0) //判断标准,检索到则输出
{printf("姓名:%s\t",StudentList[i].name);
printf("学号:%ld\t",StudentList[i].stu_num);
}
else
printf("没有查询到!");
}
void Update()
{int i;
printf("请输入要修改数据的机号:");
scanf("%d",&i);
if(a[i]>0) //判断标准,检索到则输出
{
printf("请输入姓名:");
scanf("%s",StudentList[i].name);
printf("请输入学号:");
scanf("%ld",&StudentList[i].stu_num);
}
else
printf("没有查询到可以修改的数据!");
}
void Delete()
{int i;
printf("请输入要删除信息的机号:");
scanf("%d",&i);
if(a[i]=0)
printf("无需修改!");
else{ a[i]=0;
StudentList[i].stu_num=0;
strcpy(StudentList[i].name,"");
}
}
void Dispallmoney()
{ printf("你想要结算费用的机子是:");
int i;
scanf("%d",&i);
strftime(timestr1,79,"%H:%M:%S",localtime(&b[i]));
printf("the time is you start use thecomputer :");
puts(timestr1); /*输出当前时刻*/
puts("press ENTER..."); /*等待按回车键*/
getchar();
e[i]=time(NULL);
printf("the time you end use the computer ");
strftime(timestr2,79,"%H:%M:%S",localtime(&e[i]));
puts(timestr2); /*输出当前时刻*/
printf("the time you use the cmputer=%d min",(e[i]-b[i])/60);/*输出时时间隔*/
printf("the money you should pay=%f",(e[i]-b[i])/3600.0);
}
void Show()
{int i;
printf("\n");
printf("机号\t姓名\t学号\t\t\n");
for(i=1;i<81;i++)
if(a[i]!=0) //判断标准,检索到则输出
{printf("%d\t",StudentList[i].seat);
printf("%s\t",StudentList[i].name);
printf("%ld\t\t\n",StudentList[i].stu_num); }}
}
}