管理信息系统课程设计/管理信息系统课程设计报告

发布时间:2017-06-21 13:42

管理信息系统课程设计/管理信息系统课程设计报告

一 : 管理信息系统课程设计报告

管理信息系统课程设计报告设计题目:奥运会举办地及会徽管理系统设计开发专 业 工商管理类班 级 管 093学 号 3090511075学 生 郑凡指导教师 李建勋/郭建华时 间2011-06-27 — 2009-07-02地 点经济与管理学院实验室机房2011 年 春季 学期《管理信息系统》课程设计成绩评定对 班 学生 所完成的题目为的课程设计,经考核,给出如下评语:并综合评定该生课程设计成绩为 。指导教师:年 月 日***管理信息系统设计与开发***目录一.绪论………………………………………………………………………3二.系统规划…………………………………………………………………41.系统功能设计………………………………………………………….5三.系统分析…………………………………………………………………61.可行性分析……………………………………………………………...62.组织结构调查…………………………………………………………...83.业务调查………………………………………………………………...94.数据流程调查…………………………………………………………..10四.系统设计……………………………………………………………….201.总体设计………………………………………………………………..202.系统物理配置方案……………………………………………………..213.系统界面分析…………………………………………………………..21a.初始界面……………………………………………………………..21b.用户和管理员登陆界面……………………………………………..21c.普通用户查询界面…………………………………………………..21d.管理员登陆管理界面……………………………………………….22e.用户查询界面………………………………………………………..23f.管理员管理界面……………………………………………………..24g.密码维护界面……………………………………………………….254.系统代码分析 ………………………………………………………...265.报表输出系统………………………………………………………….32五.系统实施……………………………………………………………… 341.选择的开发平台………………………………………………………34 2.系统测试………………………………………………………………35 3.系统切换方式…………………………………………………………36 4.对自己开发的系统地评价…………………………………………....36 六.总结…………………………………………………………………… 371.工作的评价……………………………………………………………38 2.收获、存在的问题以及建议…………………………………………38 奥运会举办地及会徽管理系统设计开发一.绪论奥林匹克运动是在奥林匹克主义指导下,以体育运动和4年1度的奥林匹克庆典——奥运会为主要活动内容,促进人的生理、心理和社会道德全面发展,沟通各国人民之间的相互了解,在全世界普及奥林匹克主义,维护世界和平的国际社会运动。奥林匹克运动包括以奥林匹克主义为核心的思想体系,以国际奥委会、国际单项体育联合会和各国奥委会为骨干的组织体系和以奥运会为周期的活动体系。1894年6月23日,当顾拜旦与12个国家的79名代表决定成立国际奥委会、开创奥林匹克运动时, 这一壮举曾一度成为人们讽刺的对象。而在百年之后的今天,奥运会已成为普天同庆的节日,奥林匹克运动也吸引了202个国家和地区的积极参与。奥林匹克运动是人类社会的一个罕见的杰作,它将体育运动的多种功能发挥得淋漓尽致,影响力远远超出了体育的范畴,在当代世界的政治、经济、哲学、文化、艺术和新闻媒介等诸多方面产生了1系列不容忽视的影响。奥林匹克运动不仅构成了现代社会所特有的体育文化景观,以其特有的文化魅力愉悦人们的身心,更以其强烈的人文精神催人奋进,生生不已。奥林匹克运动是时代的产物,工业革命大大扩展了世界各民族之间在经济、政治和文化等方面的联系,各国交往日益密切,迫切需要以各种沟通手段来加强国际间的相互了解。奥林匹克运动正是为适应这种社会需要而出现的,是人类社会发展到一定阶段的必然产物。因此,本系统在VF环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。通过分析奥运会管理系统的漏洞,创建了一套行之有效的奥运会管理系统的方案。文章详细介绍了奥运会管理信息系统的系统分析部分,包括可行性分析、组织机构分析、管理职能分析、业务流程分析、数据流程分析、数据字典、处理描述等等;系统设计部分主要介绍了系统功能设计和数据库设计;系统实现部分列出了几个主要的程序框图,并附带了一些主要的窗口和程序。本系统界面友好,操作简单,比较实用,可以让读者更好地了解奥运会的一些基本情况,了解奥运会的向上精神。二.系统规划1.系统功能设计“奥运会举办地及会徽管理信息系统”的主要功能有:用户登陆、举办地信息、会徽信息、系统维护。奥运会查询系统所要实现的功能如下:1.用户部分:奥运信息查询:包括奥运届次、奥运会举办地、会徽2.管理员部分:奥运信息维护:管理员可以对信息进行分类,查找,添加,修改,删除等操作。奥运图库维护:管理员可以对图片信息进行添加,修改,删除等操作。系统功能如下图1: 初始界面登录系统普通用户登录系统管理者登录系统密码修改退出信息查询系统信息管理系统密码维护系统会徽查询举办地管理会徽管理举办地查询奥运会举办地及会徽信息管理系统各子系统功能如下所述:初始界面用户访问系统时所开始的界面。登录系统用户和管理者访问系统时系统将检验用户的用户名和密码,经过注册的用户名允许进入系统。普通用户登录系统和信息查询系统普通用户登录该系统,只可以进行查阅信息,如夏奥会,冬奥会,青奥会等的举办地及会徽标识。管理者登录系统和信息管理系统管理者进入该系统,不仅可以进行查阅,也可以进行增删改等步骤,使得信息更加完善和系统。密码修改该模块主要是为了进行密码的修改,定期修改密码可以增加系统的保密性,和安全性,便于系统的管理。三. 系统分析1. 可行性分析可行性分析是在进行初步调查后所进行的对系统开发必要性和可能性的研究,所以也称为可行性研究。可行性分析是通过对项目的主要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等,从技术、经济、工程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。可行性分析应具有预见性、公正性、可靠性、科学性的特点。信息系统也应从技术可行性,经济可行性和社会可行性三方面来论证。通过长时间的观察与实践,我觉得奥运会举办地及会徽管理系统的可行性分析如下:1.经济上的可行性经济上的可行性主要是预估费用支出和对项目的经济效益进行评价。该奥运会举办地及会徽管理系统的支出费用主要包括用户登陆费用,实施该系统的主要费用:设备购置费用:包括服务器、工作站、外围相关设备的购置费用。软件费:本系统的费用,相关操作平台软件费。运维费:系统运行、维护费用。相关技术的培训费用。这些都是能够承担的费用水平。每参加一届奥运会都要响应的增加一项查询记录,并作出相应的更改,支出经费也不会太多,同时,还要考虑技术人员,该系统主要是一项技术性很强的工作,这应该占很大一笔开销 。同时,由于该系统实行统一操作,系统共享,其设备购置,人员工资,维护费用相对较少,前期的资金投入主要集中于系统的开发,建立信息中心,可将来自各方面的信息集中管理,提高该系统的计划性和预见性,快速地反馈市场信息。2.技术上的可行性技术上的可行性主要分析当前软,硬件技术能否满足对系统提出的要求,此外还要考虑开发人员的水平。技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。信息系统属于知识密集型,对技术要求高,如果缺乏足够的技术力量,或者单纯依靠外部力量进行开发,既达不到预期的目标。奥运会举办地及会徽管理系统的工作主要是在用户和奥运会官方网之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。3 管理上的可行性管理上的可行性指的是管理人员对开发应用项目的态度和管理方面的条件,主管领导不支持的项目肯定不行 。管理方面的条件主要是指管理方面 是否科学,相应的管理制度改革的时机是否成熟,规章制度是否齐全以及原始数据是否正确等。奥运会举办地及会徽管理系统可以帮助人们更好地了解奥运会的一些知识 ,现在也提倡全民运动,可以促进人们的积极性,能够得到管理人员的支持,和用户的喜爱。4.社会上的可行性社会可行性有时也称为操作可行性,主要论证新系统在企业或机构开发和运行的可能性以及运行后可能一起的对企业或机构的影响,即组织内外是否具备接受和使用新系统的条件。在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新是图书馆完全有可能也有能力采用这样先进的管理技术。它对奥运会带来的影响可以看到:对传统管理理念的冲击,可能引起管理层的变动和人员的调整。对奥运会官方工作人员的要求提高,使奥运会官方机构在一定的可能下进行机构精简,迫使工作人员继续学习新知识。2. 组织结构调查为了对系统有一个全貌性的了解,首先要对系统的内部人员结构、组织及用户情况有所了解。奥运会管理系统的组织结构图如下:奥运会管理会长财务室办公室采编科技术科市场调查科维护科人事管理科3.业务调查系统的业务是系统要达到的业务目标,业务流程分析是系统分析中的基础环节,调查管理业务流程时应顺着源系统信息流动的过程步骤进行,管理业务流程调查的内容包括各环节的业务处理,信息来源,处理方法,计算方法,信息流经取向提供信息的时间和形态。奥运会管理信息系统得业务流程如图所示:采编科的工作人员编制系统关于奥运会的信息,并进行整理,之后将计划书技术科,技术可根据送来的计划书来完成系统,市场调查科是在系统使用后完成用户的注册,用户根据注册的用户名和密码进行登录,查阅有关奥运举办地和会徽的知识,必要时可以进行报表的打印。同时,技术科的技术员根据自己的用户名和密码进行登录该系统,不仅可以查阅与奥运会有关的知识,二姐可以进行增删改等措施,使得系统更加完善,必要时也可打印报表。采编科技术科用户计划书开会讨论审批正式计划奥运信息表开发完善运行注册登录报表存档用户信息4.数据流程调查(1)数据流程图是全面描述信息系统逻辑模型的工具,数据流图就是组织中信息运动的抽象,使管理信息系统逻辑模型的主要形式。这个模型不涉及硬件、软件、数据结构语文件组织,它与对系统的物理描述无关,只是用一种图形及与此相关的注释来表示系统的逻辑功能,及所开发的系统在管理信息处理方面要做什么。由于图形描述简明、清晰、布设积极熟悉解,所描述的内容市面想用户的,所以是系统分析人员与用户进行交流的有效手段,也是系统设计(即建立所所开发的系统的物理模型)的主要依据之一。是拘留图是在对系统调研阶段绘制的业务流程图进行分析的基础上,从系统的科学性、管理的合理性、实际运行的可行性的角度出发,将信息处理功能和彼此之间的联系自顶向下、逐层分解、从逻辑上精神的描述新系统应具有得数居家公共能、数据输入、数据输出、数据存储、数据来源和去向(外部项)。数据流图由四种基本成分组成:外部项、加工、数据存储和数据流。首先分析系统的总体情况,划分系统的边界,识别系统得数据来源和去向,确定外部项,得到系统的关联图。然后,划分出主要的信息还礼功能,禀明却个功能之间的联系,绘制出书拘留图的顶层土。顶层土可进一步得分届,其中某些或者所有的数据加工向可分解为数个数居加工项,这样就形成第一层数据流图。按照自顶向下的原则,一次注曾向下扩展,直到最低层的数据流图表示勒索邮局体具体的数据加工功能和输入输出关系。它可以用少数几种符号综合的反映出信息在系统中的流动,处理和存储情况,它抽象概括地把信息系统中各种业务处理过程联系起来。以下是奥运会举办地和会徽管理信息系统的数据流程图。零层数据流程图登录查阅采编信息用户信息一层数据流程图采编科奥运会表系统维护办公室管理员信息奥运会采编系统各种奥运会表市场调查科奥运会信息管理系统用户登录管理员信息( D03)二层数据流程图a.奥运会采编系统数据流程图采编人员编目管理奥运会编目信息(DO1)奥运会信息表b.用户管理系统数据流程图市场调查科用户注册登录用户信息(D02)用户信息表c.技术管理系统数据流程图技术科技术员检查用户信息检查管理人员信息奥运会表的更新(D04,D05,D06,D07,D08)用户信息表管理员信息表奥运会表(2)数据流分析数据流编号:D01数据流名称:奥运会编目信息简述:奥运编目信息数据流来源:每举行一届奥运会,由采编人员编码整理后,输入计算机.数据流去向: 将数据存入奥运会表中数据流组成: 届次+举办地+会徽数据流量: 4年/四次高峰流量: 1年/四次数据流编号:D02数据流名称:用户信息简述:用户信息数据流来源:用户注册后,系统自动增加用户信息,便于用户访问系统。数据流去向: 存入用户信息表中数据流组成:用户名+编号数据流量: 20人/日高峰流量: 109人/日数据流编号:D03数据流名称:管理员信息简述:管理信息数据流来源:对该系统进行管理的人员注册的信息数据流去向: 存入管理员表中数据流组成: 用户名+编号数据流量: 3人/日高峰流量: 8人/日数据流编号:D04数据流名称:夏奥会信息简述:夏奥会数据流来源:举行一次夏奥会,采编人员编码整理后,输入计算机.数据流去向: 存入夏奥会表中数据流组成: 届次+举办地+会徽数据流量:4年/次高峰流量:4年/次数据流编号:DO5,DO6,DO7,D08与D04相同,只是换成冬奥会等。奥运会信息录入技术管理员查询用户输出报表1nM1N奥运会举办地及会徽管理系统e-r图(3)处理逻辑的描述处理逻辑编号:P1处理逻辑名称:奥运会编目系统简述:每举行一届奥运会,技术员经过编目等处理后,将其目录信息存入数据库,提供给用户使用。目录信息包括届次,举办地及会徽。输入的数据流:奥运会编目信息(D01)处理逻辑:编目数据录入,要求录入数据正确输出的数据流:D01处理频率:4次/4年处理逻辑编号:P1-1处理逻辑名称:编目管理简述:奥运会举行后,经过编目等处理后,将其目录信息存入数据库,提供给用户使用。目录信息包括届次,举办地及会徽。输入的数据流:奥运会编目信息(D01)处理逻辑:编目数据录入,要求录入数据正确输出的数据流:D01处理频率:4次/4年处理逻辑编号:P2处理逻辑名称:奥运会查询系统简述:用户查找到想看的奥运会信息。输入的数据流: 各奥运会表D04,D05,D06等处理逻辑: 用户登录查询所需的信息。输出的数据流:D01处理频率:20人/日处理逻辑编号:P2-1处理逻辑名称:检查用户身份。简述:检查用户身份,已注册的用户可以查阅。输入的数据流:用户信息表D02处理逻辑:查询用户表,已注册的用户可以查阅。输出的数据流:D02处理频率:20人/日处理逻辑编号: P3处理逻辑名称: 维护系统简述:系统维护对用户的管理。只有系统中注册的用户才能在本系统中查询。输入的数据流: 用户信息表D02处理逻辑:用户登陆信息录入输出的数据流:用户信息(D02)处理频率: 20人次/日处理逻辑编号:P3-1处理逻辑名称:用户登陆检查简述:审查用户信息,合格的用户信息输入注册信息表。输入的数据流: 用户登录信息(D02)处理逻辑:用户登录信息录入输出的数据流:用户信息(D02)处理频率:20人/日(4)数据存储的描述数据存储编号: F01数据存储名称:用户信息表简述:用户信息,用户在本系统注册后成为注册用户。数据存储组成:用户名+密码关键字: 用户名相关联的处理:P2-1 P3 P3-1数据存储编号: F02数据存储名称:奥运会表简述:存储与奥运会有关的信息数据存储组成:届次+举办地+会徽关键字: 届次相关联的处理:P1 P1-1 P2数据存储编号: F03数据存储名称:管理员表简述:存储该系统管理员信息数据存储组成:用户名+编号关键字: 编号相关联的处理:P1 P1-14 P2(5)外部实体描述外部实体编号:S01外部实体名称:用户简述:该系统用户输入的数据流:D01输出的数据流:D02外部实体编号:S02外部实体名称:管理人员简述:该系统管理人员输入的数据流: D03输出的数据流:D01 D04 D05 D06 D07 D08四、系统设计进入了设计阶段,要把软件“做什么”的逻辑模型变换成“怎么做”的物理模型,即着手实现软件的需求,并将设计的结果反应在设计说明书文档中,所以系统的设计是把系统要求转化成系统表示的过程。1.总体设计本系统设置了1名管理员和若干名操作员,分为四大板块7个功能。设置的操作人员由管理员设置。如果用户名或者密码之一错误就会出现错误的提示。奥运会举办地及会徽管理系统用户登录系统维护奥运信息采编用户管理密码修改奥运会界次的增加奥运会届次的删除2.系统物理配置方案奥运会举办地及会徽管理信息系统采用两台服务器构成双机备份结构,保证提供实时服务。为保证较快的响应时间,选用处理速度较快的计算机系统,内存大小对数据库系统的响应速度影响较大,选择内存教大的系统。网络通信速度选用100Mbit/s/1000Mbit/s。为保证系统中的信息安全,配置必要的数据备份设备(采用外部备份方式)。3. 系统界面分析a,初始界面该界面主要是进入该系统的初始界面。b.用户和管理员登陆界面让用户登录查询和管理员登陆的界面,同时,可以进入密码维护界面,对密码进行修改。用户登录主要考虑到用户信息表,管理员登陆主要考虑管理员表C.普通用户登陆查询界面该界面是普通用户进入后所看到的界面,用户可以按种类查询有关奥运会的举办地会徽等情况,而且可以进行报表的输出和打印。d.管理员登陆界面该界面是管理员进入后所看到的界面,管理员可以按种类管理有关奥运会的举办地会徽等情况,而且可以进行报表的输出和打印。e.用户查询系统用户根据自己的需要查询出自己想了解的奥运会举办地及会徽,这其中包含夏奥会,冬奥会,青奥会,残奥会,夏季特奥会,冬季特奥会等,下图的界面是用户查询冬奥会的界面,用户可以翻页查找。f.管理员管理系统当点“删除”时g.密码维护系统该系统是密码的维护系统,主要是为用户和管理员做密码的修改使用,保证系统的地安全性和可靠性。4. 系统代码分析a.第一个goto topthis.parent.command1.enabled=.f.this.parent.command2.enabled=.f.this.parent.command3.enabled=.t.this.parent.command4.enabled=.t.thisform.refreshb.上一个skip -1if bof()=messagebox('已是第一个记录!',48,'信息窗口')this.parent.command1.enabled=.f.this.parent.command2.enabled=.f.goto 1elsethis.parent.command1.enabled=.t.this.parent.command2.enabled=.t.endifthis.parent.command3.enabled=.t.this.parent.command4.enabled=.t.thisform.refreshc.下一个skipif eof()=messagebox('已是最后一条记录',48,'信息窗口')this.parent.command3.enabled=.f.this.parent.command4.enabled=.f.goto bottomelsethis.parent.command3.enabled=.t.this.parent.command4.enabled=.t.endifthis.parent.command1.enabled=.t.this.parent.command2.enabled=.t.thisform.refreshd.最后一个goto bottomthis.parent.command1.enabled=.t.this.parent.command2.enabled=.t.this.parent.command3.enabled=.f.this.parent.command4.enabled=.f.thisform.refreshe.添加TJ=MESSAGEBOX("需要添加奥运会信息吗?",4+32+256,"确认")IF TJ=6CPMC=""HXMD=""MESSAGEBOX("请输入奥运会信息")CPMC=ALLTRIM(THISFORM.届次1.VALUE)HXMD=ALLTRIM(THISFORM.举办地1.VALUE)APPENDENDIFf.删除SC=MESSAGEBOX("需要删除当前的奥运会信息吗?",4+32+256,"确认")IF SC=6DELETE FOR 届次=ALLTRIM(THISFORM.届次1.VALUE)PACKENDIF制作顶层菜单程序代码do 管理菜单.mpr with this,.t.a.登陆USE 用户信息LOCATE FOR 用户名=ALLTRIM(THISFORM.TEXT1.VALUE)IF FOUND()LOCATE FOR 密码=ALLTRIM(THISFORM.TEXT2.VALUE)DO CASECASE FOUND() AND THISFORM.OPTIONGROUP1.VALUE=1MESSAGEBOX("欢迎普通用户使用本系统")DO FORM 查询界面CASE NOT FOUND()MESSAGEBOX("密码错误,请重新输入!")THISFORM.TEXT2.SETFOCUSENDCASEDO CASECASE FOUND() AND THISFORM.OPTIONGROUP1.VALUE=2MESSAGEBOX("欢迎管理员登录!")DO FORM 管理界面CASE NOT FOUND()MESSAGEBOX("密码错误,请重新输入!")THISFORM.TEXT2.SETFOCUSENDCASEELSEMESSAGEBOX("用户名不存在,请重新输入!")THISFORM.TEXT1.VALUE=""THISFORM.TEXT2.VALUE=""THISFORM.TEXT1.SETFOCUSENDIFb.密码修改USE 用户信息LOCATE FOR 用户名=ALLTRIM(THISFORM.TEXT1.VALUE)IF FOUND()LOCATE FOR 密码=ALLTRIM(THISFORM.TEXT2.VALUE)IF FOUND()DO FORM 密码维护界面ELSEMESSAGEBOX("密码错误,请重新输入!")THISFORM.TEXT2.SETFOCUSENDIFELSEMESSAGEBOX("用户名为空或不存在,请重新输入!")THISFORM.TEXT1.VALUE=""THISFORM.TEXT2.VALUE=""THISFORM.TEXT1.SETFOCUSENDIFa. 确认修改USE 用户信息LOCATE FOR 密码=ALLTRIM(THISFORM.TEXT1.VALUE)IF FOUND()IF ALLTRIM(THISFORM.TEXT2.VALUE)=ALLTRIM(THISFORM.TEXT3.VALUE)REPLACE 密码 WITH ALLTRIM(THISFORM.TEXT3.VALUE)MESSAGEBOX("密码修改成功!")THISFORM.RELEASEELSEMESSAGEBOX("请重新确认新密码!")THISFORM.TEXT3.VALUE=""THISFORM.TEXT3.SETFOCUSENDIFELSEMESSAGEBOX("密码错误,请重新输入!")THISFORM.TEXT1.VALUE=""THISFORM.TEXT2.VALUE=""THISFORM.TEXT3.VALUE=""THISFORM.TEXT1.SETFOCUSENDIF5. 报表输出系统A,用户查询报表输出B.管理员管理报表输出五、系统实施1.选择的开发平台硬件平台是开发与运行系统所需要的硬件环境,由于本系统是一个小型的MIS管理系统,因此对计算机硬件的要求不高。我选择的是DDR256M、60G硬盘内存的普通微机。软件平台是指系统开发与运行的软件环境。我在开发时选用了稳定性较强的Windows XP中文专业版和VF6.0作为开发语言用于数据库设计。 由于这些软件产品都是Microsoft公司的产品,因此彼此之间的兼容性较好,开发出的应用系统稳定性较高。VF6.0具有可视化的开发环境,可以快速完成系统的开发,内部集成的数据库访问通道,使得可以轻松方便的对数据库管理2.系统测试实际开发过程中不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,不经周密测试的系统投入运行,将会造成难以想像的后果,因此系统测试是MIS开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占MIS开发总工作量的40%以上。因此,我们必须重视测试工作。我在开发本系统时,为了使系统能够稳定运行,对本系统进行了有针对性的全面测试,采取的方式是:(1)分调:在“登陆界面”文本框中输入“用户名”,例0001,然后输入密码,该界面从其他相应的文本框中能够显示出相应的信息,系统是可以正常运行的。为了保证每一项菜单能够正确实现系统设计的功能,我把相关的基础数据,基本上全部输入到本系统中,并对每一个菜单项进行了增加、删除、修改等操作,从而保证了菜单级功能的正确实现。(2)数据跟踪:我完成菜单项测试后,我又对系统内的每一个数据进行了跟踪。(3)总调:我在以上测试的基础上对系统功能进行了整体的测试,依次来检验系统功能是否符合系统设计的要求。在具体的测试中,我认为应当遵循以下原则:由程序设计者之外的人进行测试;测试用例应由两部分组成:输入数据和预期输出结果;应选用不合理的输入数据与非法输入测试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中测试容易出错的程序模块;对程序修改以后,必须重新进行测试。 3.系统切换方式我设计的奥运会管理系统准备采用并行切换方式,以保证平衡可靠的过度。即一方面使用本系统来进行工作,另一方面又继续沿用老的方式—手工方式,在一定时期内,如果程序存在一些漏洞和错误,用户也提出了修改意见,那么系统还要经过进一步完善才能正式投入使用,终止以前的操作方式。4.对自己开发的系统地评价从客观的角度上来说,我自己开发的这套系统还很不成熟,有着不少的漏洞与缺点。比如说没有将管理人员与普通用户分开进行登陆,这样的话会让整个系统更专业,更人性化。因为我个人在VF上学艺不精,致使无法完成图书查询处的代码设计,故将其舍弃,实属万般无奈。但我在图书编目、图书典藏、还有图书征订这几个模板的设计上还是下了一番苦心的。仔细看看,还是有一定的可取之处。总的来说,我所设计的图书管理信息系统还是可以适应小团体使用的。六、总结1.工作的评价在为期一个星期的课设中,我始终以一个积极认真的态度来面对我的课题。我想用我的态度来弥补一些我在技术和能力上的不足。坦白的说,在课设刚开始的两天里,我也有过打堂鼓的思想,但是随着自己的系统日趋完善,我的自信心也逐渐恢复,让自己有了动力继续下去。在设计开发过程中,有很多难题不可能靠我自己一个人解决,多亏了身边的同学与我的指导老师,给了我很多帮助。希望自己在以后的学习生活中,可以改掉在课社中出现的浮躁问题,更上一层楼。2.收获、存在的问题以及建议在本系统的开发过程中,我深刻的感受到学习管理信息系统与VF的内在联系就是相互依赖,管理信息系统的设计与实施离不开程序开发的支持,而程序开发更离不开,管理信息的为它已开始得系统分析,与设计到实施,这是我的最大的体会。本次课程设计时间为20个小时,一开始就是确立题目,说起来简单,做起来难,就拿我来说吧,画业务流程的时候就画了好几遍,总觉得应该再添加点什么,总觉得想得那么多,那么好,却没有做出来,主要是因为时间的紧缺,还有我自己知识的欠缺,不能达到那种想什么就能开发什么的情况,最后还是不能入自己所希望的那样把系统完完整整地开发出来,但是我已经尽力了,不管结果如何,只要努力了就有回报,在其间各位老师的笑容,也是我有了不少信心,还有旁边同学的帮助,使我快乐的夺过了这几天,虽然其间,好多次死机,没有保存上,心里特难受,觉得白做了,但是也让我学会了,做什么都要多想一想,多为自己开一条路,如把自己的东西存在多个地方,边做边保存。此次课程设计使自己对以前知识有了一个充分的回顾,并进行实际操作,是理论与实际开发技巧的有利结合。本系统还存在着很多的不足之处,还需要在以后的开发工作中不断改进和完善,参考文献1. 梁永昌.管理信息系统.北京:中国物资出版社,1998 :245页2. 易荣华.管理信息系统.北京:高等教育出版社, 2005:156页3. 黄梯云.管理信息系统.北京:高等教育出版社,2006:89页4. 吴良刚,陈晓红.管理信息系统理论与实践.长沙:中南工业大学出版社,2006:397页5. 汤深.FoxPro for Windows 程序设计教程.北京:电子工业出版社,2001:415页

