您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 招聘干部录取系统(C++)
11题目与要求1.1题目:招聘干部录取系统设某市公开招聘5名副局长。招聘过程中要进行4项笔试(政策法律基础、语文、英语、计算机基础)和一项口试(考察处理问题能力)。录取时对于年龄在30~55的应聘者按总分从高到低录取。总分的构成如下:4项笔试分(百分制);口试分(百分制)乘2;学历分;年龄分;工作经历分。后三种分数的计算方法如下:学历分:博士硕士本科其它100分75分50分0分年龄分:55岁50岁40岁35岁30岁70分75分100分80分70分其它年龄(可以有小数部分)的分数按线性插值确定。工作经历分(仅考虑任科级干部年限):0年1年2年6年6年以上0分70分100分20分0分其它年龄(可以有小数部分)的分数按线性插值确定。用VC++语言实现招聘干部录取系统。该系统在磁盘上存贮如下信息:1、应聘者报名表。表中记录了每位应聘者的有关信息,其中包括:姓名、性别、出生年月、最后学历、任科级干部有多少年月、现工作单位。2、每位应聘者5项考试的成绩。该系统的功能如下:1、输入应聘者的信息和5项考试成绩;2、输出按总分从高到低排列的成绩表,表项有姓名、8项分数、总分。设应聘者不超过50名;3、输出5份录取通知书;4、查询某人的8项分数和总分。21.2综合程序设计要求一、文档1、需求说明书(分层的数据流图、数据词典、小说明);2、模块结构图,每个模块的说明;3、每个模块的算法及使用的数据结构;4、每个模块的编码和整个程序的编码;5、各模块的测试用例及测试结果;6、使用手册。二、程序1、设计若干命令以表示要求程序执行相应的功能;2、输入到程序的数据名称及格式应通过提示信息告诉用户。能拒绝非法数据,同时给出重新输入数据的提示。当输入数据量很大时,应建立磁盘文件,以便重复演示程序功能;3、程序的运行结果要以清晰可读的形式显示出来,并可打印及存贮,以便查阅。2画数据流图2.1顶层数据流图应聘截至日期成绩总表应聘者信息和考试成绩录取通知书表被查询人姓名被查询者个人成绩图1招聘干部录取系统数据流图(第0层)相应的数据词典条目:数据流名:招聘截止日期组成:年+月数据流名:应聘者信息与考试成绩组成:{个人信息+考试成绩}1n注:n为应聘人数:n≤50。数据流名:成绩总表组成:{姓名+个人成绩}1n注:按总分从高到低排列。数据流名:录取通知书表组成:{姓名+被录取的信息}15注:1.总分前五名的录取通知单。2.若应聘者不足五人,按实际人数处理。数据流名:被查询者的个人成绩招聘干部录取系统3组成:姓名+个人成绩数据项名:个人信息组成:姓名+性别+出生年月+最后学历+工作年限+现工作单位注:工作年限指任科级干部的年月。数据项名:考试成绩组成:政策法律基础成绩+语文成绩+英语成绩+计算机成绩+口试成绩数据项名:个人成绩组成:考试成绩+学历分+年龄分+工作经历分+口试分数据项名:总分组成:考试成绩+学历分+年龄分+工作经历分+口试分2.2第一层数据流图成绩总表录取通知书123被查询者成绩1*:成绩总表+应聘者人数被查询人姓名图2招聘干部录取系统数据流图(第一层)数据流名:信息总表组成:{个人信息+考试成绩}***+招聘截止年月文件名:成绩总表组成:姓名+个人成绩组织:按总分从高到低顺序。加工名:读入编号:1激发条件:需招聘成绩表,或需要确定干部录取情况,或需要某指定者的成绩加工逻辑:1将“应聘者信息与考试成绩”读入信息总表中2读入招聘截止年月2.3关于加工“信息处理的”的分解初步成绩表成绩总表应聘者人数2.12.2图3加工“信息处理”的分解读入输出信息处理信息总表1*应聘者信息和考试成绩招聘截止日期读入信息处理计算填表排序信息总表4文件名:初步成绩总表形成:姓名+个人成绩已填入的应聘者个数。加工名:计算填表编号:2.1激发条件:信息总表已经形成加工逻辑:将应聘者的学历、年龄和工作年限计算成学历分、年龄分和工作经历分,并计算总分,将应聘者所有成绩填入初步成绩表中。加工名:排序编号:2.2激发条件:初步成绩总表按总分高到低排序加工逻辑:按总分的高低从高到低排列个人成绩和姓名。2.4关于加工“输出”的分解3.1成绩总表3.2成绩总表+应聘者人数录取通知书3.3被查询者成绩被查询人姓名图4加工“输出”的分解2.5系统数据流图应聘者信息和考试成绩初步成绩表1*1*1*招聘截止日期被查询人姓名1*:成绩总表+应聘人数图5招聘干部录取系统数据流图读入计算填表排序打印成绩总表输出录取通知书输出成绩总表输出被查询者成绩询者成绩信息总表输出成绩总表输出被查询者成绩输出录取通知书53画模块结构图从图5可以看出,从2.1到2.3均为信息处理部分,可视作系统的中心变换部分。那么从加工1至加工2.1的“信息总表”便是系统的逻辑输入,从加工2.3到文件成绩总表的数据流程便是系统的逻辑输出。我们为中心变换部分和其前、后的部分各设计一个模块,因此可画出系统顶层的模块结构图。成绩总表信息总表信息总表成绩总表图6系统顶层模块结构下面考虑三个第一层模块的下属模块。由于输入的功能就是“读入”加工的功能,将招聘截止年月和应聘者信息与考试成绩读入信息总表中,比较简单,不用为其设立下属模块。现将其更名为“读入”模块。再设计“输出”模块的下属模块。根据系统要求,输出模块应根据用户要求完成“打印成绩总表”、“打印录取通知书表”和“模块的下属模块”。根据系统要求,输出模块应根据用户要求完成“打印成绩总表”、“打印录取通知书表”和“打印被查询者个人成绩”三项功能中的一项或几项,所以可为“输出”模块建立如图7所示的三个模块。下面考虑设计“信息处理”模块的下属模块。从图3的数据流图可见,可为“信息处理”模块设立两个下属模块:“计算填表”和“排序”。前一个模块完成计算各项分数并填入初步成绩表,循环调用该模块直至填表完毕。至此,我们可以画出整个软件的模块结构图。如图9。其中每一个模块都用了一个表示符合给予命名。下面列出各模块的功能说明:成绩总表应聘人数成绩总表成绩总表应聘人数应聘人数图7输出模块下属模块干部招聘主模块读入输出信息处理输出输出成绩总表输出录取通知书表输出被查询者成绩成绩总表应聘人数6信息总表应聘截止日期成绩总表填入初步成绩表填入成绩表已填入人数信息总表成绩总表应聘人数图8“信息处理”及其下属模块信息总表成绩总表应聘者个数信息总表应聘截止日期成绩总表填入初步成绩填入成绩表应聘人数已填入人数成绩总表成绩总表信息总表应聘人数成绩总表应聘人数成绩总表应聘人数被查询者姓名图9系统的模块结构图信息处理干部招聘主模块INVCAD读入READIN信息处理TREATINF输出EXPORTION排序ARRANGE输出成绩总表PRNMARK计算填表CALFILL输出录取通知书表PRNINF输出被查询者成绩PRNPER73.1干部招聘主模块模块名:INVCAD输入:招聘截止日期、应聘者信息与考试成绩、被查询人姓名输出:成绩总表功能:建立成绩总表调用以下模块:READIN、TREATINF、EXPORT3.2读入模块模块名:READIN输入:招聘截止日期、应聘者信息与考试成绩输出:信息总表功能:将招聘截止日期、应聘者信息与考试成绩存入指定的信息总表中。调用以下模块:无注释:该模块与数据流图中的加工读入对应。3.3信息处理模块模块名:TREATINF输入:信息总表、应聘截止日期输出:成绩总表功能:将信息总表中信息折算成成绩,并按总分从高到低排成成绩总表。调用以下模块:CALCUT、FILLIN、ARRANGE注释:该模块与数据流图中的加工信息处理对应。3.4输出模块模块名:EXPORT输入:成绩总表、被查询人姓名输出:成绩总表、录取通知书表和被查询人个人成绩中的一项或几项的屏幕形象或纸面现象。功能:将成绩总表、录取通知书表和被查询人个人成绩中的一项或几项在屏幕或打印机上显示出来。调用一下模块:PRNMARK、PRNINF、PRNPER注释:该模块与数据流图中的加工输出对应。3.5计算填表模块模块名:CALCUT输入:信息总表、应聘截止日期输出:初步成绩表、应聘者人数功能:根据当前的一个应聘者的信息,计算出他的个人成绩,填入表中。调用一下模块:CALAGE、CALWORK注释:该模块与数据流图中的加工计算填表对应。3.6排序模块模块名:ARRANGE输入:初步成绩表、应聘者人数输出:输出总表功能:将初步成绩表按总分从高到低排序。调用以下模块:无注释:该模块与数据流图中的加工排序对应。83.7输出成绩总表模块模块名:PRNMARK输入:成绩总表、应聘者人数输出:成绩总表的屏幕形象或纸面形象。功能:将成绩总表在屏幕或纸面上显示出来。调用以下模块:无注释:该模块与数据流图中的加工打印成绩总表对应。3.8输出录取通知书表模块模块名:PRNINF输入:成绩总表、应聘者人数输出:录取通知书的屏幕或纸面形象。功能:将录取通知书在屏幕或纸面上显示出来。调用以下模块:无注释:该模块与数据流图中的加工打印录取通知书对应。3.9输出被查询者个人成绩模块模块名:PRNPER输入:成绩总表、应聘者人数输出:被查询者个人成绩的屏幕或纸面形象。功能:将被查询者个人成绩在屏幕或纸面上显示。调用以下模块:无注释:该模块与数据流图中的加工打印被查询者个人成绩对应。94详细设计(VC++语言)4.1主模板先考虑主模块的数据结构,根据数据词典的说明,容易设计出这些数据的类型和相应的变量。structTdate{招聘截止日期}{intyear;intmonth;}structTmark{考试成绩}{floatpol;{政治}floatchn;{语文}flaoteng;{英语}floatcom;{计算机}floatoral;{口试}}structTinform{应聘者个人信息}{charname[20];{姓名}charsex;{性别}charschoolrecord;{学历}floatworklen;{任科级干部年限}charwordsite[60];{现工作单位}Tmarkmark;{考试成绩}}structTmarks{应聘者信息和考试成绩}{charname[20];{姓名}floatage;{年龄分}floatsrecord;{学历分}floatwlen;{工作经历分}Tmarkmark;{考试成绩}floattotal;{总分}}Tmarklist[50];IfstreamInflist;{信息总表文件}TmarksTmarklist[50]{成绩总表}Tmarksmarklist;charSourcefile[20]{外部文件名}注:文件操作由于多为结构体数据,因此建议使用二进制文件操作方法;10主模块算法模块名:INVCAD输入:招聘截止日期、应聘者信息与考试成绩、被查询人姓名输出:成绩总表指令:输出系统的初始界面输出菜单界面开提示窗口,要求用户输入选择项招聘干部录取系统1.输入应聘者信息2.结果输出switch(){case1:调用〈读入〉模块,建立文件break;case2:调用〈输出〉模块break;default:break;}4.2读入模块该模块与加工1对应。它先读入招聘截止日期,再依次读入应聘者的各项信息,同时对信息作鉴别,看是否合理。读完一个应聘者的所有信息后将其全部再屏幕上显示出来,供输入者复核。该模块涉及的数据基本上再主模块理定义了,其它定义如下:TdateSTOP,BIRTH,WORKTIME;{招聘截止年月,出生年月,工作年限}floatALEN;{年龄}charJUDGE;{判断是否正确:Y/N}TinformINF;{信息总表的一个元素的内容}floatSTOPLLINE;{招聘截止时间}intI;{应聘的人数}“读入”模块算法(每输入一位应聘者信息,将其保存在外部文件fil
本文标题:招聘干部录取系统(C++)
链接地址:https://www.777doc.com/doc-5136179 .html