C#如何实现图书管理系统(云服务器、云主机、高防IP、高防服务器、香港服务器、美国服务器,开发技术)

时间:2024-05-03 18:49:01 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

一、设计目的

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

二、框架分析

数据库主要包括:

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

三、实验环境

VS2013,SQLSERVER2014

四、体系结构

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

五、代码实现

数据库的建立:

createdatabaseMyLibraryon(name=Mylibrary_data1,filename='d:\Mylibrary_data1.mdf',size=10,maxsize=50,filegrowth=4)logon(name=Mylibrary_log1,filename='d:\Mylibrary_log1.ldf',size=10MB,maxsize=20MB,filegrowth=2MB)useMyLibrary;createtablereader(readeridvarchar(20)primarykey,readernamevarchar(20)notnull,readersexvarchar(20)notnull,readertypevarchar(20)notnull,readerpdvarchar(20)notnull)createtablebook(bookidvarchar(20)primarykey,booktypevarchar(20)notnull,bookauthorvarchar(20)notnull,booknamevarchar(20)notnull,isbrrowedvarchar(20)notnull,booklibraryvarchar(20)notnull,bookpubdatedatetime)createtablebrrow_data(readeridvarchar(20)primarykey,bookidvarchar(20),booknamevarchar(20),brrowdatedatetimeforeignkey(readerid)referencesreader(readerid),foreignkey(bookid)referencesbook(bookid))createtablereturn_record(readeridvarchar(20)primarykey,bookidvarchar(20),booknamevarchar(20),returndatedatetime,foreignkey(readerid)referencesreader(readerid),foreignkey(bookid)referencesbook(bookid))createtablereaderfee(readeridvarchar(20)primarykey,bookidvarchar(20),booknamevarchar(20),readerpayvarchar(20),foreignkey(readerid)referencesreader(readerid),foreignkey(bookid)referencesbook(bookid))--已有图书插如表中insertintobook(bookid,bookname,booktype,bookauthor,booklibrary,bookpubdate,isbrrowed)values('3140921000','缥缈之旅','修真','小猪','仙王出版社','2005-09-01','否');insertintobook(bookid,bookname,booktype,bookauthor,booklibrary,bookpubdate,isbrrowed)values('3140921001','唐朝好男人','穿越','多一半','新星出版社','2005-07-01','否');insertintobook(bookid,bookname,booktype,bookauthor,booklibrary,bookpubdate,isbrrowed)values('3140921002','鬼吹灯','恐怖','天下霸唱','安徽文艺出版社','2005-09-01','否');insertintobook(bookid,bookname,booktype,bookauthor,booklibrary,bookpubdate,isbrrowed)values('3140921003','和空姐同居的日子','都市','海王','中国海关出版社','2005-08-01','否');insertintobook(bookid,bookname,booktype,bookauthor,booklibrary,bookpubdate,isbrrowed)values('3140921004','卡图','科幻','方向','广西人民出版社','2005-06-01','否');insertintobook(bookid,bookname,booktype,bookauthor,booklibrary,bookpubdate,isbrrowed)values('3140921005','蜀山剑侠传','仙侠','还珠楼主','陕西人民出版社','2005-04-01','否');insertintobook(bookid,bookname,booktype,bookauthor,booklibrary,bookpubdate,isbrrowed)values('3140921006','何以笙箫默','言情','顾漫','朝华出版社','2005-05-01','否');insertintobook(bookid,bookname,booktype,bookauthor,booklibrary,bookpubdate,isbrrowed)values('3140921007','步步惊心','穿越','童话','民族出版社','2005-12-01','否');--将读者插如表中insertintoreader(readerid,readername,readersex,readertype,readerpd)values('21007000','李磊','男','学生','000000');insertintoreader(readerid,readername,readersex,readertype,readerpd)values('21007001','棠张僧','男','学生','000000');insertintoreader(readerid,readername,readersex,readertype,readerpd)values('21007002','韩梅梅','女','学生','000000');insertintoreader(readerid,readername,readersex,readertype,readerpd)values('21007003','路西','女','学生','000000');insertintoreader(readerid,readername,readersex,readertype,readerpd)values('21007004','王强','男','学生','000000');insertintoreader(readerid,readername,readersex,readertype,readerpd)values('21007005','马正标','男','管理','000000');insertintoreader(readerid,readername,readersex,readertype,readerpd)values('21007006','卢海鹏','男','管理','000000');insertintoreader(readerid,readername,readersex,readertype,readerpd)values('21007007','李艳玲','女','管理','000000');--查询功能select*fromreader;select*frombook;select*frombrrow_data;select*fromreturn_record;select*fromreaderfee;--删除表droptablereader;droptablebook;droptablebrrow_data;droptablereturn_record;droptablereaderfee;

