1、C#.NET 课程设计报告项目名称: C#实现图书管理系统 组 员: 杨朝文(10060042) 王小龙(10060041) 于 通(10060044) 组员分工:于通:FormRegistered.csFormLogin.cs(和杨朝文)王小龙: FormAddBook.csFormDeleteBook.csFormReturnBook.cs 杨朝文:FormUserBorrowInfo.csFormBorrowBook.cs 等协助组员一起学习一. 概述随着科学技术的快速发展,给个个领域带来空前的方便,如,图书馆的书籍管理,利用 C#.NET 语言和数据库实现对图书馆的书籍管理,给学校师生
2、阅览书籍带来很大的便利,同时也大大减少了图书管理员的工作量。二. 系统分析1. 需求分析为了方便对图书馆书籍的管理,利用 C#.NET 技术和简易的 Access 数据库来实现此目的。2. 可行性分析2.1.前台功能分析阅览者可以注册账号,登陆图书管理系统,并且能查看自己的用户信息和修改信息,查询图书,借读图书,查看自己所借读的所有信息。2.2.后台功能分析管理员登陆图书管理系统后,可以查看所有用户信息并可进行删除,查看阅览者所借读的所以信息,实现阅览者归还书籍时操作,同时可以查询书籍,更新书籍,更新书籍类型和出版社等功能。3. 功能模块划分3.1 系统总体模块图书管理系统前台 后台个人信息图
3、书查询借阅图书借阅信息查询全部类型查询用户信息借阅信息图书查询书籍归还图书更新添加图书类型添加出版社查询全部类型查询添加图书删除图书3.1 系统总体模块图3.2.阅览者注册登陆开始是否注册 注册输入信息数据是否合法合法注册成功开始登陆输入用户和密码是否通过登陆验证登陆成功结束YNNNYY3.2 用户注册流程图3.3 前台借阅功能登陆开始借阅图书是否符合条件借阅成功结束NY3.3 前台借阅流程图3.4 后台归还书籍功能管理员登陆开始输入阅览者 ID是否存在阅览者 ID输入书籍号归还成功 结束NY3.4 后台归还书籍流程图三. 数据库设计1.E-R 图adminadminPasswordAdmin
4、Id1-0. 管理员表 E-R 图readerreaderIdreaderPassword readerNamereaderSexreaderAgereaderDeptreaderZYmaxNumber1-1.阅览者表 E-R 图publisherpublisherId publisherName1-2.出版社表 E-R 图bookbookIdbookNamebookWriterifborrowbookPricepublisherIdbookTypeId1-3.书籍表 E-R 图borrowreaderId bookIdborrowTimereturnTimeout1-4.书籍借阅信息表 E-
5、R 图2.各表的信息介绍2-1.admin 表字段名称 数据类型 是否为主键 说明adminId 文本 是 管理员 IDadminPassword 文本 管理员密码2-2.book 表字段名称 数据类型 是否为主键 说明BookId 文本 是 书籍 IDBookName 文本 书籍名称BookWritter 文本 书籍作者Ifborrow 文本 是否被借阅BookPrice 货币 书籍价格BooktypeId 文本 是 booktype 外键publisherId 文本 是 publisher 外键2-3.booktype 表字段名称 数据类型 是否为主键 说明BooktypeId 文本 是
6、书籍类型 IDBooktypeName 文本 书籍类型名称Flow 文本 书籍所在楼层数2-4.borrow 表字段名称 数据类型 是否为主键 说明readerId 文本 是 读者 IDbookId 文本 是 书籍 IDborrowTime 日期/时间 借阅时间returnTime 日期/时间 到期时间Out 文本 是否超期2-5.publisher 表字段名称 数据类型 是否为主键 说明PublisherId 文本 是 出版社 IDpublisherName 文本 出版社名称2-6.reader 表字段名称 数据类型 是否为主键 说明readerId 文本 是 读者 IDreaderPass
7、word 文本 读者登录密码readerName 文本 读者姓名ReaderSex 文本 读者性别ReaderAge 文本 读者年龄ReaderDept 文本 读者所在的院系readerZY 文本 读者的专业Maxnumber 文本 读者最多只能借阅书籍的数量2-7各表之间的关系2-7.各表之间关系图四.系统各模块的功能详细介绍1.登录和注册界面1-1.登录主要代码namespace BookMSpublic partial class FormLogin : Formpublic FormLogin()InitializeComponent();private void buttonLogi
8、n_Click(object sender, EventArgs e)OdbcConnection conn = new OdbcConnection(Properties.Settings.Default.ConnectionString);if (yanzhengshuru() if (comboBoxTypeName.Text.Trim() =“管理员“)tryString sql = string.Format(“select * from admin where adminId=0“, textBoxUserName.Text.Trim();OdbcCommand cmd = new
9、 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(object sender, EventArgs e)OdbcConnection conn = new Odb
10、cConnection(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 != “ int n = cmd.ExecuteNonQuery();if (n = 0)1-2.注册界面2.后台主要功能介绍2-1.查看借阅信息主要代码privat
11、e void FormSeeBorrowInfo_Load(object sender, EventArgs e)try String sql = string.Format(“select readerId from borrow“);OdbcCommand cmd = new OdbcCommand(sql,conn);conn.Open();OdbcDataReader dr = cmd.ExecuteReader();String readerid = “;while (dr.Read() readerid = (string)dr0;comboBoxUserId.Items.Add(
12、readerid);dr.Close();catch (OdbcException err)MessageBox.Show(err.Message,“连接失败!“);finally conn.Close();private void buttonUserS_Click(object sender, EventArgs e)String rid = comboBoxUserId.Text.Trim();dt.Clear();String sql = string.Format(“select borrow.readerId ,readerName,borrow.bookId,bookName,b
13、orrowTime,returnTime,out from borrow,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);dataGridViewBorrowInfo.DataSource = dt;private void buttonAllS_Click(object sender, EventArgs e)St
14、ring 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“);dt.Clear();adapter = new OdbcDataAdapter(sql,conn);adapter.Fill(dt);dataGridViewBorrowInfo.DataS
15、ource = dt;2-1.查看借阅信息2-2.书籍归还主要代码OdbcConnection conn = new OdbcConnection(Properties.Settings.Default.ConnectionString);OdbcDataAdapter adapter;DataTable dt = new DataTable();String rid = “;String bid = “;int maxNum;private void buttonSearch_Click(object sender, EventArgs e)dt.Clear();rid = textBoxR
16、eaderId.Text.Trim();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 = new OdbcDataAdapter(sql,conn);adapter.
17、Fill(dt);dataGridViewInfo.DataSource = dt;private void buttonOK_Click(object sender, EventArgs e)bid = textBoxBookId.Text.Trim();tryconn.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.
18、ExecuteNonQuery();String sql2 = string.Format(“update book set ifborrow=否 where bookId=0“, bid);OdbcCommand cmd2 = new OdbcCommand(sql2, conn);int updateN = cmd2.ExecuteNonQuery();String sql3 = string.Format(“select maxnumber from reader where readerId=0“, rid);OdbcCommand cmd3 = new OdbcCommand(sql
19、3, conn);OdbcDataReader dr = cmd3.ExecuteReader();while (dr.Read()maxNum = (int)dr0;String sql4 = string.Format(“update reader set maxnumber=0 where readerId=1“, maxNum + 1, rid);OdbcCommand cmd4 = new OdbcCommand(sql4, conn);int updateM = cmd4.ExecuteNonQuery();if (deleteN != 0 2-2.归还书籍3.前台主要功能介绍3-
20、1.查看自己借阅信息public FormUserBorrowInfo(String userId) InitializeComponent();this.userId = userId;public String UserIdgetreturn userId;setthis.userId = value;OdbcConnection conn = new OdbcConnection(Properties.Settings.Default.ConnectionString);OdbcDataAdapter adapter;DataTable dt = new DataTable();priv
21、ate void buttonOK_Click(object sender, EventArgs e)if (textBoxUserId.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 re
22、ader.readerId=0“,userId);adapter = new OdbcDataAdapter(sql,conn);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()Initia
23、lizeComponent();public FormBorrowBook(String userId)InitializeComponent();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, Even
24、tArgs e)textBoxUserId.Text = userId;String sql = string.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“);tryada
25、pter = new OdbcDataAdapter(sql, conn);adapter.Fill(dt);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 borro
26、wTime = DateTime.Now;TimeSpan a = new TimeSpan(30,0,0,0);DateTime returnTime = borrowTime + a;String ifout = “NO“;tryString sql3 = string.Format(“select ifborrow from book where bookId=0“,bid);OdbcCommand cmd3 = new OdbcCommand(sql3,conn);conn.Open();OdbcDataReader dr3 = cmd3.ExecuteReader();String
27、ifBorrow = “;while (dr3.Read() ifBorrow = (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 !=
28、 “是“ 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 cmd2 = new
29、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 3-2.借阅书籍五.总结对于学习一个学期的C#语言,总体感觉和Java差不多,但是由于项目实践经验少,研发的项目思路不清晰,不过组员能一起自己思考,研发出这简易的图书管理系统,对自己学以致用,感觉挺好的。此系统的完整源代码链接:http:/