1、高级程序设计语言图书管理系统设计报告 学院: 国土资源工程学院 专业: 测 绘 工 程 成员:*指导教师:黄云铠日期: 2014年11月5日1 系统设计1.1 设计目标本系统是针对图书管理工作过程进行设计的,主要实现如下目标:注册用户可以登录此系统;非注册用户注册后可以使用本系统;读者可以查询、借阅、归还图书等; 管理员可以对读者、图书进行管理。1.2数据库设计概述1.2.1概念结构设计将从需求分析中得到的数据信息抽象为概念模型,经分析可得到数据库的E-R模型。如图所示。 图书名称作者编号出版日期价格种类出版社图1-1 图书实体ER图密码 读者姓名编号专业借阅时间借书量年龄性别图1-2 实体读
2、者ER图用户密码类型编号图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图书管理系统暂有数
3、据(模拟运行)2.3.1管理员学工号:2014701020 姓名:邢吉昌密码:1112.3.2普通用户学工号:2014701021 姓名:猪八戒密码:333学工号:2014701022 姓名:孙悟空密码:4442.3.3图书信息编号 作者 书名 出版社 出版日期 价格 书类H319584781 MARK C#入门经典 清华大学出版社 2011/4/5 21.56 计算机H319584782 哪吒 和猴子的那些事 天庭文印 2010/1/2 216.5 情感H319584783二郎神 我也可以闹天宫 天庭文印 2009/8/1 29.32 技术3 程序功能的实现3.1登陆界面已注册用户登录时,用
4、户类别选择普通用户或管理员,不选择会出现提示主要代码如下: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 WindowsFormsApplication1 public partial class LoginForm :
5、 Form public string password; private int ErrorTimes; string User, 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(logi
6、nid.Text.Trim()=) MessageBox.Show(请输入用户名, 登录提示, MessageBoxButtons.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()
7、 InitializeComponent(); private void cancelbtn_Click(object sender, 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
8、e) if (yanzhengshuru() if (Typename.Text.Trim() = 管理员) SqlConnection 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, conConn
9、ection); SqlDataReader reader = com.ExecuteReader(); while (reader.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
10、 = new admin (); f1.ShowDialog(); else if (Typename.Text.Trim() = 普通用户) SqlConnection conConnection1 = new SqlConnection(Data Source=.sqlexpress;Initial Catalog=学生管理数据库;Integrated Security=True); conConnection1.Open(); string cnd = select ReaderID,ReaderPassword from reader ; SqlCommand cnm = new Sq
11、lCommand(cnd, conConnection1); SqlDataReader reader1 = cnm.ExecuteReader(); 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 (flag
12、show = true) this.Hide(); 读者查阅 f1 = new 读者查阅(); f1.ShowDialog(); 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, EventAr
13、gs e) private void label3_Click(object sender, EventArgs e) private 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
14、) private void textBox3_TextChanged(object sender, EventArgs e) 3.2登陆界面如果学号已经存在,则会出现“*用户名已经存在,请重新输入”的提示,当重新输入密码时,如果两次密码不相同,则会出现“*请注意,两次密码不一样”的提示 主要代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text
15、;using System.Windows.Forms;using System.Data.SqlClient;namespace 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.Vis
16、ible = true; else label8.Visible = true; label6.Visible = false; 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); c
17、onConnection.Open(); string cmd = select ReaderID from reader ; SqlCommand 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
18、if (textBox1.Text != readerUserReaderID.ToString().Trim() label7.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.Visib
19、le = true; label10.Text = 邮箱格式正确; if(UserFlag=true ) MessageBox.Show(用户已经存在,请重新输入!); return; if (UserFlag=false) SqlConnection conConnection = new SqlConnection(Data Source=.sqlexpress;Initial Catalog=学生管理数据库;Integrated Security=True); conConnection.Open(); string cmd = insert into reader(ReaderID,R
20、eaderPassword,ReaderEmall) values (+textBox1.Text+,+textBox2.Text+,+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 Sy
21、stem.Collections.Generic;using System.ComponentModel;using System.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_C
22、lick(object sender, EventArgs e) 权限设置 f8 = new 权限设置(); f8.ShowDialog(); 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
23、void 删除用户ToolStripMenuItem1_Click(object sender, EventArgs e) 用户信息 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, EventArg
24、s e) 删除书籍 f6 = new 删除书籍(); f6.ShowDialog(); private void 还书处理ToolStripMenuItem_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.
25、ShowDialog(); 3.3.1管理用户管理用户下共有三个子菜单3.3.1.1新增用户界面主要代码如下: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 WindowsFormsApplication1 public
26、 partial class 新增用户 : Form public 新增用户() InitializeComponent(); private 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(Read
27、erID,ReaderName,ReaderPassword,ReaderSex,ReaderAge,ReaderDept,ReaderZhuanYe,MaxNumber,ReaderEmall) values ( + textBox1.Text + , + + textBox2.Text + , + + textBox3.Text + , + + textBox4.Text + , + + textBox5.Text + , + + textBox6.Text + , + + textBox7.Text + , + + textBox8.Text + , + + textBox9.Text
28、+ ); SqlCommand com = new SqlCommand(cmd, conConnection); com.ExecuteNonQuery(); conConnection.Close(); MessageBox.Show(添加成功!点击确定,返回登录界面。, 提示); this.Close(); 3.3.1.2删除用户界面输入学号即可查询用户信息,如图,点击删除即删除该用户主要代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;usin
29、g System.Drawing;using System.Linq;using System.Text;using System.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
30、 ) MessageBox.Show(不存在该用户,请核对后再输入,警告); return; if (UserFlag = true) 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();