第一篇:数据库课程设计心得【略万用=v=】
经过为期两周的数据库课程设计,我自己选题做出了XXX数据库。在课堂上我学到,数据库设计的基本步骤为需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行维护。在这次课程设计中,我从需求分析开始,实际对数据库设计进行操作,经过需求分析抽象出数据库的ER图,进而向关系模式转换,设计基本表,再到使用SQL Server 2005实现数据库,并且实际操作了数据库的安全性、完整性、备份的实现,利用SQL语句对数据库进行查询、插入、更新等操作,将课本上的知识付诸于实践,加深了我对数据库和SQL Server 2005的理解和掌握,并从中学到了课本上没有的东西,比如耐心、细心,在实际操作中,丝毫的马虎都可能导致前功尽弃,不仅在这次课设中,更在以后的学习中、生活中。
第二篇:数据库课程设计心得
数据库课程设计心得体会 数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与斗志,我开始写这篇文章,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹并期望与大家共勉。
首先,让我的记忆追溯到大二暑假,在老大的指引下(老大劝我学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的过程!)
第三篇:数据库课程设计心得(最终版)
数据库课程设计心得
在这次课程设计中,我们小组设计的是一个仓库管理系统,通过设计这个系统,可以更方便地实现信息的浏览,查询,添加等操作和报表输出等功能,具体包括能实现产品入库管理,可以填写入库单,确认产品入库;产品出库管理,可以填写出库单,确认出库;借出管理,凭借条借出,然后能够还库;初始库存设置,设置库存的初始值,库存的上下警戒限;可以进行盘库,反映每月,年的库存情况;可以查询产品入库情况,出库情况,当前库存情况,可以按出库单,入库单,产品,时间进行查询;虽然这个系统的功能还不是很完善,还有很多功能尚未实现,但这也是我们共同努力的结果,只要有更多的时间,我相信我们能完成的更好。
通过这次将近一个星期的课程设计实训,我对数据库在生活中的广泛应用有了更深的体会,同时也加深了对ACCESS2003的认识,了解了相关的ACCESS的知识,尤其是对数据库的原理与开发程序的应用有了更进一步的认识和了解。由于不会vb编程,很多功能实现起来很困难,但好在access有查询、宏和窗体,特别是宏操作可以将几个操作结合在一起,可以执行多个查询,可以调用多次窗体。例如,在某个窗体中要显示设备代码表信息,所以这个窗体中建立一个子窗体用于设备代码表的显示,我们打开窗体后又对设备代码表进行了跟新,所以窗体中显示的并不是最新数据,我们往往需要及时看到设备代码表跟新后的最新数据,窗体不会自动跟新我们就不会看到最新数据,所以这时候我们就会用一个宏操作在对设备代码表跟新之后关闭
窗体在打开窗体,这样窗体就相当于完成了一次跟新操作。又例如,在一个表A中刚刚追加了一条记录,我们要将每次刚刚新添加的记录跟新到另一个表B中,用一个查询是很难完成的,经过认真思考,得到了解决的办法是,需要三个步骤,第一步,在表A中添加标志字段,设置默认值为‘否’。第二步,编写跟新查询将标志字段为‘否’的数据跟新到表B中。第三步,编写跟新查询将表A中标志字段为‘否’的跟新为‘是’。
经过这次课程设计,是我明白团队的力量是最大的,至少三个臭皮匠顶个诸葛亮,何况我们都是充满激情的团队。我想在以后的工作中我一定要做到多思考多与团队交流,遇到难题一定要有必胜的信心。
第四篇:数据库课程设计
数据库课程设计
第一章 引言
开发的意义
设计应用系统的任务及目标 设计开发及运行的软硬件环境
第二章 系统分析与设计
系统需求分析
数据库概念结构设计 数据库逻辑结构设计 数据库物理结构设计 系统总体结构设计
第三章 系统开发及实现
设计开发采用的技术及设计效果
第四章 总结
第五篇:数据库课程设计
需求分析
在银行业务模拟中用随机函数产生随机数,求客户在银行的平均时间,客户来到银行后加入两个队列,客户办理的业务有两种,一是取款和贷款,二是存款和还款。概要设计
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;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()//在对列中寻找可处理元素,对其进行处理 运行环境
Window XP Visual C++ 开发工具和编程语言
Visual C++ C++ 详细设计
1.队列的链式表示和实现 typedef struct service { int num;//客户号
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.返回函数
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;} } 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));//将产生事件加入事件队列 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<<”欢迎进入系统< srand(time(NULL));//初始化随机函数 cout<<”输入银行的初始存款:n“;cin>>total;cout<<”输入银行的营业时间:n“;cin>>closeTime;8 cout<<”输入最大到达时间间隔:n“;cin>>arriveTime;cout<<”输入最大的处理时间:n“;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 <<”事件类型“<<”tt“ <<” 时间“<<”t“ <<” 处理金额“< } cout<<”未处理客户:“<<”“< < < cout< } } cout<<”银行当前余额:"< 在用随即函数rand产生随机数的时候,对其初始化用srand(time(NULL),为了使得产生的随机数是整数要在后面加一 测试结果 如图一所示为输入密码进入系统后 图一输入密码进入系统后 如图二为输入银行的初始存款,营业时间,两个到达事件的最大间隔,客户交易的最大时间 图二输入各项信息后 如图三所示产生的客户信息 图三 客户的信息(到达时间和离开时间,平均在的时间) 参考文献 [1] 吴文虎,程序设计基础(第二版),北京,清华大学出版社 [2] 谭浩强,C语言程序设计,北京,清华大学出版社 [3] 边肇祺,模式识别(第二版),北京:清华大学出版社 [4] 李永忠,几种小波变换的图像处理技术,西北民族学院学报,自然科学版 [5] 严蔚敏,吴伟民,米宁,数据结构题集(c语言版),清华大学出版社 心得体会 转眼之间,来到大学已经一年半的时间了,对程序的学习也有了初步的认识,在大一的时候学习了程序设计,大二紧接着又学了数据结构,在这次的课程设计中,遇到了一些问题,通过老师和同学的帮助得到了解决,并且对程序设计的认识又提高了一个层次,在以后的学习中,对经常出现的问题会更加注意。 这次的课程设计给了我很大的帮助,在过程中学到了很多的知识,对程序的规范性以及有效性更加的重视。在以后编程序的过程中会更加注意程序的完善性,使程序的功能更加的齐全,而这也是作为一个程序设计师必须要具备的。认识到只有多多的练习才能更好的运用所学习的知识。在大学里要充分的利用各种资源,提高自己的水平。