#include "Teacher.h"
#include <string>
#include <iostream>
#include <iomanip>
using namespace std;
////////////教师类的函数实现
CTeacher::CTeacher()
{
m_sName = " ";
m_nAge = 0;
m_nPhone = 0;
m_nID = 0;
}
CTeacher::~CTeacher()
{
//不做任何操作
}
//初始化教师
void CTeacher::initTeacher(const string& strName, int nAge, int nPhone, int nID)
{
m_sName = strName;
m_nAge = nAge;
m_nPhone = nPhone;
m_nID = nID;
}
CTeacher& CTeacher::operator = (const CTeacher& tch)
{
m_sName = tch.m_sName;
m_nAge = tch.m_nAge;
m_nPhone = tch.m_nPhone;
m_nID = tch.m_nID;
return *this;
}
bool CTeacher::operator == (const CTeacher& tch)
{
return (m_sName == tch.m_sName && m_nAge == tch.m_nAge
&& m_nPhone == tch.m_nPhone && m_nID == tch.m_nID);
}
ostream& operator << (ostream& out, const CTeacher& tch)
{
out << "┏─────┳─────┳─────┳─────┐" << endl;
out << "│编号 │姓名 │ 年龄 │ 联系电话 │" << endl;
out <<"┢─────┽─────┽─────┼─────┥ " << endl;
out << "│" << setw(10) << tch.m_nID
<< "│" << setw(10) << tch.m_sName
<< "│" << setw(10) << tch.m_nAge
<< "│" << setw(10) << tch.m_nPhone
<< "│" << endl;
out << "┢─────┽─────┽─────┼─────┥" <<endl;
return out;
}
void CTeacher::dispTable()
{
cout << "│" << setw(10) << m_nID
<< "│" << setw(10) << m_sName
<< "│" << setw(10) << m_nAge
<< "│" << setw(10) << m_nPhone
<< "│" << endl;
cout << "┢─────┽─────┽─────┼─────┥" << endl;
}
void CTeacher::initTeacher()
{
cout << "Init Teacher:" << endl;
cout << "Name: ";
cin >> m_sName;
cout << "Age: ";
cin >> m_nAge;
cout << "Phone: ";
cin >> m_nPhone;
cout << "ID: ";
cin >> m_nID;
}
//////////////////////教师链表类的函数实现
bool CTeacherList::InsertTch(const CTeacher& tch)
{
list<CTeacher>::iterator it = m_lTch.end();
//链表里以存在改教师
if (it != SearchTch(tch))
{
return false;
}
m_lTch.push_back(tch); //添加教师
return true;
}
// 按教师信息删除教师
bool CTeacherList::DeleteTch(const CTeacher& tch)
{
list<CTeacher>::iterator it = m_lTch.end();
if (it != SearchTch(tch))
{
m_lTch.erase(it);
return true;
}
//当前链表中没有改教师
return false;
}
//按教师ID删除教师
bool CTeacherList::DeleteTch(int nID)
{
list<CTeacher>::iterator it = SearchTch(nID);
if (m_lTch.end() != SearchTch(nID))
{
m_lTch.erase(it);
return true;
}
return false;
}
//查询当前链表中是否存在该教师
std::list<CTeacher>::iterator CTeacherList::SearchTch(const CTeacher& tch)
{
list<CTeacher>::iterator it;
for (it = m_lTch.begin(); it != m_lTch.end(); ++it)
{
if (*it == tch)
{
return it;
}
}
return it;
}
//查询当前链表中是否存在该教师,按教师ID查询
std::list<CTeacher>::iterator CTeacherList::SearchTch(int nID)
{
list<CTeacher>::iterator it;
for (it = m_lTch.begin(); it != m_lTch.end(); ++it)
{
if (it->m_nID == nID)
{
return it;
}
}
return it;
}
//将链表写入文件
bool CTeacherList::WriteToFile(string sFileName)
{
ofstream fout(sFileName.c_str(),ios::binary | ios::trunc);
if(!fout)
{
cerr << "Open File " << sFileName << " Error!" << endl;
return false;
}
list<CTeacher>::iterator it;
CTeacher tch;
for (it = m_lTch.begin(); it != m_lTch.end(); ++it)
{
tch = *it;
fout.write((char*)&tch, sizeof(tch));
}
fout.close();
return true;
}
//打印链表内所有教师信息
void CTeacherList::DisplayAll()
{
list<CTeacher>::iterator it;
for (it = m_lTch.begin(); it != m_lTch.end(); ++it)
{
it->dispTable();
}
cout << endl;
}
CTeacherList::~CTeacherList()
{
m_lTch.clear();
}
没有合适的资源?快使用搜索试试~ 我知道了~
C++程序设计 教师信息管理系统
共3个文件
cpp:2个
h:1个
需积分: 11 14 下载量 103 浏览量
2009-05-17
21:13:15
上传
评论
收藏 3KB RAR 举报
温馨提示
C++程序设计 定义一个 TeacherList 类 可以实现简单的增加教师 可以实现简单的查找教师 可以实现简单的删除教师
资源推荐
资源详情
资源评论
收起资源包目录
c++.rar (3个子文件)
胡婷
Main.cpp 3KB
Teacher.cpp 4KB
Teacher.h 1KB
共 3 条
- 1
资源评论
jinxin031988
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功