数据库课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2008级数据库课程设计任务书
【设计目的】
数据库课程设计是在学生系统地学习了《数据库系统原理》课程后,按照关系型数据库的基本远离,综合运用所学的知识,设计开发一个小型的数据库管理信息系统,通过对一个实际问题的分析、设计与实现,将原理与应用相结合,使学生学会如何把书本上学到的知识用于解决世界问题,培养学生的动手能力;另一方面,使学生能深入理解和灵活掌握教学内容。
【设计要求】
1、课程设计题目自信填充,独立完成;
2、课程设计时间为1.5周;
3、数据库管理系统不限(Oracle\SQL Server\MySQL\Access…)、开发语言不
限(VC\VC\ C++Builder\Delphi\C#\.net\ASP…),避免把学习语言的时间放在设计期间;
4、从开始的系统雪球分析到最后的软件测试,都要有详细的计划,设计文
档应按照数据库设计的要求书写;
5、系统中的数据表设计合理、高效、尽量减少数据冗余,软件界面友好、
健壮性强;
6、上机时间:上午8:20-11:50 ,下午2:10-5:40;
7、无论在校外、校内,都要严格最受学校和所在单位的学习和劳动纪律、
规章制度,学生有事离校必须请假。课程设计期间,无故缺席按旷课处理;
缺席时间达四分之一以上者,其成绩按不及格处理。
【题目】
图书馆进销存系统
一、设计目的
学生根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理信息系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等完成题目要求的功能,从而达到掌握开发一个小型数据库管理信息系统的目的。
二、设计内容
1)新书的入库。
2)新用户的注册
3)藏书的搜索
4)用户密码的找回
5)对藏书的借还状态的查询
6)用户的书籍借阅记录
7)管理员对图书借还的管理
8)用户对个人信息的管理
【一】需求分析
【三】逻辑结构设计
【四】物理设计
因为一个用户可以借阅多本图书,所以用户表对借阅表和管理表为一对多的关系,因此为了保证查询的唯一性和减少冗余,又因为书的编号唯一,所以以书的编号建立索引
【五】数据库的实施和维护
用户手册:
进入本系统首先会进入初始界面
新用户点击用户注册先输入自己的详细信息和密码注册即可
注册完毕后返回点击用户登陆,输入学号和密码进行登陆
如果忘记密码,点击找回密码,输入个人信息即会显示密码
登陆成功后,会进入个人界面,全部的图书信息均会显示出来,用户可以根据书名进行查询,若图书状态为可借,则可以进行预约
点击个人信息,可以查看用户目前所借阅的书
用户找到书后,前往管理员出进行借书,管理员通过管理员登陆可以进行新书添加,书籍借出和书籍归还工作
新书添加可以进行书籍入库工作
点击借书输入用户和书籍信息,并查询书籍的预约情况可以进行借书工作
用户进行还书时,输入书籍的编号既可以清除用户的借书记录
总结:
系统优缺点:本系统是在学习过数据库系统原理后用MFC语言所做的一款系统,具有简易的图书馆信息管理功能,但是对于惩罚系统和对借阅时间的管理上做的不够完善和智能,操作界面略显简陋,不够优美赏心悦目,但是对于一个图书馆系统所应该具有基本功能都具备。
个人感想:通过这次的数据库系统课程设计,本人熟悉了对SQL Server 2000,2005,Oracle ,VS2008,vc++6.0等软件的应用,但因为实现准备工作不够充分,因此,在进行编写时略微仓促了些,也暴露和许多的问题,比如对MFC语言不够精通等,不过最终许多问题都通过网上查找资料解决了,也从中学到了许多,不管怎么说,这是本人设计的第一款具有数据库管理功能的可视化软件,整个编写代码
的过程大概用了一个下午,三个星期大部分时间都浪费了,在下次进行课程设计的时候,本人将吸取经验,充分利用好所有的时间,争取将课程设计做的更加完善完美。
附录:
ADOConn::ADOConn()
{
}
ADOConn::~ADOConn()
{
}
// 初始化—连接数据库
void ADOConn::OnInitADOConn()
{
// 初始化OLE/COM库环境
::CoInitialize(NULL);
try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串,必须是BSTR型或者_bstr_t类型
m_pConnection->Open("FILEDSN=f:\\WYF.dsn;PageTimeout=5","uid=administrator", "pwd=wyf890722",adModeUnknown);
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
AfxMessageBox(e.Description());
}
}
// 执行查询
_RecordsetPtr&ADOConn::GetRecordSet(_bstr_tbstrSQL)
{
try
{
// 连接数据库,如果Connection对象为空,则重新连接数据库
if(m_pConnection==NULL)
OnInitADOConn();
// 创建记录集对象
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynami c,adLockOptimistic,adCmdText);
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
AfxMessageBox(e.Description());
}
// 返回记录集
returnm_pRecordset;
}
// 执行SQL语句,Insert Update _variant_t
BOOL ADOConn::ExecuteSQL(_bstr_tbstrSQL)
{
// _variant_tRecordsAffected;
try
{
// 是否已经连接数据库
if(m_pConnection == NULL)
OnInitADOConn();
// Connection对象的Execute方法:(_bstr_tCommandText,
// VARIANT * RecordsAffected, long Options )
// 其中CommandText是命令字串,通常是SQL命令。
// 参数RecordsAffected是操作完成后所影响的行数,
// 参数Options表示CommandText的类型:adCmdText-文本命令;adCmdTable-表名
// adCmdProc-存储过程;adCmdUnknown-未知
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox(e.Description());