数据库课程设计感想

关键词: 感想 课程设计 数据库 课程

第一篇:数据库课程设计感想

Oracle数据库课程分析与感想

这门课主要是为我们在以前学过的数据库的基础上让我们更深入的加强对Oracle数据库的理解,让我们从它的结构,它的功能,它的对象以及多种方面去感受它。

老师每节课都说了不同的内容,然而我个人最关心的还是关于Oracle数据库的安全性。安全是现如今人人都在关注的问题,特别是计算机安全。如今每家每户的生活都离不开电脑,其中的安全问题更是大家在乎的重点。我们使用的软件,各种网络数据库的安全性我们尤为关心。

Oracle数据库经过30多年的发展,现如今已经为各个领域所使用,已经在数据库市场中占据了主导地位。在当今世界500强企业中,70%企业使用的是Oracle数据库,世界十大B2C公司全部使用Oracle数据库,世界十大B2B公司中有9家使用的是Oracle数据库。

为何Oracle会有如此的成就,能在众多数据库中脱颖而出?安全当然是第一原因。从一开始,Oracle就提供了业界最先进的技术来保护存储在数据库中的数据。Oracle提供了全面的安全性解决方案组合来保护数据隐私,防范内部威胁,并确保遵守法规。借助Oracle强大的数据库活动监控和分块、授权用户和多要素访问控制、数据分类、透明的数据加密、统一的审计和报表编制、安全的配置管理和数据屏蔽等强大功能,用户无需对现有应用程序做任何改变即可部署可靠的数据安全性解决方案,从而节省时间和金钱。

与此同时,Oracle公司也推出了许多安全性产品,例如数据防火墙,数据屏蔽,全面回忆等。

然而,随着时代的发展和Oracle被不断的应用,导致其中信息量逐渐增加,数据库的安全性越来越重要。防止数据丢失等事件的措施也越来越重要。对数据的管理也越来越严谨。

首先就是用户管理。用户和Oracle呈现一对一的关系,即一个口令对应一个用户,使每个用户的信息相对独立。还有很重要的权限系统,可以区分普通用户和管理员,方便信息管理和保存,同时也可以是用户的信息得到更安全的保存,不致使信息泄露等问题的发生。 其次是系统权限。它可以选择用户给予相应的权限,确保信息不会被除管理开发人员意外的人盗用。

最后就是数据的备份。每个系统都不会是完美的,总会出现损坏的现象。数据备份就是防止各种损坏中数据的丢失和遗漏,也为数据库管理员解决了一个大麻烦。

其实关于Oracle数据库的安全性方面还有太多东西等着我们去探索。课程里所说的东西也不过是整个Oracle数据库知识里的冰山一角。在以后的生活里我们还要更多的接触这方面的事物,跟上时代发展才是最重要的。

第二篇:数据库课程设计

1 需求分析

在银行业务模拟中用随机函数产生随机数,求客户在银行的平均时间,客户来到银行后加入两个队列,客户办理的业务有两种,一是取款和贷款,二是存款和还款。

2 概要设计