二 : C++职工信息管理系统课程设计

*******************

实践教学

******************

江西理工大学软件学院

2012年春季学期

(第四组)

题 目:专业班级:_______

姓 名:

学 号:

指导教师: 吉宝玉

成 绩:____

2012年 6月 25日

目录

摘 要 ··································································· 0 前 言 ··································································· 0 正 文 ··································································· 0

1.系统功能分析 ················································ 0

2. 系统总体设计 ·············································· 0

3.详细设计 ························································ 0

4.系统测试 ························································ 0

5.软件使用说明书 ············································ 0 设计总结 ········································································ 0 参考文献 ········································································ 0 致 谢 ············································································ 0 附录:原程序代码 ······················································· 0

摘要

随着经济的高速发展,一个好的职工信息管理程序在企业及用人单位扮演着重要的角色,为了设计一个功能强大的职工信息管理系统,在设计中我们做出了明细分工,目的是要让本组成员都从这次课程设计中学到编程经验与团队精神。“职工信息管理系统”,系统以菜单方式工作,编写存放有职工基本信息,包含职工工号,姓名,性别,出生年月,学历,职务,工资,住址,电话等,并且要求录入职工号不重复;录入的职工号信息要求用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作,建立职工信息管理的文件。

关键词:职工信息管理;文件;浏览;查询;

