第一篇:2014年系统辨识大作业
系统辨识大作业
1、大作业的具体要求:
(1)要求简单介绍和对比分析本课程所学过的辨识方法,阐述系统辨识的基本原理
和要素。
(2)针对PPT中讨论的辨识方法的原理和相关特性进行详细阐述,选用辨识对象,根据欲辨识对象的性能和特点,从输入信号、数据模型、辨识算法等方面设计辨识方案,阐明理由。
(3)仿真验证辨识方案的正确性和可行性,建议与其他方法进行对比分析,仿真验
证你所采用方法的优越性。
(4)要求编制程序,并附上程序清单;
(5)仿真结果以数据和曲线的形式表示,并对每次算法的仿真结果进行分析,得出
结论;
(6)用辨识结果来预报系统输出误差e(k)=y(k)-(k),并画出e(101)-e(400)的曲线图。
(7)图表必须规范,按照研究生毕业论文或你们所参考的期刊的小论文的格式,但可以
不分栏!
(8)所有的公式必须用公式编辑器编写并编号,不能拷贝。论文所有正文中中文字都用宋体小四,各小结中文小标题用小四黑体,正文中的英文和数字用小四Time New Roman;
(9)需要在封面上署名姓名、学号和题目;
(10)参考文献不得低于5篇,求均必需在论文中引用
(11)所写论文必须完整、从引言、问题的提出(辨识的对象)、该类系统所适用的辨识方法、辨识方案的设计(输入信号、数据模型、辨识算法)、实验结果、结论。
2、评分标准:到课率占20%,PPT占15%,格式和卷面占15%;内容占50%
6、请与6月26日上午将大作业纸质稿交民主楼306,并将电子稿件发到邮箱hua_han@126.com
祝一切顺利!假期愉快!
第二篇:作业过程风险辨识方法
作业过程风险辨识方法
风险(R)=可能性(L)X后果严重性
(S)
危害事故发生的可能性(L)
等级
偏差发生频率
管理措施(包括执行情况等)
员工胜任程度(意识、技能、经验等)
设备设施现状
安全设施(监测、报警、联锁、补救措施等)
在正常情况下经常发生
从来没有检查
没有操作规程
不胜任(无任何培训、无任何经验、无上岗资格证)
带病运行,不符合国家、行业规范
无任何措施,或有措施从未使用
常发生或在预期情况下发生
偶尔检查或大检查
有操作规程,但只是偶尔执行(或操作规程内容不完善
不够胜任(有上岗资格证,但没有接受有效培训)
超期服役、经常出故障,不符合公司规定
措施有,但只是一部分,尚不完善
过去曾经发生、或在异常情况下发生
月检
有操作规程,只是部分执行
基本胜任(有上岗证,有培训,但经验不足,多次出差错)
过期未检、偶尔出故障
措施有,但经常没有有效使用
过去偶尔发生
周检
有操作规程、但偶尔不执行
胜任,但偶尔出差错
运行后期,可能出故障
有,偶尔失去作用或出差错
极不可能发生
日检
有操作规程,而且严格执行
高度胜任(培训充分,经验丰富,意识强)
运行良好
有效防范控制措施
第三篇:数据库大作业-实验教学管理系统.
《数据库原理》课程大作业数据库设计与应用开发 课题名称:实验教学管理系统 学号: 姓名:王** 专业年级:软件工程10级 成绩: 内容与要求
1.请结合软件类专业课程实验教学环节设计数据库,实现实验教学的有效管理,具体功能应包括但不限于:(1教师可以根据不同课程编辑和发布实验内容;(2学生可以浏览实验内容,同时完成作品的提交;(3学生可以在规定时间内填写、修改和提交实验报告;(4教师可以通过应用系统批改实验报告,并提交成绩;(5学生可以查询个人实验成绩;2.给出数据库设计各个阶段的详细设计报告,包括:
(1需求分析(2概念结构设计(3逻辑结构设计(4物理结构设计与实施
3.写出应用系统的主要功能设计;4.写出收获和体会,包括已解决和尚未解决的问题,进一步完善的设想和建议;5.独自完成作业,有雷同的平分得分;6.也可以自行设计课题。目录 1 绪论(1 2 应用系统功能设计(2 2.1 业务操作流程(2 2.2 系统功能设计(2 3 数据库设计(3 3.1 需求分析(3 3.2 概念结构设计(6 3.3 逻辑结构设计(7 3.4 物理结构设计与实施(7 4 结束语(8
4.1 收获和体会(8 4.2 总结与展望(8 1 绪论
目前,为了提高同学们的动手操作能力,检验学生对知识的掌握程度以及知熟练程度,许多实验课通常会定期给学生安排实验报告的填写。
但是,当今的实验报告通常还使用原始的方法,即老师提前公布实验内容,学生根据内容要求在一定的时间内书写纸质的报告,并上交教师进行批改,教师根据学生的实验情况给出学生成绩并进行存档,以便后查。但是学生手写实验报告时,有些学生字体不整洁,并且书写的格式还不标准。同时,许多时候,同学们为了手工填写实验报告,浪费了大量的时间,这使导致学生的学习效率普遍降低而且教师在批改的时候非常耗时和烦恼的,也会在一定程度上影响学生的成绩。
于是拟开发一款实验管理系统软件来统一管理学生的实验报告是当前多数学校迫切需要的。
本实验教学系统,运用基本的数据库技术,实现了传统实验报告的基本功能,这不仅方便了学生书写报告和教师批改,节省纸张,而且还可以更方便的对报告进行存储和查看,实现实验教学的有效管理,同时学生的学习效率也会得到提高。2 应用系统功能设计 2.1 业务操作流程
手工操作的实际操作流程如下:
老师提前公布实验内容,学生根据内容要求在一定的时间内书写纸质报告,并上交教师进行批改,教师根据学生的实验情况给出学生成绩并进行存档,以便后查。学生可以提出申请进行查看自己的实验成绩。
2.2 系统功能设计
拟开发的应用系统将实现的主要功能如下:(1教师可以根据不同课程编辑和发布实验内容;(2学生可以浏览实验内容,同时完成作品的提交;(3学生可以在规定时间内填写、修改和提交实验报告;(4教师可以通过应用系统批改实验报告,并提交成绩;(5学生可以查询个人实验成绩。2 3 数据库设计 3.1 需求分析
该教学管理系统的数据流图如下:
图3-1 顶层数据流图
图3-2 该教学管理子系统数据流图 数据字典如下: 1.主要的数据项
表3-1 数据库的主要的数据项
2.数据结构
表3-2 数据库的主要的数据结构
3.数据流
表3-3 数据库的主要的数流
4.数据存储
表3-4 数据库的主要的数据存储
5.处理过程
表3-5 数据库的主要的处理过程
图3-3 实验教学管理系统的全局E-R图
分析图3-3,此系统涉及到实体有:课程,教师课程,教师,实验内容,实验报告,学生。
结合实际情况,根据E-R图向关系模型的转化的一般规则,将实体型转化为关系模式并进行优化,关系的码用下划线标出,结果如下:
课程(课程号,课程名 教师(教师编号,教师姓名 教师课程(id,教师编号,课程号 学生(学号,姓名,班级
实验内容(id2,实验序号,id,实验内容,实验日期 实验报告(学号,id2,报告内容,成绩,提交日期 3.4 物理结构设计与实施
图3-4 实验教学管理系统数据库中各个表对应的关系图
实验教学管理系统数据库设计 学号:******* 姓名:** 4 结束语 4.1 收获和体会 通过这次数据库的大作业,我对之前学习的有关数据库的知识,以及软件工程
知识有了新的认识;我对以前的理论知识有了更深层次的理解,真正做到了理论与 实践的统一;同时,我的认识问题、分析问题、解决问题的能力都有了很大的提高。当然,在完成大作业的过程中,也遇到了各种的困难,随后通过老师和同学们 的帮助,最后问题有一一被我解决。当我把这项作业完成的时候,我真的不敢相信 我竟然可以克服这么多困难。因此,虽然熬了很多的夜,但我得到的不仅仅是专业知识方面的收获,更重要 的是学会的如何去解决问题,如何在做项目的过程中与老师交流,与同学交流。所 以,这次大作业很值!谢谢老师和同学对我的考验和帮助,谢谢!4.2 总结与展望 本教学试验管理系实现了要求中所给出的各项功能,和传统的手动操作相比,大大的提高了老师的工作效率,学生的学习效率。对教师的教学,以及学生的学习带来了很大的方便。但对于系统本身来说,还存在许多的不足,比如,本系统中学生成绩以及学生 提交的实验报告是在一个关系中的,这对学生查询成绩来说,会大大降低查询的速 度,带来的众多不便;又比如,该系统的触发器没有完善,给学生修改实验报告带 来了一些不便。对于这些问题,我会进一步的去学习,去分析,然后不断的完善。我相信,通 过老师和同学们的帮助,以及我的不懈努力,我的这个系统会越来越方便师生使用,而且我的动手能力也将大大的提升。8
第四篇:吊装作业危害辨识(氯碱中心)
关于吊车吊装作业安全管控的思考
一、吊装作业安全规定
(一)、《化学品生产单位特殊作业安全规范(GB30871-2014)》关于“吊装作业”的有关规定:
1、作业分级:吊装作业按照吊装重物质量 m 不同分为: a)一级吊装作业:m>100t;
b)二级吊装作业:40t≤m≤100t;c)三级吊装作业:m<40t。
2、作业要求 :
2.1、三级以上的吊装作业,应编制吊装作业方案。吊装物体质量虽不足 40t,但形状复杂、刚度小、长径比大、精密贵重,以及在作业条件特殊的情况下,也应编制 吊装作业方案,吊装作业方案应经审批。
2.2、吊装现场应设置安全警戒标志,并设专人监护,非作业人员禁止入内,安全警戒标志应符合 GB2894的规定。
2.3、不应靠近输电线路进行吊装作业。确需在输电线路附近作业时,起重机械的安全距离应大于起重机械的倒塌半径并符合DL409 的要求;不能满足时,应停电后再进行作业。吊装场所如有含危险物料的设备、管道等时,应制定详细吊装方案,并对设备、管道采取有效防护措施,必要时停车,放空物料,置换后进行吊装作业。
2.4、大雪、暴雨、大雾及六级以上风时,不应露天作业。2.5、作业前,作业单位应对起重机械、吊具、索具、安全装置等进行检查,确保其处于完好状态。
2.6、应按规定负荷进行吊装,吊具、索具经计算选择使用,不应超负荷吊装。
2.7、不应利用管道、管架、电杆、机电设备等作吊装锚点。未经土建专业审查核算,不应将建筑物、构筑物作为锚点。
2.8、起吊前应进行试吊,试吊中检查全部机具、地锚受力情况,发现问题应将吊物放回地面,排除故障后重新试吊,确认正常后方可正式吊装。
2.9、指挥人员应佩戴明显的标志,并按GB5082规定的联络信号进行指挥。2.10、起重机械操作人员应遵守如下规定: a)按指挥人员发出的指挥信号进行操作;任何人发出的紧急停车信号均应立即执行;吊装过程中出现故障,应立即向指挥人员报告; b)重物接近或达到额定起重吊装能力时,应检查制动器,用低高度、短行程试吊后,再吊起; c)利用两台或多台起重机械吊运同一重物时应保持同步,各台起重机械所承受的载荷不应超过各自额定起重能力的 80%; d)下放吊物时,不应自由下落(溜);不应利用极限位置限制器停车; e)不应在起重机械工作时对其进行检修;不应有载荷的情况下调整起升变幅机 构的制动器; f)停工和休息时,不应将吊物、吊笼、吊具和吊索悬在空中; g)以下情况不应起吊: 1)无法看清场地、吊物,指挥信号不明; 2)起重臂吊钩或吊物下面有人、吊物上有人或浮置物; 3)重物捆绑、紧固、吊挂不牢,吊挂不平衡,绳打结,绳不齐,斜拉重物,棱角吊物与钢丝绳之间没有衬垫; 4)重物质量不明、与其他重物相连、埋在地下、与其他物体冻结在一起;
2.11、司索人员应遵守如下规定: a)听从指挥人员的指挥,并及时报告险情; b)不应用吊钩直接缠绕重物及将不同种类或不同规格的索具混在一起使用; c)吊物捆绑应牢靠,吊点和吊物的重心应在同一垂直线上;起升吊物时应检查 其连接点是否牢固、可靠;吊运零散件时,应使用专门的吊篮、吊斗等器具,吊篮、吊斗等不应装满; d)起吊重物就位时,应与吊物保持一定的安全距离,用拉伸或撑杆、钩子辅助 其就位; e)起吊重物就位前,不应解开吊装索具。f)2.10 中与司索工有关的不应起吊的情况,司索工应做相应处理。
2.12、用定型起重机械(例如履带吊车、轮胎吊车、桥式吊车等)进行吊装作业时,除遵守本标准外,还应遵守该定型起重机械的操作规程。
2.13、作业完毕应做如下工作: a)将起重臂和吊钩收放到规定位置,所有控制手柄均应放到零位,电气控制的起重机械的电源开关应断开; b)对在轨道上作业的吊车,应将吊车停放在指定位置有效锚定; c)吊索、吊具应收回,放置到规定位置,并对其进行例行检查。
(二)、超重吊装“十不吊”:
1、超负荷不吊。
2、歪拉斜吊不吊。
3、指挥信号不明不吊。
4、安全装置失灵不吊。
5、重物越过人头不吊。
6、光线阴暗看不清吊物不吊。
7、埋在地下的物件不吊。
8、吊物上站人不吊。
9、捆绑不牢不稳不吊。
10、重物边缘锋利无防护措施不吊。
二、吊装作业过程危害辨识
(一)、防止高空坠落
1.吊装人员应戴安全帽;高空作业人员应佩安全带,穿防滑鞋,带工具袋。
2.吊装工作区应有明显标志,并设专人警戒,与吊装无关人员严禁人内。起重机工作时,起重臂杆旋转半径范围内,严禁站人或通过。
3.运输、吊装构件时,严禁在被运输、吊装的构件上站人指挥和放置材料、工具。
4.高空作业施工人员应站在操作平台或轻便梯子上工作。吊装层应设临时安全防护栏杆或采取其他安全措施。
5.登高用梯子、临时操作台应绑扎牢靠;梯子与地面夹角以60—70°为宜,操作台跳板应铺平绑扎,严禁出现挑头板。
三、防物体落下伤人
1.高空往地面运输物件时,应用绳捆好吊下。吊装时,不得在构件上堆放或悬挂零星物件。零星材料和物件必须用吊笼或钢丝绳、保险绳捆扎牢固后才能吊运和传递,不得随意抛掷材料物体、工具,防止滑脱伤人或意外事故。
2.构件必须绑扎牢固,起吊点应通过构件的重心位置,吊升时应平稳,避免振动或摆动。
3.起吊构件时,速度不应太快,不得在高空停留过久,严禁猛升猛降,以防构件脱落。
4.构件就位后临时固定前,不得松钩、解开吊装索具。构件固定后,应检查连接牢固和稳定情况,当连接确定安全可靠,才可拆除临时固定工具和进行下步吊装。5.风雪天、霜雾天和雨天吊装应采取必要的防滑措施,夜间作业应有充分照明。
四、防止起重机倾翻
1.起重机行驶的道路必须平整、坚实、可靠,停放地点必须平坦。
2.起重机不得停放在斜坡道上工作,不允许起重机两条覆带或支腿停留部位一高一低或土质一硬一软。
3.起吊构件时,吊索要保持垂直,不得超出起重机回转半径斜向拖拉,以免超负荷和钢丝绳滑脱或拉断绳索而使起重机失稳。起吊重型构件时应设牵拉绳。
4.起重机操作时,臂杆提升、下降、回转要平稳,不得在空中摇晃,同时要尽量避免紧急制动或冲击振动等现象发生。未采取可靠的技术措施和未经有关技术部门批准,起重机严禁超负荷吊装,以避免加速机械零件的磨损和造成起重机倾翻。
5.起重机应尽量避免满负荷行驶;在满负荷或接近满负荷时,严禁同时进行提升与回转(起升与水平转动或起升与行走)两种动作,以免因道路不平或惯性力等原因引起起重机超负荷而酿成翻车事故。
6.当两台吊装机械同时作业时,两机吊钩所悬吊构件之间应保持5m以上的安全距离,避免发生碰撞事故。
7.多机抬吊构件时,要根据起重机的起重能力进行合理的负荷分配(吊重质量不得超过多台起重机所允许起重量总和的75%,每一台起重机的负荷量不宜超过其安全负荷量的80%)。操作时,必须在统一指挥下,动作协调,同时升降和移动,并使多台起重机的吊钩、滑车组均应基本保持垂直状态。各台起重机的驾驶人员要相互密切配合,防止一台起重机失重,而使另一台起重机超载。
8.吊装时,应有专人负责统一指挥,指挥人员应位于操作人员视力能及的地点,并能清楚地看到吊装的全过程。起重机驾驶人员必须熟悉信号,并按指挥人员的各种信号进行操作;指挥信号应事先统一规定,发出的信号要鲜明、准确。
9.在风力等于或大于六级时,禁止在露天进行起重机移动和吊装作业。10.起重机停止工作时,应刹住回转和行走机构,锁好司机室门。吊钩上不得悬挂构件,并应升到高处,以免摆动伤人和造成吊车失稳。
五、防吊装结构失稳
1.构件吊装应按规定的吊装工艺和程序进行,未经计算和采取可靠的技术措施,不得随意改变或颠倒工艺程序安装结构构件。
2.构件吊装就位,应经初校和临时固定或连接可靠后始可卸钩,最后固定后方可拆除临时固定工具。高宽比很大的单个构件,未经临时或最后固定组成一稳定单元体系前,应设溜绳或斜撑拉(撑)固。
3.构件固定后不得随意撬动或移动位置,如需重校时,必须回钩。
六、防止触电
1.吊装现场应有专人负责安装、维护和管理用电线路和设备。2.构件运输、起重机在电线下进行作业或在电线旁行驶时,构件或吊杆最高点与电线之间水平或垂直距离应符合安全用电的有关规定。
3.使用塔式起重机或长吊杆的其他类型起重机及钢井架,应有避雷防触电设备,各种用电机械必须有良好的接地或接零,接地电阻不应大于4Ω,并定期进行地极电阻摇测试验。
第五篇:C++大作业_职工信息管理系统源代码
#include
const N=5000;// 定义系统可录入的职工最大数值
string Ename[N];long Enum[N];char Esex[N];int Eage[N];
char Emarriage[N];int Edepart[N];int Eposition[N];int Edegree[N];int Eworktime[N];float Epay[N];
class Employee {
public:
string Employeename;
long Employeenum;
char Employeesex;
int Employeeage;
char Employeemarriage;
int Employeedepart;
int Employeeposition;
int Employeedegree;
int Employeeworktime;
float Employeepay;
static long EmployeeMaxNum;
static float EmployeeBasePay;
void NewInfo();
void ShowInfo();
void showall();
void showdepart(int depart);
void showdegree(int degree);
void showage(int min,int max);
void shownum(long number);
void RefreshInfo();
void DeleteInfo();
float Pay(int Employeegrade);
static int MaxNum();};
class DBOperate {
public:
string Employeename;
long Employeenum;
char Employeesex;
int Employeeage;
char Employeemarriage;
int Employeedepart;
int Employeeposition;
int Employeedegree;
int Employeeworktime;
float Employeepay;
static long EmployeeMaxNum;
static float EmployeeBasePay;
void WriteIn(int iflag);
void ReadOut();
void RefreshMaxNum(int iflag);//iflg=1 or-1 or 0 };
long Employee::EmployeeMaxNum = 1000;float Employee::EmployeeBasePay = 1500;
int Employee::MaxNum()//返回系统已经存储的人数
{
int MN = 0;
ifstream myf;
myf.open(“EmployeeMaxNum.txt”);
myf>>MN;
cout< myf.close(); return MN;} void Employee::NewInfo()//添加新职工函数 { cout<<“新职工姓名: ”; cin>>Employee::Employeename; Employee::Employeenum = EmployeeMaxNum + Employee::MaxNum()+1; cout<<“新职工性别(F为女性,M为男性): ”; cin>>Employee::Employeesex; cout<<“新职工年龄: ”; cin>>Employee::Employeeage; cout<<“新职工婚姻状况(Y为已婚,N为未婚): ”; cin>>Employee::Employeemarriage; cout<<“新职工学历,请输入相应学历的序号: ”< cout<<“ [1:小学 2:初中 3:高中 4:本科 5:硕士 6:博士] ”; cin>>Employee::Employeedegree; while(Employee::Employeedegree!=1&&Employee::Employeedegree!=2&&Employee::Employeedegree!=3&&Employee::Employeedegree!=4&&Employee::Employeedegree!=5&&Employee::Employeedegree!=6) { cout<<“输入有误,请重新输入:”< cout<<“ [1:小学 2:初中 3:高中 4:本科 5:硕士 6:博士] ”; cin>>Employee::Employeedegree; } cout<<“新职工所在部门,请输入相应部门的序号:”< cout<<“ [1:董事会 2:销售部 3:人事部 4:客服中心 5:财务部 6:技术研发部 7:安全监察部] ”; cin>>Employee::Employeedepart; while(Employee::Employeedepart!=1&&Employee::Employeedepart!=2&&Employee::Employeedepart!=3&&Employee::Employeedepart!=4&&Employee::Employeedepart!=5&&Employee::Employeedepart!=6&&Employee::Employeedepart!=7) { cout<<“输入有误,请重新输入:”< cout<<“ [1:董事会 2:销售部 3:人事部 4:客服中心 5:财务部 6:技术研发部 7:安全监察部] ”; cin>>Employee::Employeedepart; } cout<<“新职工职位, 请输入相应职位的序号: ”< cout<<“ [1:临时职工 2: 正式职工 3:部门经理 4:主任 5:董事长] ”; cin>>Employee::Employeeposition; while(Employee::Employeeposition!=1&&Employee::Employeeposition!=2&&Employee::Employeeposition!=3&&Employee::Employeeposition!=4&&Employee::Employeeposition!=5) { cout<<“输入有误,请重新输入:”< cout<<“ [1:临时职员 2: 正式职员 3:部门经理 4:主任 5:董事长] ”; cin>>Employee::Employeeposition; } cout<<“新职工的工作时长(不需要输入单位): ”; cin>>Employee::Employeeworktime; Employee::Employeepay = Employee::Pay(Employee::Employeeposition); DBOperate dbo; dbo.ReadOut(); int MaxNum = Employee::MaxNum(); Enum[MaxNum] = Employee::Employeenum; Ename[MaxNum] = Employee::Employeename; Esex[MaxNum] = Employee::Employeesex; Eage[MaxNum] = Employee::Employeeage; Emarriage[MaxNum] = Employee::Employeemarriage; Edegree[MaxNum] = Employee::Employeedegree; Edepart[MaxNum] = Employee::Employeedepart; Eposition[MaxNum] = Employee::Employeeposition; Eworktime[MaxNum] = Employee::Employeeworktime; Epay[MaxNum] = Employee::Employeepay; dbo.WriteIn(1); cout<<“ 添加新成员成功!”< void Employee::ShowInfo()//程序主体 数据输出函数 { int choice1,choice2,min,max; long searchnum; Employee e; cout<<“*******************************************”< cout<<“-----------1.输出全体职工信息--------------”< cout<<“-----------2.按职工部门输出----------------”< cout<<“-----------3.按职工学历输出----------------”< cout<<“-----------4.按职工年龄输出----------------”< cout<<“-----------5.按职工编号输出----------------”< cout<<“*******************************************”< cout<<“ 请选择查询方式:”; cin>>choice1; switch(choice1) { case 1: showall();break; case 2: cout<<“请输入要查询职工的部门编号[1:董事会 2:销售部 3:人事部 4:客服中心 5:财务部 6:技术研发部 7:安全监察部] ”; cin>>choice2; e.showdepart(choice2);break; case 3: cout<<“请输入要查询职工的学历编号: [1:小学 2:初中 3:高中 4:本科 5:硕士 6:博士] ”; cin>>choice2; e.showdegree(choice2);break; case 4: cout<<“请输入要查询的年龄范围: ”; cout<<“最小值: ”; cin>>min; cout<<“最大值: ”; cin>>max; e.showage(min,max);break; case 5: cout<<“请输入要查询的职工编号: ”; cin>>searchnum; e.shownum(searchnum);break; default: cout<<“出错啦!”< } } void Employee::showall()//全体职工输出函数 { int i; long number; for(i=0;i { number = Enum[i]; shownum(number); } } void Employee::showdepart(int depart)//按职工所在部门输出函数 { int i; switch(depart) { case 1: cout<<“董事会的成员有: ”< case 2: cout<<“销售部的成员有: ”< case 3: cout<<“人事部的成员有: ”< case 4: cout<<“客服中心的成员有: ”< case 5: cout<<“财务部的成员有: ”< case 6: cout<<“技术研发部的成员有: ”< case 7: cout<<“安全监察部的成员有: ”< default: cout<<“输入错误!>”< } for(i=0;i { if(Edepart[i] == depart) { long number = Enum[i]; shownum(number); } else continue; } } void Employee::showdegree(int degree)//按职工学历输出函数 { int i; switch(degree) { case 1:cout<<“初中学历的员工有:”< case 2:cout<<“初中学历的员工有:”< case 3:cout<<“高中学历的员工有:”< case 4:cout<<“本科学历的员工有:”< case 5:cout<<“硕士学位的员工有:”< case 6:cout<<“博士学位的员工有:”< } for(i=0;i { if(Edegree[i] == degree) { long number = Enum[i]; shownum(number); } else continue; } } void Employee::showage(int min,int max)//按职工年龄段输出函数 { int i; for(i=0;i { if(Eage[i]>=min&&Eage[i]<=max) { long number = Enum[i]; shownum(number); } else continue; } } void Employee::shownum(long number)//按职工编号输出函数 { int i; for(i=0;i { if(Enum[i] == number) { cout<<“**********************************”< cout<<“职工编号:”< cout<<“姓 名:”< cout<<“性 别:”; if(Esex[i]=='F')cout<<“女 ”< else if(Esex[i]=='M')cout<<“男 ”< cout<<“年 龄:”< cout<<“婚姻情况:”; if(Emarriage[i]=='Y')cout<<“已婚 ”< else if(Emarriage[i]=='N')cout<<“未婚 ”< cout<<“学 历:”; switch(Edegree[i]) { case 1:cout<<“小 学 ”< case 2:cout<<“初 中 ”< case 3:cout<<“高 中 ”< case 4:cout<<“本 科 ”< case 5:cout<<“硕 士 ”< case 6:cout<<“博 士 ”< } cout<<“所在部门:”; switch(Edepart[i]) { case 1:cout<<“董事会 ”< case 2:cout<<“销售部 ”< case 3:cout<<“人事部 ”< case 4:cout<<“客服中心 ”< case 5:cout<<“财务部 ”< case 6:cout<<“技术研发部 ”< case 7:cout<<“安全监察部 ”< } cout<<“所任职务:”; switch(Eposition[i]) { case 1:cout<<“临时成员 ”< case 2:cout<<“正式员工 ”< case 3:cout<<“部门经理 ”< case 4:cout<<“主任 ”< case 5:cout<<“董事长 ”< } cout<<“工作时长:”< cout<<“工资:”< cout<<“**********************************”< } else continue; } } void Employee::RefreshInfo()//修改职工信息的函数 { int cNum = 1000; DBOperate dbo; dbo.ReadOut(); void Employee::shownum(long number); cout<<“请输入您要修改的职工编号:”; cin>>cNum; int MN; MN = Employee::MaxNum(); for(int i=0;i { if(Enum[i] == cNum) { Employee::shownum(cNum); cout<<“请输入该职工的新信息: ”< cout<<“职工姓名: ”;//录入职工的新的数据,职工编号保持不变 cin>>Employee::Employeename; Ename[i] = Employee::Employeename; cout<<“职工性别(F为女性,M为男性): ”; cin>>Employee::Employeesex; Esex[i] = Employee::Employeesex; cout<<“职工年龄: ”; cin>>Employee::Employeeage; Eage[i] = Employee::Employeeage; cout<<“职工婚姻状况(Y为已婚,N为未婚): ”; cin>>Employee::Employeemarriage; Emarriage[i] = Employee::Employeemarriage; cout<<“职工学历,请输入相应学历的序号:”< cout<<“ [1:小学 2:初中 3:高中 4:本科 5:硕士 6:博士] ”; cin>>Employee::Employeedegree; while(Employee::Employeedegree!=1&&Employee::Employeedegree!=2&&Employee::Employeedegree!=3&&Employee::Employeedegree!=4&&Employee::Employeedegree!=5&&Employee::Employeedegree!=6) { cout<<“输入有误,请重新输入:”< cout<<“ [1:小学 2:初中 3:高中 4:本科 5:硕士 6:博士] ”; cin>>Employee::Employeedegree; } Edegree[i] = Employee::Employeedegree; cout<<“职工所在部门,请输入相应部门的序号: ”< cout<<“ [1:董事会 2:销售部 3:人事部 4:客服中心 5:财务部 6:技术研发部 7:安全监察部] ”; cin>>Employee::Employeedepart; while(Employee::Employeedepart!=1&&Employee::Employeedepart!=2&&Employee::Employeedepart!=3&&Employee::Employeedepart!=4&&Employee::Employeedepart!=5&&Employee::Employeedepart!=6&&Employee::Employeedepart!=7) { cout<<“输入有误,请重新输入:”< cout<<“ [1:董事会 2:销售部 3:人事部 4:客服中心 5:财务部 6:技术研发部 7:安全监察部] ”; cin>>Employee::Employeedepart; } Edepart[i] = Employee::Employeedepart; cout<<“职工职位,请输入相应职位的序号:”< cout<<“ [1:临时职员 2: 正式职员 3:部门经理 4:主任 5:董事长] ”; cin>>Employee::Employeeposition; while(Employee::Employeeposition!=1&&Employee::Employeeposition!=2&&Employee::Employeeposition!=3&&Employee::Employeeposition!=4&&Employee::Employeeposition!=5) { cout<<“输入有误,请重新输入:”< cout<<“ [1:临时职员 2: 正式职员 3:部门经理 4:主任 5:董事长] ”; cin>>Employee::Employeeposition; } Eposition[i] = Employee::Employeeposition; cout<<“员工的工作时(不需要输入单位): ”; cin>>Employee::Employeeworktime; Eworktime[i] = Employee::Employeeworktime; Epay[i] = Employee::Pay(Employee::Employeeposition); break; } } dbo.WriteIn(0);} void Employee::DeleteInfo()//删除职工数据的函数 { char tmp; int cNum = 1000; DBOperate dbo; dbo.ReadOut(); void Employee::shownum(long number); cout<<“请输入您要删除的职工编号>: ”; cin>>cNum; int MN; MN = Employee::MaxNum(); for(int i=0;i { if(Enum[i] == cNum) Employee::shownum(cNum); } cout<<“确认要删除该职工信息?(Y为确认,N为放弃): ”; cin>>tmp; if(tmp=='Y') { if(i==MN-1) dbo.WriteIn(-1); else { for(int j=i;j { Enum[j] = Enum[j+1];} dbo.WriteIn(-1); } cout<<“ 删除操作成功!”< } } float Employee::Pay(int Employeeposition)//根据职工职位计算工资的函数 { float tmpPay; tmpPay = Employee::EmployeeBasePay + Employee::Employeeposition Employee::EmployeeBasePay; * return tmpPay;} void DBOperate::WriteIn(int iflag)//数据操作函数—写入 { DBOperate::RefreshMaxNum(iflag); ofstream myf(“Employee.txt”); Employee e; int MN; MN = e.MaxNum(); for(int i=0;i { myf< } myf.close(); return;} void DBOperate::ReadOut()//数据操作函数—读出 { ifstream myf(“Employee.txt”); Employee e; int MN; MN = e.MaxNum(); for(int i=0;i { myf>>DBOperate::Employeenum>>DBOperate::Employeename>>DBOperate::Employeesex>>DBOperate::Employeeage>>DBOperate::Employeemarriage >>DBOperate::Employeedegree>>DBOperate::Employeedepart>>DBOperate::Employeeposition>>DBOperate::Employeeworktime>>DBOperate::Employeepay; Enum[i] = DBOperate::Employeenum; Ename[i] = DBOperate::Employeename; Esex[i] = DBOperate::Employeesex; Eage[i] = DBOperate::Employeeage; Emarriage[i] = DBOperate::Employeemarriage; Edegree[i] = DBOperate::Employeedegree; Edepart[i] = DBOperate::Employeedepart; Eposition[i] = DBOperate::Employeeposition; Eworktime[i] = DBOperate::Employeeworktime; Epay[i] = DBOperate::Employeepay; } myf.close();} void DBOperate::RefreshMaxNum(int iflag)//更新系统中员工计数文件的函数 { int MaxNum = 0; ifstream myif(“EmployeeMaxNum.txt”); myif>>MaxNum; myif.close(); MaxNum = MaxNum+iflag; ofstream myof(“EmployeeMaxNum.txt”); myof< myof.close();} int main()//主函数 { system(“color B0”);//设置当前窗口的背景色和前景色 // 0 = 黑色 = 灰色 // 1 = 蓝色 = 淡蓝色 // 2 = 绿色 A = 淡绿色 // 3 = 浅绿色 B = 淡浅绿色 // 4 = 红色 C = 淡红色 // 5 = 紫色 D = 淡紫色 // 6 = 黄色 E = 淡黄色 // 7 = 白色 F = 亮白色 int select = 0; while(select!=5) { cout<<“ ╭————————————————————————————╮”< cout<<“ ∣ 《主菜单》 ∣”< cout<<“ ├————————————————————————————┤”< cout<<“ ∣ 1.新建并录入职工信息 ∣”< cout<<“ ∣ 2.按条件输出职工信息 ∣”< cout<<“ ∣ 3.修改指定职工的信息 ∣”< cout<<“ ∣ 4.删除职工信息 ∣”< cout<<“ ∣ 5.退出系统 ∣”< cout<<“ ╰————————————————————————————╯”< cout<<“ ——————————————————————————————”< cout<<“ 请选择您需要功能的代号: ”; cin>>select; Employee e; DBOperate dbo; switch(select) { case 1: e.NewInfo();break; case 2: dbo.ReadOut(); e.ShowInfo();break; case 3: e.RefreshInfo();break; case 4: e.DeleteInfo();break; case 5: cout<<“ 退出成功”< default: cout<<“命令错误!”< } if(select == 5) break; } exit(1); return 0;}