数据库应用课程设计.docx

上传人:b****6 文档编号:8837550 上传时间:2023-02-02 格式:DOCX 页数:27 大小:379.55KB
下载 相关 举报
数据库应用课程设计.docx_第1页
第1页 / 共27页
数据库应用课程设计.docx_第2页
第2页 / 共27页
数据库应用课程设计.docx_第3页
第3页 / 共27页
数据库应用课程设计.docx_第4页
第4页 / 共27页
数据库应用课程设计.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

数据库应用课程设计.docx

《数据库应用课程设计.docx》由会员分享,可在线阅读,更多相关《数据库应用课程设计.docx(27页珍藏版)》请在冰豆网上搜索。

数据库应用课程设计.docx

数据库应用课程设计

学生姓名

专业班级

学号

题目

班级书库管理系统

指导教师

同组姓名

主要内容

班级书库管理系统主要实现个人书籍的管理,针对班级藏书太多,不容易集中管理分类的需求。

实现的功能如下:

(1)实现个人系统的登录。

(2)实现书籍的显示,入库添加存储,查询,删除,统计,出借查询功能。

(3)实现书库管理员的添加,删除,显示功能。

(4)系统的退出。

任务要求

综合运用所学的数据库基本知识,采用一种前台开发工具,并能通过查阅相关文献材料,独立完成该课题的设计开发工作。

要求根据本课题设计出合理的数据结构,并实现书籍综合管理模块、管理员管理模块等其他功能模块。

开发工具自选。

1需求分析

现代科学技术突飞猛进的今天,各种电子数码化产品如雨后春笋般被发明制造出来,其中就关于书籍的产品如可携带式电子书等等。

但是相比于体积上更小,重量上更轻,数量上更多的电子式书籍来说,人们还是喜爱相对比较传统的纸制书籍。

这就出现了一个问题,当一个书籍收藏家或有太多书籍的人想对如此众多的书籍进行管理时该怎么办?

本次课程设计就是针对这个问题进行开发设计。

针对上述问题,我设计了一个‘班级书库管理系统’,目的是为了方便用户管理书籍。

该系统主要包含了2个模块,书籍综合管理模块和管理员管理模块,书籍综合管理模块的功能包括:

(1)入库,添加书籍加入数据库的书籍表。

(2)删除,从书库中删除不存在,有错误的书籍。

(3)显示,在操作界面的表中显示所有已有的书籍。

(4)查询,通过关键字查找书库中的书籍。

(5)出借查询,通过出借号查询出借的书籍和出借人

管理员操作模块的功能包括:

(1)添加,添加管理员,并设置管理类别。

(2)删除,删除已有的管理员。

(3)修改,修改管理员的资料,包括用户名,密码,类别。

(4)显示,使用几个按钮在文本框中显示用户。

此外,本系统还应包括一个登录模块和用户表连接。

2概要设计

2.1数据库中的表。

(1)BooK表,用来存储书籍信息。

其实体型为:

Book(BookName,BookNum,BookType,BookPub,BookBro);

其中,BookNum(书号)为主键,其余的分别是BookName(书名),BookNum(书类),BookPub(出版社),BooKBro(是否借出)。

以下是Book表在数据库中的定义,包括各属性的数据类型和长度等。

表2-1Book表

列名

数据类型

长度

允许空

主键

BookName

Nvarchar

50

BookNum

Int

4

BookType

Nvarchar

50

BookPub

Nvarchar

50

BookBro

Nvarchar

50

(2)BookBro表,用来存储出借书籍数据,其实体型为:

BookBro(BookName,BroName,BroNum,PhoneNum,BookNum);

其中,BroNum(出借号)为主键,BookName(书名),BookNum(书号),,BroName(出借人),PhoneNum(出借人电话号码)。

以下是BookBro表在数据库中的定义。

表2-2,BookBro表

列名

数据类型

长度

允许空

主键

BroNum

Int

4

BookName

Nvarchar

50

PhoneNum

Nvarchar

50

BookNum

Int

4

BroName

Nvarchar

50

(3)User表,用来存储用户信息,其实体型为:

User(UserID,UserPassword,UserSort);

其中UserID(用户名)为主键,UserPassword(用户密码),UserSort(用户类型)

以下是User表在数据库中的定义。

表3-3,User表

列名

数据类型

长度

允许空

主键

UserID

Char

10

UserPassword

Char

10

UserSort

Char

10

2.2程序流程图和各模块功能分布:

图2-1,程序流程图和各功能分部图

图2-2,E-R图

3运行环境

软件:

WindowsXP操作系统。

硬件:

微机,CPUP42.8HZ。

1G内存,80G硬盘和128M显卡。

4开发工具和编程语言

开发工具:

visual,SQL2005。

编程语言:

面向数据库C#语言。

5详细设计

(1)登录界面设计:

图5-1,登录界面

登录界面实现代码:

namespacelibrary.cs

{

publicpartialclassLoginForm:

Form

{

publicLoginForm()

{

InitializeComponent();//窗体代码设计必备

}

publicvoidErrorHandle(System.ExceptionE)

{

MessageBox.Show(E.ToString());//调用异常处理

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

this.textUserID.Text="";

this.textUserPassword.Text="";//清空

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

if(UserCheck(this.textUserID.Text,this.textUserPassword.Text)=="system")//调用检测函数并识别

{

this.Visible=false;

Formmainform=newMainForm();//调用主窗体

mainform.ShowDialog();//调用显示函数

this.Close();//关掉正在打开的界面

}

elseif(UserCheck(this.textUserID.Text,this.textUserPassword.Text)=="user")

{

this.Visible=false;

Formmainform=newMainForm();

mainform.ShowDialog();

this.Close();

}

else

{

if(MessageBox.Show("输入用户密码有误,是否重新登陆","输入有误",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK)//输入错误,调用窗体并提示错误

{

this.textUserID.Clear();

this.textUserPassword.Clear();}

else

{

this.Close();

}

}

}

stringUserCheck(stringusername,stringuserpassword)//判断

{

stringtxtSql,usersort;

usersort="nobody";

txtSql="SELECT*FROM[user]";

SqlCommandcheckuser=newSqlCommand(txtSql,this.sqlConnection1);

try

{

this.sqlConnection1.Open();//打开数据库链接

SqlDataReadersqlreader=checkuser.ExecuteReader();

while(sqlreader.Read())

{

if((sqlreader[0].ToString().Trim()==username)&&(sqlreader[1].ToString().Trim()==userpassword))

//输入数据与数据库中的数据进行比较判断

{

usersort=sqlreader[2].ToString().Trim();

break;

}

}

}

catch(Exceptione)

{

MessageBox.Show(e.ToString());

}

sqlConnection1.Close();

returnusersort;

}

(2)主控制窗体界面:

图5-2,主控制窗体

主控制窗体代码:

namespacelibrary.cs

{

publicpartialclassMainForm:

Form

{

publicMainForm()

{

InitializeComponent();

}

privatevoidbutton4_Click(objectsender,EventArgse)

{

this.Close();//退出系统

}

privatevoidbutton3_Click(objectsender,EventArgse)

{

this.Visible=false;

Formmainform=newUser();

mainform.ShowDialog();//打开管理员管理模块

this.Close();

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

this.Visible=false;

FormXinshu=newxinshu();

Xinshu.ShowDialog();//打开书籍综合管理模块

this.Close();

}

}

}

(3)书籍综合管理模块窗体设计:

图5-3,综合功能窗口

图5-4,出借查询窗口

书籍综合管理模块代码实现:

namespacelibrary.cs

{

publicpartialclassxinshu:

Form

{

publicxinshu()

{

InitializeComponent();

}

privatevoidbtnClear_Click(objectsender,EventArgse)

{

this.textName.Text="";//清空

this.textNum.Text="";

}

privatevoidbtnBack_Click(objectsender,EventArgse)

{

this.Visible=false;

Formmainform=newMainForm();

mainform.ShowDialog();//返回主窗体

this.Close();

}

privatevoidbtnAdd_Click(objectsender,EventArgse)

{//添加新数据进入Book表

SqlConnectioncon=newSqlConnection("server=(local);uid=sa;pwd=123;database=shuku");

con.Open();

SqlCommandcmd=newSqlCommand("insertintobookvalues('"+textName.Text.Trim()+"','"+textNum.Text.Trim()+"','"+textType.Text.Trim()+"','"+textPub.Text.Trim()+"','"+textBro.Text.Trim()+"')",con);

cmd.ExecuteNonQuery();

MessageBox.Show("成功入库!

");

printf();//新数据入库后刷新

}

privatevoidxinshu_Load(objectsender,EventArgse)

{

printf();//调用显示函数

}

privatevoidprintf()//显示函数

{

this.sqlDataAdapter1.Fill(this.dataSetBook);

this.dataGrid1.DataSource=this.dataSetBook.Tables[0].DefaultView;

}

privatevoidbtnCheck_Click(objectsender,EventArgse)

{//查询按钮功能实现

SqlConnectionconn=newSqlConnection("server=(local);database=shuku;Trusted_Connection=yes;");

SqlCommandcom=newSqlCommand();

conn.Open();

com.Connection=conn;

com.CommandType=CommandType.Text;

if(textName2.Text!

=null)

{

com.Parameters.Add("@书号",SqlDbType.Int);

com.Parameters["@书号"].Value=textName2.Text;//取在文本框中输入的数据值

com.CommandText="select*frombookwhereBookNum=@书号";//对比

DataSetdataSet2=newDataSet();

SqlDataAdapterqlcom2=newSqlDataAdapter(com);

qlcom2.Fill(dataSet2,"stu1");

dataGrid2.DataSource=

dataSet2.Tables["stu1"].DefaultView;//把查询结果放入第二DataGrid

}

conn.Close();//关闭连接

}

privatevoidbtnClear2_Click(objectsender,EventArgse)

{

this.textName2.Text="";//清空

}

privatevoidbtnDelete_Click(objectsender,EventArgse)

{//删除界面代码

SqlConnectionconn=newSqlConnection("server=(local);database=shuku;Trusted_Connection=yes;");

SqlCommandcom=newSqlCommand();

conn.Open();

com.Connection=conn;

com.CommandType=CommandType.Text;

com.Parameters.Add("@书号",SqlDbType.Int);

com.Parameters["@书号"].Value=textName2.Text;//取输入值

com.CommandText="deletefrombookwhereBookNum=@书号";//删除关键字相同的键值

com.ExecuteNonQuery();

MessageBox.Show("删除成功!

");

com.CommandText=("select*frombook");

com.CommandType=CommandType.Text;

SqlDataAdapterAdapter=newSqlDataAdapter(com);

DataTablede=newDataTable();

Adapter.Fill(de);

this.dataGrid1.DataSource=de;//显示结果在显示窗体1

}

privatevoidbtncount_Click(objectsender,EventArgse)

{//统计按钮功能实现

intdatarows;

SqlConnectionconn=newSqlConnection("server=(local);database=shuku;Trusted_Connection=yes;");  //打开数据库

SqlCommandcom=newSqlCommand();   //SQL命令集

conn.Open();                  

com.Connection=conn;

com.CommandType=CommandType.Text;

com.CommandText="selectBookNamefromBook";

SqlDataAdapterdapter=newSqlDataAdapter(com); //适配器

DataSetcon=newDataSet();//容器

datarows=sqlDataAdapter1.Fill(con);

MessageBox.Show("总共有"+datarows.ToString()+"本书");

}

privatevoidbtnBro_Click(objectsender,EventArgse)

{//打开出借查询界面

this.Visible=false;

Formformbro=newFormBro();

formbro.ShowDialog();

this.Close();

}

}

}

出借查询代码实现

privatevoidbutOK_Click(objectsender,EventArgse)

{//通过出借号查询并显示

SqlConnectionconn=newSqlConnection("server=(local);database=shuku;Trusted_Connection=yes;");//打开数据库链接

SqlCommandcom=newSqlCommand();

conn.Open();

com.Connection=conn;

com.CommandType=CommandType.Text;

com.Parameters.Add("@借出号",SqlDbType.Int);

com.Parameters["@借出号"].Value=BroNum.Text;

com.CommandText="select*frombookbrowhereBroNum=@借出号";

DataSetdataSet2=newDataSet();

SqlDataAdapterqlcom2=newSqlDataAdapter(com);

qlcom2.Fill(dataSet2,"stu1");

dataGrid1.DataSource=dataSet2.Tables["stu1"].DefaultView;

conn.Close();

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

this.BroNum.Text="";//清空

}

privatevoidbutton1_Click(objectsender,EventArgse)

{//返回上一级窗体

this.Visible=false;

Formxinshu=newxinshu();

xinshu.ShowDialog();

this.Close();

}

privatevoidbutton3_Click(objectsender,EventArgse)

{//显示所有出借的书籍

SqlConnectionconn=newSqlConnection("server=(local);database=shuku;Trusted_Connection=yes;");

SqlCommandcom=newSqlCommand();

conn.Open();

com.Connection=conn;

com.CommandType=CommandType.Text;

com.CommandText="select*frombookbro";

DataSetdataSet2=newDataSet();

SqlDataAdapterqlcom2=newSqlDataAdapter(com);

qlcom2.Fill(dataSet2,"stu1");

dataGrid1.DataSource=dataSet2.Tables["stu1"].DefaultView;

conn.Close();

}

(5)管理员管理模块界面:

图5-5,管理员管理模块界面

代码实现(在这个模块中手动设置数据连接,用到了VS.net数据库连接控件):

‘上一个’代码:

privatevoidbtnPrevious_Click(objectsender,System.EventArgse)

{

this.BindingContext[this.objDataSetUser1,

"user"].Position-=1;//指针减一

this.ButtonPositonChange();

this.DatasetPostionChange();

}

‘表头’代码:

privatevoidbtnFirst_Click(objectsender,System.EventArgse)

{

this.BindingContext[this.objDataSetUser1,"user"].Position=0;//回到数据集中表头的地址

this.ButtonPositonChange();

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1