1、高级程序设计语言图书管理系统设计汇报 学院: 国土资源工程学院 专业: 测 绘 工 程 成员:*指导老师:黄云铠日期: 11月5日1 系统设计1.1 设计目标本系统是针对图书管理工作过程进行设计,关键实现以下目标:注册用户能够登录此系统;非注册用户注册后能够使用本系统;读者能够查询、借阅、归还图书等; 管理员能够对读者、图书进行管理。1.2数据库设计概述1.2.1概念结构设计将从需求分析中得到数据信息抽象为概念模型,经分析可得到数据库E-R模型。图所表示。 图书名称作者编号出版日期价格种类出版社图1-1 图书实体ER图密码 读者姓名编号专业借阅时间借书量年纪性别图1-2 实体读者ER图用户密码
2、类型编号图1- 3 用户实体ER图1.2 项目计划图书管理系统是一个经典数据库应用程序,由应用程序和后台数据库两部分组成。(1)应用程序应用程序关键包含登录,注册,用户信息,读者信息,图书信息管理,借阅图书,综合查询,出版社信息等多个部分组成。(2)数据库 数据库负责对图书信息,用户信息等数据管理。2 数据库设计说明书21 数据库表结构2.1.1 图书表book2.1.2 借阅信息表borrow2.1.2用户信息表Reader2.1.4 用户信息权限表right2.1.5用户账号表user2.1.6 管理员账号表usererheper2.2数据关系图2.3图书管理系统暂有数据(模拟运行)2.3
3、.1管理员学工号:701020 姓名:邢吉昌密码:1112.3.2一般用户学工号:701021 姓名:猪八戒密码:333学工号:701022 姓名:孙悟空密码:4442.3.3图书信息编号 作者 书名 出版社 出版日期 价格 书类H MARK C#入门经典 清华大学出版社 /4/5 21.56 计算机H 哪吒 和猴子那些事 天庭文印 /1/2 216.5 情感H二郎神 我也能够闹天宫 天庭文印 /8/1 29.32 技术3 程序功效实现3.1登陆界面已注册用户登录时,用户类别选择一般用户或管理员,不选择会出现提醒关键代码以下:using System;using System.Collecti
4、ons.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsFormsApplication1 public partial class LoginForm : Form public string password; private int ErrorTimes; string Us
5、er, Pwd; bool flagshow = false; private bool yanzhengshuru() password = textBox3.Text; if(Typename.Text.Trim()=) MessageBox.Show(请选择登录类型,登录提醒, MessageBoxButtons.OK,MessageBoxIcon.Information); Typename.Focus(); return false; else if(loginid.Text.Trim()=) MessageBox.Show(请输入用户名, 登录提醒, MessageBoxButto
6、ns.OK, MessageBoxIcon.Information); loginid.Focus(); return false; else if (password = ) MessageBox.Show(请输入密码, 登录提醒, MessageBoxButtons.OK, MessageBoxIcon.Information); textBox3.Focus(); return false; else return true; public LoginForm() InitializeComponent(); private void cancelbtn_Click(object sen
7、der, EventArgs e) Application.Exit(); private void LoginForm_Load(object sender, EventArgs e) private void LoginForm_Closing(object sender, FormClosingEventArgs e) Application.Exit(); private void loginbtn_Click(object sender, EventArgs e) if (yanzhengshuru() if (Typename.Text.Trim() = 管理员) SqlConne
8、ction conConnection = new SqlConnection(Data Source=.sqlexpress;Initial Catalog=学生管理数据库;Integrated Security=True); conConnection.Open(); string cmd = select AdminID,AdminPass from userhelper ; SqlCommand com = new SqlCommand(cmd, conConnection); SqlDataReader reader = com.ExecuteReader(); while (rea
9、der.Read() User = readerAdminID.ToString(); Pwd = readerAdminPass.ToString(); if (User.Trim() = loginid.Text & Pwd.Trim() = textBox3.Text) flagshow = true; reader.Close(); conConnection.Close(); if (flagshow = true) this.Hide(); admin f1 = new admin (); f1.ShowDialog(); else if (Typename.Text.Trim()
10、 = 一般用户) SqlConnection conConnection1 = new SqlConnection(Data Source=.sqlexpress;Initial Catalog=学生管理数据库;Integrated Security=True); conConnection1.Open(); string cnd = select ReaderID,ReaderPassword from reader ; SqlCommand cnm = new SqlCommand(cnd, conConnection1); SqlDataReader reader1 = cnm.Exec
11、uteReader(); while (reader1.Read() User = reader1ReaderID.ToString(); Pwd = reader1ReaderPassword.ToString(); if (User.Trim() = loginid.Text & Pwd.Trim() = textBox3.Text) flagshow = true; reader1.Close(); conConnection1.Close(); if (flagshow = true) this.Hide(); 读者查阅 f1 = new 读者查阅(); f1.ShowDialog()
12、; else MessageBox.Show(用户名不存在或密码错误!, 提醒); ErrorTimes+; if (ErrorTimes = 3) MessageBox.Show(登录次数过多,程序将关闭); /Application.Exit(); return; private void label1_Click(object sender, EventArgs e) private void label2_Click(object sender, EventArgs e) private void label3_Click(object sender, EventArgs e) pri
13、vate void button1_Click(object sender, EventArgs e) this.Hide(); 注册 f1 = new 注册(); f1.ShowDialog(); private void usercomboBox_SelectedIndexChanged(object sender, EventArgs e) private void useracctxt_TextChanged(object sender, EventArgs e) private void textBox3_TextChanged(object sender, EventArgs e)
14、 3.2登陆界面假如学号已经存在,则会出现“*用户名已经存在,请重新输入”提醒,当重新输入密码时,假如两次密码不相同,则会出现“*请注意,两次密码不一样”提醒 关键代码以下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace
15、 WindowsFormsApplication1 public partial class 注册 : Form public 注册() InitializeComponent(); public bool UserFlag; private void textBox3_TextChanged(object sender, EventArgs e) if (textBox2.Text.Trim() != textBox3.Text.Trim() label6.Visible = true; else label8.Visible = true; label6.Visible = false;
16、private void 注册_Load(object sender, EventArgs e) private void textBox1_TextChanged(object sender, EventArgs e) SqlConnection conConnection = new SqlConnection(Data Source=.sqlexpress;Initial Catalog=学生管理数据库;Integrated Security=True); conConnection.Open(); string cmd = select ReaderID from reader ; S
17、qlCommand com = new SqlCommand(cmd ,conConnection ); SqlDataReader readerUser = com.ExecuteReader(); while (readerUser.Read () if(textBox1.Text =readerUserReaderID.ToString().Trim() label7.Visible = true; UserFlag = true; return; else if (textBox1.Text != readerUserReaderID.ToString().Trim() label7.
18、Visible = false; label9.Visible = true; UserFlag = false; private void button1_Click(object sender, EventArgs e) int index = textBox4.Text.IndexOf(); if (index 1) label10.Visible = true; label10.Text = 邮箱格式不正确,请重新输入; else label10.Visible = true; label10.Text = 邮箱格式正确; if(UserFlag=true ) MessageBox.S
19、how(用户已经存在,请重新输入!); return; if (UserFlag=false) SqlConnection conConnection = new SqlConnection(Data Source=.sqlexpress;Initial Catalog=学生管理数据库;Integrated Security=True); conConnection.Open(); string cmd = insert into reader(ReaderID,ReaderPassword,ReaderEmall) values (+textBox1.Text+,+textBox2.Text
20、+,+textBox4.Text+); SqlCommand com = new SqlCommand(cmd,conConnection ); com.ExecuteNonQuery(); conConnection.Close(); MessageBox.Show(注册成功!点击确定,返回登录界面。,提醒); this.Close(); LoginForm f2 = new LoginForm(); 3.3管理员操作界面using System;using System.Collections.Generic;using System.ComponentModel;using System
21、.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication1 public partial class admin : Form public admin() InitializeComponent(); private void 查看用户信息ToolStripMenuItem_Click(object sender, EventArgs e) 权限设置 f8 = new 权限设置(); f8.ShowDia
22、log(); private void 查看用户信息ToolStripMenuItem1_Click(object sender, EventArgs e) 用户信息 fi = new 用户信息(); fi.ShowDialog(); private void 新增用户ToolStripMenuItem1_Click(object sender, EventArgs e) 新增用户 f2 = new 新增用户(); f2.ShowDialog(); private void 删除用户ToolStripMenuItem1_Click(object sender, EventArgs e) 用户信
23、息 f3 = new 用户信息(); f3.button2.Visible = true; f3.ShowDialog(); private void 录入书籍ToolStripMenuItem_Click(object sender, EventArgs e) 书籍信息 f5 = new 书籍信息(); f5.ShowDialog(); private void 删除书籍ToolStripMenuItem_Click(object sender, EventArgs e) 删除书籍 f6 = new 删除书籍(); f6.ShowDialog(); private void 还书处理Tool
24、StripMenuItem_Click(object sender, EventArgs e) 还书处理 f9 = new 还书处理(); f9.ShowDialog(); private void admin_Load(object sender, EventArgs e) private void 借阅处理ToolStripMenuItem_Click(object sender, EventArgs e) 借阅处理 f10 = new 借阅处理(); f10.ShowDialog(); 3.3.1管理用户管理用户下共有三个子菜单3.3.1.1新增用户界面关键代码以下:using Syst
25、em;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsFormsApplication1 public partial class 新增用户 : Form public 新增用户() InitializeComponent(); p
26、rivate void button1_Click(object sender, EventArgs e) SqlConnection conConnection = new SqlConnection(Data Source=.sqlexpress;Initial Catalog=学生管理数据库;Integrated Security=True); conConnection.Open(); string cmd = insert into reader(ReaderID,ReaderName,ReaderPassword,ReaderSex,ReaderAge,ReaderDept,Rea
27、derZhuanYe,MaxNumber,ReaderEmall) values ( + textBox1.Text + , + + textBox2.Text + , + + textBox3.Text + , + + textBox4.Text + , + + textBox5.Text + , + + textBox6.Text + , + + textBox7.Text + , + + textBox8.Text + , + + textBox9.Text + ); SqlCommand com = new SqlCommand(cmd, conConnection); com.Exe
28、cuteNonQuery(); conConnection.Close(); MessageBox.Show(添加成功!点击确定,返回登录界面。, 提醒); this.Close(); 3.3.1.2删除用户界面输入学号即可查询用户信息,图,点击删除即删除该用户关键代码以下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.
29、Windows.Forms;using System.Data.SqlClient;namespace WindowsFormsApplication1 public partial class 用户信息 : Form bool UserFlag; public 用户信息() InitializeComponent(); private void button1_Click(object sender, EventArgs e) if(UserFlag=false ) MessageBox.Show(不存在该用户,请查对后再输入,警告); return; if (UserFlag = true
30、) SqlConnection conConnection = new SqlConnection(Data Source=.sqlexpress;Initial Catalog=学生管理数据库;Integrated Security=True); conConnection.Open(); string cmd = select * from reader; SqlCommand com=new SqlCommand (cmd,conConnection); com.CommandText = select * from reader; SqlDataReader dr = com.ExecuteReader(); while (dr.Read() label11.Visible = true; textBox2.Text = drReaderName.ToString().Trim(); textBox3.Text = drReaderPassword.ToString().Trim(); textBox4.Text = drReaderSex.ToString().Trim(); textBox5.Text = drReaderAge.ToString().Trim(