❶ 毕业论文 活期储蓄账目管理系统 主要内容、研究方法和思路
毕业论文 活期储蓄账目管理系统,开题报告。
我能
写完,,,开题格式发来
❷ 用C++写一个活期存储账目管理
这就是我们课本的例题
❸ 100财富值求银行储蓄业务账目管理 课程设计程序代码 要原创的 急用!!
财富值求银行储蓄业务账目管理 课程设计程序代码
你怎么分析,这样我才理解
这个多少字的
❹ 数据结构课程设计(c语言):活期储蓄处理
#include <iostream>
#include <string>
#include <time.h>
using namespace std;
int total; //初始时银行现存资金总额
int closeTime; //营业结束时间
int arriveTime; //两个到达事件之间的间隔上限
int dealTime; //客户之间交易的时间上限
int dealMoney = 30000; //交易额上限
int currentTime = 0; //当前时间
int totalTime = 0; //客户逗留总时间
int counter = 0; //客户总数
int number = 1; //初始客户序列号+
struct service
{
int num; //客户号
string type; //到达或离开
int beginTime;
int endTime;
int money; //正数为存款,负数为取款
service* next;
};
struct queue
{ //队列
service* head;
service* rear;
};
void push(queue &q,int d)
{// 插入元素d为Q的新的队尾元素
service* temp = new service;
temp->money = d;
temp->next = NULL;
if(NULL == q.head)
{//队列为空,初始化
q. head = temp;
q. rear = temp;
}//if
else
{//队列不为空,插入元素d
q. rear->next = temp;
q. rear = q.rear->next;
}//else
}
void pop(queue &q)
{// 若队列不空,出对列函数
service* temp;
temp = q. head;
if(NULL ==q. head->next)
q.head = q. rear =NULL;
else
q. head=q. head->next;
delete temp;
}
service* front(queue &q)
{//返回队首元素
return q. head;
}
service* back(queue &q)
{//返回队尾元素
return q. rear;
}
service* searchAndDel(queue &q,int m)
{//在队列中寻找可处理元素
service* sign = q. head; //标记头节点
service* temp;
while(NULL != q. head)
{
if((-(q. head->money)) <m)
{//队首元素可以处理
if(q. head==q.rear)
{
temp = q. head;
q. head = q. rear = NULL;
return temp;
}//if
else
{//队首元素出列
temp = q. head;
q. head = q. head->next; // 首节点后移一位,返回原首节点
return temp;
}//else
}//while
else
{//队首元首不能被处理
if(q. head == q. rear){}
else
{//首节点移到队列尾部
q. rear->next = q. head;
q. rear = q. rear->next;
q. head =q. head->next;
q. rear->next = NULL;
}//else
}//else
if(q. head == sign)//队列循环一周时停止
return NULL;
}
return NULL;
}
bool state =1; //用于判断是否有窗口在处理
int currentTimeOfDeal = 0;
int theArriveTime = 0;
queue eq; //事件队列
queue fq; //队列一
queue sq; //对列二
//初始化三个队列
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;
}
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;
}
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);
}//if
else
{
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;
}//else
}
service* temped ;
int randomTemp;
void findAndDeal()
{//在对列中寻找可处理元素,对其进行处理
while( (temped= searchAndDel(sq,total))&&NULL != temped )
{//查找可处理取款
total += temped->money; //更新资金总额
push(eq,temped->money); //加入事件队列训 离开
back(eq)->type = "离开";
back(eq)->num = temped->num;
randomTemp = rand()%dealTime +1;
back(eq)->endTime = currentTime + randomTemp ;
currentTimeOfDeal += randomTemp;
++counter; //更新客户总数
totalTime += ( back(eq)->endTime - temped->beginTime ); //更新逗留时间
delete temped; //删除节点
temped = NULL;
}
state = 0;
}
int main()
{
printf(" ********************************************\n");
printf(" 欢迎进入银行模拟系统\n");
printf(" ********************************************\n");
printf("1.开始模拟 0.退出\n");
int n;
scanf("%d",&n);
while(n==1)
{
srand(time(NULL)); //初始化随机函数
printf("输入银行的初始存款:\n");
scanf("%d",&total);
printf("输入银行的营业时间:\n");
scanf("%d",&closeTime);
printf("输入最大到达时间间隔:\n");
scanf("%d",&arriveTime);
printf("输入最大的处理时间:\n");
scanf("%d",&dealTime);
theArriveTime +=rand()%arriveTime + 1; //首次到达时间
while(currentTime < closeTime)
{
++currentTime;
if( currentTimeOfDeal < currentTime ) currentTimeOfDeal = currentTime ;
if( currentTimeOfDeal == currentTime ) state = 1;
if( currentTime == theArriveTime ) //到达事件
{
arrive();
theArriveTime +=rand()%arriveTime +1;
}//if
if( 1 == state && NULL != fq.head)
{
if(fq.head->money >= 0)
{
putMoney();
findAndDeal();
}//if
else
getMoney();
}//if
}
cout <<endl<< "客户序列"<<"\t" <<"事件类型"<<"\t\t"<<" 时间"<<"\t"<<" 处理金额"<<endl;
while( NULL != eq.head) //清除事件队列
{
if(eq.head->type=="离开")
cout << eq.head->num<<"\t\t"<<eq.head->type<<"\t\t"<<"\t\t"<<eq.head->endTime<<"\t\t"<<eq.head->money<<endl;
if(eq.head->type=="到达")
cout << eq.head->num<<"\t\t"<<eq.head->type<<"\t\t"<<"\t\t"<<eq.head->beginTime<<"\t\t"<<eq.head->money<<endl;
pop(eq);
}
cout << "未处理客户:" <<""<<endl;
while( NULL != fq.head)
{
totalTime += ( closeTime - fq.head->beginTime ); //更新结束时第一队列中未处理的客户
cout <<fq.head->num <<" "<<endl ;
++counter;
pop(fq);
}//while
cout <<"客户逗留平均时间为: " << totalTime/counter <<endl;
cout<<"银行当前余额:"<<total<<endl;
break;
}//while(n==1)
return 0;
}//maim()
❺ 基于JAVA的银行储蓄业务管理系统设计(毕业论文)
可以凭借Baihi告知我们
有机会能够处理你所遇到的工作
相关的要求也能够告知我们
ES:\\
交易提醒:预付定金有风险
❻ 活期储蓄帐目管理
课程设计说明书
一、设计题目
活期储蓄账目管理(限最多1人完成)
二、主要内容
编写一活期储蓄账目管理系统,实现储户开户、销户、存入、支出等活动。
三、具体要求
能比较迅速地找到储户的帐户,以实现存款、取款记账
能比较简单,迅速地实现插入和删除,以实现开户和销户的需要
测试数据及测试结果请在上交的资料中写明;必须上机调试通过
按《数据结构课程设计大纲》中的要求完成课程设计报告格式。
四、主要技术路线提示
本问题技术实现上不难,主要考虑优化问题。根据题意要求“快速”,得考虑算法和存储结构的选取。
五、进度安排
共计两周时间,建议进度安排如下:
1. 选题,应该在上机实验之前完成
2. 需求分析、概要设计可分配4学时完成
3. 详细设计可分配4学时
4. 调试和分析可分配10学时。
2学时的机动,可提前安排部分提前结束任务的学生答辩
六、完成后应上交的材料
设计结束后,每个学生必须上交的材料有:
1 《课程设计报告》打印稿一份
2.课程设计的源代码电子文档一份
七、推荐参考资料
1. 冯博琴 等编著,《软件技术基础》(修改版),西安交通大学出版社,1997
2. 严蔚敏 等著,《数据结构》,清华大学出版社,2003
3. 李芸芳 等著,《软件技术基础》(第二版),清华大学出版社,2000
4. 徐孝凯 等著,《数据结构(C语言描述)》,清华大学出版社,2004
指导教师 签名日期 年 月 日
系 主 任 审核日期 年 月 日
目 录
摘 要……………… …… ………………………………………………… ……...1
1 引 言……………………………………………………………..…………….. .2
1.1 问题的提出 2
1.1.1数据结构 2
1.1.2数据结构的发展 2
1.2国内外研究的现状 2
1.3任务与分析 2
2需求分析…….. ………………………………………………………………… 3
2.1 功能分析 3
2.2 方案分析 3
2.3 算法分析 3
3 总体设计... ………………………………………………………………………3
3.1 数据结构…………………………………………………………………… ……3
3.2 逻辑结构与物理结构……………………………………… ... …………………4
3.3 模块功能分析与外部设计………………………………….……………………4
3.4 抽象数据类定义……………………………………… …………………………5
4 详细设计…... ………………………………………………………………………5
4.1 数据类型定义…………………………………………………………………….5
4.2 主要模块内部设计……………………………………………………………….5
4.2.1 储户开户模块………………………………………………………………......5
4.2.2 储户销户模块………………………………………………………………..…6
4.2.3 储户登录模块……………………………………………………………..……7
4.2.4 储户存入及支出模块………………………………………………………..…7
5 实现与调试分析…... …………………………………………………………..…8
5.1实现环境 8
5.2 语言选择 8
5.3 调试分析 8
6 测试分析... ………………………………………………………………………9
6.1 测试用例………………………………………………………………………….9
6.2 测试结果………………………………………………………………….……11
6.3 性能分析………………………………………………………………………11
结论…………………………………………………………………………………..12
致谢………………………………………………………………………………….13
参考文献…………………………………………………………….………………14
随着计算机的普及,现代人越来越多的想到用计算机来代
摘 要
替许多人做的事情。从而提高办事效率,使经济收入更加可观,从而就产生了计算机这门课程。而计算机主要是通过程序来实现各种事情的,再者程序也必须通过各种算法才能达到存储各种数据,所以数据结构这门课程就应运而生。本课程设计主要是用数据结构编写关于活期储蓄账目管理的算法,来达到活期储蓄账目管理的目的。
关键词: 计算机 算法 数据结构 管理
1 引 言
1.1 问题的提出
随着计算机的普及,现代人越来越多的想到用计算机来代替许多人做的事情。从而提高办事效率,使经济收入更加可观,从而就产生了计算机这门课程。而数据结构这门课程也因为数据存储而产生。从而让人产生了用数据结构编写关于活期储蓄账目管理的算法。
1.1.1数据结构
数据结构就是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系各操作等的学科
1.1.2数据结构的发展
“数据结构”作为一门独立的课程在国外是从1968年才开始设立的,但当时并没有对课程范围作明确规定。随后数据结构从表、树的理论扩充到了网络、集合代数论、格、关系等方面。再后来不断的扩大了数据结构的内容,并且随着数据库系统的发展,数据结构还增加了文件管理的内容。
1.2国内外研究的现状
目前在我国,“数据结构”这门课程也已经不仅仅是计算机专业的教学计划中的核心课程之一,而且是其他非计算机专业的主要选修课程之一。“数据结构”在计算机科学中,已经不仅是一般程序设计的基础,而且是设计和实现编译程序、操作系统、数据库系统及其它系统程序和大型应用程序的重要基础。在国内外,“数据结构”的发展并未终结。而是从两方面继续发展下去……
1.3任务与分析
本课题主要的目的是为了编写一活期储蓄账目管理系统,实现储户开户、销户、存入、支出等活动。其主要要求是能比较迅速地找到储户的帐户,以实现存款、取款记账,还要能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。
2 需求分析
2.1 功能分析
本课程设计的主要功能包括实现储户开户、销户、存入、支出等活动,根据要求是能比较迅速找到账户,因此要实现这样的几个功能,意思就是要通过链表来存储数据结构,其结构则按照C语言的相关知识定义结构体,其中储户开户、销户就是实现链表的插入与删除,而存入、支出等活动则是实现链表中结点的查找,然后进行更改。
2.2 方案分析
在本课程设计的方案设计中,已经确定了用链表来作为数据的存储结构,所以这里我采用单链表作为其存储结构,首先用结构体来定义其数据类型,然后通过单链表的相关知识将数据按照该数据结构存储,之后运用文件的相关知识将更改的数据写入文件中,这样就完成了本课程设计的方案设计。
2.3 算法分析
对于本课程设计中,主要运用到了单链表的相关知识,其主要算法也就来源于单链表的相关算法,首先对于储户开户与销户主要是链表的插入与删除,与其主要的区别在于其数据类型不一样而已,在这里我们的数据类型主要是自己定义的类型,还有储户的存入及其支出也就是按照相关条件在单链表中进行查找与修改运算而已,故此程序的主要算法都不难。
3 概要设计
3.1 数据结构
该课程设计的数据结构是线性的数据存储结构,采用的是单链表类型的存储结构。
3.2 逻辑结构与物理结构
该存储结构是链式存储结构,所以就不像顺序存储结构那样逻辑结构与物理结构相对应都是线性的,元素在物理结构中的相对位置来表示数据元素之间的逻辑关系。作为非顺序存储结构(链式存储结构)是借助指示元素物理结构中的存储地址的指针来表示数据之间的逻辑关系的。
3.3 功能模块划分
3.3.1 结构框图
图 3.3.1 程序的总体设计图
3.3.2模块功能分析及其外部设计
开户模块主要是输入需要开户的姓名,然后建立开户账号,提醒输入账号密码。
销户模块则是输入需要销户的账号及其密码,然后从系统中销去些账号的相关记录。
同样存款是根据提醒输入需要登录的账号,然后再输入其密码,之后就可以查看其账号上的相关资料。
取款则是要求登录需要存入及其支出的账号,然后对该账号进行相关的存入及支出。
程序的外部设计主要是通过编写一个菜单功能来实现各个模块功能的调用,从而更好的协调各个模块功能之间的关系,同时还要编写一段代码来实现所有数据更改后将其写入文件中,实现数据的及时更新,维护数据的正确性。
3.4 抽象数据类定义
typedef struct ElemType
{
char name[8];
int account;
char password[6];
float money;
}ElemType;
4 详细设计
4.1数据类型定义
首先将活期储蓄账目这个数据抽象定义为数据类型ElemType,其中包括账户号码account,姓名name及其账号密码password,还有账号上的金额 money 。然后再将其链式存储结构中的结构类型定义为刚刚说的抽象类型,如下:
typedef struct lnode
{
ElemType data;
struct lnode *next;
}LINK;
4.2 主要模块内部设计
4.2.1储户开户模块
储户输入要想开户的储户输入其姓名及其开户账号的密码,然后显示开户成功,则开户就成功了。
图 4.2.1 储户开户模块图
4.2.2 储户销户模块
储户输入需要销户的账号,然后程序自动判断该账号是否存在,然后输入账号密码,若账号与密码相对应,则删除该账号。
图 4.2.2 储户销户模块分析图
4.2.3 储户登录模块
图 4.2.3 账号登录模块分析
4.2.4 储户的存入及其支出模块
储户的存取款,首先在登录账户的基础上,选择存或者取款,然后输入相应的金额,若是取款应判断其金额是否小于账户上的金额,如果不小于,则提示储户重新输入相应的金额,或者退出。
图 4.2.4 储户存入及支出模块分析
5 实现调试与分析
5.1 实现环境
该课程设计中程序的实现环境是VISUAL C++ 6.0 。
5.2 语言选择
本课程设计选用的语言是C语言。
5.3 调试分析
经过调试分析解决了程序在储户开户过程中关于储户的账号问题,以至于账号不会出现重复等问题。同时在调试过程中还遇到了在登录账号后,对账号中选择相应的存款、取款功能时,如果输入与要求不一致可能导致程序直接结束,这就导致了程序更改的数据没有写入文件中,这种无理退出也在程序的调试中给解决了。
6 测试分析
6.1 测试用例
首先进入VC++6.0,然后进入源程序,接着选择debug文件夹下的1-2-3.exe文件即可运行程序。
图 6.1 菜单界面
从图6.1可以看出程序进入到了活期储蓄账目管理的菜单界面,并且要求你选择相应的功能,当我选择功能1时:
图 6.2 储户开户
从图6.2可以知道选择功能1后,要求输入开户姓名,输入后则自动输出账号,并要求我输入账号的密码,按要求输入后,就显示开户成功。说明开户成功了。再选择功能4 就返回菜单了。然后我再选择功能2:
图 6.3 储户销户
从图6.3可以看出再选择功能2后,就进入储户销户模式,输入要销户的账号及其密码,当显示账号销户成功则表明储户销户成功了。同样返回主菜单,再选择功能3:
图 6.4 账号存取款及查询金额
从图6.4可以看出程序实现了登录账号存款以及取款的功能,并且还可以查询金额,也同时更新了账户内金额的信息。然后就退出了账号。返回主菜单选择相应的功能5进行测试:
图 6.5 账户相应信息
从图6.5中可以看出该功能也完成了。
6.2 测试结果
从6.1测试用例中,可以看出该程序实现了程序的各个模块的功能,同时也解决了程序在调试与分析过程中遇到的各种问题。总之这个程序的各个模块的功能的测试结果合格。
6.3 性能分析
该程序能够迅速的进行储户开户以及销户等各项操作,同时程序在储户取款以及存款过程都详尽的描述了各种操作提示,也解决了程序在不按要求输入时可能造成的情况进行了适当的处理。可见此课程设计的性能较好。
结 论
通过本次活期储蓄管理课程设计,实现了储蓄账目的存储及其管理。能比较迅速地找到储户的账户,以实现存款、取款记账。同时也能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。
本课程设计的与众不同的地方就在于处理了用户不按要求输入造成程序出错的问题进行了有效的处理,不会造成该系统的崩溃。还有就是在于文件应用方面,虽然以前没有做过关于文件方面的课程设计,但是经过自己自行复习了文件方面相应的知识,也把文件应运得很好。
本课程设计还未完成之前还存在一些小问题,那就是程序再进行存储进文件时,出现了一些问题,经过修改和完善,终于解决了这个小问题,使用户操作的结果都存储到文件中去了,保证了文件存储的数据的有效性。
致 谢
感谢在这次课程设计中给予指导的高志升老师,没有高老师的指导与讲解,跟本不可能在这么短的时间内完这个课程设计。同时也感谢在所有给予我支持和帮助的同学,在这里忠心的感谢他们。
参考文献
[1]杨宝刚.开展企业管理信息化工作的步骤[J].企业管理.2002.(11).12~15
[2]Islamabad. Software tools for forgery detection[J]. Business line.2001. (5). 29~32
[3] 严蔚敏.吴伟民编著数据结构(C语言版).清华大学出版社[J].1997.4 IN 7-302-02368-9
[4] 数据结构教程(C语言版)/李春葆,金晶编著.清华大学出版社[J].2006.11 ISBN 7-302-14054-5