iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#实现图书管理系统
  • 176
分享到

C#实现图书管理系统

2024-04-02 19:04:59 176人浏览 独家记忆
摘要

本文为大家分享了C#实现图书管理系统课程设计,供大家参考,具体内容如下 一、设计目的 通过模拟图书管理系统,实现以下功能学生账号的注册学生对馆藏图书状况的查询学生借书,还书状态的查询

本文为大家分享了C#实现图书管理系统课程设计,供大家参考,具体内容如下

一、设计目的

通过模拟图书管理系统,实现以下功能
学生账号的注册
学生对馆藏图书状况的查询
学生借书,还书状态的查询
学生借书以及归还图书
学生欠款的查询

二、框架分析

数据库主要包括:

学生表:学生学号,学生姓名,学生性别,学生类型,学生密码
图书表:图书编号,图书名,图书出版社,图书作者,图书状态(1代表可以借,0代表不可以,)图书类型,图书出版日期
借书表:学生号,图书号,图书名,借出日期
还书表:学生号,图书号,图书名,归还日期
欠费金额表:学生号,图书号,图书名,欠费金额(超过30天每天收0.3元)

三、实验环境

VS2013,sqlSERVER2014

四、体系结构

在客户端与数据库之间增加了一个“中间层”,分为表示层,业务逻辑层,数据访问层
表示层:为客户提供对应程序的访问
业务逻辑层:以类库的形式为表示层服务
数据访问层:实现整个系统的数据库连接,数据库存取操作,以组件类库的形式为业务逻辑层提供服务

五、代码实现

数据库的建立:

create  database MyLibrary 
 on  
 (name=Mylibrary_data1, 
  filename='d:\Mylibrary_data1.mdf',
  size=10,
   maxsize=50, filegrowth=4)
log on 
 (name=Mylibrary_log1,  
 filename='d:\Mylibrary_log1.ldf',
   size=10MB,
   maxsize=20MB, 
   filegrowth=2MB) 
use MyLibrary;
create table reader(
readerid varchar(20) primary key,
readername varchar(20) not null,
readersex varchar(20) not null,
readertype varchar(20) not null,
readerpd varchar(20) not null
)
create table book(
bookid varchar(20) primary key,
booktype varchar(20) not null,
bookauthor varchar(20) not null,
bookname varchar(20) not null,
isbrrowed varchar(20) not null,
booklibrary varchar(20) not null,
bookpubdate datetime
)
create table brrow_data(
readerid varchar(20) primary key,
bookid varchar(20) ,
bookname varchar(20),
brrowdate datetime
foreign key (readerid) references reader(readerid),
foreign key (bookid) references book(bookid)
)
create table return_record(
readerid varchar (20) primary key,
bookid varchar(20),
bookname varchar(20),
returndate datetime,
foreign key (readerid) references reader(readerid),
foreign key (bookid) references book(bookid)
)
create table readerfee(
readerid varchar(20) primary key,
bookid varchar(20),
bookname varchar(20),
readerpay varchar(20),
foreign key (readerid) references reader(readerid),
foreign key (bookid) references book(bookid)
)
--已有图书插如表中
insert into book (bookid,bookname,booktype,bookauthor,booklibrary,bookpubdate,isbrrowed) values ('3140921000','缥缈之旅','修真','小猪','仙王出版社','2005-09-01','否');
insert into book (bookid,bookname,booktype,bookauthor,booklibrary,bookpubdate,isbrrowed) values ('3140921001','唐朝好男人','穿越','多一半','新星出版社','2005-07-01','否');
insert into book (bookid,bookname,booktype,bookauthor,booklibrary,bookpubdate,isbrrowed) values ('3140921002','鬼吹灯','恐怖','天下霸唱','安徽文艺出版社','2005-09-01','否');
insert into book (bookid,bookname,booktype,bookauthor,booklibrary,bookpubdate,isbrrowed) values ('3140921003','和空姐同居的日子','都市','海王','中国海关出版社','2005-08-01','否');
insert into book (bookid,bookname,booktype,bookauthor,booklibrary,bookpubdate,isbrrowed) values ('3140921004','卡图','科幻','方向','广西人民出版社','2005-06-01','否');
insert into book (bookid,bookname,booktype,bookauthor,booklibrary,bookpubdate,isbrrowed) values ('3140921005','蜀山剑侠传','仙侠','还珠楼主','陕西人民出版社','2005-04-01','否');
insert into book (bookid,bookname,booktype,bookauthor,booklibrary,bookpubdate,isbrrowed) values ('3140921006','何以笙箫默','言情','顾漫','朝华出版社','2005-05-01','否');
insert into book (bookid,bookname,booktype,bookauthor,booklibrary,bookpubdate,isbrrowed) values ('3140921007','步步惊心','穿越','童话','民族出版社','2005-12-01','否');
--将读者插如表中
insert into reader(readerid,readername,readersex,readertype,readerpd) values ('21007000','李磊','男','学生','000000');
insert into reader(readerid,readername,readersex,readertype,readerpd) values ('21007001','棠张僧','男','学生','000000');
insert into reader(readerid,readername,readersex,readertype,readerpd) values ('21007002','韩梅梅','女','学生','000000');
insert into reader(readerid,readername,readersex,readertype,readerpd) values ('21007003','路西','女','学生','000000');
insert into reader(readerid,readername,readersex,readertype,readerpd) values ('21007004','王强','男','学生','000000');
insert into reader(readerid,readername,readersex,readertype,readerpd) values ('21007005','马正标','男','管理','000000');
insert into reader(readerid,readername,readersex,readertype,readerpd) values ('21007006','卢海鹏','男','管理','000000');
insert into reader(readerid,readername,readersex,readertype,readerpd) values ('21007007','李艳玲','女','管理','000000');
--查询功能
select *from reader;
select *from book;
select *from brrow_data;
select *from return_record;
select *from readerfee;
--删除表
drop table reader;
drop table book;
drop table brrow_data;
drop table return_record;
drop table readerfee;

