资源描述
课程设计(论文)任务书
一、课程设计(论文)题目: 图书管理系统
二、课程设计(论文)工作:
自 年 12 月 22日起
三、课程设计(论文)内容要求:
1.本课程设计目标
(1)使学生掌握数据库开发基础工作步骤;
(2)巩固数据库课程所学内容;
(3)培养学生计算机思维能力和合作精神;
(4)培养学生分析、处理问题能力;
(5)提升学生科技论文写作能力。
2.课程设计任务及要求
1)基础要求:
(1)研究课程设计任务,并进行系统需求分析;
(2)对系统进行总体设计,分解系统功效模块,进行任务分配,以实现分工合作;
(3)实现各功效模块代码;
(4)组装各模块,并测试、完善系统。
2)创新要求:
在基础要求达成后,可进行创新设计,如改善界面、增加功效或进行代码优化。
3)课程设计论文编写要求
(1)要根据书稿规格打印誊写课程设计论文
(2)论文包含封面、设计任务书(含评语)、摘要、目录、设计内容、设计小结
(3)论文装订按学校统一要求完成
4)参考文件:
(1)《数据库系统概论》(第四版) 王珊、萨师煊编著 高等教育出版社
(2)《SQL-结构化查询语言详解》 高守传编著 人民邮电出版社
(3)《Visual C++.NET程序设计实用教程》 曾宪权编著 清华大学出版社
5)课程设计进度安排
内容 天数 地点
系统总体设计 2 试验室
软件设计及调试 4 试验室、图书馆
撰写汇报 2 试验室、图书馆
答辩 2 试验室
学生署名:
课程设计(论文)评审意见(提议单独一页
(1)课程设计过程(20分):优( )、良( )、中( )、通常( )、差( );
(2)是否完成调试,系统运行效果(30分):优( )、良( )、中( )、通常( )、差( );
(3)回复问题(20分):优( )、良( )、中( )、通常( )、差( );
(4)课程设计汇报(30分):优( )、良( )、中( )、通常( )、差( );
(5)格式规范性及考勤是否降等级:是( )、否( )
评阅人: 职称: 讲师
目录
一 项目内容、要求和分组情况总体介绍 1
二 概要设计 1
2.1开发工具及环境 1
2.2 系统设计任务分析 2
2.3 系统对应数据字典及实体联络图 2
2.4 系统功效步骤图 4
三 具体实现 5
3.1 数据库建立语句 5
3.2系统运行界面及部分功效实现和介绍 6
3.3 数据库和VC连接实现 13
四 设计体会和小结 14
五 参考文件 15
一 项目内容、要求和分组情况总体介绍
本试验目标是利用数据库实现一个简单图书管理系统,实现了管理员登录、图书查询、图书借阅、图书增删、图书借阅排行榜和其它部分对图书和用户进行管理功效。
二 概要设计
2.1开发工具及环境
开发工具:Microsoft SQL Server 、Visual Studio .net 和Visual C++ 6.0
操作系统:windows XP或win7等windows操作系统
运行环境:VC++6.0、Microsoft SQL Server
2.2 系统设计任务分析
使用所学知识,依据图书管理系统所要实现具体功效要求,利用数据库和其它开发工具和语言,完成以下任务:
(1) 图书管理系统数据库建立及数据库所需信息分析;
(2) 图书管理系统界面布局及窗口设计;
(3) 图书管理系统相关控件及子窗口设计;
(4) 图书管理系统相关控件及功效具体实现;
(5) 运行测试程序,调试并纠正运行错误;
(6)调试无误,运行程序,测试具体功效并对系统进行相关优化。
2.3 系统对应数据字典及实体联络图
系统所需数据字典一览表:
Admin 管理员
备注
字段
类型
字长
是否许可为空
是否为主键
管理员号
userid
char
10
N
PRI
密码
passward
char
10
N
Bookid图书
备注
字段
类型
字长
是否许可为空
是否为主键
图书编号
ISBN_ID
char
10
N
书名编号
book_id
char
10
N
PRI
Booktype图书属性
备注
字段
类型
字长
是否许可为空
是否为主键
图书编号
ISBN_ID
char
10
N
PRI
书名
book_name
char
20
N
出版时间
yeartime
char
10
Y
作者
actor
char
20
Y
书类型
book_type
char
20
Y
书本数
allnumber
int
Y
剩下书本数
lastnumber
int
Y
Borrow借书还书统计
备注
字段
类型
字长
是否许可为空
是否为主键
借书证号
reader_id
char
10
N
PRI
书名编号
book_id
char
10
N
PRI
借书时间
borrow_time
char
12
N
应还书时间
return_time
char
12
N
实还书时间
fact_time
char
12
Y
是否未还书
return
int
N
Position方位(存放位置)
备注
字段
类型
字长
是否许可为空
是否为主键
书号
ISBN_ID
char
10
N
PRI
方位
book_position
char
30
N
Readertype 图书借阅者
备注
字段
类型
字长
是否许可为空
是否为主键
借书证号
reader_id
char
10
N
PRI
人名
reader_name
char
10
N
学历
type
char
10
N
Type学历
备注
字段
类型
字长
是否许可为空
学历
type
char
10
N
PRI
可借书数
number
char
10
N
实体及其属性图:
实体及其联络图:
管理员登录
2.4 系统功效步骤图
系统
修改密码
用户登陆
超级管理员登录
退出登录
图
书
管
理
系
统
读者类型管理
读者管理
读者类型设置
添加图书
图书管理
借书管理
还书管理
借阅管理
续借管理
图书查询
系统查询
帮助
三 具体实现
3.1 数据库建立语句
CREATE TABLE admin
(userid char(10) NOT NULL,
passward char(10) NOT NULL,
primary key(userid)
) ;//管理员登录信息
CREATE TABLE bookid
(ISBN_ID char(10) NOT NULL,
book_id char(10) NOT NULL,
primary key (book_id)
);//图书编号及书名编号
CREATE TABLE booktype
(ISBN_ID char(10) NOT NULL,
book_name char(20) NOT NULL,
yeartime char(10) NULL,
actor char(20) NULL,
book_type char(20) NULL,
allnumber int NULL,
lastnumber int NULL,
PRIMARY KEY (ISBN_ID)
);//图书属性信息
CREATE TABLE borrow
(reader_id char(10) NOT NULL,
book_id char(10) NOT NULL,
borrow_time char(12) NOT NULL,
return_time char(12) NOT NULL,
fact_time char]12) NULL,
returned char(2) NOT NULL ,
primary key(reader_id,book_id),
foreign key(reader_id) references readertype(reader-_id),
foreign key(book_id) references booktype(book_id)
);//图书借阅者借阅情况信息
CREATE TABLE position
(ISBN_ID char(10) NOT NULL,
book_position char(30) NOT NULL,
primary key(ISBN_ID),
foreign key(ISBN_ID) references booktype(ISBN_ID)
);//图书放置位置信息
CREATE TABLE readertype
(reader_id char(10) NOT NULL,
reader_name char(10) NOT NULL,
type char(10) NOT NULL,
primary key(reader_id)
);//图书借阅者信息
CREATE TABLE type
(type char(10) NOT NULL,
number char(10) NOT NULL,
primary key(type)
);//图书借阅者类型
3.2系统运行界面及部分功效实现和介绍
(1)系统主界面以下:
主界面框架具体由以下函数实现:
CLMSystemDoc::~CLMSystemDoc()
{
}
BOOL CLMSystemDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
SetTitle("图书管理系统");
return TRUE;
}
相关子选项功效函数也和主框架类似,更改对应控件名称即可。
在主界面中添加图片函数关键由一下代码实现:
void CLMSystemView::OnDraw(CDC* pDC)
{
CLMSystemDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CDC dc;
dc.CreateCompatibleDC(pDC);
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP2);
dc.SelectObject(&bitmap);
CRect rect;
GetClientRect(&rect);
BITMAP bmp;
bitmap.GetBitmap(&bmp); pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,bmp.bmWidth,bmp.bmHeight, SRCCOPY);
// TODO: add draw code for native data here
}
在此函数中,只要对应更改图片ID和对应更改图片存放路径,即可实现不一样图片插入到主界面中,实现主界面美化。
(2) 管理员登录界面:
void CEntry::OnOK()
{
UpdateData();
CString strSQL;
strSQL.Format("select passward from admin where userid='%s'",m_IDEdit);
if (m_PasswardEdit==DBOpt.PasswardReturn(strSQL))
{
CDialog::OnOK();
}
else
{
MessageBox("用户名或密码不正确!");
}
}
经过Format函数实现界面和数据库联络,判定登录信息是否正确,假如不正确,弹出一个警告窗口。
(3) 读者类型管理:
经过该界面能够增删读者信息,用户即读者借书证号,增加、删除和修改按钮控件操作分别对应着数据库中对readertype表进行插入、删除和更新操作。
下面以删除读者类型按钮功效实现为例,实现以下:
void CTypeSet::OnDeletebutton()
{
CString strSQL;
strSQL.Format("select * from readertype where type='%s'",m_typeEdit);
DBOpt.ReadReaderType(strSQL);
if (DBOpt.curItem>0)
{
MessageBox("存在这类型用户,不能删除!");
return;
}
strSQL.Format("delete type where type='%s'",m_typeEdit);
DBOpt.ReaderTypeOperate(strSQL);
UpdateMessage();
}
(4) 读者类型设置:
经过该界面能够添加或删除部分用户类型,其中增加类型、修改和删除该类型控件操作分别对应着对数据库中type表进行插入、更新和删除操作,和数据库相连接具体实现语句以下:
“增加类型”控件和数据库连接实现语句:
strSQL.Format("insert into type(type,number) values('%s','%d')",m_typeEdit,number);
DBOpt.ReaderTypeOperate(strSQL);
“修改”控件和数据库连接实现语句:
strSQL.Format("update type set number='%d' where type='"+m_typeEdit+"'",number);
DBOpt.ReaderTypeOperate(strSQL);
“删除该类型”控件和数据库连接实现语句:
strSQL.Format("select * from readertype where type='%s'",m_typeEdit);
DBOpt.ReadReaderType(strSQL);
if (DBOpt.curItem>0)
{
MessageBox("存在这类型用户,不能删除!");
return;
}
strSQL.Format("delete type where type='%s'",m_typeEdit);
DBOpt.ReaderTypeOperate(strSQL);
(5) 添加图书界面:
经过该界面能够添加部分图书馆新引进图书,相当于对数据库中booktype和book、position表做了个连接,并对其相关内容全部做了插入操作。
(6)借书管理界面:
经过该界面能够实现对读者借书管理,经过借书证号和图书编号来确定读者借书统计存放,并在数据库中插入对应借书统计。
(7) 还书管理界面:
在该界面中可依据输入借书证号从列表中取得借书情况,可直接勾选要书ISBN图书编号还书,也可输入图书编号后点击还书按钮。点击还书后则会对应更新该读者在数据库中相关借书信息,使得return标识为1即已还该书。
(8) 续借管理界面:
经过该界面能够实现图书续借管理,关键实现功效函数以下:
strSQL.Format("update borrow set return_time='%s' where book_id='%s' and returned='0'",strTime,strISBN);
DBOpt.ReaderTypeOperate(strSQL);
strSQL.Format("select * from borrow where reader_id='"+m_readerEdit+"'and returned='0'");
DBOpt.BorrowOperate(strSQL);
for ( i=0;i<DBOpt.curItem;i++)
{
m_againBList.InsertItem(i,DBOpt.strArrayOne.GetAt(i)) ;
m_againBList.SetItemText(i,1,DBOpt.strArrayTwo.GetAt(i));
m_againBList.SetItemText(i,2,DBOpt.strArrayThree.GetAt(i));
}
MessageBox("续借三十天成功!");
(9) 图书查询界面
在该界面中,每个编辑框全部相当于数据库中一个索引,输入对应信息便能在列表中列出相关图书信息,能够很方便查找到相关图书和图书其它有用信息。
(10) 借阅排行榜界面:
经过该界面能够查看读者借阅排行也能够查看读者借阅图书排行,经过该界面能够让管理员愈加好了解读者需求,引进能够满足读者借阅需求对应图书数量。
3.3 数据库和VC连接实现
经过初始化COM库,引入ADO库定义文件,用Connection对象连接数据库,利用建立好连接,经过Connection、Command对象实施SQL命令,使用完成后关闭释放连接对象。实施后会生成一个.dul文件,打开后会出现以下界面:
四 设计体会和小结
在这次课程设计过程中,我关键负责搭建该图书系统主界面和各个子窗口控件搭建,在搭建模块和窗口同时我更深入熟悉了.net中每个控件不一样使用方法和不一样应用范围,对MFC了解也有深入加深。
经过这次课程设计,让我感觉更深刻就是和组员之间相互配合是该系统能够成功实现对应简单功效关键,每个人全部有自己优点,所谓“闻道有前后,术业有专攻”,发挥各自优点相互配合,碰到问题时一起讨论,共同出力来想措施处理,在这次课设中发觉了团体合作关键性,在以后学习生活中也要继续坚持着这种团体合作精神,和团体和集体共同努力,发挥自己优点,实现自己想要或是当下需要完成目标。
图书管理系统功效实现,使我对数据库认识从一个抽象认识进入到了一个具体认识境界,让我愈加深入了解到了数据库在工程和项目中具体应用,而不是仅仅停留在一个从理论上认识层次,经过相互讨论分析图书管理系统所需完成基础任务和功效,结合大家认识做了个简单需求分析,又经过数据字典创建基础抽象出实体之间联络,在此基础上我们建立了所需数据库BOOK,用来实现图书管理信息在计算机中存放,为图书管理员提供了方便。
经过这次课程设计我学到了很多以前并不是很了解知识,最关键是学会了怎样经过VC连接到数据库,即了解了怎样将数据库语句嵌入到程序和软件当中,怎样真正使数据库建立有其存在意义,怎样充足利用数据库实现数据存放和怎样利用不一样方法如ADO或ODBC等实现数据库和界面进行交互,为用户提供一个应用程序接口API,这些认识和收获在以后学习生活中仍能够起到很关键作用。
在此系统中,具体功效实现是由另外两名组员完成,也正是因为如此,我发觉了自己在利用语言实现函数功效上欠缺,在以后学习生活中还要继续加强自己在程序语言上学习。
五 参考文件
[1]《数据库系统概论》(第四版) 王珊、萨师煊编著 高等教育出版社
[2]《SQL-结构化查询语言详解》 高守传编著 人民邮电出版社
[3]《Visual C++.NET 程序设计实用教程》 曾宪权编著 清华大学出版社
展开阅读全文