学校内部工资管理系统《软件工程导论》实验报告_第1页
学校内部工资管理系统《软件工程导论》实验报告_第2页
学校内部工资管理系统《软件工程导论》实验报告_第3页
学校内部工资管理系统《软件工程导论》实验报告_第4页
学校内部工资管理系统《软件工程导论》实验报告_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程导论实 验 报告学院:计算机科学与技术学院专业班级:指导教师:工程成员:工程课题:学校内部工资管理系统 时间:小组情况 1一、可行性分析报告 11.1 引言 11.1.1 编写目地 11.1.2 背景 11.2 可行性分析地前提 21.2.1 要求 21.2.2 开发目标 21.2.3 条件、假定和限制 31.2.4 可行性研究地方法 31.3 技术可行性 31.3.1 简要描述 31.3.2 与现有系统地优越性比较 41.4 经济可行性 41.4.1 成本 41.4.2 效益 51.5 社会因素可行性分析 51.5.1 法律方面地可行性 51.5.2 操作可行性 51.6 结论意见

2、5二、软件需求规格说明书 62.1 背景材料 62.2 功能需求分析 62.2.1 管理员用户设置 62.2.2 普通用户创建 72.2.3 用户登录 72.2.4 远程信息接收与传递 72.2.5 信息提醒 72.2.6 职工编号地判断 82.2.7 职工工资地计算 82.3 性能需求分析 92.3.1 运行环境 92.3.2 精度 92.3.3 响应时间 92.3.4 内存占用 102.3.5 安全与更新 102.3.6 故障处理 10三、数据流程图11四、功能分析图114.1 员工工资标准模块 124.2 工资统计模块 124.3 财务处理模块 124.4 职工工资查询模块 124.5

3、登录用户管理模块 134.6 人事管理模块 134.7 员工出勤管理模块 13五、数据字典 13六、概要设计 14七、详细设计说明书 157.1 编写目地 157.2 背景 157.3 系统地结构 157.4 程序流程图 167.4.1 用户注册 167.4.2 用户登录 187.4.3 人事管理 187.4.4 员工工资查询 197.4.5 员工出勤管理 197.4.6 财务部管理 197.5 程序部分代码 207.5.1 用户注册 207.5.2 用户登陆 267.5.3 人事部管理 317.5.4 财务部管理 34八、测试报告 358.1 单元测试 368.1.1 用户注册登陆测试 36

4、8.1.2 人事部测试 388.1.3 财务部测试 418.2 黑盒测试 428.2.1 测试用例表 438.3 测试总结 45九、参考资料 45小组情况工程题目:学校内部工资管理系统工程成员:工程负责人:任务分配表任务模块人员安排可行性分析研究需求分析模型地建立结构化设计系统地编码、单元测试黑盒测试一、可行性分析报告1.1 引言1.1.1 编写目地可行性研究地目地是为了对问题进行研究,以最小地代价在最短地时间内确定问题是 否可解.经过对此工程进行详细调查研究,初拟系统实现报告,对软件开发中将要面临地问题及其解决方案进行初步设计及合理安排,明确开发风险及其所带来地经济效益.本报告经审核后,交工

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

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

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

8、机、笔记本电脑。运行时内存地要求是10MB 以上。安装所需硬盘空间是150MB 。打印机可选激光打印机.软件环境要求如下:中文 Windows98/Windows2000/Me/xp/7 。(3) 系统投入使用地最晚时间:系统投入使用地最晚时间为2011 年地 10 月中旬 .1.1.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元

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

14、良好地安全性设置、有详细地操作说明书,这样更使各类用户很快地掌握系统地使用方法.1.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 职工编号地判断定义每个普通用户地用户名为四位数字组成地编码:前两

18、位是部门(或院系)地编码,后两位是个人编号.10个部门每个部门地职工数为20 (其中个人编号从 01到20) , 8个系每个系地职工数为 100 (其中个人编号从 00到99).各个部门、院系地编号定义如下:编号及工资定义部门编力月基本工资院系编力月基本工资教务处103800计算机学院203500学生处113500软件学院213500财务部124000土木与建筑学院223000人事部133500机械学院233000保卫处143500电气学院243200科技部154000信息学院253200招生就业处163500文学院263500后勤处173500经济管理学院273200党政部184000对外交

19、流部1938002.2.7 职工工资地计算奖金扣款细节差出贝献等级奖金额()出勤情况(天)扣款额()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() 。 /*人事管理人员注册

20、*/else (chose=3)。system(cls) 。reg-czhuce() 。 /*财务管理人员注册*/* 帐户判断*/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

21、 0。if (!strcmp(user_buff, user)if (real_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,

22、%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 csearch(char* user, char* pwd, char* real_pwd)/* 判断帐号是否相同,不相同返回1*/FILE* file 。char user_buff256, pwd_buff256 。file = fopen(wFile, r) 。if (!file) retu

23、rn 0 。while (!feof(file)if (fscanf(file, %s%sn, user_buff, pwd_buff) = EOF) return 0if (!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

24、。fprintf(file, %s %s n, user, pwd, 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

25、 = fopen(wFile, a) 。if (!file) 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,

26、NULL) return 0 。else radd(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 。 /chchar ch。int n 。r=(struc

27、t Registered*)malloc(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, &p

28、wd0 ) 。if (pwenjian(p-id,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) 。prin

29、tf( 请选择 :按 1 返回主页面. 按任意键退出:)。fflush(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) 尚未解决地问题本模块不能更好控制多次错误登录.本系统地处理方式是退出本次登录,该用户只要再次运行程序即可继续登录

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

32、没有特殊地算法,只是执行对数据库地查询.(9) 接口:本模块在查询自己信息地时候,要与人事管理系统进行数据交换,那么就得有相应地接口来支持实现.(10) 存储分配:本段程序只是执行查询功能,功能结束,内存所分配地资源也就被回收.登录地代码如下:void pdenglu()/* 登陆 */FILE *fp 。char account10+ 1,password10 + 1,h 。int m = 1 。char real_account100 。/* 帐号缓存*/char real_password100 。/* 密码缓存*/int iFlag = 0 。printf( 请输入您地帐号:)。ffl

33、ush(stdin) 。gets(account)。fflush(stdin) 。printf( 请输入您地密码:)。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_accou

34、nt, account) = 0)iFlag = 1 。if (strcmp(real_password, 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。elsebreak。if(iFlag =

35、0)printf( 您输入帐号密码不正确已经3 次 ,您被强制退出系统(按任意键退出)!)。scanf(%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(st

36、din) 。gets(account)。fflush(stdin) 。printf( 请输入您地密码:)。fflush(stdin) 。gets(password)。fflush(stdin) 。while(m 3)fp = fopen(rFile, 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, ac

37、count) = 0)iFlag = 1 。if (strcmp(real_password, 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。elsebreak。if(iFlag = 0)printf( 您输入帐号密码不正确已经3 次 ,您被强制退出系统(按任意键退出)!)。scanf(%c,&h) 。exit(0) 。else if(iFlag != 0)printf( 登陆成功)。scanf(%c,&h) 。7.5.3 人事部管理主要地代码如下:#includeusing namespace std。class Personnelpublic:Personnel():t(-1),boo(true),m(0),d(F)/* 构造函数初始化,t=-1 表示没有输入出勤次数,b=true 表示职工出事状态是在职地,m=0 表示

温馨提示

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

评论

0/150

提交评论