招聘干部录取系统(C++).doc

上传人:laozhun 文档编号:2385356 上传时间:2023-02-17 格式:DOC 页数:26 大小:123.50KB
返回 下载 相关 举报
招聘干部录取系统(C++).doc_第1页
第1页 / 共26页
招聘干部录取系统(C++).doc_第2页
第2页 / 共26页
招聘干部录取系统(C++).doc_第3页
第3页 / 共26页
招聘干部录取系统(C++).doc_第4页
第4页 / 共26页
招聘干部录取系统(C++).doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《招聘干部录取系统(C++).doc》由会员分享,可在线阅读,更多相关《招聘干部录取系统(C++).doc(26页珍藏版)》请在三一办公上搜索。

1、1 题目与要求1.1 题目:招聘干部录取系统设某市公开招聘5名副局长。招聘过程中要进行4项笔试(政策法律基础、语文、英语、计算机基础)和一项口试(考察处理问题能力)。录取时对于年龄在3055的应聘者按总分从高到低录取。总分的构成如下:4项笔试分(百分制);口试分(百分制)乘2;学历分;年龄分;工作经历分。后三种分数的计算方法如下: 学历分:博 士硕 士本 科其 它 100分75分50分0分年龄分:55 岁50 岁40 岁35 岁30 岁70分75分100分80分70分其它年龄(可以有小数部分)的分数按线性插值确定。工作经历分(仅考虑任科级干部年限): 0年1年2年6年6年以上0分70分 100

2、分 20分 0分其它年龄(可以有小数部分)的分数按线性插值确定。用VC+语言实现招聘干部录取系统。该系统在磁盘上存贮如下信息:1、应聘者报名表。表中记录了每位应聘者的有关信息,其中包括:姓名、性别、出生年月、最后学历、任科级干部有多少年月、现工作单位。2、每位应聘者5项考试的成绩。该系统的功能如下:1、 输入应聘者的信息和5项考试成绩;2、 输出按总分从高到低排列的成绩表,表项有姓名、8项分数、总分。设应聘者不超过50名;3、 输出5份录取通知书;4、 查询某人的8项分数和总分。1.2 综合程序设计要求一、 文档1、 需求说明书(分层的数据流图、数据词典、小说明);2、 模块结构图,每个模块的

3、说明;3、 每个模块的算法及使用的数据结构;4、 每个模块的编码和整个程序的编码;5、 各模块的测试用例及测试结果;6、 使用手册。二、 程序1、 设计若干命令以表示要求程序执行相应的功能;2、 输入到程序的数据名称及格式应通过提示信息告诉用户。能拒绝非法数据,同时给出重新输入数据的提示。当输入数据量很大时,应建立磁盘文件,以便重复演示程序功能;3、 程序的运行结果要以清晰可读的形式显示出来,并可打印及存贮,以便查阅。2 画数据流图2.1 顶层数据流图应聘截至日期 成绩总表招聘干部录取系统应聘者信息和考试成绩 录取通知书表被查询人姓名 被查询者个人成绩 图1 招聘干部录取系统数据流图(第0层)

4、相应的数据词典条目:数据流名:招聘截止日期组 成:年月数据流名:应聘者信息与考试成绩组 成:个人信息考试成绩1n注 :n为应聘人数:n50。数据流名:成绩总表组 成 :姓名个人成绩1n注 :按总分从高到低排列。数据流名:录取通知书表组 成:姓名被录取的信息15注:1.总分前五名的录取通知单。2.若应聘者不足五人,按实际人数处理。数据流名:被查询者的个人成绩组 成:姓名个人成绩数据项名:个人信息组 成:姓名性别出生年月最后学历工作年限现工作单位注 :工作年限指任科级干部的年月。数据项名:考试成绩组 成:政策法律基础成绩语文成绩英语成绩计算机成绩口试成绩数据项名:个人成绩组 成:考试成绩学历分年龄

5、分工作经历分+口试分数据项名:总分组 成:考试成绩学历分年龄分工作经历分口试分2.2 第一层数据流图读入输出信息处理读入1*信息 总表应聘者信息和考试成绩成绩总表信息处理录取通知书招聘截止日期123被查询者成绩 1*:成绩总表应聘者人数 被查询人姓名图2 招聘干部录取系统数据流图(第一层)数据流名:信息总表组 成:个人信息考试成绩* * *+招聘截止年月文 件 名:成绩总表组 成:姓名个人成绩组 织:按总分从高到低顺序。加 工 名:读入编 号:1激发条件:需招聘成绩表,或需要确定干部录取情况,或需要某指定者的成绩加工逻辑:1将“应聘者信息与考试成绩”读入信息总表中 2读入招聘截止年月2.3 关