typedef struct service { int num; //客户号 string type; //到达或离开 int beginTime; int endTime; int money; //正数为存款,负数为取款 struct service* next; }service; typedef struct //队列 { service* head; service* rear; }queue; int total; //初始时银行现存资金总额 int closeTime; //营业结束时间

int arriveTime; //两个到达事件之间的间隔上限 int dealTime; //客户交易的时间上限 int dealMoney=5000; //交易额上限 int currentTime=0; //当前时间 int totalTime=0; //客户逗留总时间 int counter=0; //客户总数 int number=1; //初始客户序列号 int currentTimeOfDeal=0;

1 int theArriveTime=0; queue eq; //事件队列 queue fq; //队列一

queue sq; //对列二 //初始化三个队列 service* temped; int Time; void push(queue &q,int a)// 插入元素a为Q的新的队尾元素 void pop(queue &q)// 若队列不空,出对列函数 service* front(queue &q)//返回队首元素 service* back(queue &q)//返回队尾元素

service* searchAndDel(queue &q,int m)//在对列中寻找可处理元素 bool state=1; //用于判断是否有窗口在处理

void arrive()//"到达"函数 随机产生顾客,进入队列一产生到达事件 进入事件队列

void putMoney()//存款函数 void getMoney()//取款函数

void findAndDeal()//在对列中寻找可处理元素,对其进行处理

3 运行环境

Window XP Visual C++

4 开发工具和编程语言

Visual C++ C++

5 详细设计

1.队列的链式表示和实现 typedef struct service { int num; //客户号

2 string type; //到达或离开 int beginTime; int endTime; int money; //正数为存款,负数为取款 struct service* next; }service; typedef struct //队列 { service* head; service* rear; }queue; 2.插入一个元素为队尾元素 void push(queue &q,int a) { service* p=new service; p->money=a; p->next=NULL; if(q.head==NULL)//列队为空,初始化 { q.head=p; q.rear=p; } else //队列不为空,插入元素a { q.rear->next=p; q.rear=q.rear->next; } } 3. 返回函数

3 service* front(queue &q)//返回队首元素 { return q.head; } service* back(queue &q)//返回队尾元素 { return q.rear; } 4. 在对列中寻找可处理元素

service* searchAndDel(queue &q,int m) { service* sign=q.head; //标记头节点 service* p; while(q.head!=NULL) { if((-(q.head->money))

{ p=q.head; q.head=q.head->next; //首节点后移一位,返回原首节点 return p; }

4 } if((-(q.head->money))>m) //队首元素不能被处理 {

if(q.head==q.rear) { } return NULL; else //首节点移到队列尾部 { q.rear->next=q.head; q.rear=q.rear->next; q.head=q.head->next; q.rear->next=NULL; } } if(q.head==sign) //队列循环一周时停止 return NULL; } return NULL; } 5.到达函数

void arrive()//到达"函数 随机产生顾客,进入队列一产生到达事件 进入事件队列 { push(fq,(rand()%(2*dealMoney)-dealMoney)); //随机产生顾客加入第一队列

back(fq)->beginTime=currentTime; back(fq)->num=number; push(eq,(back(fq)->money)); //将产生事件加入事件队列

5 back(eq)->beginTime=currentTime; back(eq)->type="到达"; back(eq)->num=number; ++number; } 6存款函数 void putMoney() { total+=front(fq)->money; //更新资金总额 push(eq,front(fq)->money); //加入事件队列 离开 back(eq)->type="离开"; back(eq)->num=front(fq)->num; back(eq)->endTime=(front(fq)->beginTime+rand()%dealTime+1); ++counter; //更新客户总数

totalTime+=(back(eq)->endTime-front(fq)->beginTime); //更新逗留时间

pop(fq); //删除第一队列第一个业务 currentTimeOfDeal=back(eq)->endTime; state=0; } 7取款函数

void getMoney() //取款函数 { if((-fq.head->money)>total) //资金短缺 加入第二队列 { push(sq,front(fq)->money); back(sq)->beginTime=front(fq)->beginTime; back(sq)->num=front(fq)->num; pop(fq); 6 } else { total=total+back(fq)->money; push(eq,front(fq)->money); //加入事件队列离开 back(eq)->type="离开"; back(eq)->num=front(fq)->num; back(eq)->endTime=(front(fq)->beginTime+rand()%dealTime+1); back(eq)->beginTime=0; currentTimeOfDeal=back(eq)->endTime; ++counter; //更新客户总数

totalTime+=(back(eq)->endTime-back(fq)->beginTime); //更新逗留时间

pop(fq); //删除第一队列第一个业务 state=0; } } 8. 在对列中寻找可处理元素,对其进行处理 void findAndDeal() { while((temped=searchAndDel(sq,total))&&NULL!=temped) //查找可处理取款 { total+=temped->money;

totail=total+temped->money; push(eq,temped->money); //加入事件队列训 离开 back(eq)->type="离开"; back(eq)->num=temped->num; randomTemp=rand()%dealTime+1;

//更

新资

金总额 7 back(eq)->endTime=currentTime+randomTemp; currentTimeOfDeal+=randomTemp; ++counter; //更新客户总数

totalTime+=(back(eq)->endTime-temped->beginTime); //更新逗留时间

delete temped; //删除节点 temped=NULL; } state=0; } 9 主函数 int main() { int m; cin>>m; if(m=111111) { cout<<”欢迎进入系统<>n; while(n==1) {

srand(time(NULL)); //初始化随机函数 cout<<"输入银行的初始存款: "; cin>>total; cout<<"输入银行的营业时间: "; cin>>closeTime; 8

cout<<"输入最大到达时间间隔: "; cin>>arriveTime; cout<<"输入最大的处理时间: "; cin>>dealTime; theArriveTime+=rand()%arriveTime+1; //首次到达时间 while(currentTime

} cout<

} if(state==1&&fq.head!=NULL) {

} if(fq.head->money>=0) {

} else getMoney(); putMoney(); findAndDeal(); arrive(); theArriveTime+=rand()%arriveTime+1; 9

<<"事件类型"<<" " <<" 时间"<<" " <<" 处理金额"<

} cout<<"未处理客户:"<<""type=="离开") cout