修改。

前言

随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展要高效率的把内部活动有机的组织起来,就必须建立自身特点相适应的管理信息系统。

本组设计的是一个关于职工信息管理的数据库系统,通过这个系统,管理员可以简捷方便的对职工信息进行增加、删除、修改等功能,而用户也可以通过这个系统对职工信息进行查询等功能。在日益发展的现代社会,一个高效实用的职工信息管理系统已经是企业必不可少的一个管理工具,它可以使企业在管理方面减少很多时间,本课程设计针对现代社会企业对员工信息的管理而设计, 使员工的管理更加的简捷,更加的方便,界面友好,易于操作。采用的的开发环境是visual stdio 2008.在设计中,我们放弃的传统的面对过程的结构化设计思想,因为面向过程的结构体的或链表的方法存储每个员工的静态属性:编

号、姓名、性别、年龄、电话、工资等数据有很多的不方便也有很多的不安全,所以我们采用C++的对象的编程思想来把每个员工的数据封装成一个人员的对象。使得操作的方式更加的合理,安全。也使本组课程设计的成员更加的了解面向对象程序设计的解决问题的思维方式。

正文

一.系统功能分析

该职工管理系统针对员工信息数据的处理设计了以下功能:

1. 添加职工信息

添加员工信息,提供员工信息的添加,在该模块中设计了安全检查机制,即确认是否添加员工的信息,若对员工信息的添加不满意,则可以选择重新输入。还设置有返回主菜单的选项以方便用户。

