C++实现简单的职工管理系统实训代码

本文实例为大家分享了C++职工管理系统实例代码

1.单个职工的头文件
staff.h

#ifndef STAFF_H_INCLUDED
#define STAFF_H_INCLUDED

//结构体创建
struct staff
{
  char ID[10];
  char name[10];
  char sex[10];
  int pay;
  int reward;
  int factpay;
};
//自定义结构体

typedef struct staff staff;
//单个职工信息创建
staff Createstaff();
//单个职工信息输出
void Displaystaff(staff staff);
//修改职工信息
void updatestaff(staff *Staff);

#endif // STAFF_H_INCLUDED

单个职工的cpp文件
staff.cpp

#include <stdio.h>
#include <stdlib.h>
#include "staff.h"

staff Createstaff()
{
  staff staff;
  printf("-----------ID-----------\n");
  scanf("%s", staff.ID);
  printf("-----------name-----------\n");
  scanf("%s", staff.name);
  printf("-----------sex-----------\n");
  scanf("%s", staff.sex);
  printf("-----------pay-----------\n");
  scanf("%d", &staff.pay);
  printf("-----------reward-----------\n");
  scanf("%d", &staff.reward);
  staff.factpay = staff.pay + staff.reward;
  printf("\n");

  return staff;

}

void Displaystaff(staff staff)
{
  printf("%10s", staff.ID);
  printf("%10s", staff.name);
  printf("%10s", staff.sex);
  printf("%10d", staff.pay);
  printf("%10d", staff.reward);
  printf("%10d", staff.factpay);
  printf("\n");
}

void updatestaff(staff *Staff)
{
  printf("-----请显示要修改的数据--------\n");
  Displaystaff(*Staff);

  printf("-------请输入要修改的数据---------");
  printf("-----------pay-----------\n");
  scanf("%d", &Staff->pay);
  printf("-----------reward-----------\n");
  scanf("%d", &Staff->reward);
  Staff->factpay = Staff->pay + Staff->reward;
  printf("\n");

}

 2.链表的创建
链表的头文件
linklist.h

#ifndef LINKLIST_H_INCLUDED
#define LINKLIST_H_INCLUDED
#include "staff.h"
//链表结点创建
struct Node
{
  struct staff Staff;
  struct Node *next;
};
//自定义结点

typedef struct Node node;
typedef struct Node *linklist;
//创建链表
node *Createlinklist();
//输出链表中的数据
void Displaylinklist(node *head);
//按职工号查找职工
node *searchnode(node *head, char ID[]);
//按姓名查找职工
void searchnodebyname(node *head, char name[]);
//删除职工
void delenode(linklist head, char ID[]);
//插入职工
void insertnode(linklist head, staff Staff);
//链表销毁
void distroylinklist(linklist head);

#endif // LINKLIST_H_INCLUDED

链表创建的源程序
linklist.cpp

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "staff.h"
#include "linklist.h"
node *Createlinklist()
{
  node *head, *p;

  head = (node *)malloc(sizeof(node));
  head->next = NULL;
  staff a[100] = {{"11111", "mmm", "f", 12000, 2000, 14000},
        {"22222", "aaa", "m", 13000, 3000, 16000},
        {"33333", "sss", "f", 15000, 3000, 18000},
        {"44444", "fff", "m", 17000, 8000, 25000},
        {"55555", "ggg", "f", 20000, 5000, 25000}};
  for(int i = 0; i<5; i++)
  {
    p = (node *)malloc(sizeof(node));
    p->Staff = a[i];

    p->next = head->next;
    head->next = p;
  }
  return head;
}

void Displaylinklist(node *head)
{
  linklist p;
  p = head->next;
  while(p!=NULL)
  {
    Displaystaff(p->Staff);
    p = p->next;
  }
}
node *searchnode(node *head, char ID[])
{
  linklist p;
  p = head;
  while(p!=NULL&&strcmp(p->next->Staff.ID, ID)!=0)
  {
    p = p->next;
  }
  return p->next;
}

void searchnodebyname(node *head, char name[])
{
  linklist p;
  p = head;
  while((p!=NULL)&&(strcmp((p->next)->Staff.name, name)!=0))
  {
    p = p->next;
  }
  printf("-----´ËÈËΪ---------\n");

  printf("%s", p->next->Staff.name);
  printf("\n");

}

void delenode(linklist head, char ID[])
{
  linklist p;
  p = head;
  while(p->next&&(strcmp(p->next->Staff.ID, ID)!=0))
  {
    p = p->next;
  }
  if(p->next)
  {

    p->next = p->next->next;
  }
  else
  {
    printf("=====NO FOUND========\n");
  }
}
void insertnode(linklist head, staff Staff)
{
  linklist p;
  p = (node *)malloc(sizeof(node));
  p->Staff = Staff;

  p->next = head->next;
  head->next = p;

}
void distroylinklist(linklist head)
{
  linklist p;
  p = head;
  while(p!=NULL)
  {
    p = p->next;
    free(p);
  }
}

3.文件存盘
file.h

#ifndef FILE_H_INCLUDED
#define FILE_H_INCLUDED
#include "linklist.h"
#include "staff.h"
//职工信息存盘
void saveinformation(linklist head );
//职工信息加载
void loadinformation(linklist head );

#endif // FILE_H_INCLUDED

file.cpp
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "file.h"
#include "linklist.h"
#include "staff.h"

void saveinformation(linklist h )
{
  FILE *fp;
  linklist p;

  if ( (fp = fopen("stu.txt","w") ) == NULL)
  {
    printf("Failure to open stu.txt!\n");
    exit(0);
  }

  for ( p = h->next; p; p=p->next )
  {
    fwrite( &(p->Staff), sizeof(node), 1, fp);
  }

  fclose(fp);
}

void loadinformation( linklist h )
{
  FILE *fp;
  staff nodeBuffer;

  if ((fp = fopen("stu.txt","r")) == NULL)
  {
    printf("\n\t数据文件丢失或为首次运行, 将加载测试数据\n");
    return ;
  }

   while( fread(&nodeBuffer, sizeof(node), 1, fp)!=0 )
  {
    insertnode(h, nodeBuffer);
  }

}

4.主函数
mainmeun.cpp

#include <stdio.h>
#include <stdlib.h>
#include "linklist.h"
#include "staff.h"
#include "file.h"
void mainmeun(linklist head);
void searchmenu(linklist head);

int main(void)
{
  linklist head=NULL;
  //int n;

  //printf("------请输入你要存的数据----------\n");
  //scanf("%d", &n);
  head = Createlinklist();
  system("cls");
  //Displaylinklist(head);

  mainmeun(head);
  printf("\n\n");
  //loadinformation(head);
  //saveinformation(head);
  return 0;
}
void mainmeun(linklist head)
{
  linklist p;

  char ID[10];
  //char name[10];
  staff Staff;
  int selection;
  int flag = 1;
  do
  {
    printf("=================职工管理系统===================\n");
    printf("==========1.链表输出=====2.数据查询=====\n");
    printf("=======3.数据删除===4.数据修改=====5.添加数据======\n");
    printf("=======6.链表销毁===7.信息存盘=====8.放弃存盘=====\n");
    printf("==================================================\n");

    printf("======请选择功能(1~8):");
    scanf("%d", &selection);
    switch(selection)
    {
    case 1:
      Displaylinklist(head);
      break;
    case 2:
      searchmenu(head);

      break;
    case 3:
      printf("=========请输入工号==========\n");
      scanf("%s", ID);
      delenode(head, ID);
      break;
    case 4:
      printf("=========请输入工号==========\n");
      scanf("%s", ID);
      p = searchnode(head, ID);
      updatestaff(&(p->Staff));

      break;
    case 5:
      printf("========添加数据=========");
      Staff = Createstaff();
      insertnode(head, Staff);
      break;
    case 6:
      distroylinklist(head);
      break;
    case 7:
      loadinformation(head);
      saveinformation(head);

      break;
    case 8:
      flag = 0;
      break;

    }
  }while(flag == 1);
  printf("========BYE=====BYE======");

}
void searchmenu(linklist head)
{
  linklist p;
  int flag = 1;
  char ID[10];
  char name[10];

  do
  {
    printf("=========查找菜单===========\n");
    printf("===1.ID======2.name====3.退出====\n");
    printf("=================================\n");

    int selection;
    printf("==请选择功能(1~3):");
    scanf("%d", &selection);
    switch(selection)
    {
    case 1:
      printf("=====请输入ID=======\n");
      scanf("%s", ID);
      p = searchnode(head, ID);
      Displaystaff(p->Staff);
      break;

    case 2:
      printf("=====请输入name======\n");
      scanf("%s", name);
      searchnodebyname(head, name);
      break;

    case 3:
      flag = 0;
      break;
    }
    system("pause");
    system("cls");

  }while(flag == 1);
}

