手机版

企业信息管理系统

发布时间:2024-11-28   来源:未知    
字号:

只是个简化版,只是对部门与员工的基本信息进行操作,主要使用C语言。

南京工业大学信息科学与工程学院

实 习 报 告

( 2013 — 2014 学年第 一 学期)

课程名称:__ _EMIS项目 _____

班 级:__ XXXX______

学 号:__ XX __ ___ 姓 名:_____ XXXXX________ 指导教师: XXXX _

2013 年 1 2 月

只是个简化版,只是对部门与员工的基本信息进行操作,主要使用C语言。

一、 前言

企业管理软件是面向企业的,能够帮助企业管理者优化工作流程,提高工作效率的信息化系统。企业管理软件重视系统功能的全面性,流程的可控性,技术的先进性,系统的易用性。2012年之后,中国企业迎来信息化成熟应用的阶段,中国管理软件产业也因势而变,迎来“一体化”浪潮。 因此企业管理软件很有发展前景。

二、 功能描述

本项目只是一个简化的企业管理系统,主要用于实现对企业基本信息的管理。具体包括对企业部门与企业员工的管理。其中企业部门管理包括增加部门、删除部门、列出部门;企业员工管理包括增加员工、删除员工、修改员工、列出部门员工、列出所有员工。当然在这些软件功能实现在之前,我给它添加了一个设置有用户名与密码的登录界面。

三、 软件环境

Windows下VC6.0或Linux下终端vi编译器,我开始选择的是VC6.0,可有些语言命令不识别,于是改为使用linux下终端vi编译器。 四、 课题设计 1. 系统模块图

只是个简化版,只是对部门与员工的基本信息进行操作,主要使用C语言。

管理人员通过软件系统对企业部门与员工进行基本信息操作

2程序流程图

1.增加部门

2.删除部门

只是个简化版,只是对部门与员工的基本信息进行操作,主要使用C语言。

3.列出部门

4.增加员工

5.删除员工

6.修改员工信息

7.列出部门员工

8.列出所有员工

0.返回(即结束)

2. 定义结构体