6、于加工“信息处理的”的分解 初步成绩表信息总表计算填表排序 成绩总表 应聘者人数2.12.2图3 加工“信息处理”的分解文件名:初步成绩总表形成:姓名个人成绩已填入的应聘者个数。加工名:计算填表编号:2.1激发条件:信息总表已经形成加工逻辑:将应聘者的学历、年龄和工作年限计算成学历分、年龄分和工作经历分,并计算总分,将应聘者所有成绩填入初步成绩表中。加工名:排序编号:2.2激发条件:初步成绩总表按总分高到低排序加工逻辑:按总分的高低从高到低排列个人成绩和姓名。2.4 关于加工“输出”的分解 3.1输出成绩总表 成绩总表3.2输出录取通知书成绩总表应聘者人数录取通知书3.3输出被查询者成绩被查询

7、者成绩 被查询人姓名 图4 加工“输出”的分解2.5 系统数据流图输出成绩总表打印成绩总表应聘者信息和考试成绩 初步成绩表排序计算填表读入1*信息总表输出录取通知书1*1*输出被查询者成绩询者成绩招聘截止日期 被查询人姓名1*:成绩总表应聘人数图5 招聘干部录取系统数据流图3 画模块结构图从图5可以看出,从2.1到2.3均为信息处理部分,可视作系统的中心变换部分。那么从加工1至加工2.1的“信息总表”便是系统的逻辑输入,从加工2.3到文件成绩总表的数据流程便是系统的逻辑输出。我们为中心变换部分和其前、后的部分各设计一个模块,因此可画出系统顶层的模块结构图。输 出读 入信息处理干部招聘主模块成绩

8、总表信息总表信息总表成绩总表图6 系统顶层模块结构下面考虑三个第一层模块的下属模块。由于输入的功能就是“读入”加工的功能,将招聘截止年月和应聘者信息与考试成绩读入信息总表中,比较简单,不用为其设立下属模块。现将其更名为“读入”模块。再设计“输出”模块的下属模块。根据系统要求,输出模块应根据用户要求完成“打印成绩总表”、“打印录取通知书表”和“模块的下属模块”。根据系统要求,输出模块应根据用户要求完成“打印成绩总表”、“打印录取通知书表”和“打印被查询者个人成绩”三项功能中的一项或几项,所以可为“输出”模块建立如图7所示的三个模块。下面考虑设计“信息处理”模块的下属模块。从图3的数据流图可见,可

9、为“信息处理”模块设立两个下属模块:“计算填表”和“排序”。前一个模块完成计算各项分数并填入初步成绩表,循环调用该模块直至填表完毕。至此,我们可以画出整个软件的模块结构图。如图9。其中每一个模块都用了一个表示符合给予命名。下面列出各模块的功能说明:输 出成绩总表应聘人数输出录取通知书表输出成绩总表输出被查询者成绩成绩总表成绩总表应聘人数 应聘人数成绩总表应聘人数 排序计算填表图7 输出模块下属模块信息总表 应聘截止日期 成绩总表信息处理填入初步成绩表填入成绩表 已填入人数 信息总表 成绩总表 应聘人数图8 “信息处理”及其下属模块信息处理TREATINF干部招聘主模块INVCAD输出被查询者成

10、绩PRNPER输出成绩总表PRNMARK输出录取通知书表PRNINF排序ARRANGE计算填表CALFILL输出EXPORTION读入READIN信息总表成绩总表应聘者个数信息总表应聘截止日期成绩总表 填入初步成绩 填入成绩表应聘人数已填入人数成绩总表 成绩总表信息总表 应聘人数 成绩总表应聘人数成绩总表应聘人数被查询者姓名图9 系统的模块结构图3.1 干部招聘主模块模块名:INVCAD输入:、输出:功能:建立成绩总表调用以下模块:READIN、TREATINF、EXPORT3.2 模块模块名:READIN输入:、输出:功能:将、存入指定的中。调用以下模块:无注释:该模块与数据流图中的加工对应

