首页 > 其他 > 详细

数据结构 教师信息管理系统

时间:2019-07-03 23:06:01      阅读:157      评论:0      收藏:0      [点我收藏+]

该系统能够对信息学院的教师信息进行管理,主要功能如下:

设计要求:

(1) 实现人事资料输入、修改、删除等:

(2) 输入教师信息,如姓名、身份证号、地址、电话、部门、工资、参加工作时间、专业、职务、备注等。

(3) 实现信息查询:可根据教师编号、教师姓名、出生年月范围、工资范围、参加工作时间范围等条件查询等。

 

 

#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <iomanip>
#include <windows.h>
#define WIDTH 20
#define space setw(WIDTH)
#define NEWLINE "\r\n"
using namespace std;

struct students{ 
	int IDNumber ,wage, time,birthday;
	string name, address, phone, department,spe, zhiwu, remarks;
};




void write(const char *filename)
{
	students stu;
	ofstream out;
	out.open(filename, ios::app);
	if (!out.is_open())
	{
		cout << "open error" << endl;
		return;
	}
	else
	{
		cout << "请输入身份证号、姓名、地址、电话、部门、工资、参加工作的时间、专业、职务、备注:" << endl;
		cin >> stu.IDNumber >> stu.name>> stu.address >> stu.phone >> stu.department >> stu.wage >> stu.time >> stu.spe >> stu.zhiwu >> stu.remarks;
		out.fill(‘ ‘);
		out.setf(ios::left);
		out << space << stu.IDNumber << space << stu.name <<space << stu.address << space << stu.phone << space << stu.department << space << stu.wage << space << stu.time << space << stu.spe << space << stu.zhiwu << space << stu.remarks << NEWLINE;
		out.close();
		cout << "添加成功!!" << endl;
	}
}

void read(const char *filename)
{
	students stu;
	ifstream in;
	in.open(filename, ios::in);
	if (!in.is_open())
	{
		cout << "file open error" << endl;
		return;
	}
	else
	{
		stringstream ss;
		char line[100000];
		cout.setf(ios::left);
		cout.fill(‘ ‘);
		cout << space << "身份证号" << space << "姓名" << space << "地址" << space << "电话" << space << "部门" << space << "工资" << space << "参加工作时间" << space << "专业" << space << "职务" << space << "备注" << endl;
		while (in.peek() != EOF)
		{
			in.getline(line,100000);
			ss << line;
			ss >> stu.IDNumber >> stu.name>> stu.address >> stu.phone >> stu.department >> stu.wage >> stu.time >> stu.spe >> stu.zhiwu >> stu.remarks;
			cout << space << stu.IDNumber << space << stu.name << space << stu.address << space << stu.phone << space << stu.department << space << stu.wage << space << stu.time << space << stu.spe << space << stu.zhiwu << space << stu.remarks << NEWLINE;
			ss.str("");
			ss.clear();
		}
		in.close();
	}
}

void del(const char *filename)
{
	int IDNumber;
	cout << "请输入您要删除教师的身份证号" << endl;
	cin >> IDNumber;
	ifstream in;
	in.open(filename, ios::in);
	if (!in.is_open())
	{
		cout << "file open error" << endl;
		return;
	}
	else
	{
		string temp;
		stringstream ss;
		int curId;;
		while (in.peek() != EOF)
		{
			string line;
			getline(in, line);
			ss << line;
			ss >> curId;
			if (curId != IDNumber)
			{
				temp += line + NEWLINE;
			}
			ss.str("");
			ss.clear();
		}
		in.close();
		ofstream out;
		out.open("D:\\teachermanage.txt", ios::out);
		if (!out.is_open())
		{
			cout << "file open error" << endl;
			return;
		}
		else
		{
			out << temp;
			out.close();
			cout << "删除成功!!" << endl;
		}
	}

}



int search_pos(const char *filename, int id)
{
	ifstream in;
	in.open(filename, ios::in | ios::binary);
	if (!in.is_open())
	{
		cout << "file open error" << endl;
		return -1;
	}
	else
	{
		stringstream ss;
		while (in.peek() != EOF)
		{
			int start = in.tellg();
			string line;
			getline(in, line);
			ss << line;
			int curID;
			ss >> curID;
			if (curID == id)
			{
				in.close();
				return start;
			}
			ss.str("");
		}
		cout << "对不起您查找的同学信息不存在!" << endl;
		in.close();
	}
	return -1;
}


int search_name(const char *filename, string name)
{
	students stu;
	ifstream in;
	in.open(filename, ios::in | ios::binary);
	if (!in.is_open())
	{ 
		cout << "file open error" << endl;
		return -1; 
	}
	else
	{
		stringstream ss;
		while (in.peek() != EOF)
		{
			int start = in.tellg();
			string line; 
			getline(in, line);
			ss << line;
			ss >> stu.IDNumber >> stu.name >> stu.address >> stu.phone >> stu.department >> stu.wage >> stu.time >> stu.spe >> stu.zhiwu >> stu.remarks;
			if (stu.name == name)
			{
				in.close();
				return start;
			}
			ss.str("");
		}
		cout << "对不起您查找的同学信息不存在!" << endl;
		in.close();
	}
	return -1;
}
void searchName(const char *filename)
{
	cout << "请输入您要查找的教师姓名:" << endl;
	string name;
	cin >> name;
	int pos = search_name(filename, name);
	string line;
	fstream in;
	in.open(filename, ios::in | ios::binary);
	in.seekg(pos, ios::beg);
	getline(in, line);
	cout.setf(ios::left);
	cout << space << "身份证号" << space << "姓名" << space << "地址" << space << "电话" << space << "部门" << space << "工资" << space << "参加工作时间" << space << "专业" << space << "职务" << space << "备注" << endl;
	cout << line << endl;
}


