C#图书管理实验报告文档格式.docx
《C#图书管理实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《C#图书管理实验报告文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
管理员登陆图书管理系统后,可以查看所有用户信息并可进行删除,查看阅览者所借读的所以信息,实现阅览者归还书籍时操作,同时可以查询书籍,更新书籍,更新书籍类型和出版社等功能。
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表
书籍类型ID
BooktypeName
书籍类型名称
Flow
书籍所在楼层数
2-4.borrow表
readerId
读者ID
bookId
borrowTime
日期/时间
借阅时间
returnTime
到期时间
Out
是否超期
2-5.publisher表
PublisherId
出版社ID
publisherName
出版社名称
2-6.reader表
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)
Stringsql=String.Format("
insertintoreadervalues('
'
{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!
intn=cmd.ExecuteNonQuery();
if(n==0)
1-2.注册界面
2.后台主要功能介绍
2-1.查看借阅信息主要代码
privatevoidFormSeeBorrowInfo_Load(objectsender,EventArgse)
try{
selectreaderIdfromborrow"
);
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();
selectborrow.readerId,readerName,borrow.bookId,bookName,borrowTime,returnTime,outfromborrow,reader,bookwherebook.bookId=borrow.bookIdandborrow.readerId=reader.readerIdandreader.readerId='
rid);
adapter=newOdbcDataAdapter(sql,conn);
adapter.Fill(dt);
dataGridViewBorrowInfo.DataSource=dt;
privatevoidbuttonAllS_Click(objectsender,EventArgse)
selectborrow.readerId,readerName,borrow.bookId,bookName,borrowTime,returnTime,outfromborrow,reader,bookwherebook.bookId=borrow.bookIdandborrow.readerId=reader.readerId"
2-1.查看借阅信息
2-2.书籍归还主要代码
OdbcConnectionconn=newOdbcConnection(Properties.Settings.Default.ConnectionString);
OdbcDataAdapteradapter;
DataTabledt=newDataTable();
Stringrid="
Stringbid="
intmaxNum;
privatevoidbuttonSearch_Click(objectsender,EventArgse)
rid=textBoxReaderId.Text.Trim();
dataGridViewInfo.DataSource=dt;
privatevoidbuttonOK_Click(objectsender,EventArgse)
bid=textBoxBookId.Text.Trim();
Stringsql1=string.Format("
deletefromborrowwherereaderId='
andbookId='
rid,bid);
OdbcCommandcmd1=newOdbcCommand(sql1,conn);
intdeleteN=cmd1.ExecuteNonQuery();
Stringsql2=string.Format("
updatebooksetifborrow='
否'
wherebookId='
bid);
OdbcCommandcmd2=newOdbcCommand(sql2,conn);
intupdateN=cmd2.ExecuteNonQuery();
Stringsql3=string.Format("
selectmaxnumberfromreaderwherereaderId='
rid);
OdbcCommandcmd3=newOdbcCommand(sql3,conn);
OdbcDataReaderdr=cmd3.ExecuteReader();
while(dr.Read())
maxNum=(int)dr[0];
Stringsql4=string.Format("
updatereadersetmaxnumber='
wherereaderId='
maxNum+1,rid);
OdbcCommandcmd4=newOdbcCommand(sql4,conn);
intupdateM=cmd4.ExecuteNonQuery();
if(deleteN!
=0&
updateN!
updateM!
=0)
2-2.归还书籍
3.前台主要功能介绍
3-1.查看自己借阅信息
publicFormUserBorrowInfo(StringuserId){
this.userId=userId;
publicStringUserId
get{
returnuserId;
set
this.userId=value;
if(textBoxUserId.Text.Trim()==UserId)
userId);
dataGridViewBInfo.DataSource=dt;
else{
MessageBox.Show("
你输入的用户ID和登陆的用户ID不一致!
\n你没有权限查询他人借阅信息!
"
提示"
MessageBoxButtons.OK,MessageBoxIcon.Information);
3-1.借阅信息
3-2.借阅书籍主要代码
privateStringuserId;
publicFormBorrowBook()
publicFormBorrowBook(StringuserId){
privatevoidFormBorrowBook_Load(objectsender,EventArgse)
textBoxUserId.Text=userId;
selectbookId,bookName,bookWritter,booktype.booktypeName,bookPrice,booktype.flow,publisher.publisherName,ifborrowfrombook,booktype,publisherwherebook.booktypeId=booktype.booktypeIdandbook.publisherId=publisher.publisherId"
adapter=newOdbcDataAdapter(sql,conn);
dataGridViewAll.DataSource=dt;
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"
selectifborrowfrombookwherebookId='
bid);
OdbcCommandcmd3=newOdbcCommand(sql3,conn);
OdbcDataReaderdr3=cmd3.ExecuteReader();
StringifBorrow="
while(dr3.Read()){
ifBorrow=(string)dr3[0];
dr3.Close();
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();
insertintoborrowvalues('
uid,bid,borrowTime,returnTime,ifout);
intborrown=cmd1.ExecuteNonQuery();
是'
intbookn=cmd2.ExecuteNonQuery();
Stringsql5=string.Format("
maxNum-1,uid);
OdbcCommandcmd5=newOdbcCommand(sql5,conn);
intMN=cmd5.ExecuteNonQuery();
if(borrown!
bookn!
MN!
借书成功!
3-2.借阅书籍
五.总结
对于学习一个学期的C#语言,总体感觉和Java差不多,但是由于项目实践经验少,研发的项目思路不清晰,不过组员能一起自己思考,研发出这简易的图书管理系统,对自己学以致用,感觉挺好的。
此系统的完整源代码链接: