#include <stdio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 5
struct student
{
char num[20];
char name[10];
char xibie[10];
char leibie[10];
int jishi;
}stu[SIZE];
void add()
{
int i,x;
FILE *fp;
if((fp=fopen("d:\\comp.dat","wb"))==NULL)
{printf("文件打开失败\n");return;}
printf("\n输入要录入的人数:\n");
scanf("%x",&x);
printf("\n请输入学号 姓名 系别 上机类型 预存机时\n");
for(i=0;i<x;i++)
scanf("%s%s%s%s%d",stu[i].num,stu[i].name,stu[i].xibie,stu[i].leibie,&stu[i].jishi);
for(i=0;i<SIZE;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("保存失败\n");
fclose(fp);
printf("录入成功\n清屏请按6");}
shangji()
{
int i;
char num[20];
time_t lt;
lt = time(NULL);
printf("\n输入学号:\n");
scanf("%s",num);
for(i=0;i<SIZE;i++)
if(strcmp(stu[i].num,num)==0)
printf("现在时间%s,%s您已经开通,请上机\n",ctime(<),stu[i].name);
return(lt);
}
void xiaji(time_t a)
{
int i;
char num[20];
time_t ld;
printf("\n输入学号下机:\n");
scanf("%s",num);
if (a==0)
printf("对不起:该同学没有上机\n");
for(i=0;i<SIZE;i++)
if(strcmp(stu[i].num,num)==0)
{
ld = time(NULL);
stu[i].jishi=stu[i].jishi-(ld-a)/3600.0;
printf("现在时间%s,%s您已经用了%1d 分钟,同学请下机\n",ctime(&ld),stu[i].name,(ld-a)/60);
}
}
void yucun()
{
int a,i;
char num[20];
printf("\n请输入学号 预存机时:\n");
scanf("%s%d",num,&a);
for(i=0;i<SIZE;i++)
if(strcmp(stu[i].num,num)==0)
{
stu[i].jishi=stu[i].jishi+a;
printf("%s机时添加成功,时间为%f\n",stu[i].name,stu[i].jishi);
}
}
void chaxun()
{
int i;
printf("学 号\t姓 名\t系 别\t上机类别\t剩余时间\t\n");
for(i=0;i<SIZE;i++)
printf("%s\t%s\t%s\t%s\t%f\n",stu[i].num,stu[i].name,stu[i].xibie,stu[i].leibie,stu[i].jishi);
}
main()
{
int i;
time_t a=0;
FILE *fp;
if((fp=fopen("d:\comp.dat","w+"))==NULL)
{
printf("文件打开失败\n");
}
for(i=0;i<SIZE;i++)
fread(&stu[i],sizeof(struct student),1,fp);
printf("*******************************************************************************\n");
printf("*******************************************************************************\n");
printf("************************************欢迎光临***********************************\n");
printf("*******************************************************************************\n");
printf("********************************1 录入学生信息********************************\n");
printf("********************************2 上机签到************************************\n");
printf("********************************3 结帐下机************************************\n");
printf("********************************4 预存机时************************************\n");
printf("********************************5 查询信息************************************\n");
printf("********************************6 清屏 ***************************************\n");
printf("********************************7 退出程序************************************\n");
printf("*******************************************************************************\n");
while(1)
switch(getchar())
{
case '1':add();break;
case '2':a=shangji();break;
case '3':xiaji(a);break;
case '4':yucun();break;
case '5':chaxun();break;
case '6':system("cls");main();break;
case '7':printf("****************************同学再见****************************\n");exit(0);
break; }
}