using namespace std;
#include <iostream>
#include <stdio.h>
#include <string.h>
/**
* 员工信息结构体
*/
struct career {
char id[10];
char name[10];
char sex[2];
int age;
char position[20];
};
/**
* 员工链表元素
*/
class link {
public:
career data;
link *next;
};
// 链头
link *p;
/**
* 操作提示
*/
void showOperations();
/**
* 新建信息
*/
void enter();
/**
* 删除信息
*/
void deleteCareer(link *q, char a[]);
/**
* 根据姓名修改信息
*/
void modify(link *q, char a[]);
/**
* 根据职位查询信息
*/
void search(link *q, char sc[12]);
/**
* 显示所有信息
*/
void showAll();
/**
* 保存信息到磁盘
*/
void save();
/**
* 读取已有信息到链表
*/
link *read();
/**
* 处理各种操作
*/
void dealWithEvents();
/**
* 主函数
*/
int main(){
showOperations();
p = new link();
p = read();
dealWithEvents();
return 0;
}
void showOperations(){
cout
<< "********************************************************************************"
<< "\n";
cout << "1 " << "新建员工" << "\t";
cout << "2 " << "根据姓名删除员工" << "\t";
cout << "3 " << "根据姓名修改员工" << "\t";
cout << "4 " << "根据职位查询员工" << "\n";
cout << "5 " << "查询全体员工信息" << "\t";
cout << "6 " << "存档" << "\t";
cout << "7 " << "退出程序" << "\t";
cout << "8 " << "帮助" << "\n";
cout
<< "********************************************************************************"
<< "\n";
}
void enter()
{
link *s;
s = new link;
cout << "请输入员工信息:\n 员工号 " << " 姓名 " << " 性别 " << " 年龄 " << " 职位 ";
cin >> s->data.id;
cin >> s->data.name;
cin >> s->data.sex;
cin >> s->data.age;
cin >> s->data.position;
s->next = p->next;
p->next = s;
}
void deleteCareer(link *q, char a[])
{
link *r, *t;//link *r,*ss;
t = q;
r = q->next;
if (r == NULL) {
cout << "员工信息为空\n";
return;
}
while ((r != NULL) && (strcmp(r->data.name, a) != 0)) {
t = r;
r = r->next;
}
if (r == NULL)
cout << "员工姓名不存在" << "\n";
else {
t->next = r->next;
delete (r);
cout << "此员工 \"" << a << "\"被删除" << "\n";
}
}
void modify(link *q, char a[])
{
link *r;
r = q->next;
while ((r != NULL) && (strcmp(r->data.name, a) != 0))
r = r->next;
if (r == NULL)
cout << "员工名不存在" << "\n";
else {
cout << "请输入新的员工信息: \n 员工号 " << " 姓名 " << " 性别 " << " 年龄 " << " 职位 \n";
cin >> r->data.id;
cin >> r->data.name;
cin >> r->data.sex;
cin >> r->data.age;
cin >> r->data.position;
}
}
void search(link *q, char sc[12]) {
link *r;
r = q->next;
if (r == NULL) {
cout << "职位不存在";
return;
}
cout << "员工号" << "\t";
cout << "姓名" << "\t";
cout << "性别" << "\t";
cout << "年龄" << "\t";
cout << "职位" << "\n";
while (r != NULL) {
if (strcmp(r->data.position, sc) == 0) {
cout << r->data.id << "\t";
cout << r->data.name << "\t";
cout << r->data.sex << "\t";
cout << r->data.age << "\t";
cout << r->data.position << "\n";
}
r = r->next;
}
}
void showAll() {
link *q;
q = p->next;
if (q == NULL) {
cout << "无任何员工信息" << "\n";
return;
}
cout << "员工号" << "\t";
cout << "姓名" << "\t";
cout << "性别" << "\t";
cout << "年龄" << "\t";
cout << "职位" << "\n";
while (q != NULL) {
cout << q->data.id << "\t";
cout << q->data.name << "\t";
cout << q->data.sex << "\t";
cout << q->data.age << "\t";
cout << q->data.position << "\n";
q = q->next;
}
}
link *read()
{
FILE *fp;
link *s, *q;
q = new link;
q->next = NULL;
career e;
if ((fp = fopen("career_list.txt", "rb")) == NULL) {
cout << "信息读取失败\n";
return q;
}
while (fread(&e, sizeof(struct career), 1, fp) == 1)
{
s = new link;
s->data = e;
s->next = q->next;
q->next = s;
}
fclose(fp);
return q;
}
void dealWithEvents() {
char a[10];
int s;
for (;;) {
cout << "请选择操作(1-7):\n ";
cin >> s;
switch (s) {
case 1:
enter();
break;
case 2:
cout << "请输入要删除的员工姓名:" << "\n";
cin >> a;
deleteCareer(p, a);
break;
case 3:
cout << "请输入要修改的员工姓名:" << "\n";
cin >> a;
modify(p, a);
break;
case 4:
cout << "请输入要查询的职位:" << "\n";
cin >> a;
search(p, a);
break;
case 5:
showAll();
break;
case 6:
save();
break;
case 7:
return;
case 8:
showOperations();
break;
}
}
}
void save() {
career qq;
link *r;
FILE *fp;
r = p->next;
if ((fp = fopen("career_list.txt", "wb")) == NULL) {
cout << "信息读取失败";
return;
}
while (r != NULL) {
qq = r->data;
fwrite(&qq, sizeof(struct career), 1, fp);
r = r->next;
}
cout << "存档完成" << "\n";
fclose(fp);
}
分享到:
相关推荐
用C++实现职工信息管理系统,主要实现信息的增删改查,最好可以实现信息的处理
职工管理系统可以用来管理公司内所有员工的信息(利用C++来实现一个基于多态的职工管理系统) 公司中职工分为三类:普通员工、经理、董事长,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责 【普通...
C++实现简单职工信息管理系统.doc
基于C++和QT实现的企业实现员工信息管理系统源码.zip基于C++和QT实现的企业实现员工信息管理系统源码.zip基于C++和QT实现的企业实现员工信息管理系统源码.zip基于C++和QT实现的企业实现员工信息管理系统源码.zip基于...
用C++实现的一个简易职工信息管理系统,能实现对职工编号、姓名、性别和年龄的管理
C++ Builder 实现考勤信息管理系统以及员工信息管理,使用Sql server数据库进行实现数据库的管理,可管理员工信息基础信息,考勤信息,工资信息
设计一个实用的小型职工信息管理系统,用链表来存储学生的姓名、性别、电话,完成对信息的录入、修改、删除、查询、统计、输出等操作。
C++开发的SQL数据库实现的公司员工信息管理系统
基于c++实现的外卖管理系统源码.zip基于c++实现的外卖管理系统源码.zip基于c++实现的外卖管理系统源码.zip基于c++实现的外卖管理系统源码.zip基于c++实现的外卖管理系统源码.zip基于c++实现的外卖管理系统源码.zip...
职工工资信息管理系统是一款基于C++语言开发的应用程序,旨在帮助企业管理职工工资信息。该系统具备用户友好的界面和强大的功能,可以轻松地添加、编辑、删除和查询职工工资信息。通过使用该系统,企业可以更加高效...
基于C++实现简易员工管理系统源码(课程作业).zip基于C++实现简易员工管理系统源码(课程作业).zip基于C++实现简易员工管理系统源码(课程作业).zip基于C++实现简易员工管理系统源码(课程作业).zip基于C++实现简易员工...
基于QT和sqlite数据库实现员工信息管理系统c++源码(课程设计).zip基于QT和sqlite数据库实现员工信息管理系统c++源码(课程设计).zip基于QT和sqlite数据库实现员工信息管理系统c++源码(课程设计).zip基于QT和sqlite...
数据库课程设计报告[基于c++的教职工信息管理系统].doc
基于c++实现的教室管理系统源码+课设报告.zip基于c++实现的教室管理系统源码+课设报告.zip基于c++实现的教室管理系统源码+课设报告.zip基于c++实现的教室管理系统源码+课设报告.zip基于c++实现的教室管理系统源码+...
简单的员工管理系统,功能包括员工的增删以及查找,自己做的小demo~
C++课程设计 高校教职工管理系统 使用VC 内有具体步骤,可以教会你怎么做
黑框控制台程序,exe可执行程序在debug里,vc6.0开发的。只适用于课程设计参考。实现的功能,对职工信息的增删改查看功能。
//C++实现基于多态的职工管理系统 //管理系统实现功能: //1.退出当前管理系统 //2.增加职工信息:实现批量添加职工功能,将信息录入到文件中,职工信息为:职工编号,职工姓名,部门编号 //3.显示职工信息:显示...
【项目介绍】 该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 本项目适合计算机相关专业(如计科、人工智能、通信工程...课程作业基于C++实现的职工管理系统源码(带详细代码注释).zip
主要利用C++来实现一个基于多态的职工管理系统 公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责 普通员工职责:完成经理交给的任务 经理职责:完成老板...