《软件工程导论》实验报告(小组)

上传人:仙*** 文档编号:107901477 上传时间:2022-06-15 格式:DOC 页数:49 大小:636.50KB
收藏 版权申诉 举报 下载
《软件工程导论》实验报告(小组)_第1页
第1页 / 共49页
《软件工程导论》实验报告(小组)_第2页
第2页 / 共49页
《软件工程导论》实验报告(小组)_第3页
第3页 / 共49页
资源描述:

《《软件工程导论》实验报告(小组)》由会员分享,可在线阅读,更多相关《《软件工程导论》实验报告(小组)(49页珍藏版)》请在装配图网上搜索。

1、. . 软件工程导论实验报告学 院:计算机科学与技术学院专业班级:指导教师:项目成员:项目课题:学校部工资管理系统时 间:2011年5月46 / 49. . 目 录小组情况1一、可行性分析报告21.1 引言21.1.1 编写目的21.1.2 背景21.2 可行性分析的前提31.2.1 要求31.2.2 开发目标31.2.3 条件、假定和限制31.2.4 可行性研究的方法41.3 技术可行性41.3.1 简要描述41.3.2 与现有系统的优越性比较41.4 经济可行性51.4.1 成本51.4.2 效益51.5 社会因素可行性分析61.5.1 法律方面的可行性61.5.2 操作可行性61.6 结

2、论意见6二、软件需求规格说明书72.1 背景材料72.2 功能需求分析72.2.1 管理员用户设置72.2.2 普通用户创建82.2.3 用户登录82.2.4 远程信息接收与传递82.2.5 信息提醒82.2.6 职工编号的判断92.2.7 职工工资的计算92.3 性能需求分析102.3.1 运行环境102.3.2 精度102.3.3 响应时间102.3.4 存占用112.3.5 安全与更新112.3.6 故障处理11三、数据流程图12四、功能分析图134.1 员工工资标准模块134.2 工资统计模块134.3 财务处理模块134.4 职工工资查询模块134.5 登录用户管理模块144.6 人

3、事管理模块144.7 员工出勤管理模块14五、数据字典15六、概要设计16七、详细设计说明书177.1 编写目的177.2 背景177.3 系统的结构177.4 程序流程图187.4.1 用户注册187.4.2 用户登录207.4.3 人事管理217.4.4 员工工资查询217.4.5 员工出勤管理217.4.6 财务部管理227.5程序部分代码237.5.1 用户注册237.5.2 用户登陆297.5.3 人事部管理337.5.4 财务部管理36八、测试报告398.1 单元测试398.1.1 用户注册登陆测试398.1.2 人事部测试418.1.3 财务部测试448.2 黑盒测试458.2.

4、1 测试用例表468.3 测试总结48九、参考资料49. . 小组情况项目题目 :学校部工资管理系统项目成员 :肖远昊、闫培、马瑞良、王高明项目负责人:王高明任务分配表任务模块人员安排可行性分析研究需求分析模型的建立结构化设计系统的编码、单元测试黑盒测试一、可行性分析报告1.1 引言1.1.1 编写目的可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间确定问题是否可解。经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题与其解决方案进行初步设计与合理安排,明确开发风险与其所带来的经济效益。本报告经审核后,交项目经理审查。1.1.2 背景工资管理是学校很重要的一

5、个管理事项,它与学校的人事管理、财务管理有着密切的联系。目前大多学校部工资的管理,基本上是手工操作或是基于excel或word下的应用,对于劳资关系相对复杂的学校,手工进行工资的发放工作往往需要耗费大量的人力与时间,对信息的管理者有诸多不便。由于工资发放在时间和操作上存在着一定的重复性、规律性,这使得工资管理的计算机化成为可能。因此有必要开发一个基于网络的工资管理系统,能实现数据的录入、插入、删除、查询、统计、更新、打印等功能。同时,为了信息的与安全,系统还要提供一定的安全机制 。开发软件名称:学校部工资管理系统项目任务提出者:计算机科学与技术学院软件0902班 王高明、马瑞良、肖远昊、闫培项

6、目经理:王高明用户:理工大学1.2 可行性分析的前提1.2.1 要求(1)功能。工资管理系统的主要功能是:月工资发放和处理、标准工资库维护、临时工资发放、查询与系统维护和系统帮助。(2)性能。 方便、快捷、有效地完成工资发放的各项任务,在工资数据统计和报表打印等方面,具有准确率高、速度快等特点。 (3)系统的输入。输入所有职工的标识,如职工的、工号、所在部门、各项应发的金额和各项应扣的金额。 (4)系统的输出。输出各种报表、上报的文件等。 (5)安全和要求。 本系统在使用前必须正确输入密码,否则系统将不能运行。进入系统后,要想修改密码或对系统的一些信息进行修改,也必须输入高级用户密码,对数据库

7、中的关键数据应该要求。服务器的管理员享有对工资数据信息库的管理与修改。用户只享有对信息的查询和部分信息修改(如个人信息)。1.2.2 开发目标本系统开发目标应该考虑到以下几个方面的因素:人力与设备费用的相对减少,人员利用率的改进;数据处理速度的提高;数据统计精度的和准确率的提高。管理信息服务的改进;自动决策系统的改进;人员利用率的改进。1.2.3 条件、假定和限制项目开发中所具备的条件、假定和所受到的限制包括以下几个方面:(1)所建议系统运行寿命的最小值:系统运行寿命的最小值应达三年。(2)硬件、软件、运行环境、开发环境等条件:硬件环境要求如下:奔腾II或更高档的计算机、笔记本电脑;运行时存的

8、要10MB以上;安装所需硬盘空间是150MB;打印机可选激光打印机。软件环境要求如下:中文 Windows98/Windows2000/Me/xp/7; (3)系统投入使用的最晚时间:系统投入使用的最晚时间为2011年的10月中旬。1.2.4 可行性研究的方法(1)客户调查:通过对客户调查,了解和认知客户对软件产品的需求,按照客户的要求不仅要实现月工资发放,而且要实现临时的工资发放,同时还要有数据库备份。GZGL系统的主要功能为:月工资发放和处理、标准工资库维护、临时工资发放、查询与系统维护和系统帮助。(2)同类产品调查:通过对市场中相关或同类产品的调查,笔者了解到,工资管理系统大体上都应该实

9、现工资的统计、汇总、报表打印等功能。1.3 技术可行性1.3.1 简要描述工资管理系统是一个数据库管理和查询的系统,本系统采用常规的数据库处理方法,根据工资信息管理的特点对数据库进行操作,如对工资发放项目的修改、人员的增删、工资数据的添加和修改、工资的统计、工资的汇总、临时发放工资的管理、上报文件、打印等给予了优化。1.3.2 与现有系统的优越性比较工资管理系统有利于工资发放的统一、有效管理。与传统的手工记账方式相比,占据空间小、易于统计工资总额、易于更新、易于数据备份;与其它工资系统相比,该系统实现了对不同类型职工的工资发放,系统功能比较全面,而且价格也比较合理。工资管理系统具有高效率的系统

10、灵活性。当修改工资库中某个职工的工资情况或者修改某个工资发放项目时,只需在工资数据编辑状态下对该职工的工号进行锁定,或者对某个工资项目进行锁定,即可对锁定的项目进行修改,而对其它的人员或项目无权修改,这样可以提高系统的准确性。工资管理系统能够较好保证数据库的安全。户可以对后台数据库进行加密,同时还可以给系统设定密码。现有的技术已较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,利用现有技术条件完全可以达到该系统的功能目标。同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限完成开发。1.4 经济可行性估算新系统的成本效益分析,其中包括估计项目开发的成本,开发费用和今后的运行、维护

11、费用,估计新系统将获得的效益,估算开发成本是否会高于项目预期的全部经费。并且,分析系统开发是否会对其它产品或利润带来一定影响。1.4.1 成本(1)基本投资硬件设备:PC机软件:Windows98/Windows2000/xp/7,Delphi7,sql 2000/2005; Visual Basic 6.0、SQL Server 2000、Word 2005/2007(2) 其他一次性支出,主要是软件设计和开发费用。软件设计开发过程当中,投入设计和开发费用包括:购买书籍的资金,需求分析的费用 (其中包含技术开发上的花销、生活花销等)。 (3)经常性支出,主要是软件后期维护费用。软件开发完毕后

12、投入使用时,对软件产品进行的后期软件维护所需要支出的费用。1.4.2 效益系统的效益可以从经济效益和社会效益两方面考虑。本系统的应用使工资管理实现科学化、规化进一步实现学校员工工资管理的规化和自动化本系统。减少了人力投资和办公费用的开销,极提高办公效率。并且该系统定会受到各学校的欢迎,拥有一定的市场,可在短时间收回成本,并有可观的经济效益。投入使用将获得的经济效益分为直接效益和间接效益两方面。直接效益主要表达在:原来4人/周工作量将只须1人/周完成;间接效益表达在:减少支付3人工资(1200元/人月),共计3600元/月。1.5 社会因素可行性分析1.5.1 法律方面的可行性系统开发所用软件均

13、采用正版,系统的研制和开发,将不会侵犯他人、集体和国家的利益,不会违反国家政策和法律。本小组的工资管理系统是以微软为操作平台的。但是现在在中国微软所推出的操作系统盗版非常猖獗。作为系统的开发者,我建议用户采用正版的微软操作系统。如果因为使用盗版操作系统所带来的任何损失。本开发小组概不负责。1.5.2 操作可行性本系统定位于各高校,也可以适用于各中小型企业。运用此系统进行工资管理,给各院校教职工带来极大的方便。 只要可以熟练得使用window操作系统所提的各种功能,就很方便操作本系统,而且本系统有友好的用户界面、有良好的安全性设置、有详细的操作说明书,这样更使各类用户很快地掌握系统的使用方法。1

14、.6 结论意见由于投资效益比远大于100%, 技术、经济、操作都有可行性,可以进行开发。二、软件需求规格说明书2.1 背景材料随着信息化时代的到来,社会生活的各个方面都发生着翻天覆地的变化,当然学校这个教育的前沿阵地也发生着巨大的变化。传统的人工工资管理存在着很大的不足,如处理量随着职工人数的增多而急剧上升、靠人工来处理显得力不从心、而且极其容易出错,万一出错,将造成极大的麻烦。而以计算机代替人工执行一系列的操作,将极提高办事效率和准确率,并减轻了办公人员的负担。由此,学校工资管理系统就应运而生了。通过我们对学校现有的工资管理系统的调查,并对工作人员的提出的要求进行细致地分析,我们设计了一个实

15、用的学校工资管理系统。下面我将介绍我们项目组所开发的一个学校工资管理系统。本说明书对软件的功能需求、性能需求、系统的数据处理流程、用户权限等做了详细的说明。通过阅读本说明书,开发人员能够对该系统的各个方面进行详细的了解。进而依照本说明书对系统进行高效的开发。2.2 功能需求分析本系统所应该包括的功能有:2.2.1 管理员用户设置初次使用要求用户设置至少两个管理员(分别隶属于人事部和财务部),人事部管理员的权限有:设置各个部门或系的基本工资、奖金、扣款、人事信息管理(添加、注销等),财务部管理员的权限有:接收人事处的工资、人事等信息、对工资详情进行核对、工资单的打印、传送工资详情给银行、。界面上

16、提示输入管理员用户名和密码。2.2.2 普通用户创建由管理员根据职工的信息创建各个普通用户(即学校的职工),普通用户的权限仅限于查看工资、奖金、扣款细节等。2.2.3 用户登录请用户输入用户名和密码,判断该用户是管理员还是普通用户,根据用户类型对其所能够进行的操作进行提示和限定,若用户名不正确则输出“用户不存在的提示信息”并清空登录框,密码不正确则输出“密码错误”的提示信息并清空登录框,最多可以输入三次,三次不正确系统会自动关闭且只能在10分钟后再次登录。2.2.4 远程信息接收与传递由人事部的管理员进行职工出勤信息的接收与处理,并将出勤工资、奖金、扣款等传送给财务部的管理员,若出现职工离退休

17、等情况,要与时修改职工信息,并通知财务部等部门。财务部的管理员负责接收人事部的工资详情,并在规定的时间将职工的工资表传送给银行,并将工资条发给各个部门。2.2.5 信息提醒在每个月20日前2天提醒各部门、院系的负责人各个部门(包括系和部门)将出勤情况上报人事处。23日前一天提醒人事部管理员将出勤工资、奖金与扣款清单送到财务处 。每个月月底前三天提醒财务部管理员将教职工的工资表做好并将数据送银行。并且在每个月3号提醒将工资条发给每个单位。2.2.6 职工编号的判断定义每个普通用户的用户名为四位数字组成的编码:前两位是部门(或院系)的编码,后两位是个人编号。10个部门每个部门的职工数为20(其中个

18、人编号从01到20),8个系每个系的职工数为100(其中个人编号从00到99)。各个部门、院系的编号定义如下:编号与工资定义部门编号月基本工资院系编号月基本工资教务处103800计算机学院203500学生处113500软件学院213500财务部124000土木与建筑学院223000人事部133500机械学院233000保卫处143500电气学院243200科技部154000信息学院253200招生就业处163500文学院263500后勤处173500经济管理学院273200党政部184000对外交流部1938002.2.7 职工工资的计算奖金扣款细节突出贡献等级奖金额(¥)出勤情况(天)扣款额

19、(¥)A800=210B60020100C30019200D20018400E100welcome2();if(chose =4) while(chose =4) printf(您的输入有误,请重新输入:); fflush(stdin); scanf(%c,&chose); fflush(stdin); else if(chose=1) system(cls); reg-pzhuce();/*普通职工注册*/ else if(chose=2) system(cls); reg-rzhuce();/*人事管理人员注册*/ else (chose=3); system(cls); reg-czhu

20、ce();/*财务管理人员注册*/ /* 判断 */int psearch(char* user, char* pwd, char* real_pwd)/*判断是否相同,不相同返回1*/ FILE* file; char user_buff256, pwd_buff256; file = fopen(cFile, r); if (!file) return 0; while (!feof(file) if (fscanf(file, %s%sn, user_buff, pwd_buff) = EOF) return 0; if (!strcmp(user_buff, user) if (rea

21、l_pwd) strcpy(real_pwd, pwd_buff); return 1; fclose(file); return 0; int rsearch(char* user, char* pwd, char* real_pwd)/*判断是否相同,不相同返回1*/ FILE* file; char user_buff256, pwd_buff256; file = fopen(rFile, r); if (!file) return 0; while (!feof(file) if (fscanf(file, %s%sn, user_buff, pwd_buff) = EOF) ret

22、urn 0; if (!strcmp(user_buff, user) if (real_pwd) strcpy(real_pwd, pwd_buff); return 1; fclose(file); return 0; int csearch(char* user, char* pwd, char* real_pwd)/*判断是否相同,不相同返回1*/ FILE* file; char user_buff256, pwd_buff256; file = fopen(wFile, r); if (!file) return 0; while (!feof(file) if (fscanf(f

23、ile, %s%sn, user_buff, pwd_buff) = EOF) return 0; if (!strcmp(user_buff, user) if (real_pwd) strcpy(real_pwd, pwd_buff); return 1; fclose(file); return 0; /* 添加用户 */int padd (char* user, char* pwd, double coin_n) FILE* file; file = fopen(cFile, a); if (!file) return 0; fprintf(file, %s %s n, user, p

24、wd, coin_n); fclose(file); return 0; int radd (char* user, char* pwd, double coin_n) FILE* file; file = fopen(rFile, a); if (!file) return 0; fprintf(file, %s %s n, user, pwd, coin_n); fclose(file); return 0; int cadd (char* user, char* pwd, double coin_n) FILE* file; file = fopen(wFile, a); if (!fi

25、le) return 0; fprintf(file, %s %s n, user, pwd, coin_n); fclose(file); return 0; int pwenjian(char* user, char* pwd,double coin) if (psearch(user, pwd, NULL) return 0; else padd(user, pwd, coin); return 1; int rwenjian(char* user, char* pwd,double coin) if (rsearch(user, pwd, NULL) return 0; else ra

26、dd(user, pwd, coin); return 1; int cwenjian(char* user, char* pwd,double coin) if (csearch(user, pwd, NULL) return 0; else cadd(user, pwd, coin); return 1; void pzhuce()/*注册*/ struct Registered *p,*r; int i=0,k=0,judge1,judge2; char name30; char pwd30;/ch char ch; int n; r=(struct Registered*)malloc

27、(sizeof(struct Registered); p=(struct Registered*)malloc(sizeof(struct Registered); welcome2(); printf(请输入您的账号:); fflush(stdin); gets(name); fflush(stdin); printf(请输入您的密码:); fflush(stdin); scanf(%s,&pwd); for(n=0;n = 0 & namen =a& namen = A& namen id, &name0 );strcpy( p-psw, &pwd0 );if (pwenjian(p-i

28、d,p-psw,0)/*存入文件并输出基本信息*/ system(cls); printf(注册成功!); printf(您的注册信息如下,请牢记:n); printf(账号:); puts(p-id); printf(密码:); puts(p-psw); fflush(stdin); scanf(%c,&ch); fflush(stdin); if(ch=1) system(cls); else exit(0); else/*如有相同,注册失败*/ system(cls); printf(您输入的已经存在!注册失败!n); printf(请选择:按1返回主页面. 按任意键退出:); fflu

29、sh(stdin); scanf(%c,&ch); fflush(stdin); if(ch=1)system(cls); else exit(0); 7.5.2 用户登陆登录模块说明:1) 程序:描述本程序是系统启动时首先运行的程序,用户通过本程序的认证进入系统。通过本程序,操作系统在存为用户分配一段存,而且必须在此用户退出之前常驻存,以便对本系统的所有操作都是在此登陆用户下进行。2) 功能:本段程序功能非常简单,提供新用户注册和响应登陆者,并根据用户的权限打开不同的登陆界面。3) 性能:该模块若要注册新用户和响应登陆者,就必须对数据库的用户表进行查询、核对和更改。经过反复测试与优化,我们将

30、登陆时间限制在5秒以,若超过5秒,就显示登陆出错信息。对新用户注册数据提交时间限制在5秒,若超过5秒,就提示注册失败。4) 输人项:本程序的输入就两大类,用户名(工号)和密码。以下为这两类输入项作以下限制。 工号:必须是数字,字母组成。 密码:必须是数字、字母组成。5) 输出项:有四类输出结果,登陆成功显示财务管理用户界面、登陆成功显示人事管理用户界面、登陆成功显示普通职工界面、登陆不成功显示错误信息。6) 尚未解决的问题本模块不能更好控制多次错误登录。本系统的处理方式是退出本次登录,该用户只要再次运行程序即可继续登录。普通员工登录设计说明:1) 程序描述:本段程序主要为普通用户设定的,该程序

31、所获得的存保存在登录一直到退出登录为止。2) 功能:本段程序主要是区分普通用户和管理员用户,普通用户享有的权限很小,所享受的服务也相应的减少,只能查看自己的基本信息和自己的工资信息。其功能可用如下的功能模块图描述。3) 性能:该模块主要是查询自己的基本信息和基本工资,由于数据处理量很小,所以要求每次执行响应时间不得超过1.5秒。4) 输人项:按界面要求输入要执行的命令的编号。5) 输出项:显示我的基本信息,如,工号,性别,年龄等。显示我的工作情况,如出勤工资、奖金、扣款等。6) 算法:本段程序思想简单,没有特殊的算法,只是执行对数据库的查询。7) 接口:本模块在查询自己信息的时候,要与人事管理

32、系统进行数据交换,那么就得有相应的接口来支持实现。8) 存储分配:本段程序只是执行查询功能,功能完毕,存所分配的资源也就被回收。登录的代码如下:void pdenglu()/*登陆*/ FILE *fp; char account10+ 1,password10 + 1,h; int m = 1; char real_account100; /* 缓存 */ char real_password100; /* 密码缓存*/ int iFlag = 0; printf(请输入您的:); fflush(stdin); gets(account); fflush(stdin); printf(请输入

33、您的密码:); fflush(stdin); gets(password); fflush(stdin); while(m 3) fp = fopen(cFile, r); if (!fp) printf(不能打开文件!按任意键退出!); scanf(%c,&h); fclose(fp); exit(0); while (!feof(fp) iFlag = 0; fscanf(fp, %s %sn, real_account, real_password); if(strcmp(real_account, account) = 0) iFlag = 1; if (strcmp(real_pas

34、sword, password)=0) iFlag = 2; break; fclose(fp); if(iFlag = 0) printf(您输入的不存在或密码不正确!n请重新输入:n); printf(请输入您的:); fflush(stdin); gets(account); fflush(stdin); printf(请输入您的密码:); fflush(stdin); gets(password); fflush(stdin); m = m + 1; else break; if(iFlag = 0) printf(您输入密码不正确已经3次,您被强制退出系统(按任意键退出)!); sc

35、anf(%c,&h); exit(0); else if(iFlag != 0) printf(登陆成功);scanf(%c,&h); void rdenglu()/*登陆*/ FILE *fp; char account10+ 1,password10 + 1,h; int m = 1; char real_account100; /* 缓存 */ char real_password100; /* 密码缓存*/ int iFlag = 0; printf(请输入您的:); fflush(stdin); gets(account); fflush(stdin); printf(请输入您的密码:); fflush(stdin); gets(password); fflush(stdin); while(m 3)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!