登录界面的编辑

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.windows.FORMs;
using System.Data.SqlClient;

namespace Library
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {

        }
        //登录按钮
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            this.Hide();
            form2.Show();
            mycon.Close();
            //sql = string.Format("select count(*) from reader where readerid='{0}'",textBox1.Text);
            //SqlCommand com = new SqlCommand(sql,mycon);
            //int count = (int)com.ExecuteScalar();
            //if (count==1)
            //{
            //    sql = string.Format("select count(*) from reader where readerpd='{0}'",textBox2.Text);
            //    com = new SqlCommand(sql, mycon);
            //    count = (int)com.ExecuteScalar();
            //    if (count>=1)
            //    {
            //        if (comboBox1.Text=="学生")
            //        {
            //            Form2 form2 = new Form2();
            //            this.Hide();
            //            form2.Show();
                          form2.readerid = textBox1.Text;
            //            mycon.Close();
            //        }
            //        else if (comboBox1.Text=="管理员")
            //        {
            //            Form4 form4 = new Form4();
            //            this.Hide();
            //            form4.Show();
            //            mycon.Close();
            //        }
            //        else
            //        {
            //            MessageBox.Show("请选择您的身份!");
            //        }
            //    }
            //    else
            //    {
            //        MessageBox.Show("密码错误,请重新输入!");
            //    }
            //}
            //else{
            //    MessageBox.Show("账号不存在,请重新输入!");
            //}
        }
        string sql, con;
        SqlConnection mycon;
        //加载事件
        private void Form1_Load(object sender, EventArgs e)
        {
            con = "Server=.;Database=MyLibrary;Trusted_Connection=SSPI";
            mycon = new SqlConnection(con);
            mycon.Open();
        }
        //注册
        private void button2_Click(object sender, EventArgs e)
        {
            Form3 form3 = new Form3();
            this.Hide();
            form3.Show();
        }
    }
}

