本论文从可行性研究报告.doc

上传人:仙人指路1688 文档编号:3244994 上传时间:2023-03-12 格式:DOC 页数:63 大小:365KB
返回 下载 相关 举报
本论文从可行性研究报告.doc_第1页
第1页 / 共63页
本论文从可行性研究报告.doc_第2页
第2页 / 共63页
本论文从可行性研究报告.doc_第3页
第3页 / 共63页
本论文从可行性研究报告.doc_第4页
第4页 / 共63页
本论文从可行性研究报告.doc_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《本论文从可行性研究报告.doc》由会员分享,可在线阅读,更多相关《本论文从可行性研究报告.doc(63页珍藏版)》请在三一办公上搜索。

1、摘 要本论文从可行性研究报告、需求说明书、设计文档、程序、测试报告、用户手册等六个部分对水费管理系统进行了从头到尾的设计,通过这些步骤,该系统逐步实现了从文档到程序的可能性,从设计方法而言,本系统采用了快速原型法。首先,可性行研究报告对该系统进行调研、分析后得到它的系统流程图、总数据流图、模块和计划表;其次,需求说明书画出了该系统的详细数据流图和数据词典;第三,设计文档导出了详细的结构图以及各模块功能;第四,程序给出了该系统的程序清单;第五,测试报告从黑盒法给出了该系统的测试数据;第六,用户手册给出了该程序的说明书。从这六个方面,本系统的设计及功能实现得到了详尽的阐述。一、 可行性研究报告对于

2、银川市自来水公司水费管理系统,经过仔细调研后,形成报告如下: 复查系统目标和规模将该系统的各种原始资料收集完整后,发现该系统是一个中型的软件系统。它由四个模块组成:系统管理、表单操作、统计报表和手持机操作。其中,系统管理主要是系统的一些资料设定及相关的建库工作;表单操作包括对输入数据的一些处理以及输出等;统计报表包括对报表的相关处理;手持机操作则是对磁卡水表的数据初始化及编辑。 研究目前正在使用的系统对该系统的四个模块进行研究后发现模块的划分不清楚,有些功能没有实现等一些问题,故可以将其改进,如可以加入查询功能,系统管理、表单操作、统计报表不变,但需重新划分,手持机操作则可以删去。本系统的整体

3、思路是:当软件初次使用时,先进行系统初始化,建立权限表、用户档案、水费标准库三个数据库,系统初始化调用公共模块的公共过程实现,以后使用时,登录后进入程序主界面。首先,从系统管理入手,先进行操作员管理(只有系统管理员才能使用),设定人员权限,再进行密码修改,然后设定水费价格、进行用户编辑、用户注销、新建工作期,新建工作期新建主数据库并更新(还可以更新系统库),其实现方法采用对象变量实现,另外,数据备份和数据恢复可以从软盘和硬盘两个方面进行备份和恢复;其次,表单操作、统计报表、查询三个模块都使用了DAO模型,采用数据控件和数据绑定控件实现,其中,打印发票加入了打印功能,发票移交、用户分布表不使用数

4、据控件,只使用了网格控件,程序中使用了对象变量。现给出现有系统的高层系统流程图:抄表卡片统计报表程序系统管理程序初始数据主库 文 件系统 主文件表单处理程序打印发票程序查询程序发 票图1-1 系统流程图导出新系统的高层逻辑模型通过上一步的实现,可以导出新系统的高层逻辑模型,下面用数据流图来表示:查 询统计报 表用 户收 费 站交费表单处 理打印发 票系统管 理抄 表 员抄表 系统主文件卡片操 作 员 抄表数据发票 主库文件图1-2 数据流图其中,虚线框表示的是可用计算机实现的部分,而虚线框之外的则是用人工处理的部分。 导出和评价供选择的方案由前步可以对该系统修改如下:系 统 管 理表 单 操

