版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 文档编号_ 保密级别_ 软件测试工程师管理系统详细设计说明书北大青鸟信息技术培训中心版本说明日期版本号发布说明作者批准人签字岗位目录1引言81.1编写目的81.2项目背景81.3定义81.4参考资料82程序系统的组织结构82.1程序关系82.2程序运行过程82.3系统菜单界面82.4系统处理流程9102.5接口设计113总体设计113.1输入项目113.2输出项目113.3功能要求113.4性能要求113.5系统数据结构设计113.6各函数调用关系124各功能函数设计134.1主函数134.1.1程序描述144.1.2功能144.1.3性能144.1.4输入项目144.1.5输出项目144.
2、1.6算法144.1.7程序逻辑144.1.8接口154.1.9存储分配164.1.10限制条件164.1.11测试要点164.2输入工程师信息函数164.2.1程序描述164.2.2功能164.2.3性能164.2.4输入项目164.2.5输出项目174.2.6算法174.2.7程序逻辑174.2.8接口214.2.9存储分配214.2.10限制条件214.2.11测试要点214.3删除工程师信息函数224.3.1程序描述224.3.2功能224.3.3性能224.3.4输入项目224.3.5输出项目224.3.6算法224.3.7程序逻辑234.3.8接口234.3.9存储分配234.3.
3、10限制条件244.3.11测试要点244.4查询工程师信息函数254.4.1程序描述254.4.2功能254.4.3性能254.4.4输入项目254.4.5输出项目254.4.6算法254.4.7程序逻辑264.4.8接口264.4.9存储分配264.4.10限制条件264.4.11测试要点264.5修改工程师信息函数274.5.1程序描述274.5.2功能274.5.3性能274.5.4输入项目274.5.5输出项目274.5.6算法274.5.7程序逻辑274.5.8接口304.5.9存储分配304.5.10限制条件304.5.11测试要点304.6计算工程师工资函数314.6.1程序描
4、述314.6.2功能314.6.3性能314.6.4输入项目314.6.5输出项目314.6.6算法314.6.7程序逻辑324.6.8接口324.6.9存储分配324.6.10限制条件334.6.11测试要点334.7保存工程师信息函数344.7.1程序描述344.7.2功能344.7.3性能344.7.4输入项目344.7.5输出项目344.7.6算法344.7.7程序逻辑344.7.8接口344.7.9存储分配354.7.10限制条件354.7.11测试要点354.8对工程师排序函数364.8.1程序描述364.8.2功能364.8.3性能364.8.4输入项目364.8.5输出项目36
5、4.8.6算法364.8.7程序逻辑364.8.8接口364.8.9存储分配374.8.10限制条件374.8.11测试要点374.9输出工程师信息函数384.9.1程序描述384.9.2功能384.9.3性能384.9.4输入项目384.9.5输出项目384.9.6算法384.9.7程序逻辑394.9.8接口394.9.9存储分配394.9.10限制条件394.9.11测试要点394.10清零工程师信息函数404.10.1程序描述404.10.2功能404.10.3性能404.10.4输入项目404.10.5输出项目404.10.6算法404.10.7程序逻辑414.10.8接口414.10
6、.9存储分配414.10.10限制条件414.10.11测试要点424.11打印工程师信息函数434.11.1程序描述434.11.2功能434.11.3性能434.11.4输入项目434.11.5输出项目434.11.6算法434.11.7程序逻辑434.11.8接口444.11.9存储分配444.11.10限制条件444.11.11测试要点445程序与数据结构455.1全局变量455.2数据结构使用456系统出错处理设计457安全保密计划461 引言1.1 编写目的尽可能详细地描述程序各成份的设计思路,以利于编制程序。1.2 项目背景该项目的实施主要是为提高北京梅梅公司的人事管理效率而编制
7、的。1.3 定义1.4 参考资料2 程序系统的组织结构2.1 程序关系本系统的每一项功能由一个或几个函数来实现。每一个菜单对应一个功能函数。2.2 程序运行过程1. 系统在运行后,首先从文件中得到被保存的软件测试工程师信息,来初始化系统与工程师信息有关的数据结构;2. 用户选择在系统功能菜单中选择要进行的操作,选择后调用对应的函数;3. 完成必要的相应的功能模块;4. 系统完成该项功能后,显示结果信息给用户;5. 系统可返回第2步,供用户继续选择要进行的操作;6. 用户选择菜单中的0系统结束,在系统结束时如果用户修改的数据,则提示用户是否把数据保存到文件。2.3系统菜单界面系统运行中提供用户选
8、择的主菜单如下:图一:系统主菜单2.4系统处理流程系统启动判断数据文件中有工程师数据吗?Y填充工程师数据结构N显示菜单用户选择添加工程师资料删除指定工程师资料查询指定工程师资料修改指定工程师资料计算工程师月薪水保存新添加的工程师资料对工程师资料进行排序输出所有工程师资料清空所有工程师资料打印工程师所有资料报表重新导出工程师资料用户选择退出了吗?NY如修改了数据提示用户需要保存否?数据写文件系统结束YN图二:系统处理流程2.5接口设计系统使用DOS环境和windows下的虚拟DOS环境。与用户的接口是通过控制台交互,系统提供用户菜单,系统接收用户键盘输入,输入和输出均等均在显示器上显示。3总体设
9、计3.1输入项目系统的输入项目主要是用户的输入和选择。在提示用户选择时,提示用户选择菜单的编号,编号以数字的输入。在提示排序时也是以提示用户选择排序方式,排序方式也是以数字编号的形式输入。用户在输入软件测试工程师信息时,输入用户的输入有可能是数字(包括实型),也可能是字符或字符串。输入限制在函数功能设计中进行说明。3.2输出项目系统的输出主要是工程师信息资料,各项信息以要求的形式输出。输出格式在函数功能设计中说明。输出也包括计算出的工程师当月薪水。3.3功能要求要求系统能够接收用户输入的工程师信息。3.4性能要求要求本系统在完成各项功能的同时,要求系统处理迅速,处理事务需要长时间时,提示用户等
10、待且等待时间在用户可接收的范围之内。精度要求:输出实型数据时只保留两位小数。3.5系统数据结构设计软件测试工程师的数据结构如下:struct EngineerStruct /声明存储工程师信息的结构体 unsigned int EngineerNo; /工程师编号char EngineerName20; /工程师姓名unsigned int EngineerSex; /工程师性别struct DateStruct EngineerBirth; /工程师生日char EngineerHometown10; /工程师籍贯unsigned int EngineerEducation; /工程师学历c
11、har EngineerAddress30; /工程师地址char EngineerPhone15; /工程师电话unsigned int EngineerWorkYears; /工程师工龄float EngineerBaseSalary; /工程师基本薪水 ;工程师的生日用数据结构表示如下:struct DateStruct /日期结构,用于存储工程师的出生生日 int year; int month; int day;声明枚举类型:enum StatusFALSE,TRUE;/控制输入情况的两种状态enum Sexmale,female; /性别分类,默认0为男、1为女enum Educa
12、tionhigh,bachelor,master,docter,other; /学历分类,默认0开始存储软件测试工程师的的当月工资天数和当月薪水的数据结构如下:double Salary10=0.0; /工程师薪水unsigned int EngineerMonthWorkDays10=0; /工程师工作天数3.6各函数调用关系主函数mainInitDataInputEngineerInformationmenuWhichChooseDeleteEngineerInformationSearchEngineerInformationModifyEngineerInformationCalcul
13、ateEngineerSalaryEngineerInfomationSaveEngineerInformationNoSortEngineerInformationNameSortEngineerInformationWorkYearSortOutputEngineerInfomationDeleteEngineerEngineerInfomationReportEngineerInformationReloadSystemOver图三:函数调用关系图4各功能函数设计4.1主函数int main(void);4.1.1程序描述主函数是完成系统各个功能模块的调用。同时定义系统使用的变量数据以及
14、一些控制系统运行状态的变量。4.1.2功能主函数的功能主要是完成各个功能函数的调用,处理各个函数之间的接口关系。控制系统的运行状态等。只能选择功能菜单中提示的功能,如果用户选择错误,则显示菜单供用户重新选择。4.1.3性能主函数性能要求相应用户选择菜单迅速及时,同时在用户输入错误时能够及时提示用户输入错误,并提示用户重新输入。4.1.4输入项目用户输入的的功能菜单编号。为无符号整型数据,定义变量为unsigned int select;4.1.5输出项目主函数在运行结束后返回到操作系统。正常退出返回0。异常退出返回1。4.1.6算法显示供用户选择的菜单,提示用户选择,接收用户选择,根据用户选择
15、调用相应的功能函数。4.1.7程序逻辑初始化数据显示菜单调用功能函数用户的选择输入系统退出菜单用户修改了数据吗?Y需要保存数据到文件吗?Y保存数据到文件系统退出NN入口图四:主函数流程图4.1.8接口调用初始化数据函数InitData(engineer);调用menu()函数显示系统功能菜单。4.1.9存储分配由操作系统分配该系统的内存使用。4.1.10限制条件无。4.1.11测试要点用户选择输入错误时是否具有错误提示功能以及重新显示菜单功能。4.2输入工程师信息函数void InputEngineerInformation(struct EngineerStruct *Engineer);参
16、数:struct EngineerStruct *Engineer,工程师数据结构指针。 返回值:无4.2.1程序描述该函数的主要是完成系统软件测试工程师信息的输入。4.2.2功能主函数的功能主要是完成软件测试工程师信息的输入。在提示用户输入信息中,提示用户输入的数值或字符串。同时对用户的输入进行合法性值域判断,如果用户输入错误则提示用户重新输入。最多存储10个软件测试工程师的信息。4.2.3性能接收用户输入及时,错误提示信息明确。4.2.4输入项目用户输入软件测试工程师的信息如下:unsigned int EngineerNo; /工程师编号char EngineerName20; /工程师
17、姓名unsigned int EngineerSex; /工程师性别struct DateStruct EngineerBirth;/工程师生日char EngineerHometown10; /工程师籍贯unsigned int EngineerEducation; /工程师学历char EngineerAddress30; /工程师地址char EngineerPhone15; /工程师电话unsigned int EngineerWorkYears; /工程师工龄float EngineerBaseSalary; /工程师基本薪水要求:编号为数字,编号使用4为位数字,格式为0001、00
18、02.,不能重复。姓名:为字符,最长不超过20个字符。不能为空。性别:用数字表示0表示女,1表示男。不能为其它数值。生日:用数字分别表示年、月、日。格式例如:年使用四位数字表示,月使用1-12表示,日使用1-31表示。范围是(1900,2004)籍贯:使用字符表示,最长不超过10个字符。不能为空。学历:使用数字表示高中0、学士1、硕士2、博士3、其它为4。不能为其它数字。地址:使用字符表示,最长不超过30个字符。不能为空。电话:使用字符表示,最长不超过15个字符。不能为空。工龄:使用数字表示,工龄范围是(0,50。基本薪水:为实型,不能为0。4.2.5输出项目函数调用后设置工程师数据已经修改标
19、志,IfModfiy=TRUE;表示工程师的信息有变化,以供在退出系统前,提示用户是否要保存。4.2.6算法算法使用下面的流程图来表示。4.2.7程序逻辑初始化数据根据当前存在的工程师人数提示是否输入工程师的信息Y编号在00019999之间吗?YNN提示输入工程师编号函数返回该编号已经存在了吗?YN提示输入工程师性别姓名长度在(0,20之间吗?NY提示输入工程师姓名NY入口性别为0或1吗?提示输入工程师生日年为1900,2004之间吗?NY月为1,12之间吗?日为1,31之间吗?NNYY提示输入工程师学历学历为0-4之间的合法数值吗?提示输入工程师籍贯籍贯长度在(0,10之间吗?YNY提示输入
20、工程师家庭住址地址长度在(0,30之间吗?NY提示输入工程师联系电话长度在0,15之间吗?NY输入的都是数字和-吗?NY提示输入工程师工龄输入的为(0,50字之间吗?NY提示输入工程师基本工资输入的为0吗?Y函数结束图五:输入工程师信息流程图4.2.8接口调用后通过参数修改了主函数中的工程师数据结构。4.2.9存储分配由操作系统分配该系统的内存使用。4.2.10限制条件无。4.2.11测试要点用户选择输入错误时是否具有错误提示功能以及重新提示输入功能。4.3删除工程师信息函数void DeleteEngineerInformation();参数:工程师信息数据结构体。 返回值:无4.3.1程序
21、描述本函数的主要是完成系统软件测试工程师信息的按指定工程师 编号或者姓名来删除。删除无法达到实际的内存中删除,使用的覆盖前信息的方法实现4.3.2功能本函数的功能主要是完成软件测试工程师信息的删除。在提示用户输入要删除的工程师编号,同时对用户的输入的编号进行合法性值域判断,如果用户输入错误则提示用户重新输入。编号选择正确提示要用户确认是否要删除该工程师信息。成功删除后显示信息已删除。4.3.3性能接收用户输入及时,错误提示信息明确。4.3.4输入项目用户输入指定工程师编号或姓名4.3.5输出项目无4.3.6算法算法使用下面的流程图来表示。4.3.7程序逻辑出口入口指定工程师编号或姓名编号或姓名
22、是否存在打印指定工程师信息删除指定工程师信息后面工程师信息前移NNYY图六:删除工程师信息流程图4.3.8接口调用后通过参数修改了主函数中的工程师数据结构。4.3.9存储分配由操作系统分配该系统的内存使用。4.3.10限制条件无。4.3.11测试要点用户选择输入编号错误时是否具有错误提示功能以及重新提示输入功能。选择的工程师编号被删除后,不能再显示4.4查询工程师信息函数void SearchEngineerInformation();参数:工程师信息数据结构体。 返回值:工程师信息4.4.1程序描述本函数的主要是完成系统软件测试工程师信息的查询。按照编号查询,查询到符合的编号后,输出工程师信
23、息。4.4.2功能本函数的功能主要是完成软件测试工程师信息的查询。在提示用户输入要查询的工程师编号,同时对用户的输入的编号进行合法性值域判断,如果用户输入错误则提示用户重新输入。编号选择正确显示该工程师信息。成功查询后显示信息。 4.4.3性能接收用户输入及时,错误提示信息明确。4.4.4输入项目用户输入指定工程师编号或姓名4.4.5输出项目查询到的工程师信息4.4.6算法算法使用下面的流程图来表示。4.4.7程序逻辑入口输入工程师编号或姓名编号是否存在调用打印模块函数输出工程师信息出口N图七:查询工程师信息流程图4.4.8接口调用后通过参数修改了主函数中的工程师数据结构。4.4.9存储分配由
24、操作系统分配该系统的内存使用。4.4.10限制条件无4.4.11测试要点用户选择输入错误时是否具有错误提示功能以及重新提示输入功能。选择正确的工程师后,显示出该工程师信息。4.5修改工程师信息函数void ModifyEngineerInformation();参数:工程师信息数据结构体。 返回值:无4.5.1程序描述本函数的主要是完成系统软件测试工程师信息的修改。4.5.2功能本函数的功能主要是完成软件测试工程师信息的修改。在提示用户输入要修改的工程师编号,同时对用户的输入的编号进行合法性值域判断,如果用户输入错误则提示用户重新输入。编号选择正确显示原有工程师信息,之后要求修改。4.5.3性
25、能接收用户输入及时,错误提示信息明确。4.5.4输入项目输入要修改的工程师信息4.5.5输出项目工程师的所有信息4.5.6算法算法使用下面的流程图来表示。4.5.7程序逻辑入口输入编号编号是否存在输入修改后编号编号在(09999)NN输出原工程师姓名输入修改后姓名姓名在(0 20将姓名存放到姓名数组输出原工程师性别输入修改工程师性别性别是否合理NN输出原工程师籍贯输入修改后工程师籍贯籍贯在(0,10输出原家庭住址输入修改后家庭住址家庭住址(0,30输入电话号码电话长度(0,15电话是否-拷贝电话到电话数组输出原工程师学历输入修改后学历学历在0,4NYNNN输入工程师基本工资基本工资大于0输入工
26、龄工龄(0,50出口NN图八:修改工程师信息流程图4.5.8接口调用后通过参数修改了主函数中的工程师数据结构。4.5.9存储分配由操作系统分配该系统的内存使用。4.5.10限制条件无。4.5.11测试要点用户选择输入错误时是否具有错误提示功能以及重新提示输入功能。选择的工程师信息被修改后,再显示为更改后的信息。4.6计算工程师工资函数void CalculateEngineerSalary();参数:工程师基本信息。 返回值:薪水4.6.1程序描述本函数的主要是完成系统软件测试工程师工资计算。4.6.2功能本函数的功能主要是完成软件测试工程师信息的工资计算。在提示用户输入要计算工资的工程师编号
27、,同时对用户的输入的编号进行合法性值域判断,如果用户输入错误则提示用户重新输入。编号选择正确提示要用户确认要输入该工程师保险和月效益。计算后显示工程师工资,继续提示是否继续计算下一个工程师工资。直到用户选择不计算工程师工资。4.6.3性能接收用户输入及时,错误提示信息明确。4.6.4输入项目用户输入工程师的月有效工作天数、月效益和月保险金4.6.5输出项目指定工程师薪水4.6.6算法算法使用下面的流程图来表示。4.6.7程序逻辑入口输入编号编号是否存在输入月有效工作日工作日0,30输入月效益和月保险金调用薪水计算公式并计算工资输入薪水出口NN图九:计算工程师工资流程图4.6.8接口调用后通过参
28、数修改了主函数中的工程师数据结构。4.6.9存储分配由操作系统分配该系统的内存使用。4.6.10限制条件无。4.6.11测试要点用户选择输入编号错误时是否具有错误提示功能以及重新提示输入功能。工程师工资计算是否正确。4.7保存工程师信息函数void EngineerInfomationSave(void)参数: 返回值:无4.7.1程序描述本函数的主要是完成系统软件测试工程师信息的保存。4.7.2功能本函数的功能主要是完成软件测试工程师信息的保存4.7.3性能保存用户信息及时,错误提示信息明确。4.7.4输入项目无 4.7.5输出项目保存生成2进制engineer.txt文件4.7.6算法该函
29、数的功能未能实现4.7.7程序逻辑无4.7.8接口调用后通过参数保存了主函数中的工程师数据结构。4.7.9存储分配由操作系统分配该系统的内存使用。4.7.10限制条件无。4.7.11测试要点用户保存信息错误时是否具有错误提示功能以及重新提示保存功能。4.8对工程师排序函数void EngineerInformationSort(void)参数:工程师信息数据结构体。 返回值:无4.8.1程序描述本函数的主要是完成系统软件测试工程师信息的排序。4.8.2功能本函数的功能主要是完成软件测试工程师信息的排序。提示用户可以利用3种方式进行排序。通过用户的选择对已存在的工程师信息进行排序。4.8.3性能
30、接收用户输入及时,错误提示信息明确。4.8.4输入项目按编号升序、姓名升序、工龄降序4.8.5输出项目一组工程师的基本信息4.8.6算法该功能未能实现4.8.7程序逻辑4.8.8接口调用后通过参数修改了主函数中的工程师数据结构。4.8.9存储分配由操作系统分配该系统的内存使用。4.8.10限制条件无。4.8.11测试要点用户选择输入错误时是否具有错误提示功能以及重新提示输入功能。排序完毕后,在显示信息为排序后的信息。4.9输出工程师信息函数void PrintEngineerInfomation参数:工程师基本信息。 返回值:无4.9.1程序描述本函数的主要是完成系统软件测试工程师信息的输出。
31、实际上是输出编号不相等且不为0的工程师信息,但是工程师的薪水不输出。4.9.2功能本函数的功能主要是完成软件测试工程师信息的输出。4.9.3性能只输出编号不相等且不为0的工程师信息。4.9.4输入项目无4.9.5输出项目输出已存在的编号不相等且不为0的工程师信息。4.9.6算法算法使用下面的流程图来表示。4.9.7程序逻辑入口输入工程师编号输入编号是否存在输出工程师信息出口N图十一:删除工程师信息流程图4.9.8接口调用后通过参数修改了主函数中的工程师数据结构。4.9.9存储分配由操作系统分配该系统的内存使用。4.9.10限制条件无。4.9.11测试要点是否正常输出,有无乱码输出。4.10清零
32、工程师信息函数void DeleteEngineer();参数:工程师基本信息。 返回值:无4.10.1程序描述本函数的主要是完成系统软件测试工程师信息管理的清空功能。清空无法达到实际的内存中删除,使用的将所有工程师编号赋值为0的方法实现。4.10.2功能本函数的功能主要是完成软件测试工程师信息的清空。4.10.3性能将所有所有工程师的编号赋值为0。4.10.4输入项目输入工程师编号或姓名4.10.5输出项目无4.10.6算法算法使用下面的流程图来表示。4.10.7程序逻辑入口输入字符(n或y)确认清除工程师信息清除工程师信息出口NY入口输入字符(n或y)确认清除工程师信息清除工程师信息出口图
33、五:删除工程师信息流程图4.10.8接口调用后通过参数修改了主函数中的工程师数据结构。4.10.9存储分配由操作系统分配该系统的内存使用。4.10.10限制条件无。4.10.11测试要点清空的工程师信息后,不能再显示。4.11打印工程师信息函数void PrintEngineerInfomation();参数:struct EngineerStruct *Engineer,工程师数据结构指针。 返回值:无4.11.1程序描述本函数主要是实现工程师信息的打印功能。4.11.2功能本函数的功能主要是实现工程师信息的打印4.11.3性能错误提示信息明确,打印工程师信息4.11.4输入项目输入工程师编号4.11.5输出项目输出工程师所有信息,但工程师薪水除外。4.11.6算法使用下面的流程图4.11.7程序逻辑入口输入工程师编号编号是否存在打印工程师信息出口YYN打印工程师信息流程图4.11.8接口调用后通过参数保存了主函数中的工程师数据结构。4.11.9存储分配由操作系统分配该系统的内存使用。4.11.10限制条件无。4.11.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大学第四学年(水利枢纽)水利工程效益分析测试题及答案
- 天津市静海县名校2026年中考考前适应性测试语文试题含解析
- 山东省德州临邑县联考2025-2026学年初三语文试题下学期一模考试试题含解析
- 山东省临沂市罗庄区2025-2026学年中考考前针对性练习(二模)英语试题试卷含解析
- 天津市宝坻区2026届初三校内模拟考试自选模块试卷含解析
- 四川省资阳市雁江区迎丰祥2025-2026学年中考物理试题模拟卷(三)含解析
- 2026年过程装备常见腐蚀类型及案例
- 2026年机电一体化系统的创新设计实践
- 2026年过程装备状态监测的学术前沿
- 2026年设备可靠性工程与故障管理
- 高三高效课堂与尖子生培养课件
- 中药清热药医学课件
- 2023静脉治疗护理技术操作标准解读
- DK小庭院:家居小空间园艺设计方案
- 2023年南通市初中地理生物学业水平测试试题及答案
- 中医治疗“乳癖”医案41例
- 阵列信号处理基础教程
- Unit+5+Writing+Workshop+A+Picture+Description+课件【高效备课精研+知识精讲提升】 高中英语北师大版(2019)选择性必修第二册
- GB/T 29287-2012纸浆实验室打浆PFI磨法
- GB/T 16553-2003珠宝玉石鉴定
- 国际贸易 第三章 国际分工2017
评论
0/150
提交评论