📄 member.cpp
字号:
// Member.cpp: implementation of the Member class.
//
// 作者: 龙震岳
// 班级: 北京交通大学 计算机与信息技术学院 计科0308班
// 首次编译:2004年12月2日
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Member.h"
#include "iostream.h"
#include "fstream.h"
#include "string.h"
#include "stdio.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
Member::Member()
{
}
Member::~Member()
{
}
bool Member::CheckInfo(char *IDNumberTemp)
{
char ch;
FILE *stream;
//检查文件是否存在,并做出提示
if( (stream = fopen( IDNumberTemp , "r" )) == NULL )
{
cout<<"用户信息不存在,是否建立用户信息?(Y/N)";
cin>>ch;
if ((ch == 'Y')||(ch == 'y'))
{
InsertMemberInfo();
return 0;
}
if ((ch == 'N')||(ch == 'n'))
return 0;
}
//关闭文件
fclose(stream);
//如果文件存在,返回1
return 1;
}
void Member::InsertMemberInfo()
{
cout<<"+---------------请输入用户信息---------------+"<<endl;
cout<<"学号:";
cin>>IDNumber;
cout<<"姓名:";
cin>>Name;
cout<<"身份(0、学生,1、教师):";
cin>>isTeacher;
cout<<"金额:";
cin>>Money;
cout<<"+--------"<<IDNumber<<"用户信息输入完毕--------+"<<endl<<endl;
ofstream out(IDNumber);
if (!out)
{
cout<<"Insert Error!"<<endl;
return;
}
//输出到文件
out<<IDNumber<<endl;
out<<Name<<endl;
out<<isTeacher<<endl;
out<<Money<<endl;
out<<"0000:00:00"<<endl;
out<<'0'<<endl;
out.close();
return;
}
void Member::AddMoney(char *IDNumberTemp)
{
int value;
//检查用户是否存在
if (!CheckInfo(IDNumberTemp))
return;
//读入数据
ifstream in(IDNumberTemp);
if (!in)
{
cout<<"Add Money Error!"<<endl;
return;
}
//读出用户数据
in>>IDNumber>>Name>>isTeacher>>Money>>Time>>isLogin;
in.close();
ofstream out(IDNumberTemp);
if (!out)
{
cout<<"Add Money Error!"<<endl;
return;
}
//开始充值
cout<<"请输入充值金额:";
cin>>value;
Money = Money + value;
//写入文件
out<<IDNumber<<endl;
out<<Name<<endl;
out<<isTeacher<<endl;
out<<Money<<endl;
out<<Time<<endl;
//成功,打印信息
out.close();
cout<<"+--------"<<IDNumber<<"用户充值成功!"<<"--------+"<<endl<<endl;
}
char Member::Logout(char *IDNumberTemp , char *CurrTime)
{
int TimeTemp1,TimeTemp2,TimeTemp;
//检查用户是否存在
if (!CheckInfo(IDNumberTemp))
return '0';
//读入用户资料
ifstream in(IDNumberTemp);
in>>IDNumber>>Name>>isTeacher>>Money>>Time>>isLogin;
in.close();
//判断当前状态是否已经登陆
if (isLogin == '1')
{
//退出登陆
isLogin = '0';
//扣去相应的金额
TimeTemp1 = Time[0]*10+Time[1];
TimeTemp2 = CurrTime[0]*10 + CurrTime[1];
TimeTemp = TimeTemp2 - TimeTemp1;
if (isTeacher == '1')
Money = Money - TimeTemp*2;
else
Money = Money - TimeTemp;
//写入文件
ofstream out(IDNumberTemp);
out<<IDNumber<<endl;
out<<Name<<endl;
out<<isTeacher<<endl;
out<<Money<<endl;
out<<CurrTime<<endl;
out<<isLogin<<endl;
out.close();
//欢迎信息
cout<<"谢谢使用,欢迎下次再来!"<<endl<<endl;
return '1';
}
else
{
//如果尚未登陆,则打印信息
cout<<"您尚未登陆,请先登录。"<<endl<<endl;
return '0';
}
}
char Member::Login(char *IDNumberTemp , char *CurrTime)
{
char ch;
//检查用户是否存在
if (!CheckInfo(IDNumberTemp))
return '0';
//读入用户资料
ifstream in(IDNumberTemp);
in>>IDNumber>>Name>>isTeacher>>Money>>Time>>isLogin;
in.close();
//检查余额是否足够
if (Money <= 0)
{
cout<<"您的金额不足,请充值后再上机。"<<endl;
cout<<"是否现在充值?(Y/N)";
cin>>ch;
if ((ch == 'Y')||(ch == 'y'))
{
AddMoney(IDNumberTemp);
return '0';
}
if ((ch == 'N')||(ch == 'n'))
return '0';
}
ofstream out(IDNumberTemp);
if (!out)
{
cout<<"信息读取错误"<<endl;
return '0';
}
//判断当前状态是否已经登陆
if (isLogin == '0')
{
//标记登陆
isLogin = '1';
//写入文件
out<<IDNumber<<endl;
out<<Name<<endl;
out<<isTeacher<<endl;
out<<Money<<endl;
out<<CurrTime<<endl;
out<<isLogin<<endl;
out.close();
//如果一切正常打印以下信息
cout<<"欢迎上机,祝您上机愉快!"<<endl<<endl;
return '1';
}
else
{
//如果已经登陆,则打印信息
cout<<"您已经登陆,上机愉快。"<<endl<<endl;
return '0';
}
}
void Member::ShowInfo(char *IDNumberTemp)
{
//检查用户是否存在
if (!CheckInfo(IDNumberTemp))
return;
ifstream in(IDNumberTemp);
//读入用户资料
in>>IDNumber>>Name>>isTeacher>>Money>>Time>>isLogin;
in.close();
cout<<"+---------"<<IDNumberTemp<<"用户信息显示---------+"<<endl;
cout<<"学号:"<<IDNumber<<endl;
cout<<"姓名:"<<Name<<endl;
if (isTeacher == '1')
cout<<"身份:教师"<<endl;
else
cout<<"身份:学生"<<endl;
cout<<"余额:"<<Money<<endl;
cout<<"上一次记录时间:"<<Time<<endl;
if (isLogin == '1')
cout<<"当前状态:正在上机"<<endl;
else
cout<<"当前状态:已经离开"<<endl;
cout<<"+-------"<<IDNumberTemp<<"用户信息显示完毕-------+"<<endl<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -