c# 图书管理系统课程设计论文

时间:2024.3.31

图书管理系统

摘  要

图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。图书馆若采取手工方式对图书资料和图书借阅情况进行人工管理,由于资料繁多,手工处理的工作量大,整体管理效率低下,也不方便读者对图书资料的查阅。为了提高日常的图书管理效率,本文针对通常的图书管理流程,以C/S模式设计了一个图书管理系统,可满足大多数中小型的图书管理要求。

本文首先探讨了SQL语言接口和Delphi软件开发工具的技术特点以及结合SQL 和Delphi的数据库访问方法,在此基础上,利用Delphi 7 和 Access 2002实现了一个通用的图书管理系统。在本文的后半部分,给出了该系统的整个系统分析、设计以及实现的过程,包括需求分析、功能模块的分析与设计、数据模式的分析与设计,最后是系统的Delphi实现。

系统的运行结果表明,所设计的图书管理系统可以满足读者,图书馆工作人员,系统管理员三者的共同需求。

关键词:  图书管理系统,SQL语言

LIBRARY MANAGEMENT SYSTEM

ABSTRACT

Since volumes of book management activities have to take place daily in library, it will be a hard work and be low efficiency if only manual operations are adopted in the management. To upgrade their management efficiency, people would like to develop various Book Management Systems to help their daily work. In this paper a book management system built in Client/Server model is designed, which can meet requirements of most library management for its integration of general library transaction management processes.

SQL database access interface and Delphi RAD tool as well as the combination of the two are firstly discussed in the paper. In the latter part of the paper, the whole design of a general Book Management System built with Delphi 7 and Access 20## is presented, including the system’s requirement analysis, function modules design, data model design and its Delphi implementation.

The running of the system proves that it could meet the common usage for various kinds of users including readers, library staffs and system administrators. 

KEY WORDS:   Book Management System, SQL language

 

中文摘要.................................................................................................... 1

英文摘要.................................................................................................... 2

1系统功能设计.................................................................................... 5

1.1 设计背景.................................................................................. 5

1.2 系统设计目标........................................................................ 5

1.3 系统功能设计........................................................................ 6

1.4开发工具的选择..................................................................... 7

2系统数据库设计与实现............................................................... 7

2.1 信息需求.................................................................................. 7

2.2 数据库E-R图........................................................................ 8

2.2.1 图书基本信息E-R图................................................ 8

2.2.2借阅信息类型E-R图................................................. 9

2.2.3用户信息E-R图........................................................... 9

2.2.4读者信息E-R图......................................................... 10

3 窗体设计........................................................................................... 10

3.1登陆窗口设计........................................................................ 10

3.2 图书信息管理模块设计................................................... 12

3.3 读者信息管理模块设计................................................... 16

3.4 图书借阅处理模块设计................................................... 19

3.5 图书查询处理模块设计................................................... 24

结束语...................................................................................................... 26

致  谢...................................................................................................... 26

参考文献................................................................................................. 27

1 系统功能设计

  1.1 设计背景

当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。图书管理系统(电子阅览室)主要提供网上的电子图书阅览平台,读者可以通过该系统阅览丰富的电子资源。在图书管理系统中,读者可以方便地对书目进行检索和阅览,足不出户便可尽览群书。图书管理系统主要提供网上的图书阅览平台。电子阅览室可提供24小时的在线服务,最大限度的利用了当前互联网的各种优势,使得您无论身在何处,只要能接入互联网就可以享受到它所提供的方便,快捷的服务。它既具有传统图书馆的大部分功能,像图书的查阅及阅览,又新增了基于现有网络技术的许多实用的功能,像用户注册,书签,书评等。它充分的利用了互联网资源,使商家和用户都能从中获得益处。

1.2 系统设计目标

系统功能依据用户需求而设计,主要包括信息管理对象的特征、事物流程的内容和数据流量,根据用户需求和方便用户使用的原则确定相应的功能模块。

本系统为学校的图书馆信息而设计,实现信息处理的自动化、规范化,主要用于处理图书日常借阅和还书、图书入库、各种查询操作,系统具有以下功能。

1)图书借阅处理

2)图书与读者信息查询与修改、删除

3)图书入库与图书的信息修改、删除

4)员工信息的修改、删除

1.3 系统功能设计

要求系统实现图书馆日常管理事务最主要的功能,包括图书的借出于还回,图书信息的录入、修改和查询,读者信息的录入、修改和查询,员工信息的录入、修改和查询。实现这些基本功能,组建了图书管理系统的基本框架,根据功能的关联关系和集中分组的原则,将系统细化如图1-1所示的结构图。