11、。3.3 模块模块名:TREATINF输入:、输出:功能:将中信息折算成成绩,并按总分从高到低排成。调用以下模块:CALCUT、FILLIN、ARRANGE注释:该模块与数据流图中的加工对应。3.4 模块模块名:EXPORT输入:、输出:、和中的一项或几项的屏幕形象或纸面现象。功能:将、和中的一项或几项在屏幕或打印机上显示出来。调用一下模块:PRNMARK、PRNINF、PRNPER注释:该模块与数据流图中的加工对应。3.5 模块模块名:CALCUT 输入:、输出:、功能:根据当前的一个应聘者的信息,计算出他的个人成绩,填入表中。调用一下模块:CALAGE、CALWORK注释:该模块与数据流图

12、中的加工对应。3.6 模块模块名:ARRANGE输入:、输出:功能:将按总分从高到低排序。调用以下模块:无注释:该模块与数据流图中的加工对应。3.7 模块模块名:PRNMARK输入:、输出:的屏幕形象或纸面形象。功能:将在屏幕或纸面上显示出来。调用以下模块:无注释:该模块与数据流图中的加工对应。3.8 模块模块名:PRNINF输入:、输出:的屏幕或纸面形象。功能:将在屏幕或纸面上显示出来。调用以下模块:无注释:该模块与数据流图中的加工对应。3.9 模块模块名:PRNPER输入:、输出:的屏幕或纸面形象。功能:将在屏幕或纸面上显示。调用以下模块:无注释:该模块与数据流图中的加工对应。4 详细设计

13、(VC+语言)4.1 主模板先考虑主模块的数据结构,根据数据词典的说明,容易设计出这些数据的类型和相应的变量。struct Tdate 招聘截止日期 int year; int month;struct Tmark 考试成绩 float pol; 政治 float chn; 语文 flaot eng; 英语 float com; 计算机 float oral; 口试struct Tinform 应聘者个人信息 char name20; 姓名 char sex; 性别 char schoolrecord; 学历 float worklen; 任科级干部年限 char wordsite60; 现工

14、作单位 Tmark mark; 考试成绩 struct Tmarks 应聘者信息和考试成绩 char name20; 姓名 float age; 年龄分 float srecord; 学历分 float wlen; 工作经历分Tmark mark; 考试成绩 float total; 总分Tmarklist50; Ifstream Inflist; 信息总表文件Tmarks Tmarklist50 成绩总表Tmarks marklist;char Sourcefile20 外部文件名注:文件操作由于多为结构体数据,因此建议使用二进制文件操作方法;主模块算法模块名:INVCAD输入:、输出:指令

15、:输出系统的初始界面输出菜单界面开提示窗口,要求用户输入选择项招聘干部录取系统1 输入应聘者信息2 结果输出switch( )case 1: 调用读入模块,建立文件 break;case 2: 调用输出模块break;default: break;4.2 模块该模块与加工1对应。它先读入招聘截止日期,再依次读入应聘者的各项信息,同时对信息作鉴别,看是否合理。读完一个应聘者的所有信息后将其全部再屏幕上显示出来,供输入者复核。该模块涉及的数据基本上再主模块理定义了,其它定义如下: Tdate STOP,BIRTH,WORKTIME; 招聘截止年月,出生年月,工作年限 float ALEN; 年龄c

