当前位置:文档之家› 图书管理系统系统设计(含代码)

图书管理系统系统设计(含代码)

《高级程序设计语言》图书管理系统设计报告学院:国土资源工程学院专业:测绘工程成员:********************************指导教师:***日期:2014年11月5日1 系统设计1.1设计目标本系统是针对图书管理工作过程进行设计的,主要实现如下目标:注册用户可以登录此系统;非注册用户注册后可以使用本系统;读者可以查询、借阅、归还图书等;管理员可以对读者、图书进行管理。

1.2数据库设计概述1.2.1概念结构设计将从需求分析中得到的数据信息抽象为概念模型,经分析可得到数据库的E-R模型。

如图所示。

图1-1 图书实体ER图图1-2 实体读者ER 图图1- 3 用户实体ER 图1.2 项目规划图书管理系统是一个典型的数据库应用程序,由应用程序和后台数据库两部分构成。

(1)应用程序应用程序主要包括登录,注册,用户信息,读者信息,图书信息管理,借阅图书,综合查询,出版社信息等几个部分组成。

(2)数据库 数据库负责对图书信息,用户信息等数据的管理。

2 数据库设计说明书 2.1 数据库表结构 2.1.1 图书表book2.1.2 借阅信息表borrow用户密码类型编号2.1.2用户信息表Reader2.1.4 用户信息权限表right2.1.5用户账号表user2.1.6 管理员账号表usererheper2.2数据关系图2.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登陆界面已注册用户登录时,用户类别选择普通用户或管理员,不选择会出现提示主要代码如下:using System;using System.Collections.Generic;using ponentModel;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 User, Pwd;bool flagshow = false;private bool yanzhengshuru()password = textBox3.Text;if(Typename.Text.Trim()==""){MessageBox.Show("请选择登录类型","登录提示",MessageBoxButtons.OK,rmation);Typename.Focus();return false;}else if(loginid.Text.Trim()==""){MessageBox.Show("请输入用户名", "登录提示",MessageBoxButtons.OK, rmation);loginid.Focus();return false;}else if (password == ""){MessageBox.Show("请输入密码", "登录提示",MessageBoxButtons.OK, rmation);textBox3.Focus();return false;}else{return true;}}public LoginForm(){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 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, conConnection);SqlDataReader reader = com.ExecuteReader();while (reader.Read()){User = reader["AdminID"].ToString();Pwd = reader["AdminPass"].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() == "普通用户"){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.ExecuteReader();while (reader1.Read())User = reader1["ReaderID"].ToString();Pwd = reader1["ReaderPassword"].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();}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){}private void button1_Click(object sender, EventArgs e){注册 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){}}}3.2登陆界面如果学号已经存在,则会出现“*用户名已经存在,请重新输入”的提示,当重新输入密码时,如果两次密码不相同,则会出现“*请注意,两次密码不一样”的提示主要代码如下:using System;using System.Collections.Generic; using ponentModel;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();}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;}}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 ";SqlCommand com = new SqlCommand(cmd ,conConnection );SqlDataReader readerUser = com.ExecuteReader();while (readerUser.Read ()){if(textBox1.Text ==readerUser["ReaderID"].ToString().Trim()){label7.Visible = true;UserFlag = true;return;}else if (textBox1.Text != readerUser["ReaderID"].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.Visible = 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,ReaderPassword,ReaderEmall) values('"+textBox1.Text+"',"+"'"+textBox2.Text+"',"+"'"+textBox4.Text+"')";SqlCommand com = new SqlCommand(cmd,conConnection );com.ExecuteNonQuery();conConnection.Close();MessageBox.Show("注册成功!点击确定,返回登录界面。

相关主题