5、作统 计 报 表查 询新 建 工 作 期表单处理打印发票发票移交报表日报汇总标签历史查询当月查询用 户 编 辑用 户 注 销用 户 校 验表单销号用户查询未抄表用户用户分布表公司资料设定水费价格设定分区维护水费汇总污水处理费汇总销号清单数据备份数据恢复操作员管理修改密码 草拟开发计划经过以上步骤,经分析草拟开发计划如下:可行性研究与计划一周、需求分析一周、概要设计一周、编程两周、测试一周,共需周,即一个半月。由于本系统用VB实现,它属于面向对象编程,故详细设计可以省略。以下为开发计划表:计划任务时间(周次)可行性研究与计划需求分析概要设计编 程测 试 1 2 3 4 5 6二、 需求说明书 数

6、据流图由上一节的可行性研究报告可知,根据SA方法可以画出该系统的数据流图。抄表员操作员领导财务室用户水费管理系统顶层汇总表 抄表数据报表发票 日报表 月 查询单 报 查报 表询 表 单1系统管理图系统主文件2表单处理用户操作员抄表数据 发 票 主库文件4 查询3统计报表各种报表 查询单图11.2管理用户档案1.1建立用户档案 用户档案1.4数据备份与恢复1.3操作人员权限 系统管理员 备份文件 一般用户 权限表 主库文件图1.1编号1.1.1新建工作期 户名 地址备注 其它 主库文件图1.21.2.3用户校验1.2.2用户注销1.2.1用户编辑 用户档案1.2.4用户类型设定1.2.5分区维护

7、图1.31.3.1设定人员1.3.2设定密码系统 管理员一般用户 用户档案 系统管理员 一般用户 密权限表 码1.3.3修改密码图1.4 主库文件1.4.2恢复数据1.4.1备份数据 用户档案 备份文件水费标准库图2 收费标准2.1输入当月读数2.3打印发票2.2 计算 抄表数据 发票用水记录 用户档案主库文件3.2产生日报表3.1产生月报表图3 月报表 日报表操作员财务室 主库抄表员3.4未打发票用户3.3产生汇总表 文件抄表员领导3.3.1每个小区明细表图3.3抄表员3.3.2片区汇总表 汇总数据领 导3.3.3根据历史记录用水情况表3.4.2未抄图3.43.4.3表损坏抄表员3.4.1读

8、数3.4.4漏水(送修)未打发票用户数据3.4.5还未录入操作员4.1历史查询查询者图4 查询单查询单4.3用水异常4.2当月查询 主 查询单领导 库 文4.4用户查询 件用户 查询单其中,图、图及其子图是变换型结构,图、图及其子图是事务型结构。 数据词典根据数据流图可写出数据词典如下:文件名:系统主文件别 名:用户档案组 成:编号+户名+地址+备注+其它组 织:按编号英文字母数字顺序排列文件名:主库文件组 成:编号+户名+地址+备注+上月读数+当月读数+水费+其它组 织:按编号英文字母数字顺序排列文件名:水费标准库组 成:用户类型+收费标准组 织:按用户类型英文字母数字顺序排列文件名:备份文

9、件组 成:同主库文件组 织:同主库文件注 释:文件名按年月名生成,每月一个文件,文件可压缩文件名:权限表组 成:编号+人员代号+人员名+姓名+密码组 织:按编号英文字母数字顺序排列数据流名:抄表数据 组 成:编号+户名+地址+每月读数+其它 数据流名:发票组 成:编号+户名+地址+每月读数+水量+金额+其它数据流名:报表组 成:同主库文件注 释:包括月报表、日报表、汇总表、未打发票用户数据流名:查询单组 成:同主库文件注 释:包括历史查询单、当月查询单、用户查询单数据项名:编号 值:数字0-9数据项名:户名 值:字符串数据项名:地址 值:字符串数据项名:备注 值:字符串数据项名:其它 值:根据