cout

}

} cout<<"银行当前余额:"<

在用随即函数rand产生随机数的时候,对其初始化用srand(time(NULL),为了使得产生的随机数是整数要在后面加一

7 测试结果

如图一所示为输入密码进入系统后

图一输入密码进入系统后

如图二为输入银行的初始存款,营业时间,两个到达事件的最大间隔,客户交易的最大时间

图二输入各项信息后

如图三所示产生的客户信息

图三 客户的信息(到达时间和离开时间,平均在的时间)

参考文献

[1] 吴文虎,程序设计基础(第二版),北京,清华大学出版社 [2] 谭浩强,C语言程序设计,北京 ,清华大学出版社 [3] 边肇祺,模式识别(第二版),北京:清华大学出版社

[4] 李永忠,几种小波变换的图像处理技术,西北民族学院学报,自然科学版 [5] 严蔚敏,吴伟民,米宁,数据结构题集(c语言版),清华大学出版社

心得体会

转眼之间,来到大学已经一年半的时间了,对程序的学习也有了初步的认识,在大一的时候学习了程序设计,大二紧接着又学了数据结构,在这次的课程设计中,遇到了一些问题,通过老师和同学的帮助得到了解决,并且对程序设计的认识又提高了一个层次,在以后的学习中,对经常出现的问题会更加注意。

这次的课程设计给了我很大的帮助,在过程中学到了很多的知识,对程序的规范性以及有效性更加的重视。在以后编程序的过程中会更加注意程序的完善性,使程序的功能更加的齐全,而这也是作为一个程序设计师必须要具备的。认识到只有多多的练习才能更好的运用所学习的知识。在大学里要充分的利用各种资源,提高自己的水平。

第三篇:数据库课程设计要求

2007-2008学年第一学期

第一阶段:指导教师按班级填写《数据库系统课程设计任务书》,组织学生选题,并汇总选题及分组清单。

第二阶段:组织学生撰写需求分析报告,并组织学生自述。

第三阶段:指导学生编写代码,并调试、试运行。

第四阶段:指导学生填写《课程设计总结报告》

第五阶段:组织学生演示系统。

第六阶段:收集本学期课程设计资料,以班级为单位填写《课程设计总结与成绩统计分析报告》。

收集的资料要求包括:

1、《数据库系统课程设计任务书》,每个班级一份

2、学生选题分组一览表,每个班级一份

3、学生的需求分析报告、程序代码(提交源代码到教师指定的文件夹)、课程设计总结报告。在期末以班级为单位、按学号排序,将相关资料刻成光盘。

4、《课程设计总结及成绩统计分析报告》,每个班级一份

注:⑴《数据库系统课程设计任务书》、《课程设计总结报告》、《课程设计总结及成绩统计分析报告》均采用统一的标准表格填写,用A4纸打印。

⑵《数据库系统课程设计任务书》、《课程设计总结及成绩统计分析报告》由教师填写;《课程设计总结报告》由参加课程设计的学生每人填写一份。

⑶打印文档规范:1)统一用A4纸打印;

2)正文字体:宋体小四号;

3)若文档或表格多于1页,请标注页码。

附表1:《数据库系统课程设计任务书》

附表2:《课程设计总结及成绩统计分析报告》

附表3:《课程设计总结报告》

附表4:《数据库课程设计选题与分组一览表》

附表5:07-08上数据库课程设计指导教师一览表

附表6:《数据库系统课程设计任务书》样例

附表7:《数据库课程设计选题与分组一览表》样例

第四篇:数据库课程设计报告

数据库课程设计