2. 修改职工信息

修改员工信息设置了员工人数检查,果员工人数NUM的值为0,则返回主菜单。如果员工人数NUM不为0,则进入删除员工信息的界面。修改员工信息板块功能强大,界面友好,用循环控制修改某员工属性,这样使得操作极为方便。

3. 删除职工信息

删除员工信息中设计了对员工人数的检查,如果员工人数NUM的值为0,则返回到主菜单。如果员工人数NUM不为0,则进入删除员工信息的界面。界面包括员工信息列表,和删除选项,方便用户的操作。

4. 员工职工查找

通过find()函数进行查找。该函数比较简单,通过循环一次比较Per[n].num是否与你输入的num是否相等,如果相等,则输入到屏幕上,如果未找到任何匹配的员工,则显示“未找该员工”。

5. 保存职工信息

保存员工的信息,即为将当前所有的员工的信息存入到workerlist.txt中。这里我们采用的是C++的ofstream的写入文件的对象进行控制。

6. 职工信息的排序

对员工信息进行排序,包括按员工编号排序(从小到大),按员工工资进行排序(从高到低)。其中也设置了员工人数检查机制,即:如果员工的人数为0,则直接返回主菜单。

7. 职工信息的显示

对职工信息进行显示,包括职工的工号,姓名,年龄,学历,工资地址,电话等信息。方便对员工了解。

二. 系统总体设计

1,编写要求:

1) 先声明职工人员结构,该结构中包含编号、姓名、出生年月、性别,职

称,部门,基本工资等成员变量,并定义人员结构数组;

2) 编写主函数,要求提供一界面,允许工作人员输入、修改和删除员工信

息;

3) 将员工信息分别按编号由小到大、基本工资由大到小的顺序进行显示,

要求采用不同的排序算法;

4) 给出某员工编号,可对该员工信息进行查找,若找到,显示相应信息,

否则显示“该员工不存在”,要求用顺序查找和二分查找法进行查找;

5) 将所有职工信息保存在磁盘上。

界面:

**********************************************

* 员工管理系统 *

* ------------------------------- *

* 1. 职工信息输入 *

* 2. 职工信息修改 *

* 3. 职工信息删除 *

* 4. 职工信息查找 *

* 5. 职工信息保存 *

* 6. 职工工资排行 *

* 7. 职工信息显示 *

* 0. 退出 *

**********************************************

2,编写目的:

完成题目所要求的全部功能,并加入本组自己的设计风格,在界面友好的基础上,增加一些附加功能,使得功能更为强大,最终得到一个可靠性高,易于操作的职工信息管理的系统。

3,功能划分

系统模块图

其中:

(1) 主菜单模块完成用户命令的接受,此模块也是职工信息管理的入口,用户

所要进行的各种操作均需在此模块中进行选择,并进而调用其他模块实现相应的功能。

(2) 信息添加模块完成职工信息的输入功能,输入信息包括职工号、姓名、性

别,出生年月、学历、职务、工资、住址、电话等。

(3) 信息显示模块完成已录入职工信息的显示。

(4) 信息查询模块完成职工信息的查询,查询时对应有按编号查询和按姓名查

询两种方式。

(5) 信息修改模块完成职工信息的修改功能。

(6) 信息删除功能模块完成职工信息的删除功能。

(7) 信息排序模块完成对职工信息的排序,排序内容包括工号,工资等。

(8) 信息保存模块完成对职工信息的保存。

4.数据结构

本系统中主要的数据结构就是职工的信息,包含职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等,在处理过程中各项可以作为一个职工的不同属性来进行处理。

5.程序流程

系统的执行应从功能菜单选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。系统的流程图如图所示:

UML图

三.详细设计(编码实现)

小组模块分工(本人负责:职工信息修改模块与保存模块) void WorkerList::modify()//职工信息修改函数实现

{

if(NUM<=0) { } else { cout<<w[i].num<<'t'<<w[i].name<<'t'<<w[i].sex<<'t'<<w[i].edu<<'t'<<w[i].age<<'t'<<w[i].salary<<'t'<} cout<<"请输入需要修改信息职工的工号:"<<endl; string num1; cin>>num1; int j=0,k; int flag=1; while(flag) { cout<<"职工信息如下:"<<endl; cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl; for(int i=0;i<count;i++) cout<<"没有职工信息存入,系统将返回主菜单"<<endl; menu(); <w[i].address<<'t'<<w[i].tel<<endl;

} for(;j<count;j++) { } if(flag) { } cout<<"不存在此员工,请重新输入:"<<endl; j=0; cin>>num1; if(num1==w[j].num) { } flag=0; k=j; break; cout<<"你选择的职工的信息为:"<<endl; cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl; cout<<w[k].num<<'t'<<w[k].name<<'t'<<w[k].sex<<'t'<<w[k].edu<<'t'<<w[k].age<<'t'<<w[k].salary<<'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; cout<<"***********************************************"<<endl; cout<<endl; cout<<"请选择数字编号~8"<<endl; int i3; cin>>i3; while(i3<0||i3>8) { } switch(i3) { case 1: cout<<"输入有误,请重新输入:"<<endl; cin>>i3; t'<<w[k].address<<'t'<<w[k].tel<<endl;

cout<<"请输入新的职工工号:"; cin>>w[k].num; cout<<"修改信息已保存,现返回主菜单:"<<endl; menu(); break; cout<<"请输入新的职工姓名:"; cin>>w[k].name; cout<<"修改信息已保存,现返回主菜单:"<<endl; menu(); case 2: break; cout<<"请输入新的职工性别:"; cin>>w[k].sex; cout<<"修改信息已保存,现返回主菜单:"<<endl; menu(); case 3: break; cout<<"请输入新的职工学历:"; cin>>w[k].edu; cout<<"修改信息已保存,现返回主菜单:"<<endl; menu(); case 4: break; cout<<"请输入新的职工年龄:"; cin>>w[k].age; cout<<"修改信息已保存,现返回主菜单:"<<endl; menu(); case 5: break; cout<<"请输入新的职工工资:"; cin>>w[k].salary; cout<<"修改信息已保存,现返回主菜单:"<<endl; menu(); case 6: break; cout<<"请输入新的职工地址:"; cin>>w[k].address; cout<<"修改信息已保存,现返回主菜单:"<<endl; menu(); case 7: break; cout<<"请输入新的职工电话:"; cin>>w[k].tel; case 8:

} cout<<"修改信息已保存,现返回主菜单:"<<endl; menu(); break; menu(); break; case 0: default:

职工信息保存模块

void WorkerList::save()

{

} if(NUM<=0) { } else { fout<<w[i].num<<'t'<<w[i].name<<'t'<<w[i].sex<<'t'<<w[i].edu<<'t'<<w[i].age<<'t'<<w[i].salary<<'t'<< } cout<<"系统返回主菜单:"<<endl; menu(); fout.close(); ofstream fout; fout.open("D:\worker.txt",ios::out); cout<<"文件正在保存......请稍候!!"<<endl; cout<<"数据保存成功!!!"<<endl; fout<<"已保存员工信息如下:"<<endl; fout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl; for(int i=0;i<count;i++) cout<<"没有职工信息存入,系统将返回主菜单"<<endl; menu(); w[i].address<<'t'<<w[i].tel<<endl;

四.系统测试

通过对员工的信息的添加,修改,删除,保存,排序,查找等功能进行检测。未发现任何异常现象。在这里:我们将测试的结果图片贴在了下面