16、har JUDGE; 判断是否正确:Y/NTinform INF; 信息总表的一个元素的内容float STOPLLINE; 招聘截止时间int I; 应聘的人数“读入”模块算法(每输入一位应聘者信息,将其保存在外部文件 filelist.dat中)模块名:READIN输入:、输出:指令: 读入招聘截止日期; I=0; while(!infile.eof( ) 读入姓名; 读入性别,鉴别;读入学历,鉴别;读入工作地点;读入出生年月,鉴别;读入工作年限,鉴别;读入考试成绩,鉴别;读入工作年限,鉴别;读入考试成绩,鉴别;输出所有信息,确认有无错误;将信息写入文件I=I+1;4.3 信息处理模块 如

17、果模块“计算填表”模块和“排序”模块分别能实现编号为2.1、2.2的加工逻辑,那么根据模块“信息处理”对其下属模块的管理方法,可写出其算法。我们要使用的变量有:float STOPLINE;招聘截止日期Tinform INFORM;文件的一个元素信息处理模块的算法模块名:TREATINF输入:、输出:指令:以读打开文件 Inflist.open(Sourcefile) INFORM文件Inflist的一个元素 STOPLINE应聘截止日期 I=0 WHILE(没有到达文件结束EOF) INFORM文件INFLIST的一个元素 调用“计算填表”模块 调用“排序”模块 解除文件Inflist外部文

18、件的联系Inflist.fclose()4.4 输出模块该模块只是起选择通道的作用。根据模块的输入,输出和小说明,可设计出该模块的算法。“输出”模块的算法模块名:EXPORT输入:、输出:、和中的一项或几项的屏幕形象或纸面形象。指令:switch( ) case 1:调用“输出成绩总表”模块 case 2:调用“输出录取通知书表”模块 case 3:调用“输出被查询者成绩”模块 4.5 计算填表模块根据该模块的输入、输出和小说明,可设计出该模块和算法指令:计算填表的算法模块名:CALCUT输入:、输出:、指令:计算学历分 计算年龄分 计算工作经历分 计算总分 将成绩填入成绩总表中4.6 排序模

19、块该模块与加工2.2对应,我们使用冒泡排序的方法,涉及到的数据结构如下:int FLAG;若值为TRUE则为发生过交换Tmarks TEMP;交换时的中间变量根据该模块的输入、输出和小说明,可设计出该模块的排序算法:排序模块的算法(也可以使用其它可行的排序算法,见教课书)模块名:ARRANGE输入:、输出:指令:FLAG = TRUE J=1 while(J=J) if (marklistL.totalmarklistL+1.total) 将两个元素换位 FLAG=TRUE L=L-1 J=J1 4.7 输出“成绩总表”模块该模块与加工3.1对应,根据模块的输入、输出和小说明,可设计出该模块的

20、算法。输出“成绩总表”模块算法:模块名:PRNMARK输入:、输出:的屏幕形象或纸面形象。指令:输出提示信息for(J=1;JI;J+) 输出应聘者成绩 IF(J%4=0) 清屏并继续输出4.8 输出“录取通知书表”模块该模块与加工3.2对应,根据该模块的输入、输出和小说明,可设计出该模块的算法。输出“成绩总表”模块的算法;模块名:PRNINF输入:、输出:的屏幕或纸面形象。指令:K=输出的份数For(J=1;JK;J+) 输出录取通知书4.9 输出被查询者成绩该模块与加工3.3对应,根据该模块的输入、输出和小说明,可设计出该模块的算法,我们将用QNAME来存储被查询者姓名。打印被查询者成绩的

21、算法:模块名:PRNPER输入:、输出:的屏幕或纸面形象。指令:do输出提示信息cout输入被查询者姓名 查询该姓名是否在成绩总表中if 在表中 输出该人成绩ELSE输出提示信息要求重复姓名 while(姓名不在成绩总表中)5 程序代码设计/gbly.cpp 干部招聘录用系统/李其泉 2010-12-31/-#include stdafx.h#include #include #include #include #include using namespace std;/ 变量、结构体定义区 -struct Tmark / 考试成绩 float pol; / 政治float chn; / 语文

22、float eng; / 英语float com; / 计算机float oral; / 口试;struct Tinform / 应聘者个人信息 string name; / 姓名string sex; / 性别string birthday; / 出生日期int age; / 年龄string schoolrecord; / 学历int worklen; / 任科级干部年限string wordsite; / 现工作单位Tmark mark; / 考试成绩float srecord; / 学历分float agenum; / 年龄分float wlen; / 工作经历分float total

23、; / 总分;struct Tinform tinformList50;int w=0; /定义一个全局变量 int findFlag=0; /定义查询标志/-/ 自定义函数区 开始-/-int MenuShow() /自定义函数/* 功能:输出系统操作界面 */ cout =n; cout = =n; cout = 招聘干部录取系统 =n; cout = =n; cout =-=n; cout = =n; cout = 1.录入应聘信息 =n; cout = 2.输出总分表 =n; cout = 3.输出录取通知书 =n; cout = 4.查 询 =n; cout = 5.删 除 =n; cout = 6.退 出 =n; cout = =n; cout = =n; cout = CopyRight 2010 LQQ =n; cout =n; cout6) iFen=0; else iFen=999; float_return=float(iFen); break; case 2: /年龄 itmpx=atoi(sValue.c_str(); itmpFen=float(itmpx); if (itmpx = 30 & itmpx 35 & itmpx 40 & itmpx = 50) /100-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号