657 lines
17 KiB
C++
657 lines
17 KiB
C++
#include <time.h>
|
||
#include <iostream>
|
||
#include <string>
|
||
#include <iomanip>
|
||
#include <fstream>
|
||
//#include “Book.h”
|
||
//#include “Admin.h”
|
||
#define MAXSIZE 10000
|
||
using namespace std;
|
||
|
||
//全局变量
|
||
string ID_Value; //存储新建账户名
|
||
string ID[5]; //存储ID列表
|
||
int ID_flag; //存储ID操作序号
|
||
fstream file; //文件对象
|
||
void MainLoop(); //声明RUNTIME函数
|
||
//book.h
|
||
static int Bcount = 2;
|
||
static int Jcount = 2;
|
||
static double TTotal;
|
||
static int flag = 0;
|
||
|
||
class BookBase
|
||
{
|
||
private:
|
||
string ISBN = "00000000";
|
||
string Bname = "默认书籍";
|
||
int stock = 0;
|
||
double price = 0;
|
||
double total = 0;
|
||
public:
|
||
BookBase() {};
|
||
BookBase(string is, string nam, int s, double p)
|
||
{
|
||
ISBN = is;
|
||
Bname = nam;
|
||
stock = s;
|
||
price = p;
|
||
}
|
||
string getISBN() const { return ISBN; }
|
||
string getName() const { return Bname; }
|
||
int getStock() const { return stock; }
|
||
double getPrice() const { return price; }
|
||
double getTotal() const { return total; }
|
||
void modISBN(string i) { ISBN = i; }
|
||
void modName(string n) { Bname = n; }
|
||
void modStock(int st) { stock = st; }
|
||
void modPrice(double pr) { price = pr; }
|
||
void addStock(int s)
|
||
{
|
||
stock += s;
|
||
cout << "库存增加成功!目前库存为:" << getStock() << endl;
|
||
}
|
||
void outStock(int s)
|
||
{
|
||
if (s <= stock)
|
||
{
|
||
stock -= s;
|
||
cout << "销售成功!目前库存为:" << getStock() << endl;
|
||
total = s * price;
|
||
TTotal += total;
|
||
cout << "销售额为:" << getTotal() << endl;
|
||
flag = 1;
|
||
}
|
||
else
|
||
{
|
||
cerr << "库存不足,请检查,目前库存仅有" << getStock() << "。" << endl;
|
||
return;
|
||
}
|
||
}
|
||
};
|
||
|
||
//期刊类
|
||
class Journal :public BookBase
|
||
{
|
||
private:
|
||
string express;
|
||
public:
|
||
Journal() {};
|
||
Journal(string is, string nam, int s, double p, string exp) :BookBase(is, nam, s, p) { express = exp; }
|
||
friend ostream& operator<<(ostream& output, const Journal& j);
|
||
string getExpress() const { return express; }
|
||
void modExpress(string ex) { express = ex; }
|
||
};
|
||
|
||
//输出流运算符重载
|
||
ostream& operator<<(ostream& output, const Journal& j)
|
||
{
|
||
cout.setf(ios_base::left);
|
||
output << j.getISBN() << "\t" << setw(25) << j.getName() << setw(20) << j.getExpress() << setw(15) << j.getPrice() << setw(15) << j.getStock() << endl;
|
||
return output;
|
||
}
|
||
|
||
//书籍类
|
||
class Book :public BookBase
|
||
{
|
||
private:
|
||
string author;
|
||
public:
|
||
Book() {};
|
||
Book(string is, string nam, int s, double p, string au) :BookBase(is, nam, s, p) { author = au; }
|
||
friend ostream& operator<<(ostream& output, const Book& b);
|
||
string getAuthor() const { return author; }
|
||
void modAuthor(string au) { author = au; }
|
||
};
|
||
|
||
//输出流运算符重载
|
||
ostream& operator<<(ostream& output, const Book& b)
|
||
{
|
||
cout.setf(ios_base::left);
|
||
output << b.getISBN() << "\t" << setw(25) << b.getName() << setw(20) << b.getAuthor() << setw(15) << b.getPrice() << setw(15) << b.getStock() << endl;
|
||
return output;
|
||
}
|
||
|
||
/*
|
||
* 以上为书籍相关类及成员函数,以下为管理员类及其成员函数
|
||
*/
|
||
//Admin.h
|
||
class Admin
|
||
{
|
||
private:
|
||
string ID;
|
||
public:
|
||
Admin() {};
|
||
string getID() const { return ID; }
|
||
Admin(string id) { ID = id; cout << this->getID() << ",欢迎您登陆管理系统!所有权限已开启。" << endl; }
|
||
void changeID(string id) { ID = id; }
|
||
void AddBook();
|
||
void DelBook();
|
||
void SearchBook();
|
||
void inStock();
|
||
void outStock();
|
||
void printAll();
|
||
void statics();
|
||
void modify();
|
||
|
||
};
|
||
//预置书籍类数据
|
||
static Book Books[MAXSIZE] = {
|
||
Book("9787302257646","程序设计基础",190,25,"张三"),
|
||
Book("9787302219972","单片机技术及应用",182,32,"李四")
|
||
};
|
||
//预置期刊类数据
|
||
static Journal Journals[MAXSIZE] = {
|
||
Journal("9787302257611","电脑爱好者",200,32,"北京大学出版社"),
|
||
Journal("9787302257622","无线电年刊",190,35,"江西财大出版社")
|
||
};
|
||
//输出所有Journal
|
||
void JournalsPrint()
|
||
{
|
||
cout << "———————— 期刊类 ————————" << endl;
|
||
cout.setf(ios_base::left);
|
||
cout << "序号\tISBN\t\t"<<setw(25)<<"期刊名"<<setw(20)<<"出版社"<<setw(15)<<"价格"<<setw(15)<<"库存" << endl;
|
||
for (int i = 0; i < Jcount; i++) cout << i + 1 << "\t" << Journals[i];
|
||
cout << endl;
|
||
}
|
||
//输出所有Book
|
||
void BooksPrint()
|
||
{
|
||
cout << "———————— 书籍类 ————————" << endl;
|
||
cout.setf(ios_base::left);
|
||
cout << "序号\tISBN\t\t" << setw(25) << "书名" << setw(20) << "作者" << setw(15) << "价格" << setw(15) << "库存" << endl;
|
||
for (int i = 0; i < Bcount; i++) cout << i + 1 << "\t" << Books[i];
|
||
cout << endl;
|
||
}
|
||
void Admin::statics()
|
||
{
|
||
char c;
|
||
if (flag)
|
||
{
|
||
cout << "------------------------------------------" << endl;
|
||
cout << setw(25) << internal << "销售统计" << endl;
|
||
cout << "总销售额:" << TTotal << endl;
|
||
cout << "是否将销售额导出至文件?(Y/N)"; cin >> c;
|
||
if(c=='Y' || c=='y')
|
||
{
|
||
ofstream file;
|
||
file.open("销售额.txt", ios::out);
|
||
file << "总销售额:" << TTotal << endl;
|
||
file.close();
|
||
cout << "导出成功!" << endl;
|
||
}
|
||
cout << "------------------------------------------" << endl;
|
||
}
|
||
else
|
||
{
|
||
cerr << "无任何销售记录!" << endl;
|
||
}
|
||
|
||
}
|
||
//添加新书籍
|
||
void NewBook()
|
||
{
|
||
string ISBN;
|
||
string Bname;
|
||
int stock;
|
||
double price;
|
||
string author;
|
||
cout << "------------------------------------------" << endl;
|
||
cout << "正在添加新的书籍信息,当前已有书籍数目:" << Bcount << endl;
|
||
cout << "输入ISBN号:"; cin >> ISBN;
|
||
cout << "请输入书名:"; cin >> Bname;
|
||
cout << "请输入库存:"; cin >> stock;
|
||
cout << "请输入价格:"; cin >> price;
|
||
cout << "请输入作者名:"; cin >> author;
|
||
Books[Bcount] = Book(ISBN, Bname, stock, price, author);
|
||
Bcount++;
|
||
cout << "添加成功!" << endl;
|
||
}
|
||
//添加新期刊
|
||
void NewJournal()
|
||
{
|
||
string ISBN;
|
||
string Bname;
|
||
int stock;
|
||
double price;
|
||
string express;
|
||
cout << "正在添加新的期刊信息,当前已有期刊数目:" << Bcount << endl;
|
||
cout << "输入ISBN号:"; cin >> ISBN;
|
||
cout << "请输入期刊名:"; cin >> Bname;
|
||
cout << "请输入库存:"; cin >> stock;
|
||
cout << "请输入价格:"; cin >> price;
|
||
cout << "请输入作者名:"; cin >> express;
|
||
Journals[Jcount] = Journal(ISBN, Bname, stock, price, express);
|
||
Jcount++;
|
||
cout << "添加成功!" << endl;
|
||
}
|
||
//增加书刊
|
||
void Admin::AddBook()
|
||
{
|
||
int select = 1;
|
||
cout << setw(20) << ">>>>>>>>>>增加书刊<<<<<<<<<<" << endl
|
||
<< setw(20) << "1.书籍类" << endl
|
||
<< setw(20) << "2.期刊类" << endl
|
||
<< setw(20) << "0.退出该操作" << endl;
|
||
while (select)
|
||
{
|
||
cout << "要对哪类进行增加操作(输入0返回主菜单):";
|
||
cin >> select;
|
||
if (select < 0 || select > 2)
|
||
{
|
||
cerr << "非法值,请重新输入。" << endl;
|
||
continue;
|
||
}
|
||
else
|
||
{
|
||
switch (select)
|
||
{
|
||
case 1: NewBook(); continue;
|
||
case 2: NewJournal(); continue;
|
||
case 0: break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//删除书刊
|
||
void Admin::DelBook()
|
||
{
|
||
string s = "1";
|
||
while (1) {
|
||
cout << "请输入作者名、出版社名、期刊名、书名或ISBN号(输入0返回主菜单):";
|
||
cin >> s;
|
||
if (s == "0") break; //退出判断
|
||
int flag = 0; //查找成功状态符
|
||
//查找书籍类
|
||
for (int i = 0; i < Bcount; i++)
|
||
if (Books[i].getAuthor() == s || Books[i].getISBN() == s || Books[i].getName() == s)
|
||
{
|
||
flag = 1;
|
||
cout << "发现目标书籍如下,是否删除该书籍信息?(Y 是 / N 否)"
|
||
<< endl << "------------------------"
|
||
<< endl << Books[i] << "------------------------" << endl << "请选择:";
|
||
char c; cin >> c;
|
||
if (c == 'Y' || c == 'y')
|
||
{
|
||
for (int j = i; j < Bcount - 1; j++)
|
||
{
|
||
Books[j] = Books[j + 1];
|
||
}
|
||
Bcount--;
|
||
}
|
||
else continue;
|
||
}
|
||
else continue;
|
||
//查找期刊类
|
||
for (int i = 0; i < Jcount; i++)
|
||
if (Journals[i].getExpress() == s || Journals[i].getISBN() == s || Journals[i].getName() == s)
|
||
{
|
||
flag = 1;
|
||
cout << "发现目标期刊如下,是否删除该期刊信息?(Y 是 / N 否)"
|
||
<< endl << "------------------------"
|
||
<< endl << Journals[i] << "------------------------" << endl << "请选择:";
|
||
char c; cin >> c;
|
||
if (c == 'Y' || c == 'y')
|
||
{
|
||
for (int j = i; j < Jcount - 1; j++)
|
||
{
|
||
Journals[j] = Journals[j + 1];
|
||
}
|
||
Jcount--;
|
||
}
|
||
else continue;
|
||
}
|
||
else continue;
|
||
if (flag)cout << "删除成功!" << endl;
|
||
else cerr << "未找到目标书籍。" << endl;
|
||
}
|
||
}
|
||
//入库
|
||
void Admin::inStock()
|
||
{
|
||
int select = 1;
|
||
cout << setw(20) << ">>>>>>>>>>入库书刊<<<<<<<<<<" << endl
|
||
<< setw(20) << "1.书籍类" << endl
|
||
<< setw(20) << "2.期刊类" << endl
|
||
<< setw(20) << "0.退出该操作" << endl;
|
||
while (select)
|
||
{
|
||
cout << "要对哪类进行入库操作(输入0返回主菜单):";
|
||
cin >> select;
|
||
if (select < 0 || select > 2)
|
||
{
|
||
cerr << "非法值,请重新输入。" << endl;
|
||
continue;
|
||
}
|
||
else
|
||
{
|
||
switch (select)
|
||
{
|
||
case 1:
|
||
{
|
||
BooksPrint();
|
||
int a, b;
|
||
cout << "要操作的书籍编号是:"; cin >> a;
|
||
if (a<1 || a>Bcount)
|
||
{
|
||
cerr << "序号错误,请检查。" << endl;
|
||
break;
|
||
}
|
||
cout << "要增加的库存量是:"; cin >> b;
|
||
Books[a - 1].addStock(b);
|
||
continue;
|
||
}
|
||
case 2:
|
||
{
|
||
JournalsPrint();
|
||
int a, b;
|
||
cout << "要操作的期刊编号是:"; cin >> a;
|
||
if (a<1 || a>Jcount)
|
||
{
|
||
cerr << "序号错误,请检查。" << endl;
|
||
break;
|
||
}
|
||
cout << "要增加的库存量是:"; cin >> b;
|
||
Books[a - 1].addStock(b);
|
||
continue;
|
||
}
|
||
case 0: break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//修改书籍类
|
||
void modifyBook()
|
||
{
|
||
int select = 1;
|
||
BooksPrint();
|
||
int a, b;
|
||
string s;
|
||
int st;
|
||
double pr;
|
||
cout << "要操作的书籍编号是:"; cin >> a;
|
||
if (a<1 || a>Bcount)
|
||
{
|
||
cerr << "序号错误,请检查。" << endl;
|
||
}
|
||
else
|
||
{
|
||
cout << "1.ISBN\t2.书籍名称\t3.作者\t4.库存量\t5.价格\t0.放弃修改" << endl << "要修改的信息是:"; cin >> b;
|
||
switch (b)
|
||
{
|
||
case 1: cout << "输入修改后的信息:"; cin >> s; Books[a - 1].modISBN(s); cout << Books[a - 1] << "修改成功!" << endl; break;
|
||
case 2: cout << "输入修改后的信息:"; cin >> s; Books[a - 1].modName(s); cout << Books[a - 1] << "修改成功!" << endl; break;
|
||
case 3: cout << "输入修改后的信息:"; cin >> s; Books[a - 1].modAuthor(s); cout << Books[a - 1] << "修改成功!" << endl; break;
|
||
case 4: cout << "输入修改后的信息:"; cin >> st; Books[a - 1].modStock(st); cout << Books[a - 1] << "修改成功!" << endl; break;
|
||
case 5: cout << "输入修改后的信息:"; cin >> pr; Books[a - 1].modPrice(pr); cout << Books[a - 1] << "修改成功!" << endl; break;
|
||
case 0: break;
|
||
}
|
||
}
|
||
}
|
||
//修改期刊类
|
||
void modifyJournal()
|
||
{
|
||
int select = 1;
|
||
JournalsPrint();
|
||
int a, b;
|
||
string s;
|
||
int st;
|
||
double pr;
|
||
cout << "要操作的书籍编号是:"; cin >> a;
|
||
if (a<1 || a>Bcount)
|
||
{
|
||
cerr << "序号错误,请检查。" << endl;
|
||
}
|
||
else
|
||
{
|
||
cout << "1.ISBN\t2.书籍名称\t3.出版社\t4.库存量\t5.价格\t0.放弃修改" << endl << "要修改的信息是:"; cin >> b;
|
||
switch (b)
|
||
{
|
||
case 1: cout << "输入修改后的信息:"; cin >> s; Journals[a - 1].modISBN(s); cout << Journals[a - 1] << "修改成功!" << endl; break;
|
||
case 2: cout << "输入修改后的信息:"; cin >> s; Journals[a - 1].modName(s); cout << Journals[a - 1] << "修改成功!" << endl; break;
|
||
case 3: cout << "输入修改后的信息:"; cin >> s; Journals[a - 1].modExpress(s); cout << Journals[a - 1] << "修改成功!" << endl; break;
|
||
case 4: cout << "输入修改后的信息:"; cin >> st; Journals[a - 1].modStock(st); cout << Journals[a - 1] << "修改成功!" << endl; break;
|
||
case 5: cout << "输入修改后的信息:"; cin >> pr; Journals[a - 1].modPrice(pr); cout << Journals[a - 1] << "修改成功!" << endl; break;
|
||
case 0: break;
|
||
}
|
||
}
|
||
}
|
||
//修改书籍信息
|
||
void Admin::modify()
|
||
{
|
||
int select = 1;
|
||
cout << setw(20) << ">>>>>>>>>>修改书刊信息<<<<<<<<<<" << endl
|
||
<< setw(20) << "1.书籍类" << endl
|
||
<< setw(20) << "2.期刊类" << endl
|
||
<< setw(20) << "0.退出该操作" << endl;
|
||
while (select)
|
||
{
|
||
cout << "要对哪类进行修改操作(输入0返回主菜单):";
|
||
cin >> select;
|
||
if (select < 0 || select > 2)
|
||
{
|
||
cerr << "非法值,请重新输入。" << endl;
|
||
continue;
|
||
}
|
||
else
|
||
{
|
||
switch (select)
|
||
{
|
||
case 1: modifyBook(); continue;
|
||
case 2: modifyJournal(); continue;
|
||
case 0: break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//入库
|
||
void Admin::outStock()
|
||
{
|
||
int select = 1;
|
||
cout << setw(20) << ">>>>>>>>>>销售书刊<<<<<<<<<<" << endl
|
||
<< setw(20) << "1.书籍类" << endl
|
||
<< setw(20) << "2.期刊类" << endl
|
||
<< setw(20) << "0.退出该操作" << endl;
|
||
while (select)
|
||
{
|
||
cout << "要对哪类进行销售操作(输入0返回主菜单):";
|
||
cin >> select;
|
||
if (select < 0 || select > 2)
|
||
{
|
||
cerr << "非法值,请重新输入。" << endl;
|
||
continue;
|
||
}
|
||
else
|
||
{
|
||
switch (select)
|
||
{
|
||
case 1:
|
||
{
|
||
BooksPrint();
|
||
int a, b;
|
||
cout << "要操作的书籍序号是:"; cin >> a;
|
||
if(a<1 || a>Bcount)
|
||
{
|
||
cerr << "序号错误,请检查。" << endl;
|
||
break;
|
||
}
|
||
cout << "销售的库存量是:"; cin >> b;
|
||
Books[a - 1].outStock(b);
|
||
continue;
|
||
}
|
||
case 2:
|
||
{
|
||
JournalsPrint();
|
||
int a, b;
|
||
cout << "要操作的期刊序号是:"; cin >> a;
|
||
if (a<1 || a>Jcount)
|
||
{
|
||
cerr << "序号错误,请检查。" << endl;
|
||
break;
|
||
}
|
||
cout << "要销售的库存量是:"; cin >> b;
|
||
Books[a - 1].outStock(b);
|
||
continue;
|
||
}
|
||
case 0: break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//输出所有库存
|
||
inline void Admin::printAll()
|
||
{
|
||
BooksPrint();
|
||
JournalsPrint();
|
||
}
|
||
//输出ID.txt
|
||
void ID_OUT()
|
||
{
|
||
file.open("ID.txt", ios::out);
|
||
if (!file)
|
||
{
|
||
cerr << "未检测到账户列表文件ID.txt!保存失败。" << endl;
|
||
exit(1);
|
||
}
|
||
for (int i = 0; i < 5; i++)
|
||
file << ID[i] << endl;
|
||
file.close();
|
||
}
|
||
//读入ID.txt
|
||
void ID_IN()
|
||
{
|
||
file.open("ID.txt", ios::in);
|
||
if (!file)
|
||
{
|
||
cerr << "未检测到预置账户列表文件ID.txt,请查看源代码末端的注释,现已使用默认测试账户登录。" << endl;
|
||
ID_Value = "超级管理员";
|
||
MainLoop();
|
||
}
|
||
for (int i = 0; i < 5; i++)
|
||
file >> ID[i];
|
||
file.close();
|
||
}
|
||
//切换账户
|
||
void ID_Switch()
|
||
{
|
||
ID_IN();
|
||
for (int i = 0; i < 5; i++)
|
||
cout << i + 1 << "\t" << ID[i] << endl;
|
||
cout << "请选择要登录的账户:"; cin >> ID_flag;
|
||
|
||
if (ID_flag == 5 && ID[ID_flag-1] == "选此项以新建账户")
|
||
{
|
||
string tmp;
|
||
cout << "请输入新账户的ID:"; cin >> tmp;
|
||
ID[4] = ID_Value = tmp;
|
||
cout << "新建账户成功并已写入账户列表!您现在拥有所有权限。" << endl;
|
||
ID_OUT();
|
||
}
|
||
else if (ID_flag < 1 || ID_flag>5)
|
||
{
|
||
cerr << "该账户不存在!程序将退出。" << endl;
|
||
abort();
|
||
}
|
||
else ID_Value = ID[ID_flag - 1];
|
||
cout << "-----------------------------------------------" << endl;
|
||
}
|
||
//导出库存信息
|
||
void fileOut()
|
||
{
|
||
file.open("书籍.txt", ios::out);
|
||
file<<"ISBN\t\t" << setw(25) << "书名" << setw(20) << "作者" << setw(15) << "价格" << setw(15) << "库存" << endl;
|
||
for (int i = 0; i < Bcount; i++) file << Books[i];
|
||
file.close();
|
||
file.open("期刊.txt", ios::out);
|
||
cout.setf(ios_base::left);
|
||
file << "ISBN\t\t" << setw(25) << "期刊名" << setw(20) << "出版社" << setw(20) << "价格" << setw(15) << "库存" << endl;
|
||
for (int i = 0; i < Jcount; i++)file << Journals[i];
|
||
cout << "已成功输出为'书籍.txt'与'期刊.txt'" << endl;
|
||
file.close();
|
||
}
|
||
//欢迎
|
||
void MainLoop()
|
||
{
|
||
cout << "==============================="
|
||
<< endl << setw(30) << "欢迎使用小型书店进销存管理系统"
|
||
<< endl << "==============================="
|
||
<< endl << "注:该程序仅用于江西财经大学张老师《C++程序设计语言》课程之期末综合性实验报告,作者:刘燕、李溦、钟琳"
|
||
<< endl << "-----------------------------------------------"
|
||
<< endl << "预置账户列表:" << endl;
|
||
ID_Switch();
|
||
MainLoop();
|
||
}
|
||
//运行中函数
|
||
void MainLoop()
|
||
{
|
||
Admin admin(ID_Value);
|
||
int select = 1;
|
||
while (select)
|
||
{
|
||
cout << setw(20) << "————————————————" << endl
|
||
<< "当前用户:" << admin.getID() << endl
|
||
<< "1.查看当前库存" << endl
|
||
<< "2.增加书刊信息" << endl
|
||
<< "3.修改书刊信息" << endl
|
||
<< "4.删除书刊信息" << endl
|
||
<< "5.增加书刊库存" << endl
|
||
<< "6.书刊销售系统" << endl
|
||
<< "7.当前财务统计" << endl
|
||
<< "8.更改管理员ID" << endl
|
||
<< "9.切换登录账户" << endl
|
||
<< "10.将库存信息输出至文件" << endl
|
||
<< "0.退出书店系统" << endl
|
||
<< setw(20) << "————————————————" << endl;
|
||
cout << "请输入操作序号:";
|
||
cin >> select;
|
||
if (select < 0 || select >10)
|
||
{
|
||
cerr << "非法值,请重新输入。" << endl;
|
||
continue;
|
||
}
|
||
else
|
||
{
|
||
switch (select)
|
||
{
|
||
case 1: admin.printAll(); continue;
|
||
case 2: admin.AddBook(); continue;
|
||
case 3: admin.modify();continue;
|
||
case 4: admin.DelBook(); continue;
|
||
case 5: admin.inStock(); continue;
|
||
case 6: admin.outStock(); continue;
|
||
case 7: admin.statics(); continue;
|
||
case 8:
|
||
{
|
||
string id;
|
||
cout << "输入目标ID:";
|
||
cin >> id;
|
||
admin.changeID(id);
|
||
ID[ID_flag - 1] = id;
|
||
cout << "更改成功!当前ID为" << id << endl;
|
||
ID_OUT();
|
||
continue;
|
||
}
|
||
case 9: system("cls"); MainLoop(); break;
|
||
case 10: fileOut(); continue;
|
||
case 0: break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//主函数
|
||
int main()
|
||
{
|
||
MainLoop();
|
||
return 0;
|
||
}
|
||
|
||
/* 本程序使用外部文件实现了预置账户切换功能模块,该文件如下:
|
||
** 可将下方附件置于编译完成的exe文件目录中,但由于做了异常处理,缺失文件不会导致程序不可用
|
||
** ID.txt
|
||
超级管理员
|
||
刘燕
|
||
李溦
|
||
钟琳
|
||
选此项以新建账户
|
||
*/
|