1、高级程序设计语言图书管理系统设计报告学 院: 国土资源工程学院 专 业: 测 绘 工 程 成 员:*指导教师: 黄云铠 日 期: 2014 年 11 月 5 日 1 系统设计1.1 设计目标本系统是针对图书管理工作过程进行设计的,主要实现如下目标:注册用户可以登录此系统;非注册用户注册后可以使用本系统;读者可以查询、借阅、归还图书等; 管理员可以对读者、图书进行管理。1.2 数据库设计概述1.2.1 概念结构设计将从需求分析中得到的数据信息抽象为概念模型,经分析可得到数据库的E-R 模型。如图所示。图书名称 作者 编号出版日期价格种类出版社图 1-1 图书实体 ER 图密码读者姓名 编号专业借
2、阅时间借书量年龄性别图 1-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 管理员账号
3、表 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
4、/8/1 29.32 技术3 程序功能的实现3.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 WindowsFormsAppli
5、cation1public partial class LoginForm : Formpublic 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.F
6、ocus();return false;else if(loginid.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
7、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(ob
8、ject 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
9、SqlCommand(cmd, conConnection);SqlDataReader reader = com.ExecuteReader();while (reader.Read()User = reader“AdminID“.ToString();Pwd = reader“AdminPass“.ToString();if (User.Trim() = loginid.Text reader.Close();conConnection.Close();if (flagshow = true)this.Hide();admin f1 = new admin ();f1.ShowDialog
10、();elseif (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);
11、SqlDataReader reader1 = cnm.ExecuteReader();while (reader1.Read()User = reader1“ReaderID“.ToString();Pwd = reader1“ReaderPassword“.ToString();if (User.Trim() = loginid.Text reader1.Close();conConnection1.Close();if (flagshow = true)this.Hide();读者查阅 f1 = new 读者查阅();f1.ShowDialog();elseMessageBox.Show
12、(“用户名不存在或密码错误!“, “提示“);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(o
13、bject 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) 3.2 登陆界面如果学号已经存在,则会出现“*用户名已经存在,请重新输入”的提示,当重新输入密码时,如果两次密码不相同,则会出现“*请注意,两次密码不一样”的提示