企业信息管理系统
发布时间:2024-11-28
发布时间: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) {
上一篇:怎样加强公司管理