校友通讯录

南华大学计算机科学与技术学院网络工程

(2010~2011 第二学期)

2011.6.25

目 录

一、设计需求说明··············3

二、总体设计分析··············

三、部分模块设计分析············

四、程序源代码···············

五、运行结果及截图·············

六、心得体会················

七、参考文献················

3 4 10 18 23 23

一、 设计需求说明

1、设计题目及要求

建立校友通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;

◆ 能够提供注册、登录和修改个人信息等的功能; ◆ 校友之间能进行相互通信;

2、系统功能需求分析:

1).注册,找回密码(无法登陆该系统); 2).登陆;

3).更改个人资料;

4).查看并浏览校友所有的公开性信息; 5).申请私人互动,进一步获取校友私有信息: ①发送申请消息; ②拒绝;

③通过,开放私人信息; 6).删除已在列表中的对象; 7).账号注销。

二、 总体设计分析

系统功能模块图:

校友通讯录要实现的需求功能主要有注册,找回密码;登录;修改个人资料;浏览校友信息;查找校友;修改密码;删除校友;账号注销。 (1)注册:如果是新用户,用户可注册加入,填写详细的注册信息表。验证通过,如果注册成功,则进入校友通讯录主界面。

(2)找回密码:用户忘记了登陆密码,可通过找回密码功能找回密码,进入找回密码界面,填写邮箱号,可以修改密码。

(3)登录:输入正确的账号,密码,登陆成功,如果登陆次数超过5次,提示错误信息。

(4) 修改个人资料:进入个人信息页面,填写要修改的内容,如果修改成功,系统更新并记录信息。

(5)浏览校友信息:查看已在校友列表的校友的信息。 (6)查找校友:输入姓名、学院、专业等查找信息,查找成功。

(7)删除校友: 在已有的可互动的联系人中找寻并选择要删除的对象,如果删除成功则用户的私密信息不再对已删除对象开放。

(8)帐户注销:用户提出注销请求,如果退出校友通讯录系统,则系统注销退出者的个人信息。

三、 部分模块设计分析

1.通讯录:

2.工作顺序图:

(1)注册:申请账号

注册注册数据 : <未指定>真实性检查错误真实加入班级记录,分配帐号

6

②找回密码:找回用户丢失的密码

找回密码已登陆用户进入更改密码界面已注册未登记用户申请找回密码键入新密码输入帐号系统发送密码通过电子邮件确认否记录

7

(3)登录:已注册的用户利用系统已分配的账号登录

已注册用户或管理员登录键入密码帐号验证密码帐号是否正确通过验证未通过验证验证是否为管理员拒绝进入普通用户管理员进入个人主页进入管理员界面系统维护8

4)修改个人资料:修改个人中心的资料

