九江学院
信息科学与技术学院
《数据库课程设计》
课程设计报告书
题 目: 工资管理系统 专 业: 计算机信息管理
目 录
《SQL Server 2000数据库实训》课程设计报告书 ......... 1 1.课程设计计划 ...................................... 3 2.系统需求分析与功能设计 ............................ 4 3. 总体设计 ......................................... 5 4. 数据库设计 ....................................... 6 5. 程序模块设计 ..................................... 9 6. 技术难点与分析 .................................. 11 7. 系统测试 ........................................ 12 8. 心得体会 ........................................ 16 9. 参考文献 ........................................ 17
1.课程设计计划 实现VB与SQL Server 2000的连接,并用两者结合做出一个简单的工资管理系统。具体如下: ①.在数据库中建立一个名为“工资管理”的数据库,并在这个数据库下建立出相关表格,如:员工信息、工资信息、奖惩信息。 ②.实现VB与数据库的连接。 ③.在VB中设置出员工信息、工资信息、奖惩信息三个子系统。三个子系统,分别都要具有简单的操作:添加、删除、查询、修改等操作,使三者可以完成工资管理系统的所需的功能。 ④.用户进入登录界面登陆后,可以继续选择所要进的子系统,如要添加则进入添加界面,如是查询则输入相应的数据进行查询,如是删除则选中记录后进行删除,完成后退出相应界面回到上一级。 2.系统需求分析与功能设计(根据课题的要求进行简单的需求分析,设计相应的数据流图,得出相应的系统功能需要, 系统数据流图) 通过对工厂管理工作过程的内容和数据流图分析,设计如下面的数据项和数据结构。 1、员工信息,包括的数据项有:员工编号,姓名,性别,部门,职位,职称,学历,基本工资,入职日期,出生日期,电话,地址,籍贯,名族。 2、工资管理—工资信息,包括的数据项有:日期,编号,姓名,部门,提成,奖惩,基本工资,应发工资。 3、工资奖惩—奖惩信息,包括的数据项有:编号,姓名,性别,职位,部门,奖惩日期,奖惩原因,奖惩分数。 其中管理员通过登陆入下的界面可以对员工的信息、工资、奖惩信息进行添加、修改、查询、删除等操作。而其他人不具备这个权利。 这个项目所用的环境是VB跟SQL两个环境来做的这个系统,其中在SQL是企业管理中建立相应的表格,如、员工信息表、员工工资表、员工奖惩表等,然后再VB中进行SQL2000的编辑。 在VB中建立相应的内容,然后进行代码的编辑,使得管理员在点击登陆过后能够顺利的进行相应的添加、修改、查询操作。操作图如图: 管理员 登录 员工信息 工资信息 奖惩信息 添加 修改 查询 退出 删除 3. 总体设计 (根据功能需求,设计系统的总体结构。系统总体功能模块图,菜单的设计) 员工工资查询 工资管理员工工资添加 员工工资修改 员工工资删除 员工信息查询 员工信息添加 员工信息修改 员工信息删除 员工奖惩查询 工资管理系统基本信息管理 奖惩管理员工奖惩添加 员工奖惩修改 员工奖惩删除 4. 数据库设计(完成数据库的概念设计、逻辑设计,按数据库设计方法和规范化理论得出符合3NF的逻辑模型, ER图设计,ER图转化为相应的关系模式,设计数据库的逻辑模型(以表格),在机器上完成数据库的物理设计) 数据库概念设计结构: 出生日期 姓名 性别 部门 电话 职位 员工信息 职称 地址 学历 基本工资 编号 民族 籍贯 入职日期 图1 员工信息E-R图 添加 姓名 部门 工资信息 提成 奖惩 日期 基本工资 应发工资 图
2 工资信息E-R图 奖惩日期 奖惩原因 编号 性别 奖惩信息 姓名 职位 部门 奖惩分数 图3 奖惩信息E-R 图 2.实体与实体之间的关系E-R图 员工 1 n 管理 奖惩 1 n 管理 工资 3.数据库逻辑结构设计: 字段名 编号 性别 职位 学历 入职日期 电话 籍贯 姓名 部门 职称 基本工资 出生日期 地址 民族 字段名 编号 部门 奖惩 应发工资 姓名 提成 基本工资 日期 字段名 编号 性别 部门 奖惩原因 姓名 职位 奖惩日期 奖惩分数 员工信息表 数据类型 长度 char 7 char 2 char 12 char 4 datetime 8 char 11 char 16 char 8 varchar 10 char 12 int 4 datatime 8 varchar 40 char 10 工资信息表 长度 7 10 4 4 8 4 4 8 说明 非空、主键 可为空 可为空 可为空 可为空 可为空 可为空 可为空 可为空 可为空 可为空 可为空 可为空 可为空 数据类型 char varchar int int char int int datetime 说明 非空、主键 可为空 可为空 可为空 可为空 可为空 可为空 可为空 数据类型 char char varchar varchar char char datetime int 奖惩信息表 长度 7 2 10 40 8 12 8 4 说明 非空、主键 可为空 可为空 可为空 可为空 可为空 可为空 可为空 5. 程序模块设计 (设计并编写输入\\输出、查询\\统计、数据维护等功能模块的应用程序, 每个人设计2个以上的模块,一个组完成一个完整的系统,数据库访问,存储过程调用等作重点阐述) 1.用户登录 Private Sub Command1_Click() If Text1.Text = \"admin\" And Text2.Text = \"123\" Then Form1.Hide Form2.Show Else Label3.Caption = \"密码或用户名输入错误,请重新确认并输入!\" End If End Sub Private Sub Command2_Click() Text1.Text = \"\" Text2.Text = \"\" Text1.SetFocus End Sub 2.系统功能的选择,如:进入基本信息管理子系统 Private Sub Command1_Click() Form3.Show Form2.Hide End Sub 3.添加记录,如:添加员工信息 Private Sub Command1_Click() Form6.Show End Sub Private Sub Command1_Click() Adodc1.Recordset.AddNew Adodc1.Recordset(\"编号\") = Text1(0).Text Adodc1.Recordset(\"姓名\") = Text1(1).Text Adodc1.Recordset(\"性别\") = Text1(2).Text Adodc1.Recordset(\"民族\") = Text1(3).Text Adodc1.Recordset(\"籍贯\") = Text1(4).Text Adodc1.Recordset(\"出生日期\") = Text1(5).Text Adodc1.Recordset(\"电话\") = Text1(6).Text Adodc1.Recordset(\"地址\") = Text1(7).Text Adodc1.Recordset(\"部门\") = Text1(8).Text Adodc1.Recordset(\"职位\") = Text1(9).Text Adodc1.Recordset(\"职称\") = Text1(10).Text Adodc1.Recordset(\"学历\") = Text1(11).Text Adodc1.Recordset(\"入职日期\") = Text1(12).Text Adodc1.Recordset(\"基本工资\") = Text1(13).Text Adodc1.Recordset.Update End Sub 4.删除记录,如:删除员工的基本信息 Private Sub Command5_Click() If MsgBox(\"确定删除当前记录?\删除?\") = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then If Adodc1.Recordset.RecordCount <> 0 Then Adodc1.Recordset.MoveLast End If End If End If End Sub 5.修改记录,如:修改员工基本信息 Private Sub Command4_Click() Adodc1.Recordset(\"编号\") = Text1(0).Text Adodc1.Recordset(\"姓名\") = Text1(1).Text Adodc1.Recordset(\"性别\") = Text1(2).Text Adodc1.Recordset(\"民族\") = Text1(3).Text Adodc1.Recordset(\"籍贯\") = Text1(4).Text Adodc1.Recordset(\"出生日期\") = Text1(5).Text Adodc1.Recordset(\"电话\") = Text1(6).Text Adodc1.Recordset(\"地址\") = Text1(7).Text Adodc1.Recordset(\"部门\") = Text1(8).Text Adodc1.Recordset(\"职位\") = Text1(9).Text Adodc1.Recordset(\"职称\") = Text1(10).Text Adodc1.Recordset(\"学历\") = Text1(11).Text Adodc1.Recordset(\"入职日期\") = Text1(12).Text Adodc1.Recordset(\"基本工资\") = Text1(13).Text MsgBox (\"修改成功!\") End Sub 6.查询记录,如:查询某个员工的基本信息 Private Sub Command4_Click() Dim cn As New adodb.Connection Dim rs As New adodb.Recordset cn.ConnectionString = \" Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=工资管理\" cn.Open rs.Open \"select * from 员工信息 where 编号='\" & Trim(Text1.Text) & \"'\cn, 1, 1, -1 Set DataGrid1.DataSource = rs DataGrid1.Refresh End Sub 6. 技术难点与分析 (主要内容:本课题在设计过程中所遇到的技术难点及解决方法。) 1、 VB与SQL Server 2000连接 在向VB中加入Adodc和Datagrid控件是,要对其属性进行设置后,运行时依然无法与与数据库建立连接,一直报错,纠结了好久都不知道原因。经后来反复研究才发现在Adodc控件的RecordSource属性中的“表或存储过程名称”没有设置,因为要有对应的表的内容才能对数据库中的字段进行操作! 2、数据的添加运行报错 在文本框内输入编号、姓名、性别等内容后,点击确定按钮会报出出现多句语句发生错误的提示框,而更新数据库后却发现新纪录已经添加成功。在对程序进行进一步的查看编辑,发现程序并没有出现错误,而上述情况却一直出现。之后,经老师及百度搜索,初级确定可能与数据库字段是否允许为空有关,对字段重新设置成除主键外其他都允许为空,发现这个问题还是一直出现,可是如果添加的记录所对应的相关属性都输入后,在点击确定按钮,发现就可以添加成功。为了更加确定这个结果,做了多次测试,结果为其中几个字段必须要输入,其他可以为空。因此特别做了注释,提醒用户注意事项! 3、数据的修改运行报错 在文本框内输入编号、姓名、性别等内容后,点击确定按钮也会报出出现多句语句发生错误的提示框,似乎与添加时的情况类似,但是不同的是,大部分情况下会报出“违违反了PRIMARY KEY的设置,不允许有相同字段属性值出现”,对于这点很是不理解,怎么会出现这样的情况,在查阅了其他的资料后,分析得出:①可能是在编写程序时,由于添加和修改用了同一个界面,所以功能混淆;②和添加一样,必须所有相关的属性都要输入。 为此进行如下验证:①在此界面下进行添加,没有出错,说明混淆的可能行比较小;②对要修改的记录的所有属性输入文本框,单击“确定”后,修改成功了。所以该问题的解决的方案和添加时的解决方案一样,需要全部输入方才有效。 4、数据删除问题 单击“删除”按钮后,记录删除了但不是操作者指定的记录,经分析后认为是程序没写完整,可能少了什么控制的语句。查阅了很多网上的程序,竟然和我们的很相似,并没有什么控制语句。于是经过一段时间的反复运行,发现在程序运行时,我们都忽略了一个很重要的问题,就是Datagrid的用途,因为对它不了解,以为只是显示建立的数据库表中内容,其实是可以点击相应的某行选中此行,在对其进行操作的,当我们在运用删除操作时,只要把想要删除的记录选中,就可以轻松删除了,不过每次只能删除一条记录。 7.系统测试 (主要内容:测试环境描述,测试系统结构,系统功能测试,测试数据,测试结果等) 1.登陆界面 2.进入系统功能选择 3.⑴在输入编号框中输入员工编号进行查询: ⑵点击查询按钮,显示查询结果 4.⑴信息删除,选中要删除的记录 ⑵单击删除按钮 5.信息添加,点击添加按钮进入添加界面,输入要添加的记录,单击添加确认 6.退出添加界面进入修改界面,进行修改,单击修改确认 7.返回系统功能选择,确认退出 8. 心得体会 (主要对本课题开发过程进行归纳和总结,还应包括所得结果与已有结果的比较和本课题尚存在的问题,以及进一步开发的见解与建议。感谢对本课题研究与论文撰写过程中曾直接给予帮助的人员) 其实做完这个系统首先要感谢的是老师耐心的指导。在开发过程中,有时我们会遇到一些意想不到的难题和疑惑,在指导老师的协助下,这些难题以及疑惑被我们一个个的攻破,并使系统最终得以顺利地完成。正是由于我们大家的共同的热情,默契的合作和不懈的努力,使我们的课题得以顺利地完全地达到了预期的目标。 在编写过程中,我们深刻感觉到系统质量的重要性。都十分重视自己的系统工程,把整个系统开发都纳入严格的管理之中。在整个开发中我们感觉到如果能够对系统开发过程的质量加以控制,则可以大幅度的提高我们做的系统质量。只有在开发工程中严格遵守质量管理,所做出的成果质量才有保证。否则开发工作一旦进行到最后,无论怎样通过测试和补漏洞,都会很麻烦甚至无济于事。编码的错误容易查出,但设计的错误如果带到编码阶段就会是错误逐步扩大,最终很可能造成严重的后果。 例如在分析阶段,识别系统中的对象以及它们之间的关系是紧密相连的,在设计阶段,仍沿用分析的结果,并根据实现的需要增加或删除合并某些对象,或在某些对象中添加相关的属性和操作,同时设计实现这些操作的方法;在实现阶段,则用程序设计语言来描述这些对象以及它们之间的联系。因此面向对象的方法的分析、设计、实现的结果能直接映照到客观世界中系统的实体上,也就是说,解空间的结构与问题空间的结构是一致的。对象以属性及操作为接口,这些特征使得系统的体系结构是模块化的,这种体系结构易于理解扩充和修改。在设计中,我深切体会到合理建库的必要性和重要性,每一个表必须有序号且最好为关键字由系统自动生成;表的字段逻辑结构要合理;尽量建成主从关系的表才更有利编程;在设计中 ,由于需要创建很多form所以form名字应能充分表达意义。 9. 参考文献 [1].萨师煊、王珊 数据库系统概论(第二版) 高等教育出版社 [2].张玉生 Visual Basic 程序设计教程 中国电力出版社 [3].鲁荣江、王立丰 Visual Basic 6.0 项目案例导航 科学出版社 [4].谭浩强 SQL Server2000数据库实训教程 清华大学出版社 [5].黄梯云 管理信息系统 高等教育出版社
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- xiaozhentang.com 版权所有 湘ICP备2023022495号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务