/***** 定义员工结构体 ****/ typedef struct{ char Name[20]; //姓名 char Gender[20]; //性别 int Age; //年龄 int EmpId; //ID号 }Employee;

/*** 定义部门结构体 *****/ typedef struct{ char m_strName[20]; //部门名称 int DeptId; //部门ID号 int size; //部门员工数 //Employee link; }Department; 方便程序数据调用。

3. 函数功能描述 1. void DengLu()

void DengLu()函数用于设置登录密保。输入用户名与密码,有三次机会,三次都错就显示 登录失败!无法打开系统管理界面。登录成功就可以调用int ShowMenu()函数,进入系统管理界面。

只是个简化版,只是对部门与员工的基本信息进行操作,主要使用C语言。

2. int ShowMenu()

int ShowMenu()函数用于显示管理系统界面,并且返回键盘输入的0~8之间的数字 3. void Menu ()

void Menu ()函数调用int ShowMenu()函数的返回值,通过switch..case下面语句实现功能选择。 4. void addDept ()

void addDept ()函数用于实现增加部门的操作。选择功能【1】进入增加部门操作,输入部门ID、部门名称,则显示添加成功,若输入部门ID已存在,则显示ID存在。如图所示:

只是个简化版,只是对部门与员工的基本信息进行操作,主要使用C语言。

5. void deleteDept ()

只是个简化版,只是对部门与员工的基本信息进行操作,主要使用C语言。

void deleteDept ()函数用于删除部门。选择功能【2】进入删除部门操作,输入部门ID,若ID存在就显示删除成功;否则,显示ID无效。如图所示:

只是个简化版,只是对部门与员工的基本信息进行操作,主要使用C语言。

6. void listDept ()

void listDept ()函数用于实现列出部门信息功能。选择功能【3】进入列出部门操作,就会显示当前部门信息。如上图所示。 7. void addEmp ()

void addEmp ()函数用于实现增加员工功能,选择功能【4】进入增加员工操作。输入部门ID,若存在则输入员工ID,若存在则继续输入员工ID,直至不存在则输入员工姓名、性别、年龄。若部门ID不存在则显示部门ID无效。如图所示:

只是个简化版,只是对部门与员工的基本信息进行操作,主要使用C语言。

8. void deleteEmp ()

void deleteEmp ()函数用于实现删除员工功能。选择功能【5】进入删除员工操作,输入员工ID,若存在则显示删除成功;否在显示ID无效。如图所示:

只是个简化版,只是对部门与员工的基本信息进行操作,主要使用C语言。

9. void modifyEmp ()

void modifyEmp ()函数用于实现修改员工信息功能,选择功能【6】进入修改员工信息操作,输入员工ID,若存在,则再次输入员工姓名、性别、年龄,提示修改成功;若不存在,则显示ID无效。如图所示:

只是个简化版,只是对部门与员工的基本信息进行操作,主要使用C语言。

10. void listEmp ()

void listEmp ()函数用于实现列出部门员工信息功能,选择功能【7】进入列出部门员工操作,输入部门ID,若存在显示当前部门内的员工信息;否则显示ID无效。如图所示

11. void listAllEmp ()

void listAllEmp ()函数用于实现列出所有员工信息功能,选择功能【8】进入列出部门员工操作,显示当前所有的员工信息。如上面第9个函数里的图所示。

12. 文件读写等操作。

fread/fwrite() 函数用于对文件进行读写操作,本次项目程序主要就是熟练并且准确地对文件进行读写操作。fopen() 函数用于

只是个简化版,只是对部门与员工的基本信息进行操作,主要使用C语言。

打开文件。mv命令用于文件移动(剪切复制)。cp命令用于文件拷贝。fseek()函数用于指定文件操作位置。 五、 代码实现

首先写emis.h头文件:

#ifndef __EMIS_H__ //防止重复包含

#define __EMIS_H__

/***** 定义员工结构体 ****/ typedef struct{ char Name[20]; //姓名 char Gender[20]; //性别 int Age; //年龄 int EmpId; //ID号 }Employee;

/*** 定义部门结构体 *****/ typedef struct{

char m_strName[20]; //部门名称 int DeptId; //部门ID号 int size; //部门员工数 //Employee link; }Department; int ShowMenu(); void DengLu();

//void ShowMenu(); //int func(); void addDept (); void deleteDept (); void listDept (); //void addEmp (); void addEmp1 (); void deleteEmp (); void modifyEmp (); void listEmp ();

void listAllEmp (void); void Menu ();

#endif //emis.h

然后写manger.c主体函数: #include<iostream> #include<stdio.h> #include<stdlib.h> #include<string.h> #include<iomanip>

只是个简化版,只是对部门与员工的基本信息进行操作,主要使用C语言。

#include"emis.h" using namespace std;

/****** 登录界面 ************/ void DengLu(){ int num = 0; char buf[10]; cout<<endl;

cout<<" EMIS系统登陆 "<<endl; cout<<"-------------------"<<endl; for (num = 1;num <= 3;num++) { cout<<"用户名:"<<flush; fgets(buf, 10, stdin);

if (strcmp(buf, "wanghui\n")) { continue; }

cout<<"密码:"<<flush; fgets(buf, 10, stdin);

if (strcmp(buf, "123456\n")) { continue; }

break; }

if (num <= 3) { Menu(); } else {

cout<<"登录失败!"<<endl; } }

/***** 管理系统界面 *******/ int ShowMenu(){

//void ShowMenu(){ cout << endl; cout << "运营管理子系统" << endl; cout << "----------------" << endl;

cout << "[1] 增加部门" << endl; cout << "[2] 删除部门" << endl; cout << "[3] 列出部门" << endl; cout << "[4] 增加员工" << endl; cout << "[5] 删除员工" << endl; cout << "[6] 修改员工信息" << endl; cout << "[7] 列出部门员工" << endl; cout << "[8] 列出所有员工" << endl; cout << "[0] 返回" << endl;

只是个简化版,只是对部门与员工的基本信息进行操作,主要使用C语言。

cout << "----------------" << endl; //}

//int func(){ cout << "请选择:" << flush; cin.clear (); char strEnter[10]; fgets(strEnter,10,stdin); //选择功能 if (!strcmp(strEnter, "1\n")) return 1; if (!strcmp(strEnter, "2\n")) return 2; if (!strcmp(strEnter, "3\n")) return 3; if (!strcmp(strEnter, "4\n")) return 4; if (!strcmp(strEnter, "5\n")) return 5; if (!strcmp(strEnter, "6\n")) return 6; if (!strcmp(strEnter, "7\n")) return 7; if (!strcmp(strEnter, "8\n")) return 8; if (!strcmp(strEnter, "0\n")) return 0; return -1; }

/******* 增加部门 ************/

void addDept () { Department dept; int oldid = 0,size = 0; dept.size = 0;

FILE *p_file = fopen("a.bin", "a+b"); //打开a.bin文件 if (p_file) { //打开成功 cout<<endl<<"请输入部门ID:"<<flush; cin>>dept.DeptId; scanf("%*c");

rewind(p_file); //从文件头开始 while (size = fread(&oldid, sizeof(int), 1, p_file)) { if (dept.DeptId == oldid) { break; }

fseek(p_file, 24, SEEK_CUR); }

只是个简化版,只是对部门与员工的基本信息进行操作,主要使用C语言。

fseek(p_file, 0, SEEK_END); if (size) {

cout<<"这个部门ID已存在!"<<endl; } else{

cout << endl << "请输入部门名称:" << flush; cin >> dept.m_strName;

if (strlen(dept.m_strName) == 19 && dept.m_strName[18] != '\n') { scanf("%*[^\n]"); scanf("%*c"); } cin.clear (); //清除错误状态 cin.ignore (1024, '\n'); //清除输入缓冲中字符

fwrite(&dept.DeptId, sizeof(int), 1, p_file); //记录部门ID fwrite(dept.m_strName, sizeof(char), 20, p_file); //记录部门名称 fwrite(&dept.size, sizeof(int), 1, p_file); //记录部门人数 cout<<"增加部门成功!"<<endl; }

fclose(p_file); p_file = NULL; } }

/******* 删除部门 ************/ void deleteDept () { Department dept; int flog=0; int oldid = 0,size = 0; system("cp a.bin d.bin"); FILE *p_file = fopen("d.bin", "rb"); FILE *p_file1= fopen("a.bin","wb"); if (p_file) {

cout<<"请输入部门ID:"<<flush; cin>>dept.DeptId; scanf("%*c");

// rewind(p_file); //从文件头开始 fseek(p_file,0,0);

//printf("%d\n",dept.DeptId);

while (size = fread(&oldid, sizeof(int), 1, p_file)) { // printf("oldid=%d\n",oldid);

if (dept.DeptId == oldid) { // break; flog=1;

fseek(p_file,24,1);

只是个简化版,只是对部门与员工的基本信息进行操作,主要使用C语言。

//printf("shanchu chenggong\n");

cout << "删除部门成功!" << endl; continue; } else{

int deptid;

char name[20]={}; int sum;

fseek(p_file,-4,1);

fread(&deptid,4,1,p_file); fread(name,1,20,p_file); fread(&sum,4,1,p_file); fwrite(&deptid,4,1,p_file1); fwrite(name,1,20,p_file1); fwrite(&sum,4,1,p_file1); }

// fseek(p_file, 24, SEEK_CUR); }

// }

if(!flog){

cout << "无效部门ID!" << endl; cin.clear (); //清除错误状态 cin.ignore (1024, '\n'); //清除输入缓冲中字符 }

//fseek(p_file, 0, SEEK_END); fclose(p_file); fclose(p_file1); p_file1=NULL; p_file = NULL; }

system("rm d.bin"); }

/******* 列出部门信息 ************/

void listDept () { //要修改 Department dept; int size=0; cout << endl << left << setw (11) << "部门ID" << setw (22) << "部门名称" << "员工人数" << endl; cout << "-----------------------------------------" << endl; FILE *p_file = fopen("a.bin", "a+b"); if (p_file) {

企业信息管理系统.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)