注册界面的编辑

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Library
{
    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }

        private void label3_Click(object sender, EventArgs e)
        {

        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
        //提交申请
        private void button1_Click(object sender, EventArgs e)
        {
            sql = string.Format("select count(*) from reader where readerpd='{0}'", textBox2.Text);
            SqlCommand com = new SqlCommand(sql, mycon);
            int count = (int)com.ExecuteScalar();
            if (count==1)
            {
                MessageBox.Show("抱歉,该账号已存在!");
            }
            else 
            {
                if (textBox1.Text==""||textBox2.Text==""||textBox4.Text==""||comboBox1.Text==""||textBox3.Text=="")
                {
                    MessageBox.Show("请将信息填写完整!");
                }
                else
                {
                    Form1 form1 = new Form1();
                    form1.Show();
                    this.Hide();
                }
            }
        }
        string sql, con;
        SqlConnection mycon;

        private void Form3_Load(object sender, EventArgs e)
        {
            con = "Server=.;Database=MyLibrary;Trusted_Connection=SSPI";
            mycon = new SqlConnection(con);
            mycon.Open();
        }
    }
}

学生管理界面的编辑

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Library
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        public string readerid;
        string sql, con;
        SqlConnection mycon;
        SqlCommand com;
        //加载事件
        private void Form2_Load(object sender, EventArgs e)
        {
            label1.Hide(); textBox1.Hide(); button4.Hide();
            dataGridView1.Hide();
            con = "Server=.;Database=MyLibrary;Trusted_Connection=SSPI";
            mycon = new SqlConnection(con);
            mycon.Open();
        }
        //个人信息
        private void button1_Click(object sender, EventArgs e)
        {
            dataGridView1.Show(); label1.Hide(); textBox1.Hide(); button4.Hide();
            sql = string.Format("select * from reader where readerid='{0}'", readerid);
            SqlDataAdapter mydata = new SqlDataAdapter(sql, con);
            DataSet myds = new DataSet();
            mydata.Fill(myds, "reader");
            dataGridView1.DataSource = myds.Tables["reader"];
        }
        //图书信息
        private void button2_Click(object sender, EventArgs e)
        {
            dataGridView1.Show(); label1.Hide(); textBox1.Hide(); button4.Hide();
            sql = "select * from book";
            SqlDataAdapter mydata = new SqlDataAdapter(sql, con);
            DataSet myds = new DataSet();
            mydata.Fill(myds, "book");
            dataGridView1.DataSource = myds.Tables["book"];
        }
        //缴费系统
        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                sql = string.Format("insert into readerfee(readerid,bookid,bookname,readerpay)select readerid ,bookid , bookname,0.03*(datediff(day,convert(smalldatetime,brrowdate),getdate())-30) from brrow_data where datediff(day,convert(smalldatetime,brrowdate),getdate())>=0;");
                com = new SqlCommand();
                com.Connection = mycon;
                com.CommandType = CommandType.Text;
                com.CommandText = sql;
                SqlDataReader dr = com.ExecuteReader();
                dr.Close();
            }
            catch { }
            sql = string.Format("select * from readerfee where readerid='{0}'", readerid);
            SqlDataAdapter mydata = new SqlDataAdapter(sql, con);
            DataSet myds = new DataSet();
            mydata.Fill(myds, "readerfee");
            dataGridView1.DataSource = myds.Tables["readerfee"];
        }
        //借还记录
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            dataGridView1.Show(); label1.Hide(); textBox1.Hide(); button4.Hide();
            if (comboBox1.Text == "借书记录")
            {
                sql = string.Format("select * from brrow_data where readerid='{0}'", readerid);
                SqlDataAdapter mydata = new SqlDataAdapter(sql, con);
                DataSet myds = new DataSet();
                mydata.Fill(myds, "reader");
                dataGridView1.DataSource = myds.Tables["reader"];
            }
            else
            {
                sql = string.Format("select * from return_record where readerid='{0}'", readerid);
                SqlDataAdapter mydata = new SqlDataAdapter(sql, con);
                DataSet myds = new DataSet();
                mydata.Fill(myds, "reader");
                dataGridView1.DataSource = myds.Tables["reader"];
            }
        }

        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            dataGridView1.Hide();
            if (comboBox2.Text == "我要借书")
            {
                button4.Show();
                button4.Text = "借阅本书";
                label1.Text = "搜索书名";
                label1.Show();
                textBox1.Show();
            }
            else if (comboBox2.Text == "我要还书")
            {
                button4.Show();
                button4.Text = "归还本书";
                label1.Text = "所借书号";
                label1.Show();
                textBox1.Show();
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            if (button4.Text == "借阅本书")
            {
                sql = string.Format("select count(*) from book where bookname='{0}'", textBox1.Text);
                com = new SqlCommand(sql, mycon);
                int count = (int)com.ExecuteScalar();
                if (count >= 1)
                {
                    sql = string.Format("select bookid from book where bookname='{0}'", textBox1.Text);
                    com = new SqlCommand(sql, mycon);
                    string bookid = (string)com.ExecuteScalar();
                    sql = string.Format("insert into brrow_data (readerid,bookid,bookname,brrowdate) values('{0}','{1}','{2}','{3}')", readerid, bookid, textBox1.Text, DateTime.Now);
                    com = new SqlCommand();
                    com.Connection = mycon;
                    com.CommandType = CommandType.Text;
                    com.CommandText = sql;
                    SqlDataReader dr = com.ExecuteReader();
                    dr.Close();
                    MessageBox.Show("借书成功!");
                }
                else
                    MessageBox.Show("抱歉,不存在本书!");
            }
            else if (button4.Text == "归还本书")
            {
                sql = string.Format("select count(*) from brrow_data where bookid='{0}'", textBox1.Text);
                com = new SqlCommand(sql, mycon);
                int count = (int)com.ExecuteScalar();
                if (count >= 1)
                {
                    sql = string.Format("select bookname from brrow_data where bookid='{0}'", textBox1.Text);
                    com = new SqlCommand(sql, mycon);
                    string bookname = (string)com.ExecuteScalar();
                    sql = string.Format("insert into return_record(readerid,bookid,bookname,returndate) values ('{0}','{1}','{2}','{3}')", readerid, textBox1.Text, bookname, DateTime.Now);
                    com = new SqlCommand();
                    com.Connection = mycon;
                    com.CommandType = CommandType.Text;
                    com.CommandText = sql;
                    SqlDataReader dr = com.ExecuteReader();
                    dr.Close();
                    sql = string.Format("delete  from brrow_data where bookid='{0}'", textBox1.Text);
                    com = new SqlCommand();
                    com.Connection = mycon;
                    com.CommandType = CommandType.Text;
                    com.CommandText = sql;
                    SqlDataReader dr1 = com.ExecuteReader();
                    dr1.Close();
                    MessageBox.Show(bookname + "还书成功!");
                }
                else
                {
                    MessageBox.Show("抱歉!您没有借这本书!");
                }
            }
        }
    }
}

