1、C#图书管理实验报告 C#.NET课程设计报告 项目名称: C#实现图书管理系统 组 员: 杨朝文(10060042) 王小龙(10060041) 于 通(10060044) 组员分工:于通:FormRegistered.cs FormLogin.cs(和杨朝文) 王小龙: FormAddBook.cs FormDeleteBook.cs FormReturnBook.cs 杨朝文:FormUserBorrowInfo.cs FormBorrowBook.cs 等协助组员一起学习 一.概述 随着科学技术的快速发展,给个个领域带来空前的方便,如,图书馆的书籍管理,利用C#.NET语言和数据库实现
2、对图书馆的书籍管理,给学校师生阅览书籍带来很大的便利,同时也大大减少了图书管理员的工作量。二.系统分析1.需求分析为了方便对图书馆书籍的管理,利用C#.NET技术和简易的Access数据库来实现此目的。2.可行性分析2.1.前台功能分析阅览者可以注册账号,登陆图书管理系统,并且能查看自己的用户信息和修改信息,查询图书,借读图书,查看自己所借读的所有信息。2.2.后台功能分析管理员登陆图书管理系统后,可以查看所有用户信息并可进行删除,查看阅览者所借读的所以信息,实现阅览者归还书籍时操作,同时可以查询书籍,更新书籍,更新书籍类型和出版社等功能。3.功能模块划分3.1系统总体模块3.1系统总体模块图
3、3.2.阅览者注册登陆 3.2用户注册流程图3.3前台借阅功能3.3前台借阅流程图3.4后台归还书籍功能3.4后台归还书籍流程图三.数据库设计1.E-R图 1-0.管理员表E-R图1-1.阅览者表E-R图1-2.出版社表E-R图1-3.书籍表E-R图1-4.书籍借阅信息表E-R图2.各表的信息介绍 2-1.admin表字段名称数据类型是否为主键说明adminId文本是管理员IDadminPassword文本管理员密码2-2.book表字段名称数据类型是否为主键说明BookId文本是书籍IDBookName文本书籍名称BookWritter文本书籍作者Ifborrow文本是否被借阅BookPri
4、ce货币书籍价格BooktypeId文本是booktype外键publisherId文本是publisher外键2-3.booktype表字段名称数据类型是否为主键说明BooktypeId文本是书籍类型IDBooktypeName文本书籍类型名称Flow文本书籍所在楼层数2-4.borrow表字段名称数据类型是否为主键说明readerId文本是读者IDbookId文本是书籍IDborrowTime日期/时间借阅时间returnTime日期/时间到期时间Out文本是否超期2-5.publisher表字段名称数据类型是否为主键说明PublisherId文本是出版社IDpublisherName文本
5、出版社名称 2-6.reader表字段名称数据类型是否为主键说明readerId文本是读者IDreaderPassword文本读者登录密码readerName文本读者姓名ReaderSex文本读者性别ReaderAge文本读者年龄ReaderDept文本读者所在的院系readerZY文本读者的专业Maxnumber文本读者最多只能借阅书籍的数量 2-7各表之间的关系2-7.各表之间关系图四.系统各模块的功能详细介绍1.登录和注册界面1-1.登录主要代码namespace BookMS public partial class FormLogin : Form public FormLogin(
6、) InitializeComponent(); private void buttonLogin_Click(object sender, EventArgs e) OdbcConnection conn = new OdbcConnection(Properties.Settings.Default.ConnectionString); if (yanzhengshuru() if (comboBoxTypeName.Text.Trim() =管理员) try String sql = string.Format(select * from admin where adminId=0, t
7、extBoxUserName.Text.Trim(); OdbcCommand cmd = new OdbcCommand(sql, conn); conn.Open(); OdbcDataReader dr = cmd.ExecuteReader(); if (dr.Read() if (dr1.ToString().Trim() = textBoxUserPsd.Text.Trim() FormAdmin admin = new FormAdmin(); admin.Show(); 1-1.登录界面1-2.注册主要代码 private void buttonRegistered_Click
8、(object sender, EventArgs e) OdbcConnection conn = new OdbcConnection(Properties.Settings.Default.ConnectionString); String sql = String.Format(insert into reader values (0,1,2,3,4,5,6,7),id,pw,name,sex,age,dept,major,max); OdbcCommand cmd = new OdbcCommand(sql,conn); if (id != & pw != & name != & s
9、ex != & age != & dept != & major != ) try conn.Open(); int n = cmd.ExecuteNonQuery(); if (n = 0) 1-2.注册界面2.后台主要功能介绍2-1.查看借阅信息主要代码private void FormSeeBorrowInfo_Load(object sender, EventArgs e) try String sql = string.Format(select readerId from borrow); OdbcCommand cmd = new OdbcCommand(sql,conn); c
10、onn.Open(); OdbcDataReader dr = cmd.ExecuteReader(); String readerid = ; while (dr.Read() readerid = (string)dr0; comboBoxUserId.Items.Add(readerid); dr.Close(); catch (OdbcException err) MessageBox.Show(err.Message,连接失败!); finally conn.Close(); private void buttonUserS_Click(object sender, EventArg
11、s e) String rid = comboBoxUserId.Text.Trim(); dt.Clear(); String sql = string.Format(select borrow.readerId ,readerName,borrow.bookId,bookName,borrowTime,returnTime,out from borrow,reader,book where book.bookId=borrow.bookId and borrow.readerId=reader.readerId and reader.readerId=0,rid); adapter = n
12、ew OdbcDataAdapter(sql,conn); adapter.Fill(dt); dataGridViewBorrowInfo.DataSource = dt; private void buttonAllS_Click(object sender, EventArgs e) String sql = string.Format(select borrow.readerId ,readerName,borrow.bookId,bookName,borrowTime,returnTime,out from borrow,reader,book where book.bookId=b
13、orrow.bookId and borrow.readerId=reader.readerId); dt.Clear(); adapter = new OdbcDataAdapter(sql,conn); adapter.Fill(dt); dataGridViewBorrowInfo.DataSource = dt; 2-1.查看借阅信息2-2.书籍归还主要代码OdbcConnection conn = new OdbcConnection(Properties.Settings.Default.ConnectionString); OdbcDataAdapter adapter; Dat
14、aTable dt = new DataTable(); String rid = ; String bid = ; int maxNum; private void buttonSearch_Click(object sender, EventArgs e) dt.Clear(); rid = textBoxReaderId.Text.Trim(); String sql = string.Format(select borrow.readerId ,readerName,borrow.bookId,bookName,borrowTime,returnTime,out from borrow
15、,reader,book where book.bookId=borrow.bookId and borrow.readerId=reader.readerId and reader.readerId=0,rid); adapter = new OdbcDataAdapter(sql,conn); adapter.Fill(dt); dataGridViewInfo.DataSource = dt; private void buttonOK_Click(object sender, EventArgs e) bid = textBoxBookId.Text.Trim(); try conn.
16、Open(); String sql1 = string.Format(delete from borrow where readerId=0 and bookId=1, rid, bid); OdbcCommand cmd1 = new OdbcCommand(sql1, conn); int deleteN = cmd1.ExecuteNonQuery(); String sql2 = string.Format(update book set ifborrow=否 where bookId=0, bid); OdbcCommand cmd2 = new OdbcCommand(sql2,
17、 conn); int updateN = cmd2.ExecuteNonQuery(); String sql3 = string.Format(select maxnumber from reader where readerId=0, rid); OdbcCommand cmd3 = new OdbcCommand(sql3, conn); OdbcDataReader dr = cmd3.ExecuteReader(); while (dr.Read() maxNum = (int)dr0; String sql4 = string.Format(update reader set m
18、axnumber=0 where readerId=1, maxNum + 1, rid); OdbcCommand cmd4 = new OdbcCommand(sql4, conn); int updateM = cmd4.ExecuteNonQuery(); if (deleteN != 0 & updateN != 0 & updateM != 0) finally conn.Close(); 2-2.归还书籍3.前台主要功能介绍3-1.查看自己借阅信息 public FormUserBorrowInfo(String userId) InitializeComponent(); th
19、is.userId = userId; public String UserId get return userId; set this.userId = value; OdbcConnection conn = new OdbcConnection(Properties.Settings.Default.ConnectionString); OdbcDataAdapter adapter; DataTable dt = new DataTable(); private void buttonOK_Click(object sender, EventArgs e) if (textBoxUse
20、rId.Text.Trim() = UserId) String sql = string.Format(select borrow.readerId ,readerName,borrow.bookId,bookName,borrowTime,returnTime,out from borrow,reader,book where book.bookId=borrow.bookId and borrow.readerId=reader.readerId and reader.readerId=0,userId); adapter = new OdbcDataAdapter(sql,conn);
21、 adapter.Fill(dt); dataGridViewBInfo.DataSource = dt; else MessageBox.Show(你输入的用户ID和登陆的用户ID不一致!n你没有权限查询他人借阅信息!,提示,MessageBoxButtons.OK,MessageBoxIcon.Information); 3-1.借阅信息3-2.借阅书籍主要代码private String userId; public FormBorrowBook() InitializeComponent(); public FormBorrowBook(String userId) Initializ
22、eComponent(); this.userId = userId; OdbcConnection conn = new OdbcConnection(Properties.Settings.Default.ConnectionString); OdbcDataAdapter adapter; DataTable dt = new DataTable(); int maxNum; private void FormBorrowBook_Load(object sender, EventArgs e) textBoxUserId.Text = userId; String sql = stri
23、ng.Format(select bookId,bookName,bookWritter,booktype.booktypeName,bookPrice,booktype.flow,publisher.publisherName,ifborrow from book,booktype,publisher where book.booktypeId=booktype.booktypeId and book.publisherId=publisher.publisherId); try adapter = new OdbcDataAdapter(sql, conn); adapter.Fill(d
24、t); dataGridViewAll.DataSource = dt; catch (OdbcException err) MessageBox.Show(err.Message, 查询失败); private void buttonBorrow_Click(object sender, EventArgs e) String uid = textBoxUserId.Text.Trim(); String bid = textBoxBookId.Text.Trim(); DateTime borrowTime = DateTime.Now; TimeSpan a = new TimeSpan
25、(30,0,0,0); DateTime returnTime = borrowTime + a; String ifout = NO; try String sql3 = string.Format(select ifborrow from book where bookId=0,bid); OdbcCommand cmd3 = new OdbcCommand(sql3,conn); conn.Open(); OdbcDataReader dr3 = cmd3.ExecuteReader(); String ifBorrow = ; while (dr3.Read() ifBorrow =
26、(string)dr30; dr3.Close(); String sql4 = string.Format(select maxnumber from reader where readerId=0,uid); OdbcCommand cmd4 = new OdbcCommand(sql4,conn); OdbcDataReader dr4 = cmd4.ExecuteReader(); while (dr4.Read() maxNum = (int)dr40; dr4.Close(); if (ifBorrow != 是 & maxNum 0) if (uid != & bid != )
27、/conn.Open(); String sql1 = string.Format(insert into borrow values (0,1,2,3,4), uid, bid, borrowTime, returnTime, ifout); OdbcCommand cmd1 = new OdbcCommand(sql1, conn); int borrown = cmd1.ExecuteNonQuery(); String sql2 = string.Format(update book set ifborrow=是 where bookId=0, bid); OdbcCommand cm
28、d2 = new OdbcCommand(sql2, conn); int bookn = cmd2.ExecuteNonQuery(); String sql5 = string.Format(update reader set maxnumber=0 where readerId=1,maxNum-1,uid); OdbcCommand cmd5 = new OdbcCommand(sql5,conn); int MN = cmd5.ExecuteNonQuery(); if (borrown != 0 & bookn != 0 & MN != 0) MessageBox.Show(借书成功!); 3-2.借阅书籍五.总结对于学习一个学期的C#语言,总体感觉和Java差不多,但是由于项目实践经验少,研发的项目思路不清晰,不过组员能一起自己思考,研发出这简易的图书管理系统,对自己学以致用,感觉挺好的。此系统的完整源代码链接:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1