发布网友 发布时间:2022-04-22 18:42
共1个回答
热心网友 时间:2023-11-15 18:28
大型数据库设计实践报告
题 目:
专 业 软件工程(NIIT ) 学 生 姓 名 杨雨童
班 级 学 号 B12041016 指 导 教 师 毛燕琴 指 导 单 位 计算机学院/软件学院 日 期 2014.5.30
图书管理系统
一、 课题总体介绍
图书管理系统具有系统管理员、图书管理员和读者三类用户,这三类用户分别拥有不同的权限。
系统管理员:管理用户信息(对应数据库中libUsers 这张表)。 图书管理员:管理图书信息(对应数据库中libBooks 这张表)。 读者:对图书的操作。
分工说明:
1. 创建表,数据库的操作,包括系统连接数据库的各项操作,程序调试(江杰) 2. 程序界面、框架设计,图书编码入库功能的实现(杨雨童) 3. 系统管理员权限各项功能的实现(李健)
4. 读者权限各项功能包括借书,还书,查询数目功能的实现(杨金霖)、 5. 图书管理员权限中修改,删除图书信息功能的实现(陈维钊)
系统管理员:管理用户信息(对应数据库中libUsers 这张表),可对包括系统管理员和图书管理员及读者在内的用户信息进行查询,添加,删除,修改。
三、总体设计
图书馆系统,包含用户和图书两个主要的数据。由此我们的数据库要包含两张表,一张对应用户信息(此程序中的libUsers 这张表),另一张对应图书信息(此程序中的libBooks 这张表)。
1. 对于用户信息这张表(下图) ,我们的图书管理系统要求用户包括系统管理员,图书管理员和读者三个用户,这三个用户对应的是三个不同的权限。在表中用属性userRank 来定义,1,2,3分别表示系统管理员,图书管理员和读者。另外表中还有userID ,userName ,userPass 这些基础属性,用来区别用户以及判断用户登录。我们还赋予了系统管理员*用户登录的权限,在表中用userLock 属性来表示,0,1分别表示该用户是否可以登录。
2. 对于图书信息这张表(下图),主要是对图书信息的描述,这张表相对比较简单,用bookName ,bookAuthor ,bookPress ,bookDate 等属性来描述图书信息,方便用户查询到相应图书。
四、详细设计 (界面的设计,图书添加功能的实现)
(1)、各个界面的设计 1. 登录界面
2. 查询,添加,删除,修改功能
查询,修改,删除功能在系统中包括对用户信息的修改和对图书信息的修改。这个系统中的查询,修改,删除功能都是通过dataGridView 控件来实现的,查询包括对用户信息的查询,对图书信息的查询,上图是对用户信息的查询,设置dataGridView 与数据库中的表关联,即可把表中的信息显示到控件窗口中,以此来达到查询的目的。删除和修改功能都需要用户首先选中dataGridView 控件中的一行,然后点击相应按钮跳转到对应的界面。例如修改功能(如下图),界面中有用户ID ,用户名,密码,权限,分别对应libUsers 表中的userID ,userName ,userPsaa 和userRank 这几个属性,用户可以通过在textbox 控件中输入要修改的信息,就可以直接对表中的数据进行修改。
string userID = textBox3.Text.Trim();
string userName = textBox1.Text.Trim(); string userPass = textBox2.Text.Trim();
int userRank = comboBox1.SelectedIndex + 1;
int userLock = 0;
if (checkBox1.Checked == true ) {
userLock = 1; }
conDatabase editUserCon = new conDatabase (); DataTable addDt = new DataTable (); addDt = editUserCon.select("libUsers" );
if (textBox3.Text == "" || userName == "" || userPass == "" ) {
MessageBox .Show(" 读者信息不能为空" ); } else {
//string addString = "insert into libUsers values(" + userID + ","+""" + userName +"""+ "," +"""+ userPass+""" +","+ "getdate()" + "," + userRank + "," + "0)"; string addString = "update libUsers SET userID=" + userID +
",userName=" + """ + userName + """ + ",userPass=" + """ + userPass + """ + ",userRank=" + userRank + ",userLock=" + userLock + " where userID=" + userIDold; int res = editUserCon.edit(addString); if (res > 0) {
MessageBox .Show(" 修改成功!" ); }
添加功能在这个系统中可以为用户表和图书表进行添加,这两者的实现方式相同,和上面修改功能也类似。同样是用户填写textbox 信息对应到表中的属性实现对表的修改。
4. 图书编码入库
将图书的信息同步到数据库,管理员对其进行管理。
string bookName = textBox2.Text.ToString().Trim();
string bookAuthor = textBox3.Text.ToString().Trim(); string bookPress = textBox4.Text.ToString().Trim(); int bookStatus = comboBox1.SelectedIndex;
string bookDate = dateTimePicker1.Value.Year.ToString() + "-" +
dateTimePicker1.Value.Month.ToString()
+ "-" +
dateTimePicker1.Value.Day.ToString();
conDatabase addBookCon = new conDatabase (); DataTable booksDt = new DataTable (); booksDt = addBookCon.select("libBooks" );
五、测试数据和结果分析
1. 登录
系统管理员登录,根据表中的用户名密码(sa ,niit#1234)进行系统管理员登录,选择正确的权限。
如果用户名密码错误,则出现弹窗。
如果用户名密码没有输入,则出现弹窗。
如果成功登录,则进入下级界面。
2. 用户及图书的查询,添加,删除,修改
3. 借书
选择借阅操作系统教程这本书
确认借阅,成功借阅。 4. 还书
之前已经借阅了操作系统教程这本书,点击还书按钮之后跳转到还书界面
选择操作系统教程这本书,点击归还,则成功还书。
六、调试和问题分析
对于界面的设计来说,主要是从自身出发,考虑平时学校的图书馆管理系统,再结合自身学习的知识来完成这个小型的图书管理系统。对于图书的编码入库功能,因为要和数据库进行连接,进行数据的同步更新,所以必须保证和数据库的连接没有问题。
七、软件使用说明
步骤:首先用户需要进行登录,系统给用户提供了三种权限,系统管理员,图书管理员和读者,用户在成功进入自己对应权限的界面后可以通过点击按钮进行操作。界面简单明了,易于操作,不需要过多说明。
八、总结
经过这段时间的努力基本完成了图书管理系统。对于这个图书管理系统,刚开始对于系统的基本功能是这样设计的:管理员对图书信息的管理以及系统管理员对读者信息的管理、读者的借书、还书。对于一个大型的程序,在实现的过程中,考虑到实际,对于具体的功能 进行了增加、删除。
同时通过这几天的程序及报告编写,把学过的C#知识运用到了实践。同时,通过和其它同学的交流,对于C#窗体程序和数据库的连接有了进一步的理解。我也发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还是比较脆弱。尤其是编写大型的程序所要拥有的知识和技能比较缺乏。程序编好了,还要经过调试和修改,这步也很关键,好的程序是经过了无数次的修改和调试才产生的。我们的程序基本上能够满足要求,但还有一些地方需要改进,在今后我们应该在多看书的同时还要加强实践的练习。才能进一步提高自己的编程能力。
- 11 -