文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C#如何实现图书管理系统

2023-06-29 06:00

关注

本文小编为大家详细介绍“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 datetimeforeign 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;

登录界面的编辑

C#如何实现图书管理系统

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();        }    }}

注册界面的编辑

C#如何实现图书管理系统

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();        }    }}

学生管理界面的编辑

C#如何实现图书管理系统

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("抱歉!您没有借这本书!");                }            }        }    }}

读到这里,这篇“C#如何实现图书管理系统”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