void searchID(const char *filename)
{
	cout << "请输入您要查找的教师id:" << endl;
	int id;
	cin >> id;
	int pos = search_pos(filename, id);
	string line;
	fstream in;
	in.open(filename, ios::in | ios::binary);
	in.seekg(pos, ios::beg);
	getline(in, line);
	cout.setf(ios::left);
	cout << space << "身份证号" << space << "姓名" << space << "地址" << space << "电话" << space << "部门" << space << "工资" << space << "参加工作时间" << space << "专业" << space << "职务" << space << "备注" << endl;
	cout << line << endl;
}

void edit(const char *filename)
{
	int id, age;
	string name,address, phone, department, wage, time, spe, zhiwu, remarks;
	cout << "请输入您要修改的教师身份证号:" << endl;
	cin >> id;
	cout << "请输入该教师新的姓名、地址、电话、部门、工资、参加工作的时间、专业、职务、备注:" << endl;
	cin >> name >> address >> phone >> department >> wage >> time >> spe >> zhiwu >> remarks;
	stringstream infoTemp;
	infoTemp.fill(‘ ‘);
	infoTemp.setf(ios::left);
	infoTemp << space << id << space << name << space << address << space << phone << space << department << space << wage << space << time << space << spe << space << zhiwu << space << remarks;
	string newInfo;
	getline(infoTemp, newInfo);
	fstream file;
	file.open(filename, ios::in | ios::out | ios::binary);
	if (!file.is_open())
	{
		cout << "file open error" << endl;
		return;
	}
	else
	{
		int pos = search_pos(filename, id);
		file.seekg(pos, ios::beg);
		file << newInfo;
		cout << "修改后信息为:" << endl;
		cout << newInfo << endl;
		file.close();
	}
}


void searchwage(const char *filename)
{
	int max1, min1;
	cout << "请输入教师公资范围(最大、最小)"<<endl;
	cin >> max1>>min1;
	students stu;
	ifstream in;
	in.open(filename, ios::in);
	if (!in.is_open())
	{
		cout << "file open error" << endl;
		return;
	}
	else
	{
		stringstream ss;
		char line[100000];
		cout.setf(ios::left);
		cout.fill(‘ ‘);
		cout << space << "身份证号" << space << "姓名" << space << "地址" << space << "电话" << space << "部门" << space << "工资" << space << "参加工作时间" << space << "专业" << space << "职务" << space << "备注" << endl;
		while (in.peek() != EOF)
		{
			in.getline(line, 100000);
			ss << line;
			ss >> stu.IDNumber >> stu.name >> stu.address >> stu.phone >> stu.department >> stu.wage >> stu.time >> stu.spe >> stu.zhiwu >> stu.remarks;
			if (stu.wage<max(max1,min1)&&stu.wage>min(max1,min1))
			cout << space << stu.IDNumber << space << stu.name << space << stu.address << space << stu.phone << space << stu.department << space << stu.wage << space << stu.time << space << stu.spe << space << stu.zhiwu << space << stu.remarks << NEWLINE;
			ss.str("");
			ss.clear();
		}
		in.close();
	}
}

void searchtime(const char *filename)
{
	int max1, min1;
	cout << "请输入教师参加工作时间范围(最大、最小)" << endl;
	cin >> max1 >> min1;
	students stu;
	ifstream in;
	in.open(filename, ios::in);
	if (!in.is_open())
	{
		cout << "file open error" << endl;
		return;
	}
	else
	{
		stringstream ss;
		char line[100000];
		cout.setf(ios::left);
		cout.fill(‘ ‘);
		cout << space << "身份证号" << space << "姓名" << space << "地址" << space << "电话" << space << "部门" << space << "工资" << space << "参加工作时间" << space << "专业" << space << "职务" << space << "备注" << endl;
		while (in.peek() != EOF)
		{
			in.getline(line, 100000);
			ss << line;
			ss >> stu.IDNumber >> stu.name >> stu.address >> stu.phone >> stu.department >> stu.wage >> stu.time >> stu.spe >> stu.zhiwu >> stu.remarks;
			if (stu.time<max(max1, min1) && stu.time>min(max1, min1))
				cout << space << stu.IDNumber << space << stu.name << space << stu.address << space << stu.phone << space << stu.department << space << stu.wage << space << stu.time << space << stu.spe << space << stu.zhiwu << space << stu.remarks << NEWLINE;
			ss.str("");
			ss.clear();
		}
		in.close();
	}
}

int main()
{
	const char *filename = "D:\\teachermanage.txt";
	while (true)
	{
		cout << "--------------------------" << endl;
		cout << "0、查看全部信息" << endl;
		cout << "1、新增教师信息" << endl;
		cout << "2、删除教师信息" << endl;
		cout << "3、修改教师信息" << endl;
		cout << "4、查找教师信息(身份证号)" << endl;
		cout << "5、查找教师信息(姓名)" << endl;
		cout << "6、查找教师信息(工资)" << endl;
		cout << "7、查找教师信息(工作时间)" << endl;
		int cmd;
		cin >> cmd;
		system("cls");
		switch (cmd)
		{
		case 0:read(filename); break;
		case 1:write(filename); break;
		case 2:del(filename); break;
		case 3:edit(filename); break;
		case 4:searchID(filename); break;
		case 5:searchName(filename); break;
		case 6:searchwage(filename); break;
		case 7:searchtime(filename); break;
		}
	}
	return 0;
}

  

数据结构 教师信息管理系统

原文:https://www.cnblogs.com/NCLONG/p/11129401.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!