📄 机房上机管理系统.cpp
字号:
//接口函数声明
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#include<conio.h>
//函数声明
void Zmemu(void);
int zhmemu(void);
//定义结构体
struct student
{
long no;//编号
long number;//座位号
char name[20];//姓名
int time[2][2];//上机时间 下机时间
float money[2];//押金 余额
float pay;//费用
float a;//费率
};
struct student b[100];
int num=0,quit=0;
float a=5.0,pay = 0.0;
float total = 0;//总费用
struct student *h=b;
void feilv(struct student *p)
{
struct student temp;
printf("\n请输入费率:");
scanf("%f",&temp.a);
p->a=temp.a;
}
void modify(struct student *p)
{
long knumber;
int i,f=0;
printf("请输入座位号:");
scanf("%ld",&knumber);
for( i=0;i<num;i++,p++)
if(p->number==knumber)
{f=1;break;}
if(f==1)
{
long s=0,t=0;
float cash=0;
printf("\n ★★编号★★座位号★★姓名★★冲值\n\n");
printf("%8ld ",p->number);
printf("%8ld %s ",p->number,p->name);
scanf("%f",&cash);
p->money[0]+=cash;
printf("\n冲值成功!\n");
}
}
void clear(struct student *p)
{
char decide;
printf("\n\n请确认初始化信息(y/n):");
scanf("%s",&decide);
if(decide=='y')
{
num=0;
printf("已初始化\n");system("pause");
}
else
{
printf("没有初始化信息\n");
system("pause");
}
}
void show(struct student *p)
{
int i=0,n=0;
struct student *p1;
p1=p;
for(i=0;i<num;i++,p++)
{
printf("\n\t编号\t座位号\t姓名\t上机时间 下机时间 押金\t\n\n");
printf("%12ld%4ld\t%s\t%4d:%2d%4d:%2d%7.2f",p->no,p->number,p->name,p->time[0][0],
p->time[0][1],p->time[1][0],p->time[1][1],p->money[0]);
}
system("pause");
}
void f1(struct student *p )
{
struct student temp;
printf("编号:");
scanf("%ld",&temp.no);
printf("座位号:");
scanf("%ld",&temp.number);
printf("姓名:");
scanf("%s",temp.name);
printf("上机时间:");
scanf("%ld%*c%d",&temp.time[0][0],&temp.time[0][1]);
printf("押金:");
scanf("%f",&temp.money[0]);
p=p+num;
p->no=temp.no;
p->number=temp.number ;
strcpy(p->name,temp.name) ;
p->time[0][0]=temp.time[0][0];
p->time[0][1]=temp.time[0][1];
p->money[0]=temp.money[0] ;
p->pay=temp.pay;
num++;
show(h);
printf("11.输入 0.返回\n");
}
//按座位号查找
int numberfind(struct student *p)
{
long knumber;
int i,f=0;
printf("请输入座位号:");
scanf("%ld",&knumber);
for( i=0;i<num;i++,p++)
if(p->number==knumber)
{f=1;break;}
if(f==1)
{
printf("\n ★★编号★★座位号★★姓名★★押金★★\n\n");
printf(" %4ld,%10ld,%8s,%7.2f",p->no,p->number,p->name,p->money[0]);
return i;
}
else printf("没有记录");
return -1;
}
//按姓名查找
int namefind(struct student *p)
{
char cname[10];
int i,f=0;
printf("请输入姓名:");
scanf("%s",cname);
for( i=0;i<num;i++,p++)
if(strcmp(p->name,cname)==0)
{
f=1;break;
}
if(f==1)
{
printf("\n ★★编号★★座位号★★姓名★★押金★★\n\n");
printf(" %6ld,%10ld,%8s,%7.2f",p->no,p->number,p->name,p->money[0]);
return i;
}
else
printf("没有记录");
return -1;
}
void shanchu(struct student *p)
{
int s=0,j,pos;
if ((pos=numberfind(p))>=0)
{
for( j=pos;j<num;j++,p++)
{
p->no=(p+1)->no;
p->number=(p+1)->number;
strcpy(p->name,(p+1)->name);
p->money[0]=(p+1)->money[0];
}
printf("\n %ld deleted ",pos);
num--;
}
else
printf("no deleted");
}
float jzh(struct student *p)
{
int m=0;
m=(p->time[1][0]-p->time[0][0])*60+(p->time[1][1])-(p->time[0][1]);
(p->pay)=m*(h->a)/60;
p->money[1]=p->money[0]-p->pay;
return(p->pay);
}
void xiaji(struct student *p)
{
struct student temp;
long knumber;
int i,f=0;
printf("请输入座位号:");
scanf("%ld",&knumber);
for( i=0;i<num;i++,p++)
if(p->number==knumber)
{f=1;break;}
if(f==1)
printf("下机时间是:");
scanf("%d%*c%d",&temp.time[1][0],&temp.time[1][1]);
p->time[1][0]=temp.time[1][0];
p->time[1][1]=temp.time[1][1];
jzh(p);
p->money[1]=p->money[0]-p->pay;
printf("\n 编号\t座位号\t姓名\t\t上机时间 下机时间 押金\t费用\t余额\n\n");
printf("%4ld%8ld\t\t%s\t%4d:%2d%4d:%2d%7.2f%7.2f%7.2f",p->no,p->number,p->name,p->time[0][0],
p->time[0][1],p->time[1][0],p->time[1][1],p->money[0],p->pay,p->money[1]);
total += p->pay;
}
int zhmemu(void)
{
int j;
printf("\n请选择(11-16\21-22):");
for(;;)
{
scanf("%d",&j);
switch(j)
{
case 11:
{
f1(h);
system("pause");
break;
}
case 12:
{
xiaji(h);
system("pause");
break;
}
case 13:
{
show(h);
system("pause");
break;
}
case 14:
{
modify(h);
system("pause");j=0;
break;
}
case 15:
{
shanchu(h);
system("pause");
break;
}
case 16:
{
printf("\n总费用为:%f\n",total);
system("pause");
break;
}
case 18:
{
feilv(h);
system("pause");
break;
}
case 19:
{
system("pause");
break;
}
case 21:
{
numberfind (h);
printf("\n请输入座位号:");
system("pause");break;
}
case 22:
{
namefind (h);
printf("\n请输入姓名:");
system("pause");break;
}
case 0:
{
j=0;
break;
}
default : break;
}
if(j==17)
{
Zmemu();//调用主菜单
break;
}
else
if(j==0)break;
}
return j;
}
int memu(void)
{
system("cls");
int i;
printf("\n\n\n\n\n\n\t*****************************************************************\t\n\n");
printf("\t\t\t\t【☆机房上机管理系统☆】 \n\n");
printf(" \t 1.△管理△\t\t");
printf("2.△工具△\t\t");
printf("3.△初始化△\n\n");
printf("88.△退出△");
printf("\n\n\t*****************************************************************\t\t");
printf("\n\t请选择:(1-3||88)\n\n\n\n\n\n\n\n");
scanf("%d",&i);
return i;
}
void Zmemu(void)
{
system("cls");
int k;
k=memu();
for(;;)
{
switch(k)
{
case 1:
{
system("cls");
printf("\n\n\n\n\t11.上机\t\t\t");
printf("12.下机\t\t");
printf("\t13.上机信息\n\n");
printf("\t14.加钱\t\t");
printf("15.删除\t");
printf("\t16.统计费用");
printf("\n\t\t18.费率设置");
printf("\n\t\t19.换机");
printf("\n\t\t0.返回");
printf("\n\t\t17.返回主菜单");
zhmemu();//调用子菜单
break;
}
case 2:
{
system("cls");
printf("\t\t\t\t21.座位查找\n");
printf("\t\t\t\t22.姓名查找\n");
printf("\n\t\t17.返回主菜单");
zhmemu();//调用子菜单
break;
}
case 3:
{
system("cls");
clear(h);
Zmemu();//返回主菜单
break;
}
case 88:
{
system("cls");
printf("\n\n\t\t^\t\t^");
printf("\n\n\n\t\t\t^");
printf("\n\n感谢老师两周来的指导!\n\n");
puts("\t谢谢使用...再见\n");
puts("\t\t\t\t信息二班..\n\n\t\t\t\t☆☆☆肖俏 ★ 陈显清☆☆☆");
system("pause");
k=88;
break;
}
default :
Zmemu();//调用主菜单好返回
break;
}
if(k==88)
break;
}
}
void main()
{
Zmemu();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -