《图书出版发行管理系统.doc》由会员分享,可在线阅读,更多相关《图书出版发行管理系统.doc(28页珍藏版)》请在三一办公上搜索。
1、精选优质文档-倾情为你奉上 学年论文(课程设计)题目: 图书出版发行管理系统 学 院 数学与计算机学院 学科门类 工学 专 业 计算机科学与技术 学 号 姓 名 指导导师 2012年6月15日河北大学学年论文(课程设计)任务书(指导导师用表)学 生 姓 名 指 导 教 师 论文(设计)题目图书出版发行管理系统主要研究(设计)内容本课程设计主要设计并实现一个简单的图书出版发行管理系统,包括图书信息管理模块、作者信息管理模块、读者信息管理和读者对书评价管理模块,各模块能够完成基本信息的录入,查询和删除的功能,并且具有一定的权限,分为普通用户和管理员用户两类人员,能通过本系统完成图书出版发行管理所需
2、要的基本功能。研究方法本课程设计用C#作为系统的开发编程语言,在Microsoft Visual Studio 2005开发平台上,选择SQL Server 2005作为数据库开发工具,通过需求分析、总体功能设计、数据库设计和系统实现等步骤一步步实现图书出版发行管理系统的基本功能。主要任务及目标(1)实现图书信息管理、作者信息管理、读者信息管理和读者对书评价管理的功能。(2)能实现各模块基本信息的录入,查询和删除功能。(3)具有一定的权限,分为普通用户和管理员两类用户。(4)能够与数据库连接,保证数据的安全性,并对完成的系统进行调试改善。主要参考文献1数据库系统概论.王珊,萨师煊.高等教育出版
3、社.20072数据库原理及技术课程设计. 钱雪忠,罗海驰,陈国俊. 清华大学出版社. 20093Visual C#学习笔记. 缪勇,李新峰,付志涛. 电子工业出版社. 20084CSDN.5道客巴巴. 进度安排论文(设计)各阶段名称日期布置任务第13周整体设计第14周编写程序第15周-第16周撰写论文第17周 指导导师签字:系主任签字:主管教学院长签字:河北大学学年论文(课程设计)成绩评定表学院: 数学与计算机学院学生姓名 专业 年级 论文(设计)题目图书出版发行管理系统论文(设计)内容提要本论文主要阐述五部分内容:1.需求分析部分,主要说明本系统用户需求、系统的功能需求、系统的性能需求与系统
4、的软硬件环境;2.功能设计部分,主要阐述本系统的总体功能结构和各主要功能的处理流程;3.数据库设计部分,包括数据库系统概念设计、数据库逻辑设计和数据库物理设计;4.系统实现部分,主要用代码和效果截图阐述数据库连接的实现、用户登录功能的实现和系统各个主要管理功能的实现;5.总结部分,主要阐述在本次课程设计的完成情况和在设计过程中中遇到的问题及个人的收获和认识。指导导师评语成绩: 指导导师(签名): 年 月 日图书出版发行管理系统摘要本系统是数据库原理课程设计,要求根据题目设计并完成一个图书出版发行管理系统,实现对图书信息和作者信息的管理以及读者对书可以评价等功能。本文针对课程设计题目,按照软件工
5、程的结构化设计思想,经过需求分析、概要设计、详细设计、系统测试等几个阶段,使用E-R图、数据流图、程序流程图等实现了不同用户对于各种信息的管理。本系统以Microsoft Visual Studio 2005为基本开发平台,配合数据库SQL Server 2005,实现了管理员用户对图书信息的管理、管理员用户对读者信息的管理、读者用户对图书信息的管理及对评价信息的管理等功能。关键词:数据库C#信息管理图书目 录专心-专注-专业一 需求分析1.1 用户需求本系统模拟出版社的图书出版发行管理内容,包括图书信息管理、作者信息管理、读者信息管理、读者对图书评价管理等功能模块,用户的主要需求如下:(1)
6、能分类管理图书、作者的基本信息。(2)能进行信息的录入、查询、删除操作。(3)具有一定的权限,分为管理员、读者两种不同用户,读者不可进行图书信息的录入和删除。1.2 系统功能需求系统的功能需求有:(1)在SQL Server中,建立各关系模式对应的库表并初始化各表,确定各表的主键。(2)能实现图书、作者、评价等基本信息的录入操作。(3)能明细实现如下各类查询:能查询图书的基本信息,能按图书的书名、书号等条件进行查询。能查询作者的基本信息,能按作者的姓名、作者号等条件进行查询。能查询读者的基本信息,能按读者的读者名、读者号等条件进行查询。(4)能实现图书、作者、评价等基本信息的删除操作。(5)用
7、户管理功能,包括用户登录等功能。1.3 系统性能需求在出版社图书的规模日益扩增、图书类别日益繁琐、出版社与发行社频繁交易、行业竞争激烈的大环境下,如果还是采用传统的管理方式,将会造成巨大的人力和物力的浪费,所以此系统要做到在性能上满足以下要求:(1)操作简单易学,不要求过高的计算机技术技能。(2) 利用数据库保存基本信息,数据储存安全稳定,能够实现信息的添加、查询、删改等功能。(3)具有一定的访问权限,防止信息被随意篡改。(4)人机界面友好,功能操作便捷合理1.4 系统软硬件环境确定本图书出版发行管理系统在Window 7环境下开发,并保证能够在Windows XP及以上版本中兼容运行。开发平
8、台:Microsoft Visual Studio 2005。开发语言:C#。数据库平台:SQL Server 2005。二 系统功能设计2.1 系统功能结构图书出版发行管理系统的目的是实现图书信息的管理(图书信息的录入、查询和删除)、作者信息的管理(作者信息的录入、查询和删除)、评价信息的管理以及一些其他功能。评价信息的管理评价信息录入评价信息查询评价信息删除其他功能作者信息的管理作者信息录入作者信息查询作者信息删除图书信息的管理图书信息录入图书信息查询图书信息删除shanchu图书出版发行管理系统读者信息的管理读者信息录入读者信息查询读者信息删除图书出版发行管理系统的用户包括普通用户(读者
9、)和管理员两类,系统的结构图如下所示:图2-1 系统结构图2.2 系统功能处理流程本软件的数据流图如下:图书出版发行管理系统管理员读者管理员登录读者登录信息录入注册信息删除信息查询信息查询图2-2顶层数据流图用户反馈用户查询信息更新数据库反馈用户事务接收事务事务更新数据库信息信息接收事务事务录入信息更新数据库事务事务删除信息更新数据库反馈用户图2-3整体数据流图 各模块用户权限及操作如下:(1)图书信息管理模块 信息录入部分:用户(只有管理员拥有该权限)将图书的基本信息通过系统录入数据库。 信息查询部分:用户(所有成员均有此权限)根据自己所需要的条件查询对应图书的基本信息,可分别按书名、书号等
10、条件进行查询,并给予显示。 信息删除部分:用户(只有管理员拥有该权限)将具备条件的图书信息从数据库中删除。对应流程图分别如下:输入需要录入的图书的基本信息录入程序系统数据库显示录入图书基本信息事务图2-4 图书信息录入流程图 输入需要查询的图书的基本信息查询程序系统数据库显示查询的图书的基本信息事务图2-5 图书信息查询流程图输入需要删除的图书的基本信息删除程序系统数据库事务图2-6 图书信息删除流程图(2)作者信息管理模块 信息录入部分:用户(只有管理员拥有该权限)将作者的基本信息通过本模块录入数据库。 信息查询部分:用户(所有成员均有此权限)根据自己所需要的条件查询对应作者的基本信息,可分
11、别按姓名、性别、籍贯等条件进行查询,并给予显示。 信息删除部分:用户(只有管理员拥有该权限)将具备条件的作者信息从数据库中删除。对应流程图与图书信息流程图类似,不再赘述。(3)评价信息管理模块 信息录入部分:用户(只有读者拥有该权限)将图书评价的基本信息通过本模块录入数据库。 信息查询部分:用户(所有成员均有此权限)根据自己所需要的条件查询对应图书评价的基本信息,并给予显示。 信息删除部分:用户(只有读者拥有该权限)将图书评价的基本信息通过本模块从数据库中删除。对应流程图与图书信息流程图类似,不再赘述。(4)读者信息管理模块 信息录入部分:用户(只有读者拥有该权限)将自己的基本信息通过本模块录
12、入数据库。 信息查询部分:用户(所有成员均有此权限)根据自己所需要的条件查询对应读者基本信息,并给予显示。 信息删除部分:用户(只有管理员拥有该权限)将读者的基本信息通过本模块从数据库中删除。对应流程图与图书信息流程图类似,不再赘述。三 系统数据库设计3.1数据库概念设计为了把用户的数据清楚准确的表达出来,我们要建立一个概念性的数据模型。它描述了从用户角度看到的数据,它反映了用户的现实环境,并脱离在软件系统中的实现方法。数据模型中包含四种数据:数据对象、数据对象的属性以及数据对象彼此间相互连接的关系。在本系统中,数据对象及其属性如下: 图书信息:包括图书ID、书名、作者ID、价格、图书简介。
13、作者信息:包括作者ID、姓名、性别、年龄。 评价信息:包括读者ID、图书ID、评价内容。 读者信息:包括读者ID、读者姓名、读者密码。 管理员信息:包括管理员ID、管理员密码。数据对象的相互关系如下:图书简介评价内容作者读者图书评价属于图书ID书名价格作者ID姓名性别年龄读者ID读者姓名管理员管理管理管理管理员ID管理员密码读者密码图3-1 E-R图3.2数据库逻辑设计关系模型的逻辑结构是一组关系模式的集合。而E-R图则是由实体性、实体的属性和实体型之间的联系三个要素组成的。所以将E-R图转换为关系模型实际上就是要将实体型、实体的属性和实体之间的联系转换为关系模式,并确定这些关系模式的属性和码
14、。把上述E-R图转换为关系模型,关系的主码用下横线标出。本图书出版发行管理系统的关系模型如下:图书(图书ID,书名,作者ID,价格,图书简介)作者(作者ID,作者姓名,性别,年龄)评价(读者ID,图书ID,评价内容)读者(读者ID,读者姓名,读者密码)管理员(管理员ID,管理员密码)本系统共涉及五个表。根据前面做出的一系列分析过程,可以确定出各数据库基表的字段构成。应用SQL Server 2005创建Book、Author、Evaluate、Reader、Administrator五个表,字段名称、数据类型、长度、说明如下:1.Book表:表 3-1 Book表字段名称数据类型长度说明是否允
15、许为空BookIDint4图书ID(主键)否BookNamenvarchar50书名否AuthorNamenvarchar50作者ID否BookPricerealreal价格否BookIntroductionnvarchar200图书简介是2.Author表:表 3-2 Author表字段名称数据类型长度说明是否允许为空AuthorIDint4作者ID(主键)否AuthorNamenvarchar50作者姓名是3.Evaluate表:表 3-3 Evaluate表字段名称数据类型长度说明是否允许为空ReaderIDint4读者ID(主键)否BookIDint4图书ID(主键)否Evaluate
16、nvarchar200评价内容是4.Reader表:表 3-4 Reader表字段名称数据类型长度说明是否允许为空ReaderIDint4读者ID(主键)否ReaderNamenvarchar50读者姓名否ReaderCodenvarchar50读者密码否5. Administrator表:表3-5 Administrator表字段名称数据类型长度说明是否允许为空AdministratorIDint4管理员ID(主键)否AdministratorNamenvarchar50管理员姓名否AdministratorCodenvarchar50管理员密码否3.3数据库物理设计得到系统逻辑模型后,就该
17、进行数据库的物理设计和实施数据库了,物理设计主要是要确定数据库的存储路径、存储结构以及建立索引等,采用的均是系统的默认设置。结合SQL Server2005的特点,可视化的完成了基本表的建立。由于数据库并不是特别大,为保证数据查找的速度并没有建立索引和视图。四 系统实现本图书出版发行管理系统将访问人员分为两类:读者和管理员。其中读者访问权限较低,能够查询最基本的图书信息,作者信息和评价信息;管理员得权限较高,不仅能完成包括图书信息、作者信息、评价信息等各种信息的查询功能,也能够实现对图书信息、作者信息的录入及删除功能,还有对读者信息的删除功能;另外读者有一个对图书评价的权限是管理员不具备的。4
18、.1数据库连接的实现在本系统中需要多次访问数据库,并对数据进行添加、查询、删除操作,因此可以创建了一个公用的模块,在该模块中实现对数据库的所有访问。其代码如下: public static void Start() if (conn.State = ConnectionState.Open) conn.Close(); ConnectionString = Integrated security=SSPI; + initial catalog=book; + data source=localhost; conn.ConnectionString = ConnectionString; con
19、n.Open(); 4.2用户登录功能及新用户注册功能的实现运行程序后,首先选择登录窗口,分为读者和管理员两项。无论是哪种用户进行选择后都要输入用户ID和密码。输入正确的用户ID和密码后可成功登录,进行后续操作,否则提示错误。不同的用户有不同的权限,权限的设置保证数据库中数据与信息的安全性,防止信息被随意篡改的情况发生。各种人员的登陆界面及重要代码如下所示:(1)系统登录界面如下:图4-1 系统登录界面图(2)管理员用户登录窗口如下:图4-2 管理员用户登录界面图登录成功后界面如下:图4-3管理员用户操作界面图若不成功,则提示出错。图4-4登录失败界面图(3)读者用户登录窗口如下:图4-5 读
20、者用户登录界面图登录成功后界面如下:图4-6 读者用户操作界面图若登录失败,则如图4-4所示,提示出错。登录模块主要代码如下:private void button1_Click(object sender, EventArgs e) if (ReaderID.Text = ) MessageBox.Show(请输入账号); else function.Start(); function.sql = SELECT * FROM reader + where readerid= + ReaderID.Text + and readercode= + ReaderCode.Text + ; Sql
21、DataAdapter da = new SqlDataAdapter(function.sql, function.conn); /创建数据集对象并填充数据 DataSet ds = new DataSet(); try da.Fill(ds); DataTable dt = ds.Tables0; if (dt.Rows.Count = 0) MessageBox.Show(账号或密码错误,请重新输入!); ReaderID.Text = ; ReaderCode.Text = ; else Reader Form = new Reader(); Form.MdiParent = this
22、.MdiParent; Form.Show(); father = (MainForm)this.MdiParent; onereader.ReaderId = ReaderID.Text; this.Close(); father.button1.Visible = false; father.button2.Visible = false; catch/如果账号数据类型不对会出错!应该有trycatch来抛出错误,防止系统崩溃 MessageBox.Show(账号应为数字!); (4)管理员用户是系统规定的,不能任意添加或删除。读者用户是可以随意注册的,在读者登录界面点击“注册新用户”,进
23、入注册界面,如下:图4-7读者用户注册界面图输入账号后可以点击“账号验证”进行账号的检验,若账号已存在则不可用;若不存在,则可用,对应界面如下: 图4-8注册账号验证失败界面图图4-9读者注册账号验证成功界面图账号、姓名、密码的输入后,如果各项符合条件,则注册成功,系统会给与提示:图4-10读者用户注册成功界面图如果注册失败(已存在此账号或账号、姓名、密码中有未填项),系统会提示出错:图4-11读者用户注册失败界面图账号注册模块主要代码如下:private void button2_Click(object sender, EventArgs e) if (regiID.Text = ) Me
24、ssageBox.Show(请输入账号); else function.Start(); function.sql = SELECT * FROM reader where readerid= + regiID.Text; /适配器 SqlDataAdapter da = new SqlDataAdapter(function.sql, function.conn); /数据集 DataSet ds = new DataSet(); da.Fill(ds); DataTable dt = ds.Tables0; if (dt.Rows.Count 0) MessageBox.Show(账号已存
25、在,请重新选择账号!); regiID.Text = ; else MessageBox.Show(恭喜您,该账号可以使用!); private void btn_Registration_Click(object sender, EventArgs e) if (regiID.Text = | regiName.Text = | regicode.Text = ) MessageBox.Show(每一项均为必填项!请检查!); else function.Start(); function.sql = SELECT * FROM reader where readerid= + regiID
26、.Text; /适配器 SqlDataAdapter da = new SqlDataAdapter(function.sql, function.conn); /数据集 DataSet ds = new DataSet(); da.Fill(ds); DataTable dt = ds.Tables0; if (dt.Rows.Count 0) MessageBox.Show(账号已存在,请重新选择账号!); regiID.Text = ; else function.Start(); function.sql = insert into reader(readerid,readername
27、,readercode) + values( + regiID.Text + , + regiName.Text + , + regicode.Text + ); function.cmd = new SqlCommand(function.sql, function.conn); try function.cmd.ExecuteNonQuery(); catch (SqlException ae) MessageBox.Show(ae.Message.ToString(); return;/出错返回 MessageBox.Show(恭喜您,注册成功!); this.Close(); 4.3管
28、理员对于图书管理功能的实现图书的基本信息包括图书ID、作者ID、书名、价格以及图书的简介。此模块提供了图书基本信息录入、查询和删除三个功能。(1)管理员用户图书管理功能界面如图4-3所示。管理员用户可分别按照图书ID、作者ID、作者姓名、书名、价格进行查询,并给与显示。查询结果(以按作者查询为例)如下图所示:图4-12 查询结果图(2)管理员用户拥有最高权限,除了完成信息的查询功能之外,还具有信息的录入和删除功能。管理员的图书信息管理功能(以录入图书基本信息为例)如下所示:图4-13 管理员图书信息录入功能界面图在完成信息录入功能时,若信息填写不全(图书ID、作者ID、书名、价格必须填写,简介
29、可不填)或者本图书ID已存在时会有错误提醒: 图4-14 信息保存提示界面图根据查询结果删除图书信息,删除成功后界面如下所示: 图4-15信息删除询问界面图 图4-16信息删除成功界面图(3)管理员可以查看、删除读者对于图书的评价,界面如下:图4-17评价管理界面图(4)图书信息管理部分主要代码如下: private void btnsavebook_Click(object sender, EventArgs e) try if (BookID.Text = | AuthorID.Text = | AuthorName.Text = | BookName.Text = | BookPrice
30、.Text = ) MessageBox.Show(除简介外均为必填项,请检查!); else function.Start(); function.sql = select * from book where bookid= + BookID.Text; SqlDataAdapter da = new SqlDataAdapter(function.sql, function.conn); DataSet ds = new DataSet(); da.Fill(ds); DataTable dt = ds.Tables0; if (dt.Rows.Count 0) MessageBox.Sh
31、ow(书号已存在,请检查!); else function.sql = insert into book(bookid,bookname,authorid,bookprice,bookintroduction)values( +BookID.Text + , + BookName.Text + , + AuthorID.Text + , + BookPrice.Text + , + BookIntroduction.Text + ); function.ExecuteSQLStmt(function.sql); MessageBox.Show(添加新书成功!);/说什么动态扩展,还是得定义足够
32、大啊!定义图书简介为1000字 function.sql = select*from author where authorid= + AuthorID.Text; da = new SqlDataAdapter(function.sql, function.conn); ds = new DataSet(); da.Fill(ds); dt = ds.Tables0; if (dt.Rows.Count 0) /什么也不做 else function.sql = insert into author(authorid,authorname)values( + AuthorID.Text +
33、, + AuthorName.Text + ); function.ExecuteSQLStmt(function.sql); MessageBox.Show(有新作者,已加入数据库!); catch MessageBox.Show(书号和作者号必须为数字!); private void btnselectbook_Click(object sender, EventArgs e) try string buffer = select bookid,bookname,book.authorid,authorname,bookprice,bookintroduction from book,au
34、thor where book.authorid=author.authorid; if (BookID.Text != ) buffer += and bookid= + BookID.Text; if (AuthorID.Text != ) buffer += and book.authorid= + AuthorID.Text; if (AuthorName.Text != ) buffer += and authorname= + AuthorName.Text + ; if (BookName.Text != ) buffer += and bookname= + BookName.
35、Text + ; if (BookPrice.Text != ) buffer += and bookprice= + BookPrice.Text; function.sql = buffer;/形成完整的查询语句 function.Start(); da = new SqlDataAdapter(function.sql, function.conn); ds = new DataSet(result);/为结果取一个名字,方便使用 da.Fill(ds, result); dt = ds.Tables0; if (dt.Rows.Count = 0) MessageBox.Show(对不起,没有您要查询的信息。);