⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 机房上机管理系统.cpp

📁 机房的管理
💻 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 + -