C#图书管理实验报告.docx

上传人:b****5 文档编号:8096460 上传时间:2023-01-28 格式:DOCX 页数:25 大小:305.75KB
下载 相关 举报
C#图书管理实验报告.docx_第1页
第1页 / 共25页
C#图书管理实验报告.docx_第2页
第2页 / 共25页
C#图书管理实验报告.docx_第3页
第3页 / 共25页
C#图书管理实验报告.docx_第4页
第4页 / 共25页
C#图书管理实验报告.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

C#图书管理实验报告.docx

《C#图书管理实验报告.docx》由会员分享,可在线阅读,更多相关《C#图书管理实验报告.docx(25页珍藏版)》请在冰豆网上搜索。

C#图书管理实验报告.docx

C#图书管理实验报告

《C#.NET》课程设计报告

项目名称:

C#实现图书管理系统

组员:

杨朝文(10060042)

王小龙(10060041)

于通(10060044)

组员分工:

于通:

FormRegistered.cs

FormLogin.cs(和杨朝文)

王小龙:

FormAddBook.cs

FormDeleteBook.cs

FormReturnBook.cs

杨朝文:

FormUserBorrowInfo.cs

FormBorrowBook.cs

等协助组员一起学习

 

一.概述

随着科学技术的快速发展,给个个领域带来空前的方便,如,图书馆的书籍管理,利用C#.NET语言和数据库实现对图书馆的书籍管理,给学校师生阅览书籍带来很大的便利,同时也大大减少了图书管理员的工作量。

二.系统分析

1.需求分析

为了方便对图书馆书籍的管理,利用C#.NET技术和简易的Access数据库来实现此目的。

2.可行性分析

2.1.前台功能分析

阅览者可以注册账号,登陆图书管理系统,并且能查看自己的用户信息和修改信息,查询图书,借读图书,查看自己所借读的所有信息。

2.2.后台功能分析

管理员登陆图书管理系统后,可以查看所有用户信息并可进行删除,查看阅览者所借读的所以信息,实现阅览者归还书籍时操作,同时可以查询书籍,更新书籍,更新书籍类型和出版社等功能。

3.功能模块划分

3.1系统总体模块

3.1系统总体模块图

3.2.阅览者注册登陆

3.2用户注册流程图

3.3前台借阅功能

3.3前台借阅流程图

3.4后台归还书籍功能

3.4后台归还书籍流程图

三.数据库设计

1.E-R图

1-0.管理员表E-R图

1-1.阅览者表E-R图

1-2.出版社表E-R图

 

1-3.书籍表E-R图

1-4.书籍借阅信息表E-R图

2.各表的信息介绍

2-1.admin表

字段名称

数据类型

是否为主键

说明

adminId

文本

管理员ID

adminPassword

文本

管理员密码

 

2-2.book表

字段名称

数据类型

是否为主键

说明

BookId

文本

书籍ID

BookName

文本

书籍名称

BookWritter

文本

书籍作者

Ifborrow

文本

是否被借阅

BookPrice

货币

书籍价格

BooktypeId

文本

是booktype外键

publisherId

文本

是publisher外键

2-3.booktype表

字段名称

数据类型

是否为主键

说明

BooktypeId

文本

书籍类型ID

BooktypeName

文本

书籍类型名称

Flow

文本

书籍所在楼层数

2-4.borrow表

字段名称

数据类型

是否为主键

说明

readerId

文本

读者ID

bookId

文本

书籍ID

borrowTime

日期/时间

借阅时间

returnTime

日期/时间

到期时间

Out

文本

是否超期

2-5.publisher表

字段名称

数据类型

是否为主键

说明

PublisherId

文本

出版社ID

publisherName

文本

出版社名称

2-6.reader表

字段名称

数据类型

是否为主键

说明

readerId

文本

读者ID

readerPassword

文本

读者登录密码

readerName

文本

读者姓名

ReaderSex

文本

读者性别

ReaderAge

文本

读者年龄

ReaderDept

文本

读者所在的院系

readerZY

文本

读者的专业

Maxnumber

文本

读者最多只能借阅书籍的数量

2-7.各表之间的关系

2-7.各表之间关系图

四.系统各模块的功能详细介绍

1.登录和注册界面

1-1.登录主要代码

namespaceBookMS

