职工信息管理系统C++代码
相关文章推荐:
1、 C语言学生成绩管理系统源代码 ★★★★★
2、 C语言学籍管理系统源代码 ★★
3、C语言学生成绩管理系统设计 《C语言程序设计》实训报告 ★★★
4、C语言学生信息管理系统源代码 ★★★★
扫描上方二维码,回复 999 直接获取作者之前收藏的学习资源,谢谢网友们的分享。
更多管理系统更新中,请注意关注!
大学实训课学习到的一段源代码,职工信息管理系统 c++项目源代码。
#include <string>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <memory.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
using namespace std; class employee
{
public:string m_Code; string m_Name; unsigned short int m_Year; string m_Sex; string m_Post; string m_Department; unsigned int m_Wage; //链表节点的指针域--- employee* Next;
public:employee* Create(employee* Head); void Rel(employee* Head); employee* Add(employee* Head); bool Search(employee* Head); employee* Search_Unique_Front(employee* Head); void Display_List(employee* Head); void Display_Node(employee* pNode); employee* Modify(employee* Head); employee* Del(employee* Head); void Save_ByFile(employee* Head,fstream& ofile); employee* Sort(employee* Head);
};employee* employee::Create(employee* Head)
{//创建一个带头节点的空链表。 Head=new employee; if(!Head) { cout<<"分配内存失败!"<<endl; return NULL; } Head->m_Code=""; Head->m_Name=""; Head->m_Year=0; Head->m_Sex=""; Head->m_Post=""; Head->m_Department=""; Head->m_Wage=0; Head->Next=NULL; return Head;
} void employee::Rel(employee* Head)
{//释放链表。 employee* ptr;//声明一个操作用的指针。 while(Head!=NULL) { ptr=Head; Head=Head->Next; delete ptr;//释放节点资源。 }
} employee* employee::Add(employee* Head)
{//前插法添加数据。 employee* pNew;// 声明一个新节点。 char again; string code,name,sex,post,department; unsigned short int year; unsigned int wage; do { pNew=new employee; //数据域。 cout<<"请输入职工代码:"; cin>>code; cout<<endl<<"请输入职工姓名:"; cin>>name; cout<<endl<<"请输入职工出生年份:"; cin>>year; while(cin.fail()) { cout<<"请输入正确的年份格式。"<<endl; cin.clear(); fflush(stdin); cin>>year; } cout<<endl<<"请输入职工性别:"; cin>>sex; cout<<endl<<"请输入职工职称:"; cin>>post; cout<<endl<<"请输入职工部门:"; cin>>department; cout<<endl<<"请输入职工工资:"; cin>>wage; while(cin.fail()) { cout<<"请输入正确的工资数据。"<<endl; cin.clear(); fflush(stdin); cin>>wage; } cout<<endl; pNew->m_Code=code; pNew->m_Name=name; pNew->m_Year=year; pNew->m_Sex=sex; pNew->m_Post=post; pNew->m_Department=department; pNew->m_Wage=wage; //指针域。 pNew->Next=Head->Next; Head->Next=pNew; cout<<"数据添加成功!是否继续添加?(Y/N)"<<endl; cin>>again; }while(again=='Y'||again=='y'); return Head;
} bool employee::Search(employee* Head)
{//查询同时满足“姓名”和“部门”的职工信息。 employee* ptr; string department; string name; ptr=Head->Next; cout<<"请输入部门:"; cin>>department; cout<<endl<<"请输入姓名:"; cin>>name; cout<<endl<<"----------------查询结果------------------"<<endl; while(ptr) { if((ptr->m_Name==name)&&(ptr->m_Department==department)) { Display_Node(ptr);//打印满足条件的节点。 return true; } ptr=ptr->Next;//查询下一节点。 } cout<<"无此职工的信息。"<<endl; return false;
} employee* employee::Search_Unique_Front(employee* Head)
{employee* ptr;string code;ptr= Head->Next;cout<<"请输入职工代码:";cin>>code;cout<<endl<<"----------------查询结果------------------"<<endl; while(ptr){if(ptr->m_Code==code)return ptr;ptr=ptr->Next;}return ptr;
} void employee::Display_List(employee* Head)
{ employee* ptr; ptr=Head->Next; cout<<"==================所有职工信息=================="<<endl; while(ptr) { Display_Node(ptr); ptr=ptr->Next; }
} void employee::Display_Node(employee* pNode)
{//在标准输出设备上输出。 cout<<setw(10)<<left<<pNode->m_Code <<setw(10)<<left<<pNode->m_Name <<setw(10)<<left<<pNode->m_Year <<setw(10)<<left<<pNode->m_Sex <<setw(10)<<left<<pNode->m_Post <<setw(10)<<left<<pNode->m_Department <<setw(10)<<left<<pNode->m_Wage<<endl;//setw(10)表示占10个字符位置。
} employee* employee::Modify(employee* Head)
{// 修改单一个节点。 employee* ptr; ptr=Search_Unique_Front(Head); string code,name,sex,post,department; unsigned short int year; unsigned int wage; if(ptr) { cout<<"-------你现在可以修改此职工的信息了-------"<<endl; //数据域。 cout<<"请输入职工代码:"; cin>>code; cout<<endl<<"请输入职工姓名:"; cin>>name; cout<<endl<<"请输入职工出生年份:"; cin>>year; while(cin.fail()) { cout<<"请输入正确的年份格式。"<<endl; cin.clear(); fflush(stdin); cin>>year; } cout<<endl<<"请输入职工性别:"; cin>>sex; cout<<endl<<"请输入职工职称:"; cin>>post; cout<<endl<<"请输入职工部门:"; cin>>department; cout<<endl<<"请输入职工工资:"; cin>>wage; while(cin.fail()) { cout<<"请输入正确的工资数据。"<<endl; cin.clear(); fflush(stdin); cin>>wage; } cout<<endl; ptr->m_Code=code;ptr->m_Name=name; ptr->m_Year=year; ptr->m_Sex=sex; ptr->m_Post=post; ptr->m_Department=department; ptr->m_Wage=wage; } else{cout<<"没找到此职工的记录,无法修改。"<<endl; }return Head;
} employee* employee::Del(employee* Head)
{ string code;employee* parentptr; employee* ptr_front; //ptr_front=Search_Unique_Front(Head); cout<<"请输入职工代码:";cin>>code;parentptr= Head;ptr_front = Head->Next;while(ptr_front){if(ptr_front->m_Code==code){parentptr->Next = ptr_front->Next;delete ptr_front;return Head;}parentptr = ptr_front;ptr_front = ptr_front->Next;}return Head;
}void employee::Save_ByFile(employee* Head,fstream& ofile)
{ employee* pNode; pNode=Head->Next; ofile.clear();//清除文件结束状态。 while(pNode) { ofile<<setw(10)<<left<<pNode->m_Code <<setw(10)<<left<<pNode->m_Name <<setw(10)<<left<<pNode->m_Year <<setw(10)<<left<<pNode->m_Sex <<setw(10)<<left<<pNode->m_Post <<setw(10)<<left<<pNode->m_Department <<setw(10)<<left<<pNode->m_Wage<<endl;//setw(10)表示占10个字符位置。 pNode=pNode->Next; } cout<<"数据文件保存成功!"<<endl;
} employee* employee::Sort(employee* Head)
{//我创建的是带头节点的链表。用直接插入法。 if((Head->Next==NULL)||(Head->Next->Next==NULL))//此步条件判断非常有价值。 { cout<<"数据节点数少于2个,不用排序!"<<endl; return Head; } //-----------第二步; employee* ptr; employee* ptr_F; employee* ptr_N; ptr=Head->Next->Next; ptr_F=Head; Head->Next->Next=NULL;//到此,分成了两个链表。 //第三步。 while(ptr) { ptr_N=ptr->Next; ptr_F=Head;//ptr_F的归位。 while(ptr_F->Next) { if(ptr->m_Wage>ptr_F->Next->m_Wage) { ptr->Next=ptr_F->Next; ptr_F->Next=ptr; break; }else { ptr_F=ptr_F->Next; } }if(ptr_F->Next==NULL) { ptr->Next=ptr_F->Next; ptr_F->Next=ptr;//表示插到有序链表的最后面了。 } ptr=ptr_N;//归位,准备下一次排序。 }cout<<"从高到低,排序成功!"<<endl; return Head;
} int main()
{ employee* st = new employee();st=st->Create(st); fstream iofile; iofile.open("d:\\iofile.txt",ios_base::in|ios_base::out|ios_base::app);//文件以三种方式打开。 if(!iofile) { cout<<"打开文件失败!"<<endl; return -1; } int menu; while(1) { cout<<"*****************************************************"<<endl; cout<<"*====================菜单选顶=======================*"<<endl; cout<<"* *"<<endl; cout<<"* 1.注册职工 2.修改信息 3.删除信息 4.信息查询 *"<<endl; cout<<"* 5.保存文件 6.工资排行 7.信息显示 0.退出系统 *"<<endl; cout<<"* *"<<endl;cout<<"*****************************************************"<<endl; cout<<endl<<"请选择相应操作菜单项:"; cin>>menu; while(cin.fail()) { cout<<"请选择正确的菜单选项。"<<endl; cin.clear(); fflush(stdin); cin>>menu; } switch(menu) { case 0: cout<<"成功退出系统!"<<endl; return 0; case 1: st=st->Add(st); break; case 2: st=st->Modify(st); break; case 3: st=st->Del(st); break; case 4: st->Search(st); break; case 5: st->Save_ByFile(st,iofile); break; case 6: st->Sort(st); break; case 7: st->Display_List(st); break; default: cout<<"请选择正确的菜单项进行操作。多谢合作!"<<endl; } } st->Rel(st); iofile.close(); return 0;
}
也希望能帮到正在做实训报告的你,欢迎留言区讨论。
分享:C语言学生成绩管理系统设计 《C语言程序设计》实训报告
扫描下方公众号,发送 成绩系统 4个字,获取下载实训源码。
感谢关注,共同进步!
职工信息管理系统C++代码相关推荐
- 职工信息管理程序设计c语言,C语言程序设计职工信息管理系统.docx
C语言程序设计职工信息管理系统.docx 1 数信学院数信学院 课程设计报告课程设计报告 课程名称课程名称C C 语言程序设计语言程序设计_ _ 题目名称题目名称职工信息管理系统职工信息管理系统 学生 ...
- python课题设计职工信息管理系统_用Python实现职工信息管理系统
想要实现一个职工管理系统 首先我们看一下想要实现什么功能 最基础的增删改查肯定要实现的 然后增加一下数据显示.数据排序.数据统计功能 下面直接上代码 增加职工数据 # 接收用户收入 id = inpu ...
- 职工系统c语言链表,C语言职工信息管理系统(链表)..doc
<程序设计综合训练> 设 计 报 告 专 业: 数字媒体技术 班 级: 11媒体Z 学 号: 姓 名: 朱毅 指导教师: 陈湘军 陈明霞 成 绩: 计算机工程学院 2012年10月 第一部 ...
- 数据结构课程设计报告-职工信息管理系统
"数据结构"课程设计报告 系 (院): 信息工程学院 设计题目: 员工管理系统 专业班级: 计算机科学与技术1401B 小 ...
- 简单的职工信息管理系统(运用了存储过程,和datagridview,dataset的设置)
1.问题描述: 对职工信息进行管理,包括:职工信息的录入.显示.查询.修改.删除,要求有用户登录等windows窗口,用户数据存在数据库里.要求有用户登录等windows窗口,用户数据存在数据库里,并 ...
- 职工信息管理系统c语言报告,职工信息管理系统(c语言实现)
功能实现: (1)系统以菜单方式工作 (2)职工信息录入功能(职工信息用文件保存)--输入 (3)职工信息浏览功能--输出 (4)职工信息查询功能--算法 查询方式:按姓名查询/按职工号查询 (5)职 ...
- c语言课程设计 职工信息管理系统,C语言课程设计-职工信息管理系统程序设计.doc...
C语言课程设计-职工信息管理系统程序设计 C语言课程设计报告 设计题目:职工信息管理系统程序设计 课程设计评语2 目 录3 1.课程论文题目4 2.程序设计思路4 3.功能模块图5 4.数据结构设计5 ...
- C语言 课程设计——职工信息管理系统
C语言 课程设计--职工信息管理系统 提示:该课程设计是本人第一次制作,有诸多不足之处,希望王对你有些许帮助!!! 文章目录 C语言 课程设计--职工信息管理系统 前言 一.首先定义一个结构体数组 二 ...
- C语言模拟实现职工信息管理系统
代码实现如下: #include <stdio.h>//输入.输出指令 #include <malloc.h>//在内存中动态的分配size字节的存储区 #include &l ...
- C语言期末大作业15个(附源码)成绩管理系统、图书馆管理系统、学生打卡系统、超市信息管理系统、学生考勤系统、职工信息管理系统源码、歌曲信息管理系统、超市收款系统等等
C语言期末作业15个(上) 1.C语言学生成绩管理系统 2.C语言图书馆管理系统(复杂版) 3.C语言图书馆管理系统(简洁版) 4.C语言停车管理系统(两个版本) 5.C语言学生考勤系统 6.C语言班 ...
最新文章
- CSS溢出-x:可见; 和溢出-y:隐藏; 导致滚动条问题
- php开启path_info,Nginx + php-fpm 开启 PATH_INFO 模式
- python中二维数组的建立,输入和输出
- 论文解读 | 基于递归联合注意力的句子匹配模型
- [转载]acm进阶之路
- 排列组合十一个性质公式及证明,错排数公式及证明
- Nginx系列--01基本架构及其安装
- java演练0920 我们9203班 02 随机点名功能实现
- RTT时钟管理篇——软硬定时器理解(一)
- 公司绝不会告诉你的20大秘密 转载
- 3D目标检测-二阶段方法(region proposal-based Methods)之基于语义分割的方法(Segmentation based)解读
- 「魔窗」问题终于解决了
- 机房教学管理系统/机房管理系统
- ps cc2019版为什么做图一复制图层就卡死_你所不知道的十个被藏起来的PS功能,超级实用!...
- 利用递归查询部门表,以树(tree)的结构展示返回给前端出来,一般都要有这种需求的
- GitHub入门之一:使用github下载项目
- Flink stream load 方式写入doris
- Fine-Grained Representation Learning and Recognition by Exploiting Hierarchical Semantic Embedding
- Python 与神奇的数学之汉诺塔
- 如何提高沟通表达能力
热门文章
- Linux 修改 Tomcat 编码
- 服务器bios界面usb无线网卡,修改BIOS添加网卡白名单问题
- android纯净版输入法,百度输入法纯净版
- .pem和.pk8是什么文件?(转载)
- 计算机3级数据库技术考哪些内容,计算机考试三级数据库技术考试大纲
- 全国计算机等级考试三级数据库技术考试大纲(2018 年版)
- Unity3D脚本编程——使用C#语言开发跨平台游戏
- 数据挖掘与python实践心得体会_数据挖掘心得体会
- 国内在线查看Java源码(支持下载)
- 使用Java中面向对象的思想来实现两个人的一场战斗