前言
衔接上一篇“c++学习笔记-STL案例-机房预约系统2-创建身份类”,本文主要设计登录模块,建立globalFile.h头文件定义使用的文件名字符串,登录函数封装,并对学生登录、老师登录、管理员登录进行了具体实现。
目录
宏定义字符串,使用时添加#include"globalFile.h"头文件
#pragma once
//管理员文件
#define ADMIN_FILE "admin.txt"
//学生文件
#define STUDENT_FILE "student.txt"
//教师文件
#define TEACHER_FILE "teacher.txt"
//机房信息文件
#define COMPUTER_FILE "computerRoom.txt"
//订单文件
#define ORDER_FILE "order.txt"
同级目录下,创建这几个文件:
(1)在预约系统的.cpp文件中添加全局函数 void LoginIn(string fileName,int type)参数:
(2)在main函数的不同分支,填入不同的登录接口
预约系统的.cpp新增LoginIn函数以及新增main()函数不同分支登录接口代码如下:
#include<iostream>
using namespace std;
#include"identity.h"
#include<fstream>
#include<string>
#include"globalFile.h"
//登录功能 fileName是操作文件的文件名 type是操作身份类型
void LoginIn(string fileName, int type)
{
//父类指针 用于指向子类对象
Identity* person = NULL;
//读文件
ifstream ifs;
ifs.open(fileName, ios::in);
if (!ifs.is_open())
{
cout << "文件不存在" << endl;
ifs.close();
return;
}
//准备接受用户信息
int id = 0;
string name;
string pwd;
//判断身份
if (type == 1) //学生身份
{
cout << "请输入你的学号:" << endl;
cin >> id;
}
else if(type == 2)
{
cout << "请输入您的职工号:" << endl;
cin >> id;
}
cout << "请输入用户名:" << endl;
cin >> name;
cout << "请输入密码:" << endl;
cin >> pwd;
if (type == 1)
{
//学生身份验证
}
else if (type == 2)
{
//教师身份验证
}
else if (type == 3)
{
//管理员身份验证
}
cout << "验证登录失败" << endl;
system("pause");
system("cls");
return;
}
int main()
{
int select = 0;//用于接收用户的选择
while (true)
{
cout << "========================= 欢迎来到机房预约系统 =========================" << endl;
cout << endl << "请输入您的身份" << endl;
cout << "\t\t -------------------------------------------------" << endl;
cout << "\t\t| |\n";
cout << "\t\t| 1.学生代表 |\n";
cout << "\t\t| |\n";
cout << "\t\t| 2.老 师 |\n";
cout << "\t\t| |\n";
cout << "\t\t| 3.管 理 员 |\n";
cout << "\t\t| |\n";
cout << "\t\t| 0.退 出 |\n";
cout << "\t\t| |\n";
cout << "\t\t -------------------------------------------------" << endl;
cout << "输入您的选择:";
cin >> select;//接受用户的选择
switch (select)
{
case 1: //学生身份
LoginIn(STUDENT_FILE, 1);
break;
case 2: //老师身份
LoginIn(TEACHER_FILE, 2);
break;
case 3: //管理员身份
LoginIn(ADMIN_FILE, 3);
break;
case 0: //退出系统
cout << "欢迎下次使用" << endl;
system("pause");
return 0;
break;
default:
cout << "输入有误,请重新选择!" << endl;
system("pause");
system("cls");
break;
}
}
system("pause");
return 0;
}
因为此时的实现分支都是空实现,所以验证登录失败,测试代码无报错