{

publicpartialclassFormLogin:

Form

{

publicFormLogin()

{

InitializeComponent();

}

privatevoidbuttonLogin_Click(objectsender,EventArgse)

{

OdbcConnectionconn=newOdbcConnection(Properties.Settings.Default.ConnectionString);

if(yanzhengshuru()){

if(comboBoxTypeName.Text.Trim()=="管理员")

{

try

{

Stringsql=string.Format("select*fromadminwhereadminId='{0}'",textBoxUserName.Text.Trim());

OdbcCommandcmd=newOdbcCommand(sql,conn);

conn.Open();

OdbcDataReaderdr=cmd.ExecuteReader();

if(dr.Read())

{

if(dr[1].ToString().Trim()==textBoxUserPsd.Text.Trim())

{

FormAdminadmin=newFormAdmin();

admin.Show();

}

}

}

1-1.登录界面

1-2.注册主要代码

privatevoidbuttonRegistered_Click(objectsender,EventArgse)

{

OdbcConnectionconn=newOdbcConnection(Properties.Settings.Default.ConnectionString);

Stringsql=String.Format("insertintoreadervalues('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')",id,pw,name,sex,age,dept,major,max);

OdbcCommandcmd=newOdbcCommand(sql,conn);

if(id!

=""&&pw!

=""&&name!

=""&&sex!

=""&&age!

=""&&dept!

=""&&major!

="")

{

try

{

conn.Open();

intn=cmd.ExecuteNonQuery();

if(n==0)

{

}

1-2.注册界面

2.后台主要功能介绍

2-1.查看借阅信息主要代码

privatevoidFormSeeBorrowInfo_Load(objectsender,EventArgse)

{

try{

Stringsql=string.Format("selectreaderIdfromborrow");

OdbcCommandcmd=newOdbcCommand(sql,conn);

conn.Open();

OdbcDataReaderdr=cmd.ExecuteReader();

Stringreaderid="";

while(dr.Read()){

readerid=(string)dr[0];

comboBoxUserId.Items.Add(readerid);

}

dr.Close();

}

catch(OdbcExceptionerr)

{

MessageBox.Show(err.Message,"连接失败!

");

}

finally{

conn.Close();

}

}

privatevoidbuttonUserS_Click(objectsender,EventArgse)

{

Stringrid=comboBoxUserId.Text.Trim();

dt.Clear();

Stringsql=string.Format("selectborrow.readerId,readerName,borrow.bookId,bookName,borrowTime,returnTime,outfromborrow,reader,bookwherebook.bookId=borrow.bookIdandborrow.readerId=reader.readerIdandreader.readerId='{0}'",rid);

adapter=newOdbcDataAdapter(sql,conn);

adapter.Fill(dt);

dataGridViewBorrowInfo.DataSource=dt;

}

privatevoidbuttonAllS_Click(objectsender,EventArgse)

{

Stringsql=string.Format("selectborrow.readerId,readerName,borrow.bookId,bookName,borrowTime,returnTime,outfromborrow,reader,bookwherebook.bookId=borrow.bookIdandborrow.readerId=reader.readerId");

dt.Clear();

adapter=newOdbcDataAdapter(sql,conn);

adapter.Fill(dt);

dataGridViewBorrowInfo.DataSource=dt;

}

2-1.查看借阅信息

2-2.书籍归还主要代码

OdbcConnectionconn=newOdbcConnection(Properties.Settings.Default.ConnectionString);

OdbcDataAdapteradapter;

DataTabledt=newDataTable();

Stringrid="";

Stringbid="";

intmaxNum;

privatevoidbuttonSearch_Click(objectsender,EventArgse)

{

dt.Clear();

rid=textBoxReaderId.Text.Trim();

Stringsql=string.Format("selectborrow.readerId,readerName,borrow.bookId,bookName,borrowTime,returnTime,outfromborrow,reader,bookwherebook.bookId=borrow.bookIdandborrow.readerId=reader.readerIdandreader.readerId='{0}'",rid);

adapter=newOdbcDataAdapter(sql,conn);

adapter.Fill(dt);

dataGridViewInfo.DataSource=dt;

}

privatevoidbuttonOK_Click(objectsender,EventArgse)

{

bid=textBoxBookId.Text.Trim();

try

{

conn.Open();

Stringsql1=string.Format("deletefromborrowwherereaderId='{0}'andbookId='{1}'",rid,bid);

OdbcCommandcmd1=newOdbcCommand(sql1,conn);

intdeleteN=cmd1.ExecuteNonQuery();

Stringsql2=string.Format("updatebooksetifborrow='否'wherebookId='{0}'",bid);

OdbcCommandcmd2=newOdbcCommand(sql2,conn);

intupdateN=cmd2.ExecuteNonQuery();

Stringsql3=string.Format("selectmaxnumberfromreaderwherereaderId='{0}'",rid);

OdbcCommandcmd3=newOdbcCommand(sql3,conn);

OdbcDataReaderdr=cmd3.ExecuteReader();

while(dr.Read())

{

maxNum=(int)dr[0];

}

Stringsql4=string.Format("updatereadersetmaxnumber='{0}'wherereaderId='{1}'",maxNum+1,rid);

OdbcCommandcmd4=newOdbcCommand(sql4,conn);

intupdateM=cmd4.ExecuteNonQuery();

if(deleteN!

=0&&updateN!

=0&&updateM!

=0)

finally{

conn.Close();

}

}

2-2.归还书籍

3.前台主要功能介绍

3-1.查看自己借阅信息

publicFormUserBorrowInfo(StringuserId){

InitializeComponent();

this.userId=userId;

}

publicStringUserId

{

get{

returnuserId;}

set

{

this.userId=value;

}

}

OdbcConnectionconn=newOdbcConnection(Properties.Settings.Default.ConnectionString);

OdbcDataAdapteradapter;

DataTabledt=newDataTable();

privatevoidbuttonOK_Click(objectsender,EventArgse)

{

if(textBoxUserId.Text.Trim()==UserId)

{

Stringsql=string.Format("selectborrow.readerId,readerName,borrow.bookId,bookName,borrowTime,returnTime,outfromborrow,reader,bookwherebook.bookId=borrow.bookIdandborrow.readerId=reader.readerIdandreader.readerId='{0}'",userId);

adapter=newOdbcDataAdapter(sql,conn);

adapter.Fill(dt);

dataGridViewBInfo.DataSource=dt;

}

else{

MessageBox.Show("你输入的用户ID和登陆的用户ID不一致!

\n你没有权限查询他人借阅信息!

","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

}

3-1.借阅信息

3-2.借阅书籍主要代码

privateStringuserId;

publicFormBorrowBook()

{

InitializeComponent();

}

publicFormBorrowBook(StringuserId){

InitializeComponent();

this.userId=userId;

}

OdbcConnectionconn=newOdbcConnection(Properties.Settings.Default.ConnectionString);

OdbcDataAdapteradapter;

DataTabledt=newDataTable();

intmaxNum;

privatevoidFormBorrowBook_Load(objectsender,EventArgse)

{

textBoxUserId.Text=userId;

Stringsql=string.Format("selectbookId,bookName,bookWritter,booktype.booktypeName,bookPrice,booktype.flow,publisher.publisherName,ifborrowfrombook,booktype,publisherwherebook.booktypeId=booktype.booktypeIdandbook.publisherId=publisher.publisherId");

try

{

adapter=newOdbcDataAdapter(sql,conn);

adapter.Fill(dt);

dataGridViewAll.DataSource=dt;

}

catch(OdbcExceptionerr)

{

MessageBox.Show(err.Message,"查询失败");

}

}

privatevoidbuttonBorrow_Click(objectsender,EventArgse)

{

Stringuid=textBoxUserId.Text.Trim();

Stringbid=textBoxBookId.Text.Trim();

DateTimeborrowTime=DateTime.Now;

TimeSpana=newTimeSpan(30,0,0,0);

DateTimereturnTime=borrowTime+a;

Stringifout="NO";

try

{

Stringsql3=string.Format("selectifborrowfrombookwherebookId='{0}'",bid);

OdbcCommandcmd3=newOdbcCommand(sql3,conn);

conn.Open();

OdbcDataReaderdr3=cmd3.ExecuteReader();

StringifBorrow="";

while(dr3.Read()){

ifBorrow=(string)dr3[0];

}

dr3.Close();

Stringsql4=string.Format("selectmaxnumberfromreaderwherereaderId='{0}'",uid);

OdbcCommandcmd4=newOdbcCommand(sql4,conn);

OdbcDataReaderdr4=cmd4.ExecuteReader();

while(dr4.Read()){

maxNum=(int)dr4[0];

}

dr4.Close();

if(ifBorrow!

="是"&&maxNum>0)

{

if(uid!

=""&&bid!

="")

{

//conn.Open();

Stringsql1=string.Format("insertintoborrowvalues('{0}','{1}','{2}','{3}','{4}')",uid,bid,borrowTime,returnTime,ifout);

OdbcCommandcmd1=newOdbcCommand(sql1,conn);

intborrown=cmd1.ExecuteNonQuery();

Stringsql2=string.Format("updatebooksetifborrow='是'wherebookId='{0}'",bid);

OdbcCommandcmd2=newOdbcCommand(sql2,conn);

intbookn=cmd2.ExecuteNonQuery();

Stringsql5=string.Format("updatereadersetmaxnumber='{0}'wherereaderId='{1}'",maxNum-1,uid);

OdbcCommandcmd5=newOdbcCommand(sql5,conn);

intMN=cmd5.ExecuteNonQuery();

if(borrown!

=0&&bookn!

=0&&MN!

=0)

{

MessageBox.Show("借书成功!

");

}

}

3-2.借阅书籍

五.总结

对于学习一个学期的C#语言,总体感觉和Java差不多,但是由于项目实践经验少,研发的项目思路不清晰,不过组员能一起自己思考,研发出这简易的图书管理系统,对自己学以致用,感觉挺好的。

此系统的完整源代码链接:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1