5.软件使用说明书

(1)根据正确的提示安装软件。

(2)PC台式机和便携式电脑都可运行。

(3) 打开该程序系统,浏览菜单,根据需要选择功能,进行各项操作。 操作如下:

点击开始菜单,进入菜单选择。

输入:将所需的信息输入。

输出:职工基本信息。

输入:根据不同的需要选择,当信息输入显示出错误时,进入浏览信息,找出错误。当错误不能改正,则退出浏览信息。

进入查询信息:则屏幕会出现已一个对话框——按工号查找,把相应的所需信息的状态(是否借出)。当查询不能显示需要时进入修改程序,把所输入的信息进行修改,使之正确能够正常运行或进入删除信息中,重新输入自己所要的信息。

当信息输入正确,进入你所需要的菜单程序中:

职工信息:显示职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等。

管理员信息:显示出职工信息管理的负责人及他们的工号。

设计总结

在本系统的开发过程中,由于组是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对职工信息管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。

尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。通过开发这个系统,我组掌握了的项目基本开发过程,用到的知识巩固了我组对C语言的学习,但在这次设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。

参考文献

[1] 王连相 c++程序设计教程 ,中国铁道出版社,2007

[2] 谭浩强 C语言程序设计教程,安徽出版社,1999

[3] 谭浩强 C程序设计题解与上机指导,清华大学出版社,1999

[4] C语言的实际应用,安徽科学技术出版社,2000

[5] C语言函数手册,机械工业出版社,1999

[6] C语言实用程序荟萃,西安电子科技大学出版社,1993

鸣谢。

致 谢

在编写程序的过程中,我们得到了老师的精心指导以及孜孜不倦的教诲,在老师的指导下,我们的能力得到了提高,同时养成了科学、严谨的作风和习惯,在此,我们对老师的精心栽培表示衷心的感谢!

感谢我们小组同学对我的帮助和指点,尤其感谢我的舍友在非常时期,在生活和学习上帮我许多忙。在课设即将完成之际,我的心情无法平静,从开始进入课题到课设的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意。

附录:

本组成员。

组长:龚贵彬。组员:樊后涛,任宁宁,方磊,余望明,宋帅。

1.了解工作要求,明确分工内容,网上查阅相关资料。所有组员共同参与。

2.主函数,显示菜单函数的编写。由余望明完成。

3.编写信息添加模块,由任宁宁完成。

4.职工信息修改,保存模块的编写,由龚贵彬完成。

5职工信息查询模块,由樊后涛完成。

6.职工信息删除模块,由宋帅完成。

7.职工信息排序模块,由方磊完成

8.需求分析设计由任宁宁和樊后涛完成

9.文本编写由龚贵彬完成。

最后总结调试。由所有组员共同完成。

源程序代码:

#include<iostream>

#include"string"

#include<fstream>

#include <stdlib.h>

#include <stdio.h>

#define N 100//N作为最大职工总数

int f=0;//f作为开关

using namespace std;

string p;//p作为接收菜单选项的字符串

void menu();//显示菜单

class worker

{

public:

worker(){}

void show();//职工信息显示

~worker(){}

friend class WorkerList;

private:

string num,name,sex,edu,address,tel;

int age,salary;

};

class WorkerList

{

private:

worker w[N];

int NUM;//用来计算职工数目

int count;//用来暂时记录当前操作第几个职工

public:

void add();//职工信息录入

void sort();//职工信息排序

void search();//职工信息查找

void dele();//职工信息删除

void modify();//职工信息修改

void save();//职工信息以文件形式保存

void showworker();//显示职工信息在屏幕上

WorkerList(){

NUM=0;

count=0;

}

};

void menu()

{

cout<<endl;

cout<<"***********************************************"<<endl; 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<<"** 0.退出 **"<<endl; cout<<"** **"<<endl; cout<<"***********************************************"<<endl; cout<<endl;

}

void domain()//主菜单函数实现

{

WorkerList wl; while(1) { system("cls"); menu(); cout<<"请选择数字编号~7"<<endl; int i1; cin>>i1; while(!(i1>=0&&i1<=7)) { cout<<"输入有误,请重新输入:"<<endl; cin>>i1; } switch(i1) { case 1: wl.add();break; case 2: wl.modify();break; case 3: wl.dele();break; case 4: wl.sort();break; case 5: wl.search();break; case 7: wl.save();break; case 6: wl.showworker();break; case 0: cout<<"系统退出!!"<<endl; exit(0); default: break; } cout<<"是否返回主菜单? Y/N"<<endl; cin>>p; if(p=="n"||p=="N") { cout<<"系统退出!!"<<endl; exit(0); }

//getchar();

}

}

void WorkerList::add()//职工信息添加函数实现

{

cout<<"请输入职工信息:"<<endl;

cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl;

string num;

cin>>num;

for(int i=0;i<NUM;i++)

while(num==w[i].num)

{

cout<<"此职工编号已存在,请重新输入:"<<endl;

cin>>num;

}

w[NUM].num=num;

cin>>w[NUM].name>>w[NUM].sex>>w[NUM].edu>>w[NUM].age>>w[NUM].salary>>w[NUM].address>>w[NUM].tel;

++NUM;

count=NUM;

}

void worker::show()//显示职工信息函数实现

{

cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl;

cout<<num<<'t'<<name<<'t'<<sex<<'t'<<edu<<'t'<<age<<'t'<<salary<<'t'<<address<<'t'<<tel<<endl;

cout<<endl;

}

void WorkerList::modify()//职工信息修改函数实现

{

if(NUM<=0)

{

cout<<"没有职工信息存入,系统将返回主菜单"<<endl;

menu();

}

else

{ cout<<"职工信息如下:"<<endl;

cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl; for(int i=0;i<count;i++)

cout<<w[i].num<<'t'<<w[i].name<<'t'<<w[i].sex<<'t'<<w[i].edu<<'t'<<w[i].age<<'t'<<w[i].salary<<'t'<<w[i].address<<'t'<<w[i].tel<<endl;

}

cout<<"请输入需要修改信息职工的工号:"<<endl;

string num1;

cin>>num1;

int j=0,k;

int flag=1;

while(flag)

{

for(;j<count;j++)

{

if(num1==w[j].num)

{

flag=0;

k=j;

break;

}

}

if(flag)

{

cout<<"不存在此员工,请重新输入:"<<endl;

j=0;

cin>>num1;

}

}

cout<<"你选择的职工的信息为:"<<endl;

cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl;

cout<<w[k].num<<'t'<<w[k].name<<'t'<<w[k].sex<<'t'<<w[k].edu<<'t'<<w[k].age<<'t'<<w[k].salary<<'t'<<w[k].address<<'t'<<w[k].tel<<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; cout<<"***********************************************"<<endl; cout<<endl;

cout<<"请选择数字编号~8"<<endl;

int i3;

cin>>i3;

while(i3<0||i3>8)

{

cout<<"输入有误,请重新输入:"<<endl;

cin>>i3;

}

switch(i3)

{

case 1:

cout<<"请输入新的职工工号:";

cin>>w[k].num;

cout<<"修改信息已保存,现返回主菜单:"<<endl; menu();

break;

case 2:

cout<<"请输入新的职工姓名:";

cin>>w[k].name;

cout<<"修改信息已保存,现返回主菜单:"<<endl; menu();

break;

case 3:

cout<<"请输入新的职工性别:";

cin>>w[k].sex;

cout<<"修改信息已保存,现返回主菜单:"<<endl; menu();

break;

case 4:

cout<<"请输入新的职工学历:";

cin>>w[k].edu;

cout<<"修改信息已保存,现返回主菜单:"<<endl; menu();

break;

case 5:

cout<<"请输入新的职工年龄:";

cin>>w[k].age;

cout<<"修改信息已保存,现返回主菜单:"<<endl; menu();

break;

case 6:

cout<<"请输入新的职工工资:";

cin>>w[k].salary;

cout<<"修改信息已保存,现返回主菜单:"<<endl; menu();

break;

case 7:

cout<<"请输入新的职工地址:";

cin>>w[k].address;

cout<<"修改信息已保存,现返回主菜单:"<<endl;

menu();

break;

case 8:

cout<<"请输入新的职工电话:";

cin>>w[k].tel;

cout<<"修改信息已保存,现返回主菜单:"<<endl;

menu();

break;

case 0:

menu();

default:

break;

}

}