10、具体名字取值注 释:该数据项为一些无关紧要的数据项数据项名:人员代号 值:数字0-9数据项名:人员名组 成:系统管理员一般用户 值:字符串数据项名:姓名 值:字符串 数据项名:系统管理员 值:字符串数据项名:一般用户 值:字符串数据项名:密码 值:字符串数据项名:上月读数 值:数字-9,整型数,0-20,000数据项名:当月读数 值:数字0-9,整型数,0-20,000 数据项名:水费 值:数字-9,小数点“”数据项名:金额 值:数字-9,小数点“”数据项名:用户类型 值:字符串数据项名:收费标准 值:数字0-9,小数点“”三、设计文档1结构图根据SD方法,由上一节数据流图可以推导出结构图如下

11、:水费管理系统顶层汇总表报表 月 查 查询单 报 询报 发用户抄表员 抄表数据日报表 表 单 表 票领导财务室操作员水费管理系统图0系统管理查询统计报表表单处理 发票 各种 查询 抄表数据 报表 单输出输出操作员用户系统管理图1数据备份与恢复建立用户档案管理用户档案操作人员权限 编号主备份数据 户名 备注 库 地址 其它 文恢复数据设定人员 件 备份用户校验用户注销输出输入 文件输出设定密码备份用户编辑用户类型设定文件输入修改密码表单处理图2打印发票输入当月读数计算 抄表数据 发 用水记录收费标准 票输入输出输入统计报表图3未打发票用户产生汇总表产生月报表产生日报表月报表 日报表片区汇总表读数

12、还未录入操作员财务室操作员根据历史记录用水情况表每个小区明细表表损坏未抄漏水(送修)领导抄表员抄表员查询图4历史查询当月查询用户查询查用水异常 查询单询 查询单单 查询单用户领导查询者2模块功能各种模块的功能如下:模 块:水费管理系统功 能:处理日常用水情况的一套综合管理工具模 块:系统管理功 能:对于系统的特殊功能进行管理的模块模 块:表单处理功 能:处理输入数据、计算、及打印发票的模块模 块:统计报表功 能:统计并产生各种报表的模块模 块:查询功 能:产生各种查询的模块模 块:建立用户档案功 能:新建每个用户的最初档案模 块:管理用户档案功 能:分为用户编辑、用户注销、用户校验、用户类型设

13、定几个子模块模 块:操作人员权限功 能:设定人员及密码的模块,其中人员分为系统管理员和一般人员包括录单员、 档案录入人员、查询人员、操作员),系统管理员可以设定其它人员的权限。 模 块:数据备份与恢复功 能:备份数据和恢复数据模 块:输入当月读数功 能:输入每月的水表读数模 块:计算功 能:计算水费模 块:打印发票功 能:将发票打印输出模 块:产生月报表功 能:产生每月的月报表模 块:产生日报表功 能:产生每天的日报表模 块:产生汇总表功 能:分为每个小区明细表、片区汇总表、根据历史记录用水情况表几个子模块模 块:未打发票用户功 能:分为未抄、表损坏、漏水(送修)、还未录入几个子模块模 块:历

14、史查询功 能:查询历史记录模 块:当月查询功 能:查询当月用水情况,包括用水异常模 块:用户查询功 能:根据用户提出的情况进行查询四、 程序清单FrmSplash (快速启动窗体)Option ExplicitPrivate Sub Form_KeyPress(KeyAscii As Integer) Unload MeEnd SubPrivate Sub Form_Load() lblVersion.Caption = 版本 & App.Major & . & App.Minor & . & App.Revision lblProductName.Caption = App.TitleEnd

15、 SubPrivate Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)End SubPrivate Sub Timer1_Timer() Unload MeEnd SubFrmLogin(登陆窗体)Option ExplicitPublic LoginSucceeded As BooleanDim ws As Workspace, db As Database, rs As RecordsetDim ReadNum() As Integer, ReadNameNum() As IntegerDim ReadNam

16、e1() As String, ReadName2() As StringDim ReadPassword() As StringPrivate Sub cmdCancel_Click() 设置全局变量为 false 不提示失败的登录 LoginSucceeded = False Me.HideEnd SubPrivate Sub cmdOK_Click() 检查正确的密码 Dim ReadIndex As Integer ReadIndex = txtCombo.ListIndex + 1 If txtPassword = ReadPassword(ReadIndex) Then 将代码放在

