1、 C程序设计课程设计汇报课程设计题目: 图书馆信息管理系统 作者所在系部: 计算机和遥感信息技术学院作者所在专业: 网络工程 作者所在班级: * 作 者 姓 名 : * 作 者 学 号 : * 指导老师姓名: * 完 成 时 间 : .12.25 课程设计任务书课题名称图书馆信息管理系统完成时间.12.25指导老师 职称助教学生姓名 班 级 总体设计要求和技术关键点 1.要求利用C#编程思想来完成系统设计; 2.突出C#语言和其它语言不一样点; 3.表现可视化编程基础东西,如系统带有菜单、工具栏、状态栏和部分常见高级控件。 4.每个学生独立完成老师指定课程设计题目,不能相互剽窃。创新要求: 在
2、基础要求达成后,可进行创新设计,如提供数据导入导出(Excel、XML、文本文件等)功效等。工作内容立即间进度安排时间:此次课程设计时间为两周,第15、16周,共40课时。分四个阶段完成:1.分析设计阶段:明确设计要求,找出实现方法。这一阶段在第1天完成。2.编码调试阶段:依据设计分析方案编写C#代码,然后调试该代码,实现课题要求功效。这一阶段在第2-8天完成。3.总结汇报阶段:总结设计工作,撰写课程设计汇报,这一阶段在第8-9天完成。4.考评阶段:这一阶段在第10天完成。地点:计算机和遥感信息技术学院试验室课程设计结果1和设计内容对应软件程序2课程设计汇报书摘 要伴随计算机技术飞快发张,电子
3、信息化慢慢替换了企业管理传统管理手法。这是一个现代流行经营模式,采取管理系统是能够有效提升管理效率。 图书馆管理系统是学校管理机制中关键一环。图书馆代表着一间学校或地域文化标志。因为图书馆丰富图书资源能够带给我们关键而且优越学习资源。经过对图书管理系统运行管理机制进行调查研究,开发了此图书系统。本系统中处理了学校图书管理事务中常见基础问题和相关统计工作。本系统中包含6个功效模块:借阅处理(借书处理、还书处理),信息查询(读者信息查询、借阅信息查询、图书信息查询),图书信息管理(图书入库、修改图书信息、删除图书信息),读者信息管理(添加读者信息、修改读者信息、删除读者信息),职员信息管理(添加职
4、员信息、修改职员信息、删除职员信息)只有管理员能够有此功效,系统设置(用户密码修改)。关键词:图书管理系统 SQL server .NET平台目 录第1章 绪 论11.1 课题研究现实状况分析11.1.1 本事域内已开展研究工作11理论研究基础12技术层面支持21.1.2 已经取得研究结果21.2 选题目标及意义2第2章 系统需求分析32.1 问题提出32.2 系统设计目标3第3章 系统总体设计43.1 系统功效设计43.1.1 系统登录43.1.2 系统设置53.1.3 借阅处理53.1.4 信息查询63.1.5 图书信息管理63.1.6 读者信息管理73.1.7 职员信息管理83.2 数据
5、库设计83.3 库中各个表设计9 3.3.1图书信息表9 3.3.2借阅信息表9 3.3.3读者信息表9 3.3.4职员信息表10第4章 系统实现114.1 数据库操作类114.2 登录模块实现114.3 系统设置模块实现124.4 借阅处理模块实现144.5 信息查询模块实现164.6 图书信息管理模块实现184.7 读者信息管理模块实现204.8 职员信息管理模块实现21第5章 系统使用说明235.1 系统使用说明235.2 系统说明23第6章 课程设计总结246.1 关键问题及处理措施246.2 课程设计体会246.3 自我评定24参考文件25第1章 绪 论伴随高校办学规模不停扩大,学生
6、人数增多,图书馆图书数量也不停增多,若仍采取传统手工统计方法管理或用较为粗糙管理软件,则花费人力且错误率高,所以,开发适合某高校本身图书馆信息管理系统,对图书进行科学管理,合理借阅,确保这些固定资产保值增值,是十分必需。本系统就针对目前很多高校图书借阅管理采取人工管理现实状况实际情况出发,对图书管理业务经过具体系统调查,开发出操作简单而且方便实用一个图书馆信息管理系统,以适应新时代发展需要。 本系统使用Microsoft Visual Studio 、SQL Server 开发工具,使用SQL语句,结合数据库来实现数据库操作。 图书馆信息管理系统关键对图书管理日常工作中碰到实际问题,例图书信息
7、、读者信息、借阅信息、能够实现以下任务:添加图书、借还图书操作、书库维护操作等。本系统经过测试,运行稳定,可投入使用。1.1 课题研究现实状况分析伴随计算机技术不停发展,计算机作为知识经济时代产物,已被广泛应用于社会各个行业和领域。现在,中国科技水平高速发展,计算机作为今天使用最广现代化工具已深入到各个领域,而且正在成为未来社会信息社会关键支柱。在这么大背景下,现代图书馆信息管理系统开发就是在于提升图书管理工作效率,加强图书馆管理,全方面实施计算机管理。本试验针对目前中国图书管理多数采取人工管理现实状况和即使采取了图书馆信息管理系统却不能完全满足本单位图书管理借还图书操作、书库维护操作等现实状
8、况,对图书馆信息管理系统进行完善,基础上实现了简单实用图书借阅管理和图书馆信息管理。1.1.1 本事域内已开展研究工作1理论研究基础(1)后台以SQL数据库支持。(2)前台以.NET平台为开发环境,实现学生基础信息管理增、删、查、改操作。2技术层面支持(1)系统设计和实现应采取MVC分层模式。(2)系统界面采取MDI方法,即用户登录后进入主窗体,主窗体经过菜单进入子窗体。1.1.2 已经取得研究结果先锋图书馆信息管理系统,用易图书馆信息管理系统。1.2 选题目标及意义图书馆信息管理系统能够实现图书借阅规范化、系统化管理,能够将全部图书资料聚集在一起实施统一运作,使图书馆信息管理变得愈加高效便捷
9、。第2章 系统需求分析伴随经济全球化推进和企业猛烈竞争,改善企业内部及整个供给链各步骤管理、调度及资源配置,快速适应用户新需求和市场新机遇,是企业赢得竞争胜利决定性原因。图书馆信息管理系统能够存放一定数量图书信息,并方便有效进行对应书籍数据操作和管理;能够对一定数量读者进行对应信息存放和管理;对图书馆信息数据保留。2.1 问题提出为了降低人工工作量,提升工作效率,使图书馆信息管理部门工作愈加有效地进行。2.2 系统设计目标本系统是对图书馆信息管理部门进行一体化管理软件系统,其关键管理思想是实现对图书馆信息增、删、改、查管理。第3章 系统总体设计3.1 系统功效设计 本系统实现了图书馆信息管理,
10、总体分为6个模块:借阅处理(借书处理、还书处理),信息查询(读者信息查询、借阅信息查询、图书信息查询),图书信息管理(图书入库、修改图书信息、删除图书信息),读者信息管理(添加读者信息、修改读者信息、删除读者信息),职员信息管理(添加职员信息、修改职员信息、删除职员信息)只有管理员能够有此功效,系统设置(用户密码修改)。图3-1所表示。图书馆信息管理系统系统设置借阅处理信息查询图书信息管理读者信息管理职员信息管理图3-1 系统功效设计(1)系统设置:进行用户密码修改。(2)借阅处理:借书处理,还书处理。(3)信息查询:读者信息查询、借阅信息查询、图书信息查询。(4)图书信息管理:图书入库、修改
11、图书信息、删除图书信息。(5)读者信息管理:添加读者信息、修改读者信息、删除读者信息。(6)职员信息管理:添加职员信息、修改职员信息、删除职员信息。3.1.1 系统登录登录为用户使用系统起始点,用户必需先经过身份验证,方可对图书馆信息进行相关操作,登录步骤图3-2所表示。登录 失败处理错误提醒查询验证成功登录主界面操作结束图3-2 登录模块步骤图简明说明及功效描述:功效关键是用于确保用户在提供正确验证信息以后,能够深入使用本系统。3.1.2 系统设置系统设置关键是用于修改用户密码。3.1.3 借阅处理借阅处理包含借书处理、还书处理,功效设计图3-3所表示。借阅处理借书处理还书处理图书编号搜索读
12、者编号搜索图3-3 借阅处理功效设计3.1.4 信息查询信息查询包含读者信息查询、借阅信息查询、图书信息查询。读者信息可经过读者编号查询、读者姓名查询,借阅信息可经过图书编号、读者编号查询,图书信息可经过图书编号、图书名称查询。功效设计图3-4所表示。图书编号查询读者编号查询信息查询读者信息查询借阅信息查询图书信息查询读者姓名搜索读者编号搜索图书编号查询图书名称查询图3-4 信息查询功效设计3.1.5 图书信息管理图书信息管理包含添加图书信息、修改图书信息、删除图书信息。修改图书信息可经过图书编号、图书名称搜索到需要修改信息。删除图书信息可经过图书编号、图书名称搜索到需要删除信息。功效设计图3
13、-5所表示。图书信息管理添加图书信息修改图书信息删除图书信息图书编号搜索读者编号搜索图书编号搜索图书名称搜索图3-5 图书信息管理功效设计3.1.6 读者信息管理读者信息管理包含添加读者信息、修改读者信息、删除读者信息。修改读者信息可经过读者编号、读者姓名搜索到需要修改信息。删除读者信息可经过读者编号、读者姓名搜索到需要删除信息。功效设计图3-6所表示。读者信息管理添加读者信息修改读者信息删除读者信息读者编号搜索读者姓名搜索读者编号搜索读者姓名搜索图3-6 图书信息管理功效设计3.1.7职员信息管理职员信息管理包含添加职员信息、修改职员信息、删除职员信息。修改读者信息可经过用户名搜索到需要修改
14、信息。删除职员信息可经过用户名搜索到需要删除信息。功效设计图3-7所表示。职员信息管理添加职员信息修改职员信息删除职员信息用户名搜索用户名搜索图3-7 职员信息管理功效设计3.2 数据库设计本系统采取SQL Server 数据库管理系统,创建数据库名称为:YYYao_LibraryInfo数据库中包含4张表,各表功效及描述如表31所表示。表3-1 数据库中表表名作用Books用于存放图书信息Borrow用于存放借阅信息Readers用于存放读者信息Staff用于存放职员信息3.3 库中各个表设计3.3.1图书信息表图书信息表Books用于存放图书馆图书信息,主键为BookNumber 。表中各
15、字段定义及描述如表3-2所表示。表3-2 Books表字段名数据类型长度是否为空是否主键字段意义BookNumbervarchar50No 是 图书编号BookNamevarchar 50No否 图书名称BookAuthor varchar 50能够否作者BookTypevarchar 50能够否类别BookLable varchar50能够否标签BookPrice float无能够否定价BookQuantity int无能够否库存量3.3.2借阅信息表借阅信息表Borrow用于存放图书馆借阅信息,主键为BookNumber 、ReaderNumber、BorrowDate。表中各字段定义及描
16、述如表3-3所表示。表3-3 Borrow表字段名数据类型长度是否为空是否主键字段意义BookNumbervarchar50No 是图书编号ReaderNumbervarchar50No是读者名称BorrowDatedatatime无No是借阅日期ReturnDatedatatime无能够否归还日期3.3.3读者信息表读者信息表Readers用于维护系统用户基础情况,主键为ReaderNumber 。表中各字段定义及描述如表3-4所表示。表3-4 Readers表字段名数据类型长度是否为空是否主键字段意义ReaderNumbervarchar primary key,BookName varc
17、har(50) not null,BookAuthor varchar(50),BookType varchar(50),BookLable varchar(50),BookPrice float,BookQuantity int50No 是 读者编号ReaderNamevarchar primary key,BookName varchar(50) not null,BookAuthor varchar(50),BookType varchar(50),BookLable varchar(50),BookPrice float,BookQuantity int50能够否 读者姓名Reader
18、Majorvarchar primary key,BookName varchar(50) not null,BookAuthor varchar(50),BookType varchar(50),BookLable varchar(50),BookPrice float,BookQuantity int50能够否系部3.3.4职员信息表职员信息表Staff用于维护系统用户基础情况,主键为StaffUserName。表中各字段定义及描述如表3-5所表示。表3-5 Staff表字段名数据类型长度是否为空是否主键字段意义StaffUserNamevarchar primary key,BookNa
19、me varchar(50) not null,BookAuthor varchar(50),BookType varchar(50),BookLable varchar(50),BookPrice float,BookQuantity int50No 是 用户名StaffPasswordvarchar primary key,BookName varchar(50) not null,BookAuthor varchar(50),BookType varchar(50),BookLable varchar(50),BookPrice float,BookQuantity int50能够否 密
20、码StaffIdentityvarchar primary key,BookName varchar(50) not null,BookAuthor varchar(50),BookType varchar(50),BookLable varchar(50),BookPrice float,BookQuantity int50能够否 身份StaffNamevarchar primary key,BookName varchar(50) not null,BookAuthor varchar(50),BookType varchar(50),BookLable varchar(50),BookP
21、rice float,BookQuantity int50能够否真实姓名StaffSexvarchar primary key,BookName varchar(50) not null,BookAuthor varchar(50),BookType varchar(50),BookLable varchar(50),BookPrice float,BookQuantity int50能够否性别StaffAgeint无能够否年纪第4章 系统实现4.1 数据库操作类SqlConnection类用于实现数据库连接、实施。该类定义以下: SqlConnection connection; SqlDa
22、taAdapter adapterbooks, adapterborrow, adapterreaders, adapterstaff; DataSet dataset; string sql = server=.; database = YYYao_LibraryInfo; Integrated Security=true; connection = new SqlConnection(sql); connection.Open();4.2 登录模块实现本系统登录界面图4-1所表示,输入用户名和密码,点击登录,判定用户名和密码是否正确,正确可进入系统主界面,不然提醒错误信息。图4-2、4-3
23、所表示。图4-1 登陆界面(1)登录按钮代码为:private void buttonX_LoginOK_Click(object sender, EventArgs e) string connectionStr = Data Source=.; Initial Catalog=YYYao_LibraryInfo; Integrated Security=true; SqlConnection connection = new SqlConnection(connectionStr); connection.Open(); SqlCommand command = new SqlComman
24、d(); command.Connection = connection; command.CommandText = select count(*) from Staff where StaffUserName = LoginID and StaffPassword = PWD; command.Parameters.Add(new SqlParameter(LoginID, this.tb_username.Text); command.Parameters.Add(new SqlParameter(PWD, this.tb_password.Text); int count = (int
25、)command.ExecuteScalar(); if (count 0) this.DialogResult = DialogResult.OK; this.Close(); else MessageBox.Show(用户名或密码错误, 错误, MessageBoxButtons.OK, MessageBoxIcon.Error); (2) 取消按钮即为退出,窗体关闭。图4-2 成功登陆图4-3 错误密码 4.3 系统设置模块实现本系统系统设置界面图4-4所表示,输入用户名、密码和新密码,点击确定,判定用户名和密码是否正确,正确则修改成功,不然提醒错误信息。图4-4 修改成功(1) 确定按
26、钮代码为: private void bXSetting_OK_Click(object sender, EventArgs e) SqlCommand command = new SqlCommand(); command.Connection = connection; command.CommandText = select count(*) from Staff where StaffUserName=LoginID and StaffPassword=PWD; command.Parameters.Add(new SqlParameter(LoginID, this.tbSettin
27、g_username.Text); command.Parameters.Add(new SqlParameter(PWD, this.tbSetting_password.Text); int count = (int)command.ExecuteScalar(); if (count = 1) command.CommandText = String.Format(update Staff set StaffPassword = 0 where StaffUserName = 1, this.tbSetting_newpassword.Text, this.tbSetting_usern
28、ame.Text); command.ExecuteNonQuery(); if (count = 1) MessageBox.Show(用户信息修改成功!); else MessageBox.Show(修改失败!, 错误!, MessageBoxButtons.OK, MessageBoxIcon.Error); (2) 取消按钮代码为: private void bXSetting_Cancel_Click(object sender, EventArgs e) tbSetting_username.Text = ; tbSetting_password.Text = ; tbSettin
29、g_newpassword.Text = ; 4.4 借阅处理模块实现本系统借阅处理界面包含借书处理、还书处理。输入图书编号、读者编号、借阅日期,点击确定借书,添加借阅统计;输入归还日期点击确定还书添加还书统计。图4-5、4-6、4-7所表示。图4-5 借书处理图4-6 搜索到该统计图4-7 借阅信息表刷新统计(1) 确定借书按钮代码为: private void bXBorrow_borrow_Borrow_Click(object sender, EventArgs e) SqlCommand command = new SqlCommand(); command.Connection =
30、 connection; command.CommandText = String.Format(insert into Borrow (BookNumber, ReaderNumber, BorrowDate) values (0,1,2), this.tbBorrow_borrow_booknumber.Text, this.tbBorrow_borrow_readernumber.Text, this.tbBorrow_borrow_dateborrow.Text); if (this.tbBorrow_borrow_booknumber.Text != & this.tbBorrow_
31、borrow_readernumber.Text != & this.tbBorrow_borrow_dateborrow.Text != ) try int count = command.ExecuteNonQuery(); if (count = 1) MessageBox.Show(借阅信息保留成功!); catch MessageBox.Show(借阅失败!, 错误!,MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show(信息不完整!请重新输入!); return; reader.Close(); (2)
32、搜索按钮代码为: private void bXBorrow_return_Search_Click(object sender, EventArgs e) SqlCommand command = new SqlCommand(); command.Connection = connection; command.CommandText = String.Format(select * from Borrow where BookNumber = 0 and ReaderNumber = 1,this.tbBorrow_return_booknumber.Text,this.tbBorrow
33、_return_readernumber.Text); SqlDataReader reader = command.ExecuteReader(); this.lvBorrow_return_borrowinfo.Items.Clear(); while (reader.Read() ListViewItem lvi = new ListViewItem(); lvi.Text = readerBookNumber.ToString(); lvi.SubItems.Add(readerReaderNumber.ToString(); lvi.SubItems.Add(readerBorrow
34、Date.ToString(); lvi.SubItems.Add(readerReturnDate.ToString(); this.lvBorrow_return_borrowinfo.Items.Add(lvi); if (lvBorrow_return_borrowinfo.Items.Count = 0) MessageBox.Show(没有搜索到符合条件统计!); reader.Close(); (3) 确定还书按钮代码为: private void bXBorrow_return_Return_Click(object sender, EventArgs e) SqlComman
35、d command = new SqlCommand(); command.Connection = connection; command.CommandText = String.Format(update Borrow set ReturnDate = 0 where BookNumber = 1 and ReaderNumber = 2, this.tbBorrow_return_datereturn.Text,this.tbBorrow_return_booknumber.Text,this.tbBorrow_return_readernumber.Text); if (this.t
36、bBorrow_return_datereturn.Text != ) try int count = command.ExecuteNonQuery(); if (count = 1) MessageBox.Show(还书信息添加成功!); catch MessageBox.Show(还书失败!, 错误!, MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show(信息不能为空!); 4.5信息查询模块实现本系统信息查询界面包含读者信息查询、借阅信息查询、图书信息查询。输入图书编号、读者姓名进行读者信息查询,输入图书编
37、号、读者编号进行借阅信息查询,输入图书编号、图书名称进行图书信息查询。图4-8、4-9、4-10、4-11、4-12所表示。图4-8 读者编号查询图4-9 读者姓名查询图4-10 图书编号查询图4-11 图书名称查询图4-12 热门标签查询(1) 读者编号查询按钮代码为: SqlCommand command = new SqlCommand(); command.Connection = connection; command.CommandText = String.Format(select * from Readers where ReaderNumber = 0, this.tBXS
38、earch_readers_readernumber.Text); SqlDataReader reader = command.ExecuteReader(); this.lvSearch_readers_readersinfo.Items.Clear(); while (reader.Read() ListViewItem lvi = new ListViewItem(); lvi.Text = readerReaderNumber.ToString(); lvi.SubItems.Add(readerReaderName.ToString(); lvi.SubItems.Add(readerReaderMajor.ToString();