void WorkerList::showworker()//职工信息显示函数实现

{

if(NUM<=0)

{

cout<<"没有职工信息存入,系统将返回主菜单"<<endl;

menu();

}

else

cout<<"已保存的职工信息如下:"<<endl;

cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl;

for(int i=0;i<count;i++)

cout<<w[i].num<<'t'<<w[i].name<<'t'<<w[i].sex<<'t'<<w[i].edu<<'t'<<w[i].age<<'t'<<w[i].salary<<'t'<<w[i].address<<'t'<<w[i].tel<<endl;

/*cout<<"是否返回主菜单? Y/N"<<endl;

cin>>p;

while(1)

{

if(p=="y"||p=="Y")

{

menu();

}

else if(p=="n"||p=="N")

{

cout<<"系统退出!!"<<endl;

exit(0);

}

else

{

cout<<"输入有误,请重新输入:";

cin>>p;

}

}*/

}

void WorkerList::search()

{

if(NUM<=0)

{

cout<<"没有职工信息存入,系统将返回主菜单"<<endl; menu();

}

else

cout<<"请选择查找方式:"<<endl;

cout<<"***********************************************"<<endl; cout<<"** 1.按工号查找 **"<<endl; cout<<"** 2.按姓名查找 **"<<endl; cout<<"** 3.按工资查找 **"<<endl; cout<<"** 4.按学历查找 **"<<endl; cout<<"** 0.返回主菜单 **"<<endl; cout<<"***********************************************"<<endl; cout<<endl;

cout<<"请选择数字编号~4"<<endl;

int i4;

cin>>i4;

while(i4<0||i4>4)

{

cout<<"输入有误,请重新输入:"<<endl;

cin>>i4;

}

if(i4==1)

{

string num2;

cout<<"请输入要查询的职工的工号:"<<endl;

cin>>num2;

int j=0,k;

int flag=1;

while(flag)

{

for(;j<count;j++)

{

if(num2==w[j].num)

{

flag=0;

k=j;

cout<<"查询的职工信息如下:"<<endl;

cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl;

cout<<w[k].num<<'t'<<w[k].name<<'t'<<w[k].sex<<'t'<<w[k].edu<<'t'<<w[k].age<<'t'<<w[k].salary<<'t'<<w[k].address<<'t'<<w[k].tel<<endl;

break;

}

}

if(flag)

{

flag=0;

cout<<"不存在此职工!!n返回主菜单"<<endl;

break;

}

}

}

else if(i4==2)

{

string name2;

cout<<"请输入要查询的职工的姓名:"<<endl;

cin>>name2;

int j2=0,k2;

int flag2=1;

while(flag2)

{

for(;j2<count;j2++)

{

if(name2==w[j2].name)

{

flag2=0;

k2=j2;

cout<<"查询的职工信息如下:"<<endl;

cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl;

cout<<w[k2].num<<'t'<<w[k2].name<<'t'<<w[k2].sex<<'t'<<w[k2].edu<<'t'<<w[k2].age<<'t'<<w[k2].salary<<'t'<<w[k2].address<<'t'<<w[k2].tel<<endl; break;

}

}

if(flag2)

{

flag2=0;

cout<<"不存在此职工!!n返回主菜单"<<endl;

break;

}

}

}

else if(i4==3)

{

int salary2;

cout<<"请输入要查询的职工的工资:"<<endl;

cin>>salary2;

int j3=0,k3;

int flag3=1;

while(flag3)

{

for(;j3<count;j3++)

{

if(salary2==w[j3].salary)

{

flag3=0;

k3=j3;

cout<<"查询的职工信息如下:"<<endl;

cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl;

cout<<w[k3].num<<'t'<<w[k3].name<<'t'<<w[k3].sex<<'t'<<w[k3].edu<<'t'<<w[k3].age<<'t'<<w[k3].salary<<'t'<<w[k3].address<<'t'<<w[k3].tel<<endl; break;

}

}

if(flag3)

{

flag3=0;

cout<<"不存在此职工!!n返回主菜单"<<endl;

break;

}

}

}

else if(i4==4)

{

string edu2;

cout<<"请输入要查询的职工的学历:"<<endl;

cin>>edu2;

int j4=0,k4;

int flag4=1;

while(flag4)

{

for(;j4<count;j4++)

{

if(edu2==w[j4].edu)

{

flag4=0;

k4=j4;

cout<<"查询的职工信息如下:"<<endl;

cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl;

cout<<w[k4].num<<'t'<<w[k4].name<<'t'<<w[k4].sex<<'t'<<w[k4].edu<<'t'<<w[k4].age<<'t'<<w[k4].salary<<'t'<<w[k4].address<<'t'<<w[k4].tel<<endl; break;

}

}

if(flag4)

{

flag4=0;

cout<<"不存在此职工!!n返回主菜单"<<endl;

break;

}

}

}

else if(i4==0)

menu();

}

void WorkerList::sort()//职工信息排序功能实现

{

if(NUM<=0)

{

cout<<"没有职工信息存入,系统将返回主菜单"<<endl;

menu();

}

else

cout<<"请选择排序方式:"<<endl;

cout<<"***********************************************"<<endl; cout<<"** 1.按工号排序(升序) **"<<endl;

cout<<"** 2.按工号排序(降序) **"<<endl; cout<<"** 3.按姓名排序(升序) **"<<endl; cout<<"** 4.按姓名排序(降序) **"<<endl; cout<<"** 5.按工资排序(升序) **"<<endl; cout<<"** 6.按工资排序(降序) **"<<endl; cout<<"** 0.返回主菜单 **"<<endl; cout<<"***********************************************"<<endl; cout<<endl;

cout<<"请选择数字编号~6"<<endl;

int i5;

cin>>i5;

while(i5<0||i5>6)

{

cout<<"输入有误,请重新输入:"<<endl;

cin>>i5;

}

if(i5==1)

{

for(int i=0;i<count-1;i++)

for(int j=0;j<count-1-i;j++)

if(w[j].num>w[j+1].num)

{

string temp;

temp=w[j].num;

w[j].num=w[j+1].num;

w[j+1].num=temp;

}

cout<<"按工号升序后的信息如下:"<<endl;

cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl; for(int i=0;i<count;i++)

cout<<w[i].num<<'t'<<w[i].name<<'t'<<w[i].sex<<'t'<<w[i].edu<<'t'<<w[i].age<<'t'<<w[i].salary<<'t'<<w[i].address<<'t'<<w[i].tel<<endl;

}

else if(i5==2)

{

for(int i=0;i<count-1;i++)

for(int j=0;j<count-1-i;j++)

if(w[j].num<w[j+1].num)

{

string temp;

temp=w[j].num;

w[j].num=w[j+1].num;

w[j+1].num=temp;

}

cout<<"按工号降序后的信息如下:"<<endl;

cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl; for(int i=0;i<count;i++)

cout<<w[i].num<<'t'<<w[i].name<<'t'<<w[i].sex<<'t'<<w[i].edu<<'t'<<w[i].age<<'t'<<w[i].salary<<'t'<<w[i].address<<'t'<<w[i].tel<<endl;

}

else if(i5==3)

{

for(int i=0;i<count-1;i++)

for(int j=0;j<count-1-i;j++)

if(w[j].name>w[j+1].name)

{

string temp;

temp=w[j].name;

w[j].name=w[j+1].name;

w[j+1].name=temp;

}

cout<<"按姓名升序后的信息如下:"<<endl;

cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl; for(int i=0;i<count;i++)

cout<<w[i].num<<'t'<<w[i].name<<'t'<<w[i].sex<<'t'<<w[i].edu<<'t'<<w[i].age<<'t'<<w[i].salary<<'t'<<w[i].address<<'t'<<w[i].tel<<endl;

}

else if(i5==4)

{

for(int i=0;i<count-1;i++)

for(int j=0;j<count-i-1;j++)

if(w[j].name<w[j+1].name)

{

string temp;

temp=w[j].name;

w[j].name=w[j+1].name;

w[j+1].name=temp;

}

cout<<"按姓名降序后的信息如下:"<<endl;

cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl; for(int i=0;i<count;i++)

cout<<w[i].num<<'t'<<w[i].name<<'t'<<w[i].sex<<'t'<<w[i].edu<<'t'<<w[i].age<<'t'<<w[i].salary<<'t'<<w[i].address<<'t'<<w[i].tel<<endl;

}

else if(i5==5)

{

for(int i=0;i<count-1;i++)

for(int j=0;j<count-i-1;j++)

if(w[j].salary>w[j+1].salary)

{

int temp;

temp=w[j].salary;

w[j].salary=w[j+1].salary;

w[j+1].salary=temp;

}

cout<<"按工资升序后的信息如下:"<<endl;

cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl; for(int i=0;i<count;i++)

cout<<w[i].num<<'t'<<w[i].name<<'t'<<w[i].sex<<'t'<<w[i].edu<<'t'<<w[i].age<<'t'<<w[i].salary<<'t'<<w[i].address<<'t'<<w[i].tel<<endl;

}

else if(i5==6)

{

for(int i=0;i<count-1;i++)

for(int j=0;j<count-i-1;j++)

if(w[j].salary<w[j+1].salary)

{

int temp;

temp=w[j].salary;

w[j].salary=w[j+1].salary;

w[j+1].salary=temp;

}

cout<<"按工资降序后的信息如下:"<<endl;

cout<<"工号t姓名t性别t学历t年龄t工资t地址t电话"<<endl; for(int i=0;i<count;i++)

cout<<w[i].num<<'t'<<w[i].name<<'t'<<w[i].sex<<'t'<<w[i].edu<<'t'<<w[i].age<<'t'<<w[i].salary<<'t'<<w[i].address<<'t'<<w[i].tel<<endl;

}

else if(i5==0)

menu();

}

void WorkerList::dele()//职工信息删除功能实现

{

if(NUM<=0)

{

三 : C语言程序设计-职工信息管理系统

C语

0025252525

课程设计言

C语言课程设计任务书

一、题目:职工信息管理系统

二、目的和要求

目的:要求熟练掌握C语言的基本知识和编辑技能;

基本掌握结构化程序设计的基本思路和方法。

要求:设计一个职工信息管理系统,使之能提供以下功能:

1、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

2、输入功能:职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。

3、浏览功能:完成对全部职工信息的显示。

4、查找功能:①完成按职工的职工号查询职工的相关信息,并显示。 ②完成按职工的学历查询职工的相关信息,并显示。 ③完成按职工的电话号码查询职工的相关信息,并显

示。

5、删除功能:通过输入职工的姓名完成对该名职工的信息进行删除。

6、添加功能:完成添加新职工的信息的任务。

7、修改功能:通过输入职工的姓名完成对该名职工的信息进行修改。

8、退出职工信息管理系统。

三、信息描述

职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等。

四、解决方案

1、首先进行需求分析,搞清楚系统功能和任务;

2、然后在总体设计中确定模块结构、划分功能模块,将软件功能需求分配给所划分的最单元模块。确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略;

3、在详细设计中,为每个模块确定采用的算法,选择适当的工具表达算法的过程(流程图)来描述模块的详细过程。确定每一模块采用的数据结构和模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块的接口;

4、根据分析编写C语言代码。

1

五、进度安排

课程设计时间为两周,分为五个阶段完成:

1、 分析设计阶段。在老师的指导下自主学习和钻研问题,明确设计要求,找出现实方法。按照需求分析、总体设计、详细设计几个步骤进行。这一阶段前1-2天完成;

2、 编码调试阶段。根据设计分析方案编写C语言代码,然后调试该代码,实现课题要求的功能。这一阶段在3-7天完成;

3、 总结报告阶段。总结设计工作,写出课程设计说明书,包括需求分析、总体设计、详细设计、编码、测试的步骤和内容。这一阶段在8-9天完成;

4、 考核阶段。

六、写课程设计总结

课程设计报告要求

总结报告包括需求分析、总体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结和参考资料等。

七、参考资料

《C程序设计》(第三版) 谭浩强 著 清华大学出版社

《C程序设计题解与上机指导》(第三版 ) 谭浩强 编著 清华大学出版社

2

目录

1.总体设计方案 ????????????????????????3

2.使用说明及运行实例 ????????????????????5

3.项目源程序代码 ???????????????????????10

4.课程设计心得 ????????????????????????23

总体设计方案

3

一.系统的总体流程图

图1.系统的总体流程图

4

二. 为了方便使用结构此系统结构均为全局类型定义

struct employee //定义一个职工信息的结构体

{

int num;

char name[10];

char sex;

int age;

char xueli[30];

int wage;

char addr[30];

char tel[20];

}em[100];

三.各模块的功能和实现

1.菜单模块:显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的void menu()函数来实现。

2.输入模块:输入职工的工号、姓名以及其它的一些职工的相关信息,通过自己定义的void input()函数来实现。

3.保存模块:将内存中职工的信息输出到磁盘文件中,可以通过自己定义的void save(int)函数来实现。

4.浏览模块:浏览所有职工的相关信息,通过自己定义的void display()函数来实现。

5.删除模块:删除需要删除的职工的所有信息,通过自己定义的void del()函数来实现。

6.添加模块:添加需要添加的职工的相关信息,通过自己定义的void add()函数来实现。

7.按职工号查询模块:可以按职工号来查询职工的相关信息,通过自己定义的void search_num()函数来实现。

8.按职工的的学历查询模块:可以按职工的学历来查询职工的相关信息,通过自己定义的void search_xuelil函数来实现。

9.按职工的电话号码查询模块:可以按职工的电话来查询职工的相关信息,通过自己定义的void search_tel函数来实现。

10.修改模块:可以修改需要修改的职工的相关信息,通过自己定义的void modify()函数 来实现。

11.退出系统模块:退出职工信息管理系统,通过头文件windows.h中的exit(0)函数来实现。

5

使用说明及运行实例

1.运行程序,进入职工信息管理系统的主菜单:

图1:进入主菜单界面

2.输入数字“1”进行录入职工信息:

图2:录入职工信息

3.输入“y”返回主菜单(界面同图1)。 6

管理信息系统课程设计/管理信息系统课程设计报告的评论条评论