C MySQL 圖書管理系統(tǒng).docx
《C MySQL 圖書管理系統(tǒng).docx》由會(huì)員分享,可在線閱讀,更多相關(guān)《C MySQL 圖書管理系統(tǒng).docx(19頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、《C#面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì) ——圖書借閱管理系統(tǒng) 源碼下載地址: 院 系: 計(jì)算機(jī)學(xué)院 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 年 級: 2014級 學(xué)生姓名: // 學(xué) 號: // 教 師: // 日 期: 2017年6月6日 開發(fā)和運(yùn)行環(huán)境 - 開發(fā)環(huán)境:Windows 10-1703; - 開發(fā)工具:Visual Studio 013 Update5; - 數(shù)據(jù)庫工具:Mysql 5.7 + NaviCat; - 運(yùn)行環(huán)境:Window
2、s 10-1703; 需求分析 1.【角色】用戶通過【注冊】成為本系統(tǒng)的可訪問成員,通過【登陸】進(jìn)入系統(tǒng)。用戶可以操作的功能有: - 查看圖書館的所有圖書信息,圖書的是否可借閱信息; - 搜索功能:通過輸入關(guān)鍵字,來查找是否有自己需要的圖書; - 借閱功能:未被其他用戶借閱的書籍可以直接借閱; - 還書功能:若存在之前借閱的書籍,在未歸還的情況下,可以進(jìn)行還書操作,若未存在需要還的書籍,提示:未有需要?dú)w還的書籍; - 個(gè)人信息:修改除了【用戶名】以外之前注冊的全部信息; - 借閱信息:可以查看借閱歷史,曾經(jīng)的借書日期和還書日期,是否有未歸還的書等等; 2.
3、【角色】管理員通過【登陸】進(jìn)入用戶進(jìn)入不了的管理系統(tǒng)。管理員可以操作的功能有: - 圖書信息修改:修改除了圖書名的現(xiàn)有的所有圖書信息; - 添加圖書:添加新的圖書; - 查看用戶信息:可以查看用戶表的部分用戶信息; 3.?dāng)?shù)據(jù)保存:需要長期保存在數(shù)據(jù)庫的數(shù)據(jù)有: - 圖書信息:圖書的基本信息; - 讀者信息:讀者的基本信息; - 借閱信息:圖書的借閱信息; - 帳號信息:圖書管理員和讀者的登錄帳號; 系統(tǒng)流程圖(不包含注冊功能) 數(shù)據(jù)庫設(shè)計(jì)說明 - 管理員表:adminInfo; - 圖書信息表:bookInfo; - 借閱信息表:borrowed;
4、- 用戶信息表:userInfo; adminInfo表 列名 數(shù)據(jù)類型 可否為空 長度 說明 adminId int 否 11 管理員ID adminName varchar 否 255 管理員用戶名 adminPassword varchar 否 255 管理員密碼 bookInfo表 列名 數(shù)據(jù)類型 可否為空 長度 說明 bookId int 否 11 圖書編號ID bookName varchar 否 255 圖書名 bookAuthor varchar 否 255 圖書作者 bookPr
5、ice int 否 11 圖書價(jià)格 bookPress varchar 否 255 圖書出版社 bookType varchar 是 255 圖書類型 isBorrowed tinyint 是 11 是否被借閱 borrowId int 是 11 借閱人的ID BorrowedTime datetime 是 0 被借閱的時(shí)間 borrowed表 列名 數(shù)據(jù)類型 可否為空 長度 說明 borrowedId int 否 11 借閱信息ID userId int 是 11 操作人ID userName
6、varchar 是 255 操作人用戶名 bookId int 是 11 圖書ID editTime datatime 是 0 操作時(shí)間 bookName varchar 是 255 圖書名 edit varchar 是 255 操作名 UserInfo表 列名 數(shù)據(jù)類型 可否為空 長度 說明 userId int 否 11 用戶ID userName varchar 否 255 用戶名 userPassword varchar 否 255 用戶密碼 userSex varchar 是 255
7、 用戶性別 模塊分析 cs文件: 主界面: 主要顯示代碼 – mainCenter.cs : public mainCenter(){ InitializeComponent(); string sql = "server=localhost;user id=root;password=123456;database=C#librarycenter"; //根據(jù)自己的設(shè)置 MySqlConnection conn = new MySqlConnection(sql);
8、 conn.Open();//打開數(shù)據(jù)庫連接 MySqlDataAdapter data1 = new MySqlDataAdapter();//實(shí)例化sqldataadpter MySqlCommand cmd1 = new MySqlCommand("SELECT bookName as 圖書名,bookAuthor as 作者,bookPrice as 圖書價(jià)格,bookPress as 出版社,bookType as 圖書類型,(CASE isBorrowed WHEN 0 THEN 未借閱 ELSE 已借閱 END) as借閱情況
9、FROM `c#librarycenter`.bookinfo", conn);//sql語句 data1.SelectCommand = cmd1;//設(shè)置為已實(shí)例化SqlDataAdapter的查詢命令 DataTable dt = new DataTable(); dt.Clear(); data1.Fill(dt);//把數(shù)據(jù)填充到datatable dataGridView1.DataSource = dt;//將數(shù)據(jù)集綁定datagridview,完成顯
10、示 dataGridView1.AllowUserToAddRows = false; // login login = new login(); label1.Text = "這里是SMART-LIBRARY!用戶:" + login.username; // } 查找功能: 主要實(shí)現(xiàn)代碼: private void button1_Click(object sender, EventArgs e) { S
11、tring so = textBox1.Text; String sql = "server=localhost;user id=root;password=123456;database=C#librarycenter"; //根據(jù)自己的設(shè)置 MySqlConnection conn = new MySqlConnection(sql); conn.Open();//打開數(shù)據(jù)庫連接 MySqlDataAdapter data1 = new MySqlDataAdapter();//實(shí)例化
12、sqldataadpter MySqlCommand cmd1 = new MySqlCommand("SELECT bookName as 圖書名,bookAuthor as 作者,bookPrice as 圖書價(jià)格,bookPress as 出版社,bookType as 圖書類型,(CASE isBorrowed WHEN 0 THEN 未借閱 ELSE 已借閱 END) as借閱情況 FROM `c#librarycenter`.bookinfo where bookName like %"+ so +"% ", conn);//sql語句
13、 data1.SelectCommand = cmd1;//設(shè)置為已實(shí)例化SqlDataAdapter的查詢命令 //DataSet ds1 = new DataSet();//實(shí)例化dataset DataTable dt = new DataTable(); dt.Clear(); data1.Fill(dt);//把數(shù)據(jù)填充到datatable dataGridView1.DataSource = dt;//將數(shù)據(jù)集綁定datagridview,完成顯
14、示 dataGridView1.AllowUserToAddRows = false; } 借閱功能: 主要實(shí)現(xiàn)代碼 - borrow.cs: private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { int r = this.dataGridView1.CurrentRow.Index; string h = this.dataGridView1.
15、Rows[r].Cells[1].Value.ToString(); string s = this.dataGridView1.Rows[r].Cells[2].Value.ToString(); // login login = new login(); String userId = ""; DateTime dt = DateTime.Now; String borrowedTime = dt.ToString("yyyy
16、-MM-dd HH:mm:ss"); string sql = "server=localhost;user id=root;password=123456;database=C#librarycenter"; //根據(jù)自己的設(shè)置 MySqlConnection conn = new MySqlConnection(sql); String updateBorrow1 = "select userId from userInfo where userName = "+login.username+"";
17、 MySqlCommand mysqlcommand = new MySqlCommand(updateBorrow1,conn); conn.Open(); MySqlDataReader mdr = mysqlcommand.ExecuteReader(); if (mdr.Read()) { userId = mdr.GetString(0).ToString();
18、} mdr.Close(); String updateBorrow2 = "update bookInfo set isBorrowed = 1, borrowId = " + userId + ",borrowedTime =" + borrowedTime + " where bookId = " + h + ""; // MySqlCommand mysqlcommand2 = new MySqlCommand(updateBorrow2, conn);
19、 int i = mysqlcommand2.ExecuteNonQuery(); if (i != -1) { MessageBox.Show(login.username + " \r\n恭喜你借" + " << " + s + " >> \r\n這本書" + "成功"); } else { MessageBox.Show("系統(tǒng)出了點(diǎn)問題,請聯(lián)系管理員!");
20、 } //更新借閱表 String updateBorrow3 = "insert into borrowed(userId,userName,bookId,editTime,bookName,edit) values(" + userId + "," + login.username + "," + h + "," + borrowedTime + "," + s + ",借書)"; MySqlCommand mysqlcommand3 = new MySqlCommand(updateBorro
21、w3, conn); mysqlcommand3.ExecuteNonQuery(); //刷新dataGridView1,重新綁定數(shù)據(jù)源 f5(); } 歸還圖書功能: 主要實(shí)現(xiàn)代碼 – returnbook.cs: private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { int r = this.dataGridVie
22、w1.CurrentRow.Index; string h = this.dataGridView1.Rows[r].Cells[1].Value.ToString(); string s = this.dataGridView1.Rows[r].Cells[2].Value.ToString(); DateTime dt = DateTime.Now; String returnedTime = dt.ToString("yyyy-MM-dd HH:mm:ss");
23、 String userId = ""; string sql = "server=localhost;user id=root;password=123456;database=C#librarycenter"; //根據(jù)自己的設(shè)置 MySqlConnection conn = new MySqlConnection(sql); conn.Open(); // String updateBorrow1 = "update bookInfo set isBo
24、rrowed = 0,borrowId = null,borrowedTime = null where bookId = "+h+""; MySqlCommand mysqlcommand2 = new MySqlCommand(updateBorrow1, conn); int i = mysqlcommand2.ExecuteNonQuery(); if (i != -1) { MessageBox.Show(login.u
25、sername + " \r\n<< " + s + " >> \r\n這本書,還書成功"); } else { MessageBox.Show("系統(tǒng)出了點(diǎn)問題,請聯(lián)系管理員!"); } //更新借閱表 String updateBorrow = "select userId from userInfo where userName = " + login.username + "";
26、 MySqlCommand mysqlcommand = new MySqlCommand(updateBorrow, conn); MySqlDataReader mdr = mysqlcommand.ExecuteReader(); if (mdr.Read()) { userId = mdr.GetString(0).ToString(); } mdr.Close(); String updat
27、eBorrow2 = "insert into borrowed(userId,userName,bookId,editTime,bookName,edit) values(" + userId + "," + login.username + "," + h + "," + returnedTime + "," + s + ",還書)"; MySqlCommand mysqlcommand3 = new MySqlCommand(updateBorrow2, conn); mysqlcommand3.ExecuteNonQuery();
28、 //刷新dataGridView1,重新綁定數(shù)據(jù)源 f5(); } 修改個(gè)人信息: 主要實(shí)現(xiàn)代碼 – editUser.cs: private void button1_Click(object sender, EventArgs e) { login login = new login(); String pw = textBox1.Text; String npw = textBox2.Text;
29、 String un = login.username; String userPassword = ""; String userId = ""; if (male.Checked == true) ans = "male"; if (female.Checked == true) ans = "female"; String sql = "server=localhost;user id=r
30、oot;password=123456;database=C#librarycenter"; //根據(jù)自己的設(shè)置 MySqlConnection conn = new MySqlConnection(sql); conn.Open(); // String yanzheng = "SELECT userPassword FROM userinfo where userName = "+login.username+""; MySqlCommand yz = new
31、MySqlCommand(yanzheng,conn); MySqlDataReader mdr2 = yz.ExecuteReader(); if (mdr2.Read()) { userPassword = mdr2.GetString(0); } mdr2.Close(); if (textBox2.Text.Trim() != "") {
32、 if (pw == userPassword) { // String editsql1 = "select userId from userInfo where userName = " + login.username + " "; MySqlCommand cmd1 = new MySqlCommand(editsql1, conn); MySqlData
33、Reader mdr = cmd1.ExecuteReader(); if (mdr.Read()) { userId = mdr.GetString(0); } else { } mdr.Close(); // String editsql2 = "update userInfo set userPassword = " + npw + ", userSex = " + ans + "
34、where userId = " + userId + ""; MySqlCommand cmd2 = new MySqlCommand(editsql2, conn); int i = cmd2.ExecuteNonQuery(); if (i == 1) { MessageBox.Show(login.username + "\r\n您的信息修改成功!\r\n請牢記您現(xiàn)在的密
35、碼"); } else { MessageBox.Show("修改失敗,請聯(lián)系管理員~"); } } else { MessageBox.Show("你的原密碼輸入錯(cuò)誤,請重新輸入啊啊啊"); }
36、 } else { MessageBox.Show("新的密碼請不要填空!"); } } 查詢借閱信息: 主要實(shí)現(xiàn)代碼 – borrowedinfo.cs: public borrowedinfo(){ InitializeComponent(); label1.Text = login.username + " ,以下是您的借閱記錄:"; String
37、sql = "server=localhost;user id=root;password=123456;database=C#librarycenter"; //根據(jù)自己的設(shè)置 MySqlConnection conn = new MySqlConnection(sql); conn.Open();//打開數(shù)據(jù)庫連接 String userId = ""; MySqlCommand cmd = new MySqlCommand("select userId from
38、 borrowed where userName = "+ login.username +"",conn); MySqlDataReader mdr = cmd.ExecuteReader(); if (mdr.Read()) { userId = mdr.GetString(0); } mdr.Close(); MySqlDataAdapter data1 = new MySqlDataAdapter();//實(shí)例化sqldataadpter
39、 MySqlCommand cmd1 = new MySqlCommand("select bookId as 圖書編號,bookName as 圖書名,editTime as 操作時(shí)間,edit as 操作 from borrowed where userId = "+ userId +"", conn);//sql語句 data1.SelectCommand = cmd1;//設(shè)置為已實(shí)例化SqlDataAdapter的查詢命令 //DataSet ds1 = new DataSet();//實(shí)例化dataset
40、 DataTable dt = new DataTable(); dt.Clear(); data1.Fill(dt);//把數(shù)據(jù)填充到datatable dataGridView1.DataSource = dt;//將數(shù)據(jù)集綁定datagridview,完成顯示 dataGridView1.AllowUserToAddRows = false; } 后臺(tái)管理系統(tǒng): 主要實(shí)現(xiàn)代碼 – adminCenter.cs: private void 關(guān)于T
41、oolStripMenuItem_Click(object sender, EventArgs e) { MessageBox.Show("制作者:Matthew Han\r\n完成時(shí)間:2017-6-4"); } private void 退出系統(tǒng)ToolStripMenuItem_Click(object sender, EventArgs e) { System.Environment.Exit(0); } private voi
42、d 圖書管理ToolStripMenuItem_Click(object sender, EventArgs e) { editMain editMain = new editMain(); editMain.FormBorderStyle = FormBorderStyle.None; editMain.Dock = DockStyle.Fill; editMain.TopLevel = false; this.pan
43、el1.Controls.Clear(); this.panel1.Controls.Add(editMain); editMain.Show(); } private void 添加圖書ToolStripMenuItem_Click(object sender, EventArgs e) { edit2 edit2 = new edit2(); edit2.Show(); } private void
44、 用戶管理ToolStripMenuItem_Click(object sender, EventArgs e) { edit3 edit3 = new edit3(); edit3.FormBorderStyle = FormBorderStyle.None; edit3.Dock = DockStyle.Fill; edit3.TopLevel = false; this.panel1.Controls.Clear();
45、 this.panel1.Controls.Add(edit3); edit3.Show(); } 修改圖書信息: 主要實(shí)現(xiàn)代碼 – editMain.cs & edit1.cs: public static string bookname; public static string bookauthor; public static string bookprice; public static string bookpress; p
46、ublic static string booktype; //說明:這里用的是全局靜態(tài)變量,把表格獲取到的數(shù)據(jù)保存起來,進(jìn)行數(shù)據(jù)傳輸。 private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { int r = this.dataGridView1.CurrentRow.Index; string bn = this.dataGridView1.Rows[r].Cells[1].Value.ToStr
47、ing(); string ba = this.dataGridView1.Rows[r].Cells[2].Value.ToString(); string bp1 = this.dataGridView1.Rows[r].Cells[3].Value.ToString(); string bp2 = this.dataGridView1.Rows[r].Cells[4].Value.ToString(); string bt = this.dataGridView1.Rows[r].Ce
48、lls[5].Value.ToString(); // editMain editMain = new editMain(); editMain.bookname = bn.ToString(); editMain.bookauthor = ba.ToString(); editMain.bookprice = bp1.ToString(); editMain.bookpress = bp2.ToString();
49、 editMain.booktype = bt.ToString(); // edit1 edit1 = new edit1(); edit1.Show(); } //接下來是edit1.cs中的提交新的數(shù)據(jù),update數(shù)據(jù)庫。 public edit1(){ InitializeComponent(); editMain editMain = new editMain(); label6.Text = editM
50、ain.bookname; textBox1.Text = editMain.bookauthor; textBox2.Text = editMain.bookprice; textBox3.Text = editMain.bookpress; textBox4.Text = editMain.booktype; } private void button1_Click(object sender, EventArgs e) {
51、 String bn = editMain.bookname; String ba = textBox1.Text; String bp1 = textBox2.Text; String bp2 = textBox3.Text; String bt = textBox4.Text; // String sql = "server=localhost;user id=root;password=123456;database
52、=C#librarycenter"; //根據(jù)自己的設(shè)置 MySqlConnection conn = new MySqlConnection(sql); conn.Open(); // String sql2 = "update bookInfo set bookAuthor = " + ba + ", bookPrice = " + bp1 + ", bookPress = " + bp2 + ",bookType = "+ bt +" where bookName = "+ bn +"
53、 "; MySqlCommand cmd = new MySqlCommand(sql2, conn); int i = cmd.ExecuteNonQuery(); if (i == 1) { MessageBox.Show("圖書修改成功!"); } this.Hide(); } 添加圖書: 主要實(shí)現(xiàn)代碼 – edit2.cs: private void button1_Click(object sender, EventArg
54、s e) { String bn = textBox5.Text; String ba = textBox1.Text; String bp1 = textBox2.Text; String bp2 = textBox3.Text; String bt = textBox4.Text; // String sql = "server=localhost;user id=root;password=123456;da
55、tabase=C#librarycenter"; //根據(jù)自己的設(shè)置 MySqlConnection conn = new MySqlConnection(sql); conn.Open(); String sql2 = "insert into bookInfo(bookName,bookAuthor,bookPrice,bookPress,bookType,isBorrowed) values(" + bn + "," + ba + "," + bp1 + "," + bp2 + "," + bt + ",0)
56、"; MySqlCommand cmd = new MySqlCommand(sql2, conn); int i = cmd.ExecuteNonQuery(); if (i == 1) { MessageBox.Show("圖書添加成功!"); } else { MessageBox.Show("系統(tǒng)出錯(cuò)!"); } this.Hide(); } 用戶管理: 主要實(shí)現(xiàn)代碼 – edit3.cs: public edit
57、3(){ InitializeComponent(); String sql = "server=localhost;user id=root;password=123456;database=C#librarycenter"; //根據(jù)自己的設(shè)置 MySqlConnection conn = new MySqlConnection(sql); conn.Open();//打開數(shù)據(jù)庫連接 MySqlDataAdapter data1 = new MySqlDataA
58、dapter();//實(shí)例化sqldataadpter MySqlCommand cmd1 = new MySqlCommand("SELECT userId as 用戶ID,userName as 用戶名,(CASE userPassword WHEN null THEN ****** ELSE ****** END) as 用戶密碼,userSex as 用戶性別 FROM `c#librarycenter`.userInfo", conn);//sql語句 data1.SelectCommand = cmd1;//設(shè)置為已實(shí)例化SqlD
59、ataAdapter的查詢命令 DataTable dt = new DataTable(); dt.Clear(); data1.Fill(dt);//把數(shù)據(jù)填充到datatable dataGridView1.DataSource = dt;//將數(shù)據(jù)集綁定datagridview,完成顯示 dataGridView1.AllowUserToAddRows = false; } 總結(jié) 這次的圖書管理系統(tǒng),并未用到MVC設(shè)計(jì)模式,只是簡單的面向?qū)ο笤O(shè)計(jì),選的題目也是比較熟悉的,本系統(tǒng)提供兩種權(quán)限:用戶和管理員,其實(shí)應(yīng)該把【管理員】分成【圖書管理員】和【系統(tǒng)管理員】,提供不同的權(quán)限,【系統(tǒng)管理員】具有對所有用戶的操作權(quán)限,【圖書管理員】具有對所有圖書的操作權(quán)限。本次課題當(dāng)然還存在著許多不足,以后有機(jī)會(huì)的話,會(huì)加以改進(jìn)。 姓名:// 學(xué)號://
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市教育局冬季運(yùn)動(dòng)會(huì)安全工作預(yù)案
- 2024年秋季《思想道德與法治》大作業(yè)及答案3套試卷
- 2024年教師年度考核表個(gè)人工作總結(jié)(可編輯)
- 2024年xx村兩委涉案資金退還保證書
- 2024年憲法宣傳周活動(dòng)總結(jié)+在機(jī)關(guān)“弘揚(yáng)憲法精神推動(dòng)發(fā)改工作高質(zhì)量發(fā)展”專題宣講報(bào)告會(huì)上的講話
- 2024年XX村合作社年報(bào)總結(jié)
- 2024-2025年秋季第一學(xué)期初中歷史上冊教研組工作總結(jié)
- 2024年小學(xué)高級教師年終工作總結(jié)匯報(bào)
- 2024-2025年秋季第一學(xué)期初中物理上冊教研組工作總結(jié)
- 2024年xx鎮(zhèn)交通年度總結(jié)
- 2024-2025年秋季第一學(xué)期小學(xué)語文教師工作總結(jié)
- 2024年XX村陳規(guī)陋習(xí)整治報(bào)告
- 2025年學(xué)校元旦迎新盛典活動(dòng)策劃方案
- 2024年學(xué)校周邊安全隱患自查報(bào)告
- 2024年XX鎮(zhèn)農(nóng)村規(guī)劃管控述職報(bào)告