六,心得总结

通过对一系列功能的实现,了解到了如何如何建立数据库并进行增删改查等基本操作,如何实现数据库与winform应用程序之间的连接,如何通过C#语言来操控数据库。更重要的是意识到了三层架构的重要性,将会加强学习这一方面。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C#实现图书管理系统

本文链接: https://www.lsjlt.com/news/139859.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#实现图书管理系统
    本文为大家分享了C#实现图书管理系统课程设计,供大家参考,具体内容如下 一、设计目的 通过模拟图书管理系统,实现以下功能学生账号的注册学生对馆藏图书状况的查询学生借书,还书状态的查询...
    99+
    2024-04-02
  • C++实现图书馆管理系统
    本文实例为大家分享了C++实现图书馆管理系统的具体代码,供大家参考,具体内容如下 一、实验名称 图书馆管理系统 二、实验目的 利用C++语言设计开发一个小型的图书馆管理系统模拟程序,...
    99+
    2024-04-02
  • C++实现图书信息管理系统
    本文实例为大家分享了C++实现图书信息管理系统的具体代码,供大家参考,具体内容如下 1.题目: 类型有:编号:ISBN书名:name价格:price 完成如下的功能: ①录入:从键盘...
    99+
    2024-04-02
  • C++如何实现图书管理系统
    本文小编为大家详细介绍“C++如何实现图书管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++如何实现图书管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。功能:首先是注册,登录,找回密码和修改密码...
    99+
    2023-06-29
  • C/C++实现图书信息管理系统
    本文实例为大家分享了c/c++实现图书信息管理系统的具体代码,供大家参考,具体内容如下 程序流程图 源代码 #include <stdio.h> #include ...
    99+
    2024-04-02
  • C#如何实现图书管理系统
    本文小编为大家详细介绍“C#如何实现图书管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#如何实现图书管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、设计目的通过模拟图书管理系统,实现以下功能...
    99+
    2023-06-29
  • C++实现小型图书管理系统
    本文实例为大家分享了C++实现小型图书管理系统的具体代码,供大家参考,具体内容如下 因为课程设计的原因,需要实现一个小型图书管理系统 包含功能: 问题描述: 设计一个系统,对图书信息...
    99+
    2024-04-02
  • C++编写实现图书管理系统
    C++编写的一个图书管理系统,供大家参考,具体内容如下 2018大一的课设,搬到这纪念一下,共1200多行代码 为图书管理人员编写一个图书管理系统,图书管理系统的设计主要是实现对图书...
    99+
    2024-04-02
  • C++实现图书管理系统源码
    本文实例为大家分享了C++实现图书管理系统的具体代码,供大家参考,具体内容如下 直接上代码 #include <stdafx.h> #include <iostr...
    99+
    2024-04-02
  • C语言实现图书馆管理系统
    本文实例为大家分享了C语言实现图书馆管理系统的具体代码,供大家参考,具体内容如下 全部代码如下: #include <stdio.h> #include<str...
    99+
    2024-04-02
  • C++顺序表实现图书管理系统
    本文为大家分享了C++顺序表实现图书管理系统的具体代码,供大家参考,具体内容如下 图书信息表包括以下10项常用的基本操作:图书信息表的创建和输出、排序、修改、逆序存储、最贵图书的查找...
    99+
    2024-04-02
  • C++实现简单版图书管理系统
    本文实例为大家分享了C++实现简单版图书管理系统的具体代码,供大家参考,具体内容如下 1、系统需求 图书管理系统是一个可以记录图书借记和存储的工具。 本教程主要利用C++来实现一个图...
    99+
    2024-04-02
  • C++实现简易图书馆管理系统
    本文实例为大家分享了C++实现简易图书馆管理系统的具体代码,供大家参考,具体内容如下 思路 在本程序中共有四个类: book类:此类有书的基本信息:书名,编号,作者,价格等,和基本的...
    99+
    2024-04-02
  • C++实现图书管理系统简易版
    本文实例为大家分享了C++实现图书管理系统的具体代码,供大家参考,具体内容如下 包括管理员端和学生端,可以对图书进行借阅,归还,还可以修改账号登陆密码等 #include<io...
    99+
    2024-04-02
  • C++实现图书管理系统最新版
    图书管理系统设计,供大家参考,具体内容如下 一、问题描述及功能要求 (1)图书信息录入功能(图书信息用文件保存) (2)图书信息浏览功能 (3)查询和排序功能:(至少一种查询方式) ...
    99+
    2024-04-02
  • C++实现图书馆管理系统源码
    本文实例为大家分享了C++实现图书馆管理系统的具体代码,供大家参考,具体内容如下 总体思想 用C++开发图书馆管理系统需要对学生和图书分别建立class,调用class中的方法实现学...
    99+
    2024-04-02
  • C++实现简单图书馆管理系统
    本文实例为大家分享了C++实现简单图书馆管理系统的具体代码,供大家参考,具体内容如下 写了一个小项目,图书馆系统,功能如下: 1,添加书籍2,删除书籍(可删除还没外借的书籍)3,读者...
    99+
    2024-04-02
  • 如何实现C++版图书管理系统
    这篇文章主要介绍了如何实现C++版图书管理系统,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下使用介绍图书管理系统源码由两部分组成,第一部分book.h头文件,第二...
    99+
    2023-06-29
  • java实现图书管理系统
    本文通过实例为大家分享了java实现图书管理系统的具体代码,供大家参考,具体内容如下 一、背景介绍 通过一段时间java编程的学习,需要一个比较综合的实例来进行编程的练习,是一个对前...
    99+
    2024-04-02
  • C++版图书管理系统
    本文实例为大家分享了C++版图书管理系统的具体代码,供大家参考,具体内容如下 使用介绍 图书管理系统源码由两部分组成,第一部分book.h头文件,第二部分book.cpp源文件。复制...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作