以上就是本文的全部内容,希望对大家实现C++职工管理系统有所帮助,启发。

推荐几篇文章:

C++实现简单的图书管理系统

C++实现简单的职工信息管理系统

C++基础学生管理系统

(0)

相关推荐

  • C++基础学生管理系统

    本文实例为大家分享了C++基础学生管理系统的实现代码,供大家参考,具体内容如下 适用于c++6.0,codeblocks等常用工具 1. 链表处理部分 #include<stdio.h> #include<string.h> #include<stdlib.h> #include"linklist.h" #include"elem.h" void dispnode(linklist h) { node *p; p=h->ne

  • C++学生信息管理系统

    本文实例为大家分享了C++学生信息管理系统源码,供大家参考,具体内容如下 1. tea_list.c #include<stdio.h> #include<stdlib.h> #include<string.h> #include"teacher.h" int sq_tea ; PTEA head = NULL ; FILE *fp ; int tea_llopen(const char* path)//打开文件 { fp=fopen(path,&q

  • 基于C++语言实现机动车违章处罚管理系统

    关键代码如下所示: #include <iostream> #include <iomanip> #include <fstream> #include <string> #include <list> using namespace std; class Violation{ public: Violation(){points=fine=0; number=carNumber=tel=location=isSpot =police=camer

  • C++实现简单的职工信息管理系统

    功能主模块描述 模块一:增加人员函数Add():增加职工基本信息. 模块二:删除人员函数Delete():删除指定的职工的基本信息以及薪酬. 模块三:修改人员函数Modify():修改指定的职工基本信息. 模块四:查询职工信息函数Search():查询指定的职工信息以及薪酬. 模块五:排序职工信息函数Sort():职工信息排序功能实现 模块六:基础数据设置函数Set():设置五类职位的基本薪酬. 模块七:数据存盘,载入函数Save()以及Load():储存职工基本信息,薪酬以及五类职位的基本薪酬

  • C++实现简单的学生管理系统

    C++实现简单的学生管理系统 //Student.cpp #include<iostream> using namespace std; struct Stu { char no[10]; char name[16]; int math; int chi; double ave; }; class Student { public: Stu st; Student * next; public: Student(){} Student(Stu s) { st=s; next=NULL; st.

  • C++实现银行排队系统

    本文实例为大家分享了C++实现银行排队系统的具体代码,供大家参考,具体内容如下 #include <stdio.h> #include <string.h> #include <stdlib.h> int cnt=0; //当日客流量 int sum=0; //当日客户排队总时间 typedef struct pnode{ int number; int cometime; int leavetime; struct pnode *next; }*person; typ

  • C++实现简单的信息管理系统

    本文为大家分享C++实现简单的信息管理系统,小编之前在学习的时候也要做一些管理系统,在网上查了许多资料,现在我把资料分享给大家,希望能够帮助到大家. #include <stdio.h> #include <stdlib.h> #include "file.h" void savaList(Node *head)/**把用户录入的数据存储到文件里面去方便下次读取*/ { FILE *fp=fopen("data\\data.txt" ,&qu

  • C++实现简单的图书管理系统

    今天再为大家介绍另一个常用的管理系统--图书管理系统,希望大家可以亲自动手实践一下,下面就与大家一起分享我的劳动成果. 图书信息包括:登录号.书名.作者名.分类号.出版单位.出版时间.价格等.试设计一图书信息管理系统,使之能提供以下功能: (1)图书信息录入功能(图书信息用文件保存) (2)图书信息浏览功能 (3)查询和排序功能:(至少一种查询方式)         .按书名查询         .按作者名查询 (4)图书信息的删除与修改 分享代码如下 #include<iostream.h>

  • C++实现简单的职工管理系统实训代码

    本文实例为大家分享了C++职工管理系统实例代码 1.单个职工的头文件 staff.h #ifndef STAFF_H_INCLUDED #define STAFF_H_INCLUDED //结构体创建 struct staff { char ID[10]; char name[10]; char sex[10]; int pay; int reward; int factpay; }; //自定义结构体 typedef struct staff staff; //单个职工信息创建 staff C

  • C语言实现简单员工工资管理系统

    本文实例为大家分享了C语言实现简单员工工资管理系统的具体代码,供大家参考,具体内容如下 (一)公司现状分析 1.公司主要有经理.技术员.销售员.销售经理4类岗位人员,他们都有基本信息:职工号.姓名.性别.部门.岗位.工龄.当月工资等.一个部门最多只能有一个销售经理,一个部门可以有多个销售员,一个部门可以有若干个经理和若干技术员. 2.员工数据包括基本资料数据和工资数据两部分,员工基本资料数据包括职工号.姓名.性别.部门.岗位.工龄:员工工资数据包括工作时间.小时工资.销售额.底薪.当月工资. 3

  • C#实现简单学生信息管理系统

    本文实例为大家分享了C#实现简单学生信息管理系统的具体代码,供大家参考,具体内容如下 一.运行环境windows,使用vs编译软件 二.主要功能 登录.添加学生信息.修改学生信息.删除学生信息.查询学生信息 三.实现步骤 1.登陆界面功能实现 老规矩,先贴下主要代码: //构造方法 public Login() { InitializeComponent(); this.label3.Parent = this; this.label1.BackColor = Color.Transparent

  • java实现简单的图书管理系统

    本文实例为大家分享了java实现简单的图书管理系统的具体代码,供大家参考,具体内容如下 一.项目分布 Book类: 定义了书的一些属性(书名,作者,价格,分类,状态)并且写了属性的get.set方法 Library类: 写了登录函数(1.普通用户,2.管理员,3.退出系统), Person类:定义的人的属性(姓名,性别,年龄)并且写了属性的get.set方法,定义了一些书. operate接口:操作的接口,操作方法:查询/查阅,删除/借阅,增加/还书,显示书籍列表 Root类:继承了Person

  • C++实现职工管理系统

    本文实例为大家分享了C++实现职工管理系统的具体代码,供大家参考,具体内容如下 workermanager.h #pragma once//防止头文件重复包含 #include <iostream> #include "worker.h" using namespace std; #include "boss.h" #include "employee.h" #include "manager.h" #includ

  • C++实现简单班级成绩管理系统

    本文实例为大家分享了C++实现简单班级成绩管理系统的具体代码,供大家参考,具体内容如下 #include<iostream> #include<fstream> #include<cstring> #include <stdlib.h> #include <conio.h> using namespace std; int n=0; class Student {public:       string name;     string num;

  • 基于C++实现职工管理系统

    本文实例为大家分享了C++实现职工管理系统的具体代码,供大家参考,具体内容如下 1.管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 利用C++来实现一个基于多态的职工管理系统 公司中职工分为三类:普通员工.经理.老板,显示信息时,需要显示职工编号.职工姓名.职工岗位.以及职责 普通员工职责:完成经理交给的任务 经理职责:完成老板交给的任务,并下发任务给员工 老板职责:管理公司所有事务 管理系统中需要实现的功能如下: 退出管理程序:退出当前管理系统 增加职工信息:实现批量添加职工功能,

  • C++实现简单的通讯录管理系统

    本文实例为大家分享了C++实现简单的通讯录管理系统的具体代码,供大家参考,具体内容如下 案例描述: 通讯录是一个可以记录亲人.好友信息的工具.本教程主要利用C++来实现一个通讯录管理系统系统中需要实现的功能如下: 添加联系人:向通讯录中添加新人,信息包括(姓名.性别.年龄.联系电话.家庭住址)最多记录1000人 显示联系人:显示通讯录中所有联系人信息 删除联系人:按照姓名进行删除指定联系人 查找联系人:按照姓名查看指定联系人信息 修改联系人:按照姓名重新修改指定联系人 清空联系人:清空通讯录中所

  • 基于C语言实现简单学生成绩管理系统

    本文实例为大家分享了C语言实现简单学生成绩管理系统的具体代码,供大家参考,具体内容如下 一.系统主要功能 1.密码登录2.输入数据3.查询成绩4.修改成绩5.输出所有学生成绩6.退出系统 二.代码实现 #include <stdio.h> #include <stdlib.h> #include <string.h> #define N 10 struct student {     char num[10];     char name[20];     int ol

  • C++实现简单版图书管理系统

    本文实例为大家分享了C++实现简单版图书管理系统的具体代码,供大家参考,具体内容如下 1.系统需求 图书管理系统是一个可以记录图书借记和存储的工具. 本教程主要利用C++来实现一个图书管理系统 系统中需要实现的功能如下: 添加书籍:向图书管理系统中添加新书,信息包括(书名.书的价格.书的编号)最多记录1000本 显示书籍:显示图书的所有书籍信息 书籍删除:按照书名进行删除指定书籍 查找书籍:按照姓名查看指定书籍信息 修改书籍:按照姓名重新修改指定书籍 清空书架:清空书架中所有信息 退出图书管理系

随机推荐