更改个人资料进入更改个人资料页面已登陆用户输入要更改的个人资料确定取消记录9 (

(5)浏览校友信息:查看校友的信息

已登陆用户 查看搜索校友公开信息进入搜索界面键入搜索信息精确搜索模糊搜索显示符合条件校友名单显示选中校友公开信息10

(6)查找校友:查找用户感兴趣的校友

通信许可权发送许可权申请收到许可权申请已登陆用户拒绝许可权申请同意许可权申请记录,加入联系人列表删除许可权浏览联系人私人信息

11

(7)删除校友:删除用户的好友

已登陆用户

删除通信权进入已获通信权列表选中要删除的联系人取消删除确定要删除移出,记录12

四、 源程序代码

五、 运行结果及截图 1.显示主菜单界面

2.添加界面

3.显示界面

4.删除界面

删除后,通讯录里的显示记录:

5.查询界面

以姓名查询方式为例:

6.修改界面

修改后,通讯记录的显示记录:

7.保存界面

六、 心得体会

李兰利: 李竹村: 姚莉 : 李叶婷: 毛蓓:

梁娟:这次课程设计我觉得我做的事情比较少,尽的力不够,但在组员的辅助下,还是学到了一些东西。如:如何做原型设计、需求分析的应该做些什么,以及界面设计,数据库那边了解甚少。我觉得那句话话说得很对,团结就是力量。要做一件事,你需要有一个优秀的团队,大家可以一同进步,一同努力,困难一起克服。在这个团队中,我看到了他们钻研的精神,令我很敬佩;看到大家分工明确一起努力地画面。只是一次不错经验。

七、 参考文献

何玉洁、李宝安《数据库系统教程》人民邮电出版社 教材《软件工程》

第五篇:数据库课程设计心得

数据库课程设计心得体会 数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与斗志,我开始写这篇文章,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹并期望与大家共勉。

首先,让我的记忆追溯到大二暑假,在老大的指引下(老大劝我学asp.net),我接触到microsoft 公司的.net产品。那个时候我已经学过vc和asp,因为windows程序设计实验的课的关系,接触过vb,但是没有专门去学他,因为习惯了c++里面的class,int,觉得vb的sub,var 看着就不是很顺心。我是一个好奇心很强的人,突然看到了一个号称“.net是用于创建下一代应用程序的理想而又现实的开发工具”,而且主推c#语言,由于对c语言的一贯好感,我几乎是立刻对他产生了兴趣。我就开始了对c#的学习,任何语言都不是孤立存在的,所以数据交互是很重要的,暑假的时候我把我们这学期的课本数据库系统概论看了一遍。我记得以前用c语言编程的时候,数据是在内存中申请空间,譬如使用数组等等。很耗费内存空间。这个时候就是数据库站出来的时候啦,于是我又装上了sql server2000,以前学asp的时候用的是access,那个时候只是照着人家做,理论是什么也不是很清楚。

通过一个暑假的学习,基本搞清楚了理论方面的东西,具体怎么用也不是很清楚。但是这为这学期的课程设计打下了铺垫。

来到学校后,随着这学期的数据库课程大赛开始了,我有一个看法就是我自己应该具备的能力不是我会多少,而是我应该具备快速学会东西的能力。遇到什么就学什么。我们有时候很容易被一些专业名词说吓着,包括什么建模,软件工程,数据分析,数据挖掘等等。我身边就有很多同学被这些纸老虎所唬住,而没有勇气去接触他们,总是说这个太难了之类的退堂鼓的话,他们低估了自己的潜力同时也压抑住了他们自己的好奇心。其实都是纸老虎,又不是什么国家科研难题,只是去用一些工具,发明工具是很难,但是用一个工具就容易多了,just do it!我记得我做这个数据库之前,我们老师说要做好前期分析,我就在网上搜索用什么分析工具好。最后我选择了roseuml建模工具。在此之前,我脑袋里面没有软件建模的思想,什么uml建模对我而言就是一张空白的纸。但是真正接触后并没有想象的那么难,有什么不懂的上网去搜索,这是一个信息横流的世界,有google,baidu就没有不能解决的知识难题。以及后来的数据库分析的时候用到的powerdesigner也是一样。

开发的时候我想过用什么架构,c/s模式?模式有很多,怎么选择?我就上网搜索现在最流行的架构是什么。结果搜到了mvc架构,就是你啦。我决定用这个架构,不会,没关系,咱学。just do it!前期工作准备好后,那么我就得把我暑假学的.net加以实践。这个时候我更加深入的了解了利用ado.net操纵数据库的知识。并且对数据库里面的存储过程有了比较深入的了解。经过大概2个多星期的奋斗,我完成了我的数据库课程设计--基于.net数据集的图书馆管理系统。并最后非常荣幸的获得了大赛的一等奖以及以及新技术应用奖。

与其临渊羡鱼,不如退而结网。这次数据库课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。出于对知识的渴望,出于对新技术的好奇,出于对一切未知的求知。我完成了这次数据库课程设计,不过这只是我学习路上的驿站,未来十年.net的核心技术就是xml[至少微软是这么宣传的],我会继续学习它,包括jave公司的j2ee我也很想试试,语言本来就是相通的,just do it!语言并不重要毕竟它仅仅是工具,用好一个工具并不是一件值得为外人道的事情,主要是了解学习思想。古语说的好:学无止境啊!

我很庆幸我参加了这次数据库大赛,让我确实打开了眼界。

(最后,很感Ji学校给了我们这次动手实践的机会,让我们学生有了一个共同学习,增长见识,开拓视野的机会。也感谢老师们对我们无私忘我的指导,我会以这次课程设计大赛作为对自己的Ji励,继续学习。

毕竟学习就是一个just do it的过程!)

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:进展情况汇报督查 下一篇:程序设计课程感想总结