数据库课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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());

相关文档
最新文档