// workzoom.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<string.h>
#include<ctype.h>
#include<conio.h>//为了调用getch()
int m_course1,m_course2,m_course3,m_course4,whole;//每个工作室的当前人数和总人数
int max_cs1,max_cs2,max_cs3,max_cs4;//每个工作室的最大人数
int teacher,admin;//标志符
int show_menu();//显示菜单
int checkid();
int checkpassword(int id);
void do_stu();
void do_teacher();
int do_admin(int n);
void choose();
void readmax();
void readcurrent();
void writemax();
void writecurrent();
void printzooms();
void setmax();
void printmax();
int main(int argc, char* argv[])
{
/*int a;
a=getch();
if(a==13)
cout<< "再见!"<<endl;
exit(-1);*/
int id;
int n=0;
int choosed;
if(show_menu())
id=checkid();//获得登入者身份
else exit(1);
while(0==checkpassword(id))//检查登入者密码是不是正确
{
id=checkid();
}
readmax();
readcurrent();
whole=m_course1+m_course2+m_course3+m_course4;//初始化总人数
switch(id)
{
case 1: //学生登入
printf("\n你的身份是:学生!\n");
printf("当前总人数是:%d\n\n",whole);
do_stu();
break;
case 2: //老师登入
printf("\n你的身份是:老师!\n");
printf("当前总人数是:%d\n\n",whole);
do_teacher();
break;
case 3: //管理员登入
printf("\n你的身份是:管理员!\n");
printf("当前总人数是:%d\n\n",whole);
while(choosed=do_admin(n))
{
if(choosed==1)
n=1;
}
break;
default:
exit(-1);
}
return 0;
}
void printzooms()
{
printf("各工作室人数如下:\n\n");
printf("动漫工作室人数:%d\n",m_course1);
printf("vc++工作室人数:%d\n",m_course2);
printf("J2EE工作室人数:%d\n",m_course3);
printf("dotNet工作室人数:%d\n\n\n",m_course4);
}
void printmax()
{
printf("各工作室人数最大值如下:\n\n");
printf("动漫工作室人数:%d\n",max_cs1);
printf("vc++工作室人数:%d\n",max_cs2);
printf("J2EE工作室人数:%d\n",max_cs3);
printf("dotNet工作室人数:%d\n\n",max_cs4);
}
void writemax()
{
//把各工作室的最大人数写入文件中
CString str;
CStdioFile fFibo;
fFibo.Open("max.DAT", CFile::modeWrite |
CFile::modeCreate | CFile::typeText);
str.Format("%d\n", max_cs1);
fFibo.WriteString(str);
str.Format("%d\n", max_cs2);
fFibo.WriteString(str);
str.Format("%d\n", max_cs3);
fFibo.WriteString(str);
str.Format("%d\n", max_cs4);
fFibo.WriteString(str);
fFibo.Close();
}
void writecurrent()
{
//把各工作室的人数写入文件中
CString str;
CStdioFile fFibo;
fFibo.Open("stu.DAT", CFile::modeWrite |
CFile::modeCreate | CFile::typeText);
str.Format("%d\n", m_course1);
fFibo.WriteString(str);
str.Format("%d\n", m_course2);
fFibo.WriteString(str);
str.Format("%d\n", m_course3);
fFibo.WriteString(str);
str.Format("%d\n", m_course4);
fFibo.WriteString(str);
fFibo.Close();
}
void readmax()
{
CString strText = "";
CString szLine =""; //打开文件
CStdioFile file;
file.Open("max.DAT",CFile::modeRead); //逐行读取字符串
file.ReadString(szLine);
max_cs1 = atoi(szLine.GetBuffer(0));
file.ReadString(szLine);
max_cs2 = atoi(szLine.GetBuffer(0));
file.ReadString(szLine);
max_cs3 = atoi(szLine.GetBuffer(0));
file.ReadString(szLine);
max_cs4 = atoi(szLine.GetBuffer(0));
file.Close(); //关闭文件
}
void readcurrent()
{
CString strText = "";
CString szLine =""; //打开文件
CStdioFile file;
file.Open("stu.DAT",CFile::modeRead); //逐行读取字符串
file.ReadString(szLine);
m_course1 = atoi(szLine.GetBuffer(0));
file.ReadString(szLine);
m_course2 = atoi(szLine.GetBuffer(0));
file.ReadString(szLine);
m_course3 = atoi(szLine.GetBuffer(0));
file.ReadString(szLine);
m_course4 = atoi(szLine.GetBuffer(0));
file.Close(); //关闭文件
}
void do_teacher()
{
//打印各工作室的人数
printzooms();
teacher=1;
do_stu();
}
int do_admin(int n)
{
//打印各工作室的人数
printzooms();
//打印各工作室人数的最大值
printmax();
admin=1;
int choice;
int pass=1;
printf("1.选工作室方向\n");
printf("2.设置各工作室人数上限\n");
printf("3.退出\n");
printf("\n请选择你的操作1-3\n");
while(pass==1)
{
scanf("%d",&choice);
if(choice==1)
{
if(n==1)
printf("你已经选择过了,请选择其它操作!\n");
else
{
choose();//选择
pass=0;
}
}
else if(choice==2)
{
setmax();//设置工作室人数最大值
pass=0;
}
else if(choice==3)
{
printf("\n你已成功退出,欢迎下次使用!\n");
exit(-1);
}
else
{
fflush(stdin);//刷新标准输入缓冲区,把输入缓冲区里的东西丢弃
printf("\n请输入正确的选择!\n");
}
}
if(choice==1)
{
fflush(stdin);
return 1;
}
else
{
fflush(stdin);
return 2;
}
}
void setmax()
{
int choice;
int max;
int pass=1;
int pass1=1;
printf("\n1.动漫\n");
printf("2.vc++\n");
printf("3.J2EE\n");
printf("4.dotNet\n");
printf("5.退出\n");
printf("\n请选择你要设置的工作室或退出1-5\n");
while(pass==1)
{
scanf("%d",&choice);
switch(choice)
{
case 1:
while(pass1==1)
{
printf("\n请输入你要设置的最大值:\n");
scanf("%d",&max);
if(max==int(max) && max<6954320 )
{
max_cs1=max;
pass1=0;
fflush(stdin);
}
else
{
printf("\n请输入正确的数值!\n");
fflush(stdin);
}
}
pass=0;
break;
case 2:
while(pass1==1)
{
printf("\n请输入你要设置的最大值:\n");
scanf("%d",&max);
if(max==int(max) && max<6954320 )
{
max_cs2=max;
pass1=0;
fflush(stdin);
}
else
{
printf("\n请输入正确的数值!\n");
fflush(stdin);
}
}
pass=0;
break;
case 3:
while(pass1==1)
{
printf("\n请输入你要设置的最大值:\n");
scanf("%d",&max);
if(max==int(max) && max<6954320 )
{
max_cs3=max;
pass1=0;
fflush(stdin);
}
else
{
printf("\n请输入正确的数值!\n");
fflush(stdin);
}
}
pass=0;
break;
case 4:
while(pass1==1)
{
printf("\n请输入你要设置的最大值:\n");
scanf("%d",&max);
if(max==int(max) && max<6954320 )
{
max_cs4=max;
pass1=0;
fflush(stdin);
}
else
{
printf("\n请输入正确的数值!\n");
fflush(stdin);
}
}
pass=0;
break;
case 5:
printf("\n你已成功退出,欢迎下次使用!\n");
exit(-1);
default:
fflush(stdin);
printf("\n请输入正确的选择!\n");
break;
}
}
printf("\n设置成功!\n");
writemax();//写入文件中保存
}
void do_stu()
{
int choice;
int pass=1;
printf("1.选工作室方向\n");
printf("2.退出\n");
printf("\n请选择你的操作1-2\n");
while(pass==1)
{
scanf("%d",&choice);
if(choice==1)
{
pass=0;
fflush(stdin);
}
else if(choice==2)
exit(-1);
else
{
fflush(stdin);
printf("\n请输入正确的选择\n");
}
}
choose();//选择
}
void choose()
{
int choice;
int pass=1;
printf("\n1.动漫\n");
printf("2.vc++\n");
printf("3.J2EE\n");
printf("4.dotNet\n");
printf("5.退出\n");
printf("\n请选择工作室或退出1-5\n");
while(pass==1)
{
scanf("%d",&choice);
switch(choice)
{
case 1:
if(m_course1>=max_cs1)
{
printf("\n工作室已满,请选择其它方向!\n");
fflush(stdin);
}
else
{
m_course1++;
pass=0;
}
break;
case 2:
if(m_course2>=max_cs2)
{
printf("\n工作室已满,请选择其它方向!\n");
fflush(stdin);
}
else
{
m_course2++;
pass=0;
}
break;
case 3:
if(m_course3>=max_cs3)
{
printf("\n工作室已满,请选择其它方向!\n");
fflush(stdin);
}
else
{
m_course3++;
pass=0;
}
break;
case 4:
if(m_course4>=max_cs4)
{
printf("\n工作室已满,请选择其它方向!\n");
fflush(stdin);
}
else
{
m_course4++;
pass=0;
}
break;
case 5:
exit(-1);
default:
fflush(stdin);
printf("\n请输入正确的选择!\n");
break;
}
}
printf("\n选择成功!");
writecurrent();
if(teacher==1)
{
printf("\n你的身份是:老师!\n");
whole=m_course1+m_course2+m_course3+m_course4;//更新总人数
printf("当前总人数是:%d\n\n",whole);
printzooms(); //打印各工作室的人数
printf("\n欢迎下次使用!\n");
}
else if(admin==1)
{
printf("\n你的身份是:管理员!\n");
whole=m_course1+m_course2+m_course3+m_course4;//更新总人数
printf("当前总人数是:%d\n\n",whole);
}
else
{
printf("\n你的身份是:学生!\n");
whole=m_course1+m_course2+m_course3+m_course4;//更新总人数
printf("当前总人数是:%d\n\n",whole);
printf("\n欢迎下次使用!\n");
}
}
int checkpassword(int id)
{
int pass=1;
int password;
int n=0;
printf("\n请输入密码\npassword:\n");
while(pass==1)
{
if(n>=3)//密码错误3次
{
pass=0;
return 0;//返回0
}
scanf("%d",&password);
switch(id)
{
case 1:
if (password!=111)
{
printf("\n密码错误3次后将返回\n");
fflush(stdin); //刷新标准输入缓冲区,把输入缓冲区里的东西丢弃
n++;
break;
}
else
{
fflush(stdin);
pass=0;
break;
}
case 2:
if (password!=222)
{
printf("\n密码错误3次后将返回\n");
fflush(stdin);
n++;
break;
}
else
{
fflush(stdin);
pass=0;
break;
}
case 3:
if (password!=333)
{
printf("\n密码错误3次后将返回\n");
fflush(stdin); //刷新标准输入缓冲区,把输入缓冲区里的东西丢弃
n++;
break;
}
else
{
fflush(stdin);
pass=0;
break;
}
}
}
return 1;
}
int checkid()
{
int choice;
int n;
int pass=1;
printf("\n1.学生\n");
printf("2.老师\n");
printf("3.管理员\n");
printf("4.退出\n");
printf("\n请选择你的身份或退出1-4\n");
while(pass==1)
{
scanf("%d",&choice);
choice=int(choice);
if(choice==4 )
exit(1);
else if(choice==1)
{
n=1;
pass=0;
fflush(stdin);
}
else if(choice==2)
{
n=2;
pass=0;
fflush(stdin);
}
else if(choice==3)
{
n=3;
pass=0;
fflush(stdin);
}
else
{
printf("\n请输入正确的选择!\n");
fflush(stdin);
}
}
return n;//返回登入者身份
}
//显示菜单
int show_menu()
{
int choice;
int pass=1;
printf("1.登陆\n");
printf("2.退出\n");
printf("\n请选择操作1-2\n");
while(pass==1)
{
scanf("%d",&choice);
if(choice==1)
{
pass=0;
fflush(stdin);
}
else if(choice==2)
exit(-1);
else
{
fflush(stdin); //刷新标准输入缓冲区,把输入缓冲区里的东西丢弃
printf("\n请输入正确的选择!\n");
}
}
return 1;//返回登入选择
}
追问你没有按照我的要求回答童鞋