17、这里传递 成功到 calling 函数 设置全局变量时最容易的 OperatorNum = ReadNum(ReadIndex) OperatorNameNum = ReadNameNum(ReadIndex) OperatorName1 = ReadName1(ReadIndex) OperatorName2 = ReadName2(ReadIndex) LoginSucceeded = True Me.Hide Else MsgBox 无效的密码,请重试!, , 登录 txtPassword.SetFocus SendKeys Home+End End IfEnd SubPrivate S

18、ub Form_Load() 打开权限表 Dim strAppName As String strAppName = App.Path + 权限表.mdb Set ws = DBEngine.Workspaces(0) Set db = ws.OpenDatabase(strAppName, False, True) Set rs = db.OpenRecordset(权限表) 向组合框中添加人员名 Dim i, ReadCount As Integer ReadCount = rs.RecordCount ReDim Preserve ReadNum(ReadCount), ReadName

19、Num(ReadCount) ReDim Preserve ReadName1(ReadCount), ReadName2(ReadCount) ReDim Preserve ReadPassword(ReadCount) rs.MoveFirst For i = 1 To ReadCount ReadNum(i) = rs.Fields(编号) ReadNameNum(i) = rs.Fields(人员代号) ReadName1(i) = rs.Fields(人员名) ReadName2(i) = rs.Fields(姓名) If rs.Fields(密码) Then ReadPasswor

20、d(i) = rs.Fields(密码) Else ReadPassword(i) = End If txtCombo.AddItem ReadName2(i) rs.MoveNext Next rs.Close db.Close ws.Close Set rs = Nothing Set db = Nothing Set ws = NothingEnd SubFrmMain(主窗体)Private Sub Form_Load() If FirstUse Then mnuSystemInitialize.Visible = True mnuSystemManage.Visible = Fals

21、e mnuFormOperate.Visible = False mnuCountReport.Visible = False mnuQuery.Visible = False mnuHelp.Visible = False StatusBar.Visible = False Else Select Case OperatorNameNum Case 1 系统管理员 Case 2 录单员 mnuNewWork.Enabled = False mnuUserEdit.Enabled = False mnuUserLogout.Enabled = False mnuUserVerify.Enabl

22、ed = False mnuWaterPriceSet.Enabled = False mnuDataBackup.Enabled = False mnuDataRestore.Enabled = False mnuOperatorManage.Enabled = False mnuCountReport.Enabled = False Case 3 档案录入人员 mnuNewWork.Enabled = False mnuWaterPriceSet.Enabled = False mnuOperatorManage.Enabled = False mnuFormOperate.Enabled

23、 = False mnuDataBackup.Enabled = False mnuDataRestore.Enabled = False mnuCountReport.Enabled = False Case 4 查询人员 mnuNewWork.Enabled = False mnuUserEdit.Enabled = False mnuUserLogout.Enabled = False mnuUserVerify.Enabled = False mnuWaterPriceSet.Enabled = False mnuDataBackup.Enabled = False mnuDataRe

24、store.Enabled = False mnuOperatorManage.Enabled = False mnuFormOperate.Enabled = False mnuCountReport.Enabled = False Case 5 操作员 mnuOperatorManage.Enabled = False End Select StatusBar.Panels(1).Text = OperatorName1 StatusBar.Panels(2).Text = OperatorName2 End IfEnd SubPrivate Sub mnuAbout_Click() fr

25、mAbout.Show vbModalEnd SubPrivate Sub mnuCollectLabel_Click() frmCollectLabel.Show vbModalEnd SubPrivate Sub mnuDataBackup_Click() frmDataBackup.Show vbModalEnd SubPrivate Sub mnuDataRestore_Click() frmDataRestore.Show vbModalEnd SubPrivate Sub mnuExit_Click() Unload Me EndEnd SubPrivate Sub mnuForm