登录界面的编辑

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

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceLibrary{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidpanel1_Paint(objectsender,PaintEventArgse){}//登录按钮privatevoidbutton1_Click(objectsender,EventArgse){Form2form2=newForm2();this.Hide();form2.Show();mycon.Close();//sql=string.Format("selectcount(*)fromreaderwherereaderid='{0}'",textBox1.Text);//SqlCommandcom=newSqlCommand(sql,mycon);//intcount=(int)com.ExecuteScalar();//if(count==1)//{//sql=string.Format("selectcount(*)fromreaderwherereaderpd='{0}'",textBox2.Text);//com=newSqlCommand(sql,mycon);//count=(int)com.ExecuteScalar();//if(count>=1)//{//if(comboBox1.Text=="学生")//{//Form2form2=newForm2();//this.Hide();//form2.Show();form2.readerid=textBox1.Text;//mycon.Close();//}//elseif(comboBox1.Text=="管理员")//{//Form4form4=newForm4();//this.Hide();//form4.Show();//mycon.Close();//}//else//{//MessageBox.Show("请选择您的身份!");//}//}//else//{//MessageBox.Show("密码错误,请重新输入!");//}//}//else{//MessageBox.Show("账号不存在,请重新输入!");//}}stringsql,con;SqlConnectionmycon;//加载事件privatevoidForm1_Load(objectsender,EventArgse){con="Server=.;Database=MyLibrary;Trusted_Connection=SSPI";mycon=newSqlConnection(con);mycon.Open();}//注册privatevoidbutton2_Click(objectsender,EventArgse){Form3form3=newForm3();this.Hide();form3.Show();}}}

注册界面的编辑

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

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceLibrary{publicpartialclassForm3:Form{publicForm3(){InitializeComponent();}privatevoidlabel3_Click(objectsender,EventArgse){}privatevoidcomboBox1_SelectedIndexChanged(objectsender,EventArgse){}//提交申请privatevoidbutton1_Click(objectsender,EventArgse){sql=string.Format("selectcount(*)fromreaderwherereaderpd='{0}'",textBox2.Text);SqlCommandcom=newSqlCommand(sql,mycon);intcount=(int)com.ExecuteScalar();if(count==1){MessageBox.Show("抱歉,该账号已存在!");}else{if(textBox1.Text==""||textBox2.Text==""||textBox4.Text==""||comboBox1.Text==""||textBox3.Text==""){MessageBox.Show("请将信息填写完整!");}else{Form1form1=newForm1();form1.Show();this.Hide();}}}stringsql,con;SqlConnectionmycon;privatevoidForm3_Load(objectsender,EventArgse){con="Server=.;Database=MyLibrary;Trusted_Connection=SSPI";mycon=newSqlConnection(con);mycon.Open();}}}

学生管理界面的编辑

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

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceLibrary{publicpartialclassForm2:Form{publicForm2(){InitializeComponent();}publicstringreaderid;stringsql,con;SqlConnectionmycon;SqlCommandcom;//加载事件privatevoidForm2_Load(objectsender,EventArgse){label1.Hide();textBox1.Hide();button4.Hide();dataGridView1.Hide();con="Server=.;Database=MyLibrary;Trusted_Connection=SSPI";mycon=newSqlConnection(con);mycon.Open();}//个人信息privatevoidbutton1_Click(objectsender,EventArgse){dataGridView1.Show();label1.Hide();textBox1.Hide();button4.Hide();sql=string.Format("select*fromreaderwherereaderid='{0}'",readerid);SqlDataAdaptermydata=newSqlDataAdapter(sql,con);DataSetmyds=newDataSet();mydata.Fill(myds,"reader");dataGridView1.DataSource=myds.Tables["reader"];}//图书信息privatevoidbutton2_Click(objectsender,EventArgse){dataGridView1.Show();label1.Hide();textBox1.Hide();button4.Hide();sql="select*frombook";SqlDataAdaptermydata=newSqlDataAdapter(sql,con);DataSetmyds=newDataSet();mydata.Fill(myds,"book");dataGridView1.DataSource=myds.Tables["book"];}//缴费系统privatevoidbutton3_Click(objectsender,EventArgse){try{sql=string.Format("insertintoreaderfee(readerid,bookid,bookname,readerpay)selectreaderid,bookid,bookname,0.03*(datediff(day,convert(smalldatetime,brrowdate),getdate())-30)frombrrow_datawheredatediff(day,convert(smalldatetime,brrowdate),getdate())>=0;");com=newSqlCommand();com.Connection=mycon;com.CommandType=CommandType.Text;com.CommandText=sql;SqlDataReaderdr=com.ExecuteReader();dr.Close();}catch{}sql=string.Format("select*fromreaderfeewherereaderid='{0}'",readerid);SqlDataAdaptermydata=newSqlDataAdapter(sql,con);DataSetmyds=newDataSet();mydata.Fill(myds,"readerfee");dataGridView1.DataSource=myds.Tables["readerfee"];}//借还记录privatevoidcomboBox1_SelectedIndexChanged(objectsender,EventArgse){dataGridView1.Show();label1.Hide();textBox1.Hide();button4.Hide();if(comboBox1.Text=="借书记录"){sql=string.Format("select*frombrrow_datawherereaderid='{0}'",readerid);SqlDataAdaptermydata=newSqlDataAdapter(sql,con);DataSetmyds=newDataSet();mydata.Fill(myds,"reader");dataGridView1.DataSource=myds.Tables["reader"];}else{sql=string.Format("select*fromreturn_recordwherereaderid='{0}'",readerid);SqlDataAdaptermydata=newSqlDataAdapter(sql,con);DataSetmyds=newDataSet();mydata.Fill(myds,"reader");dataGridView1.DataSource=myds.Tables["reader"];}}privatevoidcomboBox2_SelectedIndexChanged(objectsender,EventArgse){dataGridView1.Hide();if(comboBox2.Text=="我要借书"){button4.Show();button4.Text="借阅本书";label1.Text="搜索书名";label1.Show();textBox1.Show();}elseif(comboBox2.Text=="我要还书"){button4.Show();button4.Text="归还本书";label1.Text="所借书号";label1.Show();textBox1.Show();}}privatevoidbutton4_Click(objectsender,EventArgse){if(button4.Text=="借阅本书"){sql=string.Format("selectcount(*)frombookwherebookname='{0}'",textBox1.Text);com=newSqlCommand(sql,mycon);intcount=(int)com.ExecuteScalar();if(count>=1){sql=string.Format("selectbookidfrombookwherebookname='{0}'",textBox1.Text);com=newSqlCommand(sql,mycon);stringbookid=(string)com.ExecuteScalar();sql=string.Format("insertintobrrow_data(readerid,bookid,bookname,brrowdate)values('{0}','{1}','{2}','{3}')",readerid,bookid,textBox1.Text,DateTime.Now);com=newSqlCommand();com.Connection=mycon;com.CommandType=CommandType.Text;com.CommandText=sql;SqlDataReaderdr=com.ExecuteReader();dr.Close();MessageBox.Show("借书成功!");}elseMessageBox.Show("抱歉,不存在本书!");}elseif(button4.Text=="归还本书"){sql=string.Format("selectcount(*)frombrrow_datawherebookid='{0}'",textBox1.Text);com=newSqlCommand(sql,mycon);intcount=(int)com.ExecuteScalar();if(count>=1){sql=string.Format("selectbooknamefrombrrow_datawherebookid='{0}'",textBox1.Text);com=newSqlCommand(sql,mycon);stringbookname=(string)com.ExecuteScalar();sql=string.Format("insertintoreturn_record(readerid,bookid,bookname,returndate)values('{0}','{1}','{2}','{3}')",readerid,textBox1.Text,bookname,DateTime.Now);com=newSqlCommand();com.Connection=mycon;com.CommandType=CommandType.Text;com.CommandText=sql;SqlDataReaderdr=com.ExecuteReader();dr.Close();sql=string.Format("deletefrombrrow_datawherebookid='{0}'",textBox1.Text);com=newSqlCommand();com.Connection=mycon;com.CommandType=CommandType.Text;com.CommandText=sql;SqlDataReaderdr1=com.ExecuteReader();dr1.Close();MessageBox.Show(bookname+"还书成功!");}else{MessageBox.Show("抱歉!您没有借这本书!");}}}}}
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:C#如何实现图书管理系统的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:php中构造方法的功能怎么运用下一篇:

30 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18