图书出版发行管理系统.docx
《图书出版发行管理系统.docx》由会员分享,可在线阅读,更多相关《图书出版发行管理系统.docx(35页珍藏版)》请在冰点文库上搜索。
![图书出版发行管理系统.docx](https://file1.bingdoc.com/fileroot1/2023-6/22/7d3cea6d-565c-437e-8d57-66623174344f/7d3cea6d-565c-437e-8d57-66623174344f1.gif)
图书出版发行管理系统
学年论文(课程设计)
题目:
图书出版发行管理系统
学院数学与计算机学院
学科门类工学
专业计算机科学与技术
学号
姓名
指导导师
2012年6月15日
河北大学学年论文(课程设计)任务书
(指导导师用表)
学生姓名
指导教师
论文(设计)题目
图书出版发行管理系统
主要研究
(设计)内容
本课程设计主要设计并实现一个简单的图书出版发行管理系统,包括图书信息管理模块、作者信息管理模块、读者信息管理和读者对书评价管理模块,各模块能够完成基本信息的录入,查询和删除的功能,并且具有一定的权限,分为普通用户和管理员用户两类人员,能通过本系统完成图书出版发行管理所需要的基本功能。
研究方法
本课程设计用C#作为系统的开发编程语言,在MicrosoftVisualStudio2005开发平台上,选择SQLServer2005作为数据库开发工具,通过需求分析、总体功能设计、数据库设计和系统实现等步骤一步步实现图书出版发行管理系统的基本功能。
主要任务
与目标
(1)实现图书信息管理、作者信息管理、读者信息管理和读者对书评价管理的功能。
(2)能实现各模块基本信息的录入,查询和删除功能。
(3)具有一定的权限,分为普通用户和管理员两类用户。
(4)能够与数据库连接,保证数据的安全性,并对完成的系统进行调试改善。
主要参
考文献
[1]数据库系统概论.王珊,萨师煊.高等教育出版社.2007
[2]数据库原理与技术课程设计.钱雪忠,罗海驰,陈国俊.清华大学出版社.2009
[3]VisualC#学习笔记.缪勇,李新峰,付志涛.电子工业出版社.2008
[4]CSDN..2009
[5]道客巴巴..2011
进度安排
论文(设计)各阶段名称
日期
布置任务
第13周
整体设计
第14周
编写程序
第15周-第16周
撰写论文
第17周
指导导师签字:
系主任签字:
主管教学院长签字:
河北大学学年论文(课程设计)成绩评定表
学院:
数学与计算机学院
学生姓名
专业年级
论文(设计)题目
图书出版发行管理系统
论文(设计)内容提要
本论文主要阐述五部分内容:
1.需求分析部分,主要说明本系统用户需求、系统的功能需求、系统的性能需求与系统的软硬件环境;
2.功能设计部分,主要阐述本系统的总体功能结构和各主要功能的处理流程;
3.数据库设计部分,包括数据库系统概念设计、数据库逻辑设计和数据库物理设计;
4.系统实现部分,主要用代码和效果截图阐述数据库连接的实现、用户登录功能的实现和系统各个主要管理功能的实现;
5.总结部分,主要阐述在本次课程设计的完成情况和在设计过程中中遇到的问题与个人的收获和认识。
指导导师评语
成绩:
指导导师(签名):
年月日
图书出版发行管理系统
摘 要
本系统是数据库原理课程设计,要求根据题目设计并完成一个图书出版发行管理系统,实现对图书信息和作者信息的管理以与读者对书可以评价等功能。
本文针对课程设计题目,按照软件工程的结构化设计思想,经过需求分析、概要设计、详细设计、系统测试等几个阶段,使用E-R图、数据流图、程序流程图等实现了不同用户对于各种信息的管理。
本系统以MicrosoftVisualStudio2005为基本开发平台,配合数据库SQLServer2005,实现了管理员用户对图书信息的管理、管理员用户对读者信息的管理、读者用户对图书信息的管理与对评价信息的管理等功能。
关键词:
数据库 C# 信息管理 图书
一需求分析
1.1用户需求
本系统模拟出版社的图书出版发行管理内容,包括图书信息管理、作者信息管理、读者信息管理、读者对图书评价管理等功能模块,用户的主要需求如下:
(1)能分类管理图书、作者的基本信息。
(2)能进行信息的录入、查询、删除操作。
(3)具有一定的权限,分为管理员、读者两种不同用户,读者不可进行图书信息的录入和删除。
1.2系统功能需求
系统的功能需求有:
(1)在SQLServer中,建立各关系模式对应的库表并初始化各表,确定各表的主键。
(2)能实现图书、作者、评价等基本信息的录入操作。
(3)能明细实现如下各类查询:
①能查询图书的基本信息,能按图书的书名、书号等条件进行查询。
②能查询作者的基本信息,能按作者的姓名、作者号等条件进行查询。
③能查询读者的基本信息,能按读者的读者名、读者号等条件进行查询。
(4)能实现图书、作者、评价等基本信息的删除操作。
(5)用户管理功能,包括用户登录等功能。
1.3系统性能需求
在出版社图书的规模日益扩增、图书类别日益繁琐、出版社与发行社频繁交易、行业竞争激烈的大环境下,如果还是采用传统的管理方式,将会造成巨大的人力和物力的浪费,所以此系统要做到在性能上满足以下要求:
(1)操作简单易学,不要求过高的计算机技术技能。
(2)利用数据库保存基本信息,数据储存安全稳定,能够实现信息的添加、查询、删改等功能。
(3)具有一定的访问权限,防止信息被随意篡改。
(4)人机界面友好,功能操作便捷合理
1.4系统软硬件环境确定
本图书出版发行管理系统在Window7环境下开发,并保证能够在WindowsXP与以上版本中兼容运行。
开发平台:
MicrosoftVisualStudio2005。
开发语言:
C#。
数据库平台:
SQLServer2005。
二系统功能设计
2.1系统功能结构
图书出版发行管理系统的目的是实现图书信息的管理(图书信息的录入、查询和删除)、作者信息的管理(作者信息的录入、查询和删除)、评价信息的管理以与一些其他功能。
图书出版发行管理系统的用户包括普通用户(读者)和管理员两类,系统的结构图如下所示:
图2-1系统结构图
2.2系统功能处理流程
本软件的数据流图如下:
图2-2 顶层数据流图
图2-3 整体数据流图
各模块用户权限与操作如下:
(1)图书信息管理模块
1信息录入部分:
用户(只有管理员拥有该权限)将图书的基本信息通过系统录入数据库。
2信息查询部分:
用户(所有成员均有此权限)根据自己所需要的条件查询对应图书的基本信息,可分别按书名、书号等条件进行查询,并给予显示。
3信息删除部分:
用户(只有管理员拥有该权限)将具备条件的图书信息从数据库中删除。
对应流程图分别如下:
图2-4图书信息录入流程图
图2-5图书信息查询流程图
图2-6图书信息删除流程图
(2)作者信息管理模块
1信息录入部分:
用户(只有管理员拥有该权限)将作者的基本信息通过本模块录入数据库。
2信息查询部分:
用户(所有成员均有此权限)根据自己所需要的条件查询对应作者的基本信息,可分别按姓名、性别、籍贯等条件进行查询,并给予显示。
3信息删除部分:
用户(只有管理员拥有该权限)将具备条件的作者信息从数据库中删除。
对应流程图与图书信息流程图类似,不再赘述。
(3)评价信息管理模块
1信息录入部分:
用户(只有读者拥有该权限)将图书评价的基本信息通过本模块录入数据库。
2信息查询部分:
用户(所有成员均有此权限)根据自己所需要的条件查询对应图书评价的基本信息,并给予显示。
3信息删除部分:
用户(只有读者拥有该权限)将图书评价的基本信息通过本模块从数据库中删除。
对应流程图与图书信息流程图类似,不再赘述。
(4)读者信息管理模块
4信息录入部分:
用户(只有读者拥有该权限)将自己的基本信息通过本模块录入数据库。
5信息查询部分:
用户(所有成员均有此权限)根据自己所需要的条件查询对应读者基本信息,并给予显示。
6信息删除部分:
用户(只有管理员拥有该权限)将读者的基本信息通过本模块从数据库中删除。
对应流程图与图书信息流程图类似,不再赘述。
三系统数据库设计
3.1数据库概念设计
为了把用户的数据清楚准确的表达出来,我们要建立一个概念性的数据模型。
它描述了从用户角度看到的数据,它反映了用户的现实环境,并脱离在软件系统中的实现方法。
数据模型中包含四种数据:
数据对象、数据对象的属性以与数据对象彼此间相互连接的关系。
在本系统中,数据对象与其属性如下:
1图书信息:
包括图书ID、书名、作者ID、价格、图书简介。
2作者信息:
包括作者ID、姓名、性别、年龄。
3评价信息:
包括读者ID、图书ID、评价内容。
4读者信息:
包括读者ID、读者姓名、读者密码。
5管理员信息:
包括管理员ID、管理员密码。
数据对象的相互关系如下:
图3-1E-R图
3.2数据库逻辑设计
关系模型的逻辑结构是一组关系模式的集合。
而E-R图则是由实体性、实体的属性和实体型之间的联系三个要素组成的。
所以将E-R图转换为关系模型实际上就是要将实体型、实体的属性和实体之间的联系转换为关系模式,并确定这些关系模式的属性和码。
把上述E-R图转换为关系模型,关系的主码用下横线标出。
本图书出版发行管理系统的关系模型如下:
图书(图书ID,书名,作者ID,价格,图书简介)
作者(作者ID,作者姓名,性别,年龄)
评价(读者ID,图书ID,评价内容)
读者(读者ID,读者姓名,读者密码)
管理员(管理员ID,管理员密码)
本系统共涉与五个表。
根据前面做出的一系列分析过程,可以确定出各数据库基表的字段构成。
应用SQLServer2005创建Book、Author、Evaluate、Reader、Administrator五个表,字段名称、数据类型、长度、说明如下:
1.Book表:
表3-1Book表
字段名称
数据类型
长度
说明
是否允许为空
BookID
int
4
图书ID(主键)
否
BookName
nvarchar
50
书名
否
AuthorName
nvarchar
50
作者ID
否
BookPrice
real
real
价格
否
BookIntroduction
nvarchar
200
图书简介
是
2.Author表:
表3-2Author表
字段名称
数据类型
长度
说明
是否允许为空
AuthorID
int
4
作者ID(主键)
否
AuthorName
nvarchar
50
作者姓名
是
3.Evaluate表:
表3-3Evaluate表
字段名称
数据类型
长度
说明
是否允许为空
ReaderID
int
4
读者ID(主键)
否
BookID
int
4
图书ID(主键)
否
Evaluate
nvarchar
200
评价内容
是
4.Reader表:
表3-4Reader表
字段名称
数据类型
长度
说明
是否允许为空
ReaderID
int
4
读者ID(主键)
否
ReaderName
nvarchar
50
读者姓名
否
ReaderCode
nvarchar
50
读者密码
否
5.Administrator表:
表3-5Administrator表
字段名称
数据类型
长度
说明
是否允许为空
AdministratorID
int
4
管理员ID(主键)
否
AdministratorName
nvarchar
50
管理员姓名
否
AdministratorCode
nvarchar
50
管理员密码
否
3.3数据库物理设计
得到系统逻辑模型后,就该进行数据库的物理设计和实施数据库了,物理设计主要是要确定数据库的存储路径、存储结构以与建立索引等,采用的均是系统的默认设置。
结合SQLServer2005的特点,可视化的完成了基本表的建立。
由于数据库并不是特别大,为保证数据查找的速度并没有建立索引和视图。
四系统实现
本图书出版发行管理系统将访问人员分为两类:
读者和管理员。
其中读者访问权限较低,能够查询最基本的图书信息,作者信息和评价信息;管理员得权限较高,不仅能完成包括图书信息、作者信息、评价信息等各种信息的查询功能,也能够实现对图书信息、作者信息的录入与删除功能,还有对读者信息的删除功能;另外读者有一个对图书评价的权限是管理员不具备的。
4.1数据库连接的实现
在本系统中需要多次访问数据库,并对数据进行添加、查询、删除操作,因此可以创建了一个公用的模块,在该模块中实现对数据库的所有访问。
其代码如下:
publicstaticvoidStart()
{
if(conn.State==ConnectionState.Open)
conn.Close();
ConnectionString="Integratedsecurity=SSPI;"+
"initialcatalog=book;"+
"datasource=localhost;";
conn.ConnectionString=ConnectionString;
conn.Open();
}
4.2用户登录功能与新用户注册功能的实现
运行程序后,首先选择登录窗口,分为读者和管理员两项。
无论是哪种用户进行选择后都要输入用户ID和密码。
输入正确的用户ID和密码后可成功登录,进行后续操作,否则提示错误。
不同的用户有不同的权限,权限的设置保证数据库中数据与信息的安全性,防止信息被随意篡改的情况发生。
各种人员的登陆界面与重要代码如下所示:
(1)系统登录界面如下:
图4-1系统登录界面图
(2)管理员用户登录窗口如下:
图4-2管理员用户登录界面图
登录成功后界面如下:
图4-3 管理员用户操作界面图
若不成功,则提示出错。
图4-4 登录失败界面图
(3)读者用户登录窗口如下:
图4-5读者用户登录界面图
登录成功后界面如下:
图4-6读者用户操作界面图
若登录失败,则如图4-4所示,提示出错。
登录模块主要代码如下:
privatevoidbutton1_Click(objectsender,EventArgse)
{if(ReaderID.Text=="")
MessageBox.Show("请输入账号");
else
{function.Start();
function.sql="SELECT*FROMreader"+"wherereaderid="+ReaderID.Text+"andreadercode='"+ReaderCode.Text+"'";
SqlDataAdapterda=newSqlDataAdapter(function.sql,function.conn);
//创建数据集对象并填充数据
DataSetds=newDataSet();
try
{da.Fill(ds);
DataTabledt=ds.Tables[0];
if(dt.Rows.Count==0)
{MessageBox.Show("账号或密码错误,请重新输入!
");
ReaderID.Text="";
ReaderCode.Text="";
}
else
{ReaderForm=newReader();
Form.MdiParent=this.MdiParent;
Form.Show();
father=(MainForm)this.MdiParent;
onereader.ReaderId=ReaderID.Text;
this.Close();
father.button1.Visible=false;
father.button2.Visible=false;}}
catch//如果账号数据类型不对会出错!
应该有try——catch来抛出错误,防止系统崩溃
{MessageBox.Show("账号应为数字!
");
}
}
}
(4)管理员用户是系统规定的,不能任意添加或删除。
读者用户是可以随意注册的,在读者登录界面点击“注册新用户”,进入注册界面,如下:
图4-7 读者用户注册界面图
输入账号后可以点击“账号验证”进行账号的检验,若账号已存在则不可用;若不存在,则可用,对应界面如下:
图4-8 注册账号验证失败界面图图4-9 读者注册账号验证成功界面图
账号、姓名、密码的输入后,如果各项符合条件,则注册成功,系统会给与提示:
图4-10 读者用户注册成功界面图
如果注册失败(已存在此账号或账号、姓名、密码中有未填项),系统会提示出错:
图4-11 读者用户注册失败界面图
账号注册模块主要代码如下:
privatevoidbutton2_Click(objectsender,EventArgse)
{if(regiID.Text=="")
MessageBox.Show("请输入账号");
else
{function.Start();
function.sql="SELECT*FROMreaderwherereaderid="+regiID.Text;
//适配器
SqlDataAdapterda=newSqlDataAdapter(function.sql,function.conn);
//数据集
DataSetds=newDataSet();
da.Fill(ds);
DataTabledt=ds.Tables[0];
if(dt.Rows.Count>0)
{MessageBox.Show("账号已存在,请重新选择账号!
");
regiID.Text="";
}
else
MessageBox.Show("恭喜您,该账号可以使用!
");
}
}
privatevoidbtn_Registration_Click(objectsender,EventArgse)
{if(regiID.Text==""||regiName.Text==""||regicode.Text=="")
MessageBox.Show("每一项均为必填项!
请检查!
");
else
{function.Start();
function.sql="SELECT*FROMreaderwherereaderid="+regiID.Text;
//适配器
SqlDataAdapterda=newSqlDataAdapter(function.sql,function.conn);
//数据集
DataSetds=newDataSet();
da.Fill(ds);
DataTabledt=ds.Tables[0];
if(dt.Rows.Count>0)
{MessageBox.Show("账号已存在,请重新选择账号!
");
regiID.Text="";
}
else
{function.Start();
function.sql="insertintoreader(readerid,readername,readercode)"+"values("+regiID.Text+",'"+regiName.Text+"','"+regicode.Text+"')";
function.cmd=newSqlCommand(function.sql,function.conn);
try
{function.cmd.ExecuteNonQuery();
}
catch(SqlExceptionae)
{
MessageBox.Show(ae.Message.ToString());
return;//出错返回
}
MessageBox.Show("恭喜您,注册成功!
");
this.Close();
}
}}
4.3管理员对于图书管理功能的实现
图书的基本信息包括图书ID、作者ID、书名、价格以与图书的简介。
此模块提供了图书基本信息录入、查询和删除三个功能。
(1)管理员用户图书管理功能界面如图4-3所示。
管理员用户可分别按照图书ID、作者ID、作者姓名、书名、价格进行查询,并给与显示。
查询结果(以按作者查询为例)如下图所示:
图4-12查询结果图
(2)管理员用户拥有最高权限,除了完成信息的查询功能之外,还具有信息的录入和删除功能。
管理员的图书信息管理功能(以录入图书基本信息为例)如下所示:
图4-13管理员图书信息录入功能界面图
在完成信息录入功能时,若信息填写不全(图书ID、作者ID、书名、价格必须填写,简介可不填)或者本图书ID已存在时会有错误提醒:
图4-14信息保存提示界面图
根据查询结果删除图书信息,删除成功后界面如下所示:
图4-15 信息删除询问界面图图4-16 信息删除成功界面图
(3)管理员可以查看、删除读者对于图书的评价,界面如下:
图4-17 评价管理界面图
(4)图书信息管理部分主要代码如下:
privatevoidbtnsavebook_Click(objectsender,EventArgse)
{try
{if(BookID.Text==""||AuthorID.Text==""||AuthorName.Text==""||BookName.Text==""||BookPrice.Text=="")
{MessageBox.Show("除简介外均为必填项,请检查!
");
}
else
{
function.Start();
function.sql="select*frombookwherebookid="+BookID.Text;
SqlDataAdapterda=newSqlDataAdapter(function.sql,function.conn);
DataSetds=newDataSet();
da.Fill(ds);
DataTabledt=ds.Tables[0];
if(dt.Rows.Count>0)
{MessageBox.Show("书号已存在,请检查!
");}
else
{function.sql="insertintobook(bookid,bookname,authorid,bookprice,bookintroduction)val