26、Process_Click() frmFormProcess.Show vbModalEnd SubPrivate Sub mnuHistoryQuery_Click() frmHistoryQuery.Show vbModalEnd SubPrivate Sub mnuInvoiceShift_Click() frmInvoiceShift.Show vbModalEnd SubPrivate Sub mnuModifyPassword_Click() frmModifyPassword.Show vbModalEnd SubPrivate Sub mnuMonthlyQuery_Click

27、() frmMonthlyQuery.Show vbModalEnd SubPrivate Sub mnuNewWork_Click() frmNewWork.Show vbModalEnd SubPrivate Sub mnuOperatorManage_Click() frmOperatorManage.Show vbModalEnd SubPrivate Sub mnuPrintInvoice_Click() frmPrintInvoice.Show vbModalEnd SubPrivate Sub mnuReportDaily_Click() frmReportDaily.Show

28、vbModalEnd SubPrivate Sub mnuSystemInitialize_Click() SystemInitialize MsgBox 系统初始化成功! & Chr(13) & Chr(10) & 注意:已经向权限表中添加一个记录,密码为12345!, vbInformation + vbOKOnly, 系统初始化End SubPrivate Sub mnuUnwriteUser_Click() frmUnwriteUser.Show vbModalEnd SubPrivate Sub mnuUserDistributeForm_Click() frmUserDistrib

29、uteForm.Show vbModalEnd SubPrivate Sub mnuUserEdit_Click() frmUserEdit.Show vbModalEnd SubPrivate Sub mnuUserLogout_Click() frmUserLogout.Show vbModalEnd SubPrivate Sub mnuUserQuery_Click() frmUserQuery.Show vbModalEnd SubPrivate Sub mnuWaterPriceSet_Click() frmWaterPriceSet.Show vbModalEnd SubFrmNe

30、wWork(新建工作期窗体)Option ExplicitDim db As Database, rs As Recordset, tb As TableDef, fld As Field, idx As IndexDim db2 As Database, rs2 As RecordsetDim fso As New FileSystemObjectDim strName(21) As String, strType(21) As Long, strSize(21) As LongConst Max = 21Private Sub cmdCancel_Click() Unload MeEnd

31、SubPrivate Sub cmdOK_Click() 判断是否存在该数据库 Dim strNewName As String strNewName = App.Path & Main & Year(Now) & Month(Now) & .mdb If fso.FileExists(strNewName) Then Dim intQuestion As Integer intQuestion = MsgBox(本月数据库已经存在,是否要覆盖它?, vbQuestion + vbYesNo, 新建工作期) If intQuestion = vbYes Then Kill strNewName

32、 Else Exit Sub End If End If 创建新数据库 ProgressBar.Visible = True Set db = Workspaces(0).CreateDatabase(strNewName, dbLangGeneral, dbVersion30) Set tb = db.CreateTableDef(主库文件) Dim i As Integer For i = 1 To Max ProgressBar.Value = 100 / Max * i Set fld = tb.CreateField() With fld .Name = strName(i) .Ty

33、pe = strType(i) .Size = strSize(i) 这个仅用于 text If .Type = dbText Then .AllowZeroLength = True End With tb.Fields.Append fld tb.Fields.Refresh Next 添加编号索引 Set idx = tb.CreateIndex(编号) idx.Primary = True Set fld = idx.CreateField(编号) idx.Fields.Append fld tb.Indexes.Append idx 添加发票号索引 Set idx = tb.Crea

34、teIndex(发票号) idx.Unique = True idx.IgnoreNulls = True Set fld = idx.CreateField(发票号) idx.Fields.Append fld tb.Indexes.Append idx 添加表 db.TableDefs.Append tb db.TableDefs.Refresh db.Close Set idx = Nothing Set fld = Nothing Set tb = Nothing Set db = Nothing ProgressBar.Visible = False 提示信息 MsgBox 新建工作期完成!, vbInformation + vbOKOnly, 新建工作期 Unload MeEnd SubPrivate Sub cmdUpdateData_Click() ProgressBar.Visible = True 拷贝数据库 Dim strOpenName As String strOpenName = App.Path & Main & Year(Now) & Month(Now) & .mdb Set db2 = Work

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

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号