数据库课程设计_数据库课程设计样

2020-02-27 其他范文 下载本文

数据库课程设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据库课程设计样”。

需求分析

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

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>n;while(n==1){

srand(time(NULL));//初始化随机函数 cout>total;cout>closeTime;8

cout>arriveTime;cout>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

} coutbeginTime);//更新结束时第if(eq.head->type==”离开“)coutnum

typeendTimemoney type==”到达")coutnum

typebeginTimemoney

coutnum

}

} cout

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

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

图一输入密码进入系统后

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

图二输入各项信息后

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

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

参考文献

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

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

心得体会

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

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

数据库课程设计

数据库课程设计第一章 引言开发的意义设计应用系统的任务及目标 设计开发及运行的软硬件环境第二章 系统分析与设计系统需求分析数据库概念结构设计 数据库逻辑结构设计 数......

数据库课程设计总结

课 程 设 计 报 告课程名称数据库课程设计—总结题目个人CD盘管理系统_________________________________指导教师设计起止日期学院计算机学院系别专业计算机科学与技术学生......

数据库课程设计报告

数据库课程设计方案(长江大学管理学院,信息2009级) 设计目的数据库课程设计是信息管理与信息系统专业大四学生的重要实践性环节之一,是学生在学习完“数据库原理及应用”课程......

数据库课程设计心得

数据库课程设计心得体会 数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与......

数据库课程设计心得体会

数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与斗志,我开始写这篇文章,为自......

《数据库课程设计.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
数据库课程设计
点击下载文档
相关专题 数据库课程设计样 课程设计 数据库 数据库课程设计样 课程设计 数据库
[其他范文]相关推荐
[其他范文]热门文章
下载全文