1-1 系统功能结构图

1.4开发工具的选择

本系统采用sql server创建后台数据库,前台开发工具采用的Visual Studio 2005,编程语言为C#,

2 系统数据库设计与实现

数据库设计得合理与否,对数据库的完整性、安全性、程序运行的效率和程序设计的复杂程度有着十分密切的关系。数据库设计的内容包括数据库管理系统的选择、数据实体的确定、数据实体的E-R图和数据库的实现。

2.1 信息需求

在数据库中需要设计如下所示的数据字段和数据表:

(1)图书信息表---dbo.tbbook,包括:图书编号、图书名称、出版社、作者、出版日期、价格、图书类型和简介。

(2)借阅登记表---dbo.bookout,包括:读者编号、图书编号、借书日期、是否归还。

  (3)系统用户表---dbo.tbuser,包括:密码、用户名和用户类型。

  (4)读者表----dbo.person,包括:读者编号、读者姓名、性别、电话号码、罚款、读者身份和注释。

2.2 数据库E-R图

通过上面对系统的总体分析,可以得到大概的实体—关系模型(E-R模型),如下:

2.2.1  图书基本信息E-R图

1图书基本信息:{图书编号、图书名称、作者、出版日期、出版社和简介

c

2.2.2借阅信息类型E-R图

2借阅信息类型:{读者编号、图书编号、借书日期、应还书日期}

2.2.3用户信息E-R图

3用户信息:{用户名,密码}

c

2.2.4读者信息E-图

4读者信息:{读者编号、读者姓名、性别、所在系、年龄}

c

3、窗体设计

3.1登陆窗口设计

首先,启动程序“Microsoft Visual Studio 2005”,选择“文件”——“新建”——“项目”,打开“新建项目”对话框,输入项目名称为“hello1”,并指定文件位置。

将项目中的默认添加的第1个Windows窗体文件名称改为“Login.cs”,并将其作为主窗体。在主窗体中先进行界面设计,然后再编写其相应的事件方法代码,主窗体的执行效果如图所示。

主要代码:

private void button1_Click(object sender, EventArgs e)

        {

            UserClass.UesrName = textBox1.Text;

           

            //if(comboBox1.SelectedIndex==0)

            //{

               String sql1 = "select count(*) from tbUser where userId=@tb1";

               String sql2 = "select count(*) from tbUser,UserType where tbUser.userType=UserType.userType and userId=@tb1 and userPs=@tb2 and userType.TypeName='"+comboBox1.Text+"'";

               SqlParameter[] par = new SqlParameter[2];

               par[0] = new SqlParameter("@tb1",textBox1.Text.Trim());

               par[1] = new SqlParameter("@tb2",textBox2.Text.Trim());

                int s=Int32.Parse(DBHelper.GetSingle(sql1,par).ToString());

                if (s > 0)

                {

                  

                    int c = Int32.Parse(DBHelper.GetSingle(sql2,par).ToString());

                    if (c > 0)

                    {

                        LibraryManage lbm = new LibraryManage();

                        lbm.Show();

                        this.Visible = false;

                    }

                    else

                    {

                        MessageBox.Show("密码错误");

                    }

                }

                else

                {

                    MessageBox.Show("用户名错误");

                }

        }

3.2 图书信息管理模块设计

图书信息管理模块的内容包括图书入库和修改图书信息等。该功能模块主要负责图书信息的相关操作,保证数据库中的完整、规范和准确,使用户可以方便快捷地来管理图书信息。该模块主要操作针对数据库的的图书信息表“”进行添加、修改和删除记录。

(1)主窗体设计,其运行效果如图下所示。

窗体设计:

主要代码:

private void LibraryManage_Load(object sender, EventArgs e)

         {

             String s = UserClass.UesrName;

             string sql = "select userType from tbUser where userId='"+s+"'";

             int t = Int32.Parse(DBHelper.GetSingle(sql).ToString());

          if(t==2)

          {

              管理员权限ToolStripMenuItem.Enabled = false;

              图书操作ToolStripMenuItem.Enabled = false;

              添加操作ToolStripMenuItem.Enabled = false;

          }

          toolStripStatusLabel4.Text = s;

        }

(2) 图书入库窗体,其运行效果如图下所示。

窗体设计:

主要代码:

private void button1_Click(object sender, EventArgs e)

        {

            String sql = "insert into tbBook (ISBN,bName,bPublish,bAuthor,bPublishTime,bPrice,bid,bcount,bRemark) values(@ISBN,@bName,@bPublish,@bAuthor,@bPublishTime,@bPrice,@bid,@bSum,@bRemark)";

            SqlParameter[] par = new SqlParameter[9];

            if (textBox1.Text == "")

            {

                MessageBox.Show("输入信息不完整!");

            }

            else

            {

                par[0] = new SqlParameter("@ISBN", textBox1.Text.Trim());

                par[1] = new SqlParameter("@bName", textBox2.Text.Trim());

                par[2] = new SqlParameter("@bPublish", textBox3.Text.Trim());

                par[3] = new SqlParameter("@bAuthor", textBox4.Text.Trim());

                par[4] = new SqlParameter("@bPublishTime", textBox5.Text.Trim());

                par[5] = new SqlParameter("@bPrice", textBox7.Text.Trim());

                String sql1 = "select bid from tbbookType where bookType='" + comboBox1.Text + "'";

                int t = Int32.Parse(DBHelper.GetSingle(sql1).ToString());

                par[6] = new SqlParameter("@bid", t);

                par[7] = new SqlParameter("@bSum", textBox6.Text.Trim());

                par[8] = new SqlParameter("@bRemark", richTextBox1.Text.Trim());

                int count = DBHelper.ExecuteSql(sql, par);

                if (count > 0)

                {

                    MessageBox.Show("添加成功");

                }

                else

                {

                    MessageBox.Show("添加失败");

                }

            }

        }

(3) 图书管理窗体,其运行效果如下所示。

窗体设计:

主要代码:

private void button1_Click(object sender, EventArgs e)

        {

            string sql = "select ISBN ,PID as 学号, outdate as 借阅时间 from bookOut";

            DataTable dt = new DataTable();

            dt = DBHelper.Query(sql).Tables[0];

            dataGridView1.DataSource = dt;

        }

3.3 读者信息管理模块设计

每年都有新生入校和老生毕业,作为一个学校的图书馆,读者信息需要实时的更新。读者信息管理包括添加读者信息、修改读者信息和删除读者信息。

(1) 添加读者信息窗体,其运行效果如图下所示。

窗体设计:

主要代码:

private void button1_Click(object sender, EventArgs e)

        {

            String sql = "insert into person (PID,Pname,Psex,Pphone,Pidenum,PRemark) values(@PID,@Pname,@Psex,@Pphone,@Pidenum,@PRemark)";

            SqlParameter[] par = new SqlParameter[6];

            par[0] =new SqlParameter("@PID",textBox1.Text.Trim());

            par[1] = new SqlParameter("@Pname",textBox2.Text.Trim());

            par[2] = new SqlParameter("@Pphone", textBox4.Text.Trim());

            par[3] = new SqlParameter("@Psex", comboBox1.Text);

            string sql1 = "select idNum from identy where idNmae='"+comboBox2.Text+"'";

            int t =Int32.Parse(DBHelper.GetSingle(sql1).ToString());

            par[4] = new SqlParameter("@Pidenum", t);

            par[5] = new SqlParameter("@PRemark",richTextBox1.Text.Trim());

            int count = DBHelper.ExecuteSql(sql, par);

            if (count > 0)

            {

                MessageBox.Show("添加成功");

            }

            else

            {MessageBox.Show("添加失败");}

}

(2) 添加用户窗体,其运行效果如图下所示。

窗体设计:

主要代码:

private void button1_Click(object sender, EventArgs e)

        {

            int a = 0;

            if (textBox1.Text == "" && textBox2.Text == "")

            {MessageBox.Show("用户名或密码不能为空");}

            else

            {string sql1 = "select usertype from usertype where typename='" + comboBox1.Text + "'";

                int b = Int32.Parse(DBHelper.GetSingle(sql1).ToString());

                string sql = "insert into tbuser(userid,userps,usertype) values('" + textBox1.Text + "','" + textBox2.Text + "'," + b + ")";

                a = DBHelper.ExecuteSql(sql);

                if (a > 0)

                {

                    MessageBox.Show("添加成功");

                }

                else { MessageBox.Show("添加失败"); }

            }

              }

3.4 图书借阅处理模块设计

图书借阅处理模块的本系统的核心模块,包括借书窗体和还书窗体的设计。

(1)借书和续借图书处理窗体,其运行效果如下所示。

借阅窗体设计:

续借图窗体设计:

主要代码:

private void button1_Click(object sender, EventArgs e)

        {

            string sq1l = "select bigNum from identy,person where person.pidenum=identy.idNum and person.idName='"+textBox4.Text+"'";

            string sql2 = "select bigNum from identy where idnmae='"+textBox4.Text+"'";

            string sql = "insert into bookout(ISBN,PID,Outdate)values(@ISBN,@PID,@Outdate) ";

            if (textBox1.Text != "")

            {

                if (textBox7.Text != "")

                {

                    int t = Int32.Parse(DBHelper.GetSingle(sql2).ToString());

                    if (Int32.Parse(textBox5.Text) <= t)//设置最多借阅量

                    {

                        SqlParameter[] par = new SqlParameter[3];

                        par[0] = new SqlParameter("@ISBN", textBox7.Text.Trim());

                        par[1] = new SqlParameter("@PID", textBox1.Text.Trim());

                        par[2] = new SqlParameter("@Outdate", comboBox1.Text);

                        int count = DBHelper.ExecuteSql(sql, par);

                        if (count > 0)

                        {

                            MessageBox.Show("借阅成功");

                        }

                        else { MessageBox.Show("借阅失败"); }

                    }

                    else

                    {

                        MessageBox.Show("你不能再借了");

                    }

                    bindgrid();

                }

                else { MessageBox.Show("请输入书的ISBN号"); }

            }

            else { MessageBox.Show("请输入借阅证号"); }

           }

(2)还书处理窗体,其运行效果如下图所示。

窗体设计:

主要代码:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

        {

            if (e.KeyChar==13)

            {

                DataTable dt = new DataTable();

                string sql = "select bookout.ISBN,person.PID as 学号,person.Pname as 借阅者, Outdate as 借阅时间,bName as书名 from bookout,person,tbbook where bookOut.PID=person.PID and bookOut.ISBN=tbbook.ISBN and person.Pname  in (select person.Pname from person,bookOut where person.PID=bookOut.PID and bookOut.ISBN='"+textBox1.Text.Trim()+"')";

                dt = DBHelper.Query(sql).Tables[0];

                dataGridView1.DataSource = dt;

                textBox2.Text = dt.Rows.Count.ToString();

            }

        }

        private void button1_Click(object sender, EventArgs e)

        {

            string sql = "update bookout set isreturn ='1' where isbn='"+textBox1.Text+"'";

           int t=Int32.Parse( DBHelper.ExecuteSql(sql).ToString());

           if (t>0)

           {

               MessageBox.Show("归还成功");

           }

        }

3.5图书查询处理模块设计

   查询功能是十分重要的功能,读者需要查询他所借的书和以还的书,图书馆工作人员需要查询本馆的图书、借阅信息和员工信息。查询功能仅仅需要显示符合条件的数据,并不需要对数据进行复杂的处理。

图书信息查询窗体,其运行效果如下图所示。

窗体设计:

    主要代码:

//删除操作

private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)

        {

            if (MessageBox.Show("是否确定删除", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)

            {

                int t = Int32.Parse(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());

                string sql = "delete from tbBook where id='"+t+"'";

                int count=Int32.Parse( DBHelper.GetSingle(sql).ToString());

                if (count > 0)

                {

                    MessageBox.Show("删除成功");

                }

                else {

                    MessageBox.Show("删除失败");

                }

            }

        }

 private void button1_Click(object sender, EventArgs e)

        { del()

        }

public void del()

        {

            if (MessageBox.Show("是否确定删除", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)

            {

               string t =dataGridView1.SelectedRows[0].Cells[0].Value.ToString();

                string sql = "delete from tbBook where ISBN='" + t + "'";

                int count = Int32.Parse(DBHelper.ExecuteSql(sql).ToString());

                if (count > 0)

                {

                    MessageBox.Show("删除成功");

                }

                else

                {

                    MessageBox.Show("删除失败");

                }

            }

        }

结束语

经过几周的设计和开发,图书管理信息系统基本开发完毕。其功能基本符合用户需求,能够完成管理主界面与登录程序设计,系统管理模块,图书信息管理模块,读者信息管理模块,还借信息管理模块等。并提供部分系统测试功能,使用户方便进行数据添加、数据查询、数据修改。由于时间较短和本人水平所限,该系统必然会存在一些缺陷和不足。但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。相信本图书管理信息系统是一套学校在日常管理中必不可少的管理软件。

致  谢

首先诚挚的感谢指导老师黄老师,老师悉心的教导使我得以通过开发这个系统,从以前的理论上升到实践,真正做到学有所用,虽然在设计中我遇到了不少问题,而且往往一个小小的错误都会使我花很多的时间和精力去寻找和修正,但在老师竭尽全力的帮助下和自己的努力下,最终还是一一克服了.通过这次设计,使我学到了很多东西,收益非浅,我感觉理论到实践是一个艰难的过程,必须勤动手,才能发现问题,使自己得到真正的提高.经过了这次 的设计使我学到了很多知识,给我今后在工作和学习上也提供了不少宝贵的经 验.并且通过这次设计也使我也发现了自己在学习上的不足,主要是动手能力的不足,我会努力在以后的工作道路上继续充实自我,完善自我.但在这次课程设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。

  参考文献

[1]  萨师煊,王珊. 数据库系统概论. 北京:高等教育出版社,2002

[2]  孙明丽 王斌,sql server 20## 数据库系统开发.北京:人民邮电出版社.2007.7

[3]  苗雪兰.数据库系统原理及应用教程[M].北京:机械工业出版社.2007.8

[4]  李敏波,黄静,张少华.C#高级编程(第3版),北京:清华大学出版社.2005.6

更多相关推荐:
图书管理系统课程设计报告

管理信息系统实习报告专业班级学生姓名指导教师时间成绩评语王桃群20xx32320xx313一课程设计题目图书管理系统二系统需求1系统的准备操作系统Windowsxp数据库系统SQLServer20xx或SQLS...

图书管理系统课程设计报告()

课程设计报告20xx20xx学年第二学期课学学专指业导班教生姓程程序设计语言课程设计图书管理系统名号级师课程设计名称20xx年8月图书管理系统一题目名称图书管理系统二设计要求及问题的分析设计要求设计小型的图书管...

c语言图书管理系统课程设计报告

沈航北方科技学院课程设计说明书课程名称教学部专业数控班级B042111学号B04211123学生姓名指导教师赵小磊20xx年6月链表实现图书信息操作田文目录摘要31绪论32系统分析321功能需求322数据需求4...

C语言课程设计报告-图书管理系统

课程设计报告图书馆管理系统目录1题目与要求22系统总体设计要给出必要的文字说明及必要的图示321功能需求分析明确选题的功能需求322系统功能模块划分要给出系统功能模块图43详细设计431重要数据的数据结构设计即...

C语言图书馆管理系统课程设计报告12

C语言课程设计学生姓名袁盛升学生学号所在班级任课教师姜林10211121图书馆管理系统设计目的图书信息包括登录号书名作者名分类号出版单位出版时间价格等试设计一图书信息管理系统使之能提供以下功能1系统以菜单方式工...

图书管理系统数据库课程设计实验报告

西安邮电大学计算机学院数据库课程设计报告题目图书管理系统专业名称班级软件1205学生姓名学号8位04123139指导教师樊珊起止时间20xx年06月02日20xx年06月13日目录第一章需求分析1学生用户端2教...

c++_课程设计报告及源代码_图书馆管理系统

重庆科技学院C语言课程设计课程设计报告目录1设计内容任务及基本要求211设计内容212设计任务213设计基本要求22总体设计思路421系统功能422各个模块之间的主要关系423总体程序框图524系统的总体流程图...

基于PHP图书管理系统的设计与实现本科毕业论文

基于PHP图书管理系统的设计与实现基于PHP图书管理系统的设计与实现目录摘要1关键词1Abstract1Keywords11绪论211引言212毕业设计主要任务213目前图书管理系统存在的问题214课题意义22...

C语言课程设计报告—图书信息管理系统

C语言课程设计报告图书信息管理系统设计5507113陈杰20xx1001797指导老师刘文中C语言程序设计编程实践是学习C语言程序设计的一重要环节上机实习和课程设计是提高同学们程序设计能力的有效途径能够使同学们...

解析图书管理系统数据库课程设计报告书

河南理工大学图书管理系统一背景资料1图书馆有各种图书若干万册2每种图书都有书名图书编号作者译者出版社定价和内容简介3借书证记录有借阅者的姓名工作单位住址联系电话等4凭借书证借书每次最多能借5本书借书期限最长为6...

基于vc++的C语言图书馆管理系统课程设计报告

图书管理课程设计学生姓名学生学号所在班级任课教师图书馆管理系统设计目的图书信息包括登录号书名作者名分类号出版单位出版时间价格等试设计一图书信息管理系统使之能提供以下功能1系统以菜单方式工作2图书信息录入功能图书...

图书管理系统数据库课程设计报告书-刘娜

课程设计报告课程设计名称PHP图书管理系统系部名称软件学院学生姓名刘娜班级11软1学号20xx01080011成绩指导教师董晓刚开课时间课程设计任务书院系中印计算机软件专业软件技术班级11软1学号20xx010...

图书管理系统课程设计报告(22篇)