?? 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 + -