程序设计基础课程设计银行账户管理系统的基本功能模拟.docx
《程序设计基础课程设计银行账户管理系统的基本功能模拟.docx》由会员分享,可在线阅读,更多相关《程序设计基础课程设计银行账户管理系统的基本功能模拟.docx(17页珍藏版)》请在冰豆网上搜索。
程序设计基础课程设计银行账户管理系统的基本功能模拟
程序设计基础课程设计--银行账户管理系统的基本功能模拟
长沙学院
课程设计说明书
题目
银行账户管理系统的基本功能模拟
系(部)
计算机科学与技术系
专业(班级)
软件工程(12软件10班)
姓名
覃浩然
学号
2012022A21
指导教师
曽尖
起止日期
2013.1.10~2013.1.12
课程设计任务书
课程名称:
程序设计基础课程设计
设计题目:
银行账户管理系统的基本功能模拟、手机软件通讯录模块的功能模拟(任选一题)
已知技术参数和设计要求:
需求说明及要求
题目一:
银行账户管理系统的基本功能模拟
银行银行账户管理系统的基本功能业务描述如下:
银行系统一般由三个部分组成,ATM机、前台的柜台系统和后台数据服务的系统。
后台服务系统管理着储户的账号、密码、余额和姓名等信息,而前台系统和ATM机为用户使用这些功能提供了接口。
一般而言,用户使用银行系统时使用的功能为:
开户注册(一般在柜台)、销户、取款、存款、转账、查询余额、修改密码等等。
本题假设所有上述功能都在ATM机上实现,为了模拟真实的ATM业务环境,本系统必须实现开户注册(一般在柜台)、销户、取款、存款、转账、查询余额、修改密码的功能。
用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登陆ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。
本系统各个业务有如下注意点:
(1)登陆系统
用户登陆之前,必须在登陆界面输入其银行账户,通过其正确输入的银行账户登陆系统。
(2)开户业务
要使用本系统必须首先执行开户业务开立新的银行账户,并且将此新开的银行存储于文件当中。
同时,系统以身份证号码作为开户的充分条件,即一个身份证号码只能开立一次银行账户。
(3)存款业务
客户登陆系统后,选择存款业务,即可以将输入的存款金额存入相应的账户。
(4)取款业务
客户登陆系统后,选择取款业务,即可以将输入的取款金额从相应的银行账户取出,但是取款金额必须大于目前的账户余额。
(5)查询业务
客户登陆系统后,可以选择查询业务,查询账户余额。
(6)转账业务
客户登陆系统后,可以选择转账业务,进行转账。
注意的是转账的目的账户必须是本系统已经存在的银行账户。
(7)修改密码
客户登陆系统后,可以选择修改密码业务,进行密码修改。
设计要求:
为控制实现难度,本系统可以使用结构数组完成。
除上述功能外,应该对用户的信息中的一项进行排序(如将余额按照从高到低的顺序排序)。
题目二:
手机软件通讯录模块的功能模拟
手机软件通讯录模块的功能的业务描述如下:
通信录必须为用户提供联系人管理、系统管理和帮助三个部分。
通讯录管理包括联系人信息录入、联系人信息修改、联系人信息删除和联系人信息查询的功能,在此基础上可以设置联系人分组;系统管理包括密码修改、分组配置;帮助需要为用户提供系统的操作帮助。
联系人的信息应该包括:
联系人姓名、联系人电话号码、联系人地址。
本系统各个业务有如下注意点:
(1)登陆系统
用户在登陆界面输入用户名和密码,校验正确后可以登陆系统。
(2)联系人管理
新增的联系人信息保存至文件,之后对联系人信息的管理都是对文件中的联系人信息进行处理,并且可以将联系人信息进行分组。
(3)系统管理
可以在密码修改中修改本用户的密码;可以在此功能中配置系统需要的分组名,并且将分组名保存到文件中。
(4)帮助
帮助业务需要为用户提供系统的操作帮助。
设计要求:
为控制实现难度,本系统可以使用结构数组(数组长度为500)完成。
除上述功能外,应该对用户的信息中的一项进行排序(如将联系人的电话号码进行排序)。
各阶段具体要求:
1、需求分析阶段
熟悉系统业务,从业务中抽取出系统的需求,形成完善的需求说明书。
2、系统设计阶段
根据需求,进行程序设计,包括定义系统的界面、定义系统数据的存储方式等,形成完善的设计说明书。
3、编码实现阶段
(1)完成代码编写
(2)要求代码编写规范
4、系统测试阶段
(1)完成功能调试
(2)要求完成必要的测试工作
5、交付实施阶段
(1)提交可正常执行的系统
(2)提交系统需求说明书、设计说明书、程序代码
(3)撰写课程设计报告书
(4)要求规范地书写文档
设计工作量:
(1)软件设计:
完成问题陈述中所提到的所有需求功能。
(2)论文:
要求撰写不少于3000个文字的文档,详细说明各阶段具体要求。
工作计划:
软件开发进度如下,论文同步进行;
1.选定题目(2课时)
2.需求分析(2课时)
3.概要设计(2课时)
4.详细设计(2课时)
5.编码实现(8课时)
6.系统测试(1课时)
7.模拟实施(1课时)
8.答辩(2课时)
注意事项
⏹提交文档
Ø长沙学院课程设计任务书(每学生1份)
Ø长沙学院课程设计论文(每学生1份)
Ø长沙学院课程设计鉴定表(每学生1份)
指导教师签名:
日期:
教研室主任签名:
日期:
系主任签名:
日期:
长沙学院课程设计鉴定表
姓名
覃浩然
学号
2012022A21
专业
软件工程
班级
12软件10班
设计题目
银行账户管理系统的基本功能模拟
指导教师
曽尖
指导教师意见:
评定等级:
教师签名:
日期:
答辩小组意见:
评定等级:
答辩小组长签名:
日期:
教研室意见:
教研室主任签名:
日期:
系(部)意见:
系主任签名:
日期:
说明
课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;
摘要
本部分为对课程设计说明书内容的简短陈述,字数要求在100~300字之间。
下面的关键词部分为反映设计说明书主题内容的通用技术词汇,且一定要在摘要中出现。
一般为3~5个左右,按词条的外延层次排列(外延大的排在前面),本部分的字体为宋体,5号,行距18磅XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX。
(此处空一行,不要删除空行)
关键字:
判题,记分,分离
1.需求分析
1.1开发平台介绍
VisualC++6.0由Microsoft开发,它不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。
VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。
这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。
Microsoft的主力软件产品。
VisualC++是一个功能强大的可视化软件开发工具。
自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。
虽然微软公司推出了VisualC++.NET(VisualC++7.0),但它的应用的很大的局限性,只适用于Windows2000,WindowsXP和WindowsNT4.0。
所以实际中,更多的是以VisualC++6.0为平台。
VisualC++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。
比如,它允许用户进行远程调试,单步执行等。
还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。
其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。
这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著
1.2题目描叙
银行系统一般由三个部分组成,ATM机、前台的柜台系统和后台数据服务的系统。
后台服务系统管理着储户的账号、密码、余额和姓名等信息,而前台系统和ATM机为用户使用这些功能提供了接口。
一般而言,用户使用银行系统时使用的功能为:
开户注册(一般在柜台)、销户、取款、存款、转账、查询余额、修改密码等等。
本题假设所有上述功能都在ATM机上实现,为了模拟真实的ATM业务环境,本系统必须实现开户注册(一般在柜台)、销户、取款、存款、转账、查询余额、修改密码的功能。
用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登陆ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。
1.3需求分析
1.3.1开户
1.输入的数据需要有:
卡号,密码,户名,性别,身份证号,开户金额。
2.卡号长度为19位,密码长度为6位,性别只能为男或女。
3.一个身份证只能开一个户。
4.开户金额最少1元。
1.3.2存款
1.3.3存款
1.3.4存款
1.3.5存款
1.3.6存款
1.3.7存款
1.3.8存款
1.3.9存款
2.总体设计
2.1设计总体思想
说明模块化设计思想
2.2系统整体模块
(画出模块结构图,如下所示)依据需求分析,设计如下一个模块结构图,如下图示例:
ATM系统
开户
储蓄业务
退出
登录
存款
…
…
图2.1系统模块(图的标注,使用仿宋,5号,居中)
2.3模块说明
2.3.1开户模块
(2.3节,分小节对模块结构图中的每个模块的功能进行说明)该模块通过输入卡号、密码、户名、身份证…………信息,开立账户,将账户存储于XX中
2.3.2储蓄业务模块
该模块首先通过调用登录模块,进入系统,然后可以调度登录,存款,取款……模块。
2.3.3存款模块
该模块通过输入存款金额,将钱存入登录后的账户……………………。
2.3.4XXX模块
从数据库中取出用户的信息,用列表的方式显示出来。
2.3.5XXX模块
从数据库中取出用户的信息,用列表的方式显示出来。
2.3.6XXX模块
从数据库中取出用户的信息,用列表的方式显示出来。
2.3.7XXX模块
从数据库中取出用户的信息,用列表的方式显示出来。
2.3.8XXX模块
从数据库中取出用户的信息,用列表的方式显示出来。
2.3.9XXX模块
从数据库中取出用户的信息,用列表的方式显示出来。
2.3.10XXX模块
从数据库中取出用户的信息,用列表的方式显示出来。
2.3.11XXX模块
从数据库中取出用户的信息,用列表的方式显示出来。
3.详细设计
3.1主流程设计
ATM系统的总体流程图如下:
(注意,以下示例只是本老师的程序的设计,你们根据自己的设计编写)
开始
显示系统主菜单
选择开户?
选择储蓄业务?
退出?
Y
N
开户
储蓄业务
Y
N
提示错误
N
Y
退出
图3.1ATM系统总体流程图
程序启动时,显示系统主菜单,包含开户、储蓄业务、退出,三个菜单项。
选择开户时,则进入开户模块中,选择储蓄业务时,则进入储蓄业务中,选择退出,则退出该系统,否则,提示错误。
在系统未退出情况下,在选择的各模块结束后,则仍然返回系统主菜单。
附上代码:
3.2储蓄业务模块设计
图3.2储蓄业务模块设计
(如何描述流程图,参考主流程设计中的描述,但注意,在描述各处理时,需要进行详细描述)XXXXXXXXXXXXXX。
3.3开户模块设计
开户模块开始
开户模块结束
输入开户要素
检查输入元素合法性
生成账户信息
存入账户数据服务中
图3.3记录多选题结果
(如何描述流程图,参考主流程设计中的描述,但注意,在描述各处理时,需要进行详细描述,如:
输入开户要素时,要描述具体输入哪些开户要素,每个输入要素都要写出来。
在检查输入元素合法性时,要具体描述出检查的条件,如:
检查密码是否为6位,开户金额是否大于账户余额等,每个检查点都要用文字描述出来)XXXXXXXXXXXXXX
3.4登录模块设计
(详细设计中,每个模块的设计包含3部分:
流程图,流程图的说明,代码)XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3.5存款模块设计
(详细设计中,每个模块的设计包含3部分:
流程图,流程图的说明,代码)XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3.6取款模块设计
(详细设计中,每个模块的设计包含3部分:
流程图,流程图的说明,代码)XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3.7转账模块设计
(详细设计中,每个模块的设计包含3部分:
流程图,流程图的说明,代码)XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3.8查询账户模块设计
(详细设计中,每个模块的设计包含3部分:
流程图,流程图的说明,代码)XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3.9修改密码模块设计
(详细设计中,每个模块的设计包含3部分:
流程图,流程图的说明,代码)XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3.10销户模块设计
(详细设计中,每个模块的设计包含3部分:
流程图,流程图的说明,代码)XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3.11退卡模块设计
(详细设计中,每个模块的设计包含3部分:
流程图,流程图的说明,代码)XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
4.测试
4.1开户测试
每个测试模块,分为2部分,测试用例的描述,和测试图片的展示。
用例描述如下(注意每个表上面有标注,如:
图4.1 XX功能测试用例。
此处字体为黑体,5号,居中):
表4.1XX(如存款)功能测试用例
测试功能(这里填功能名称(如存款))
描述
对本次测试进行描述
用例编号
001(按序编号)
测试日期
2013-1-12
测试者
你自己的名字
输入数据
输入哪些要素
预期输出
预期结点
测试结果
实际结果
原因分析
测试未通过的原因分析
然后截出程序测试时的图片附上
图4.1存款模块测试
4.2登录测试
4.3存款测试
每个测试模块,分为2部分,测试用例的描述,和测试图片的展示。
用例描述如下(注意每个表上面有标注,如:
图4.1 XX功能测试用例。
此处字体为黑体,5号,居中):
表4.1XX(如存款)功能测试用例
测试功能(这里填功能名称(如存款))
描述
对本次测试进行描述
用例编号
001(按序编号)
测试日期
2013-1-12
测试者
你自己的名字
输入数据
输入哪些要素
预期输出
预期结点
测试结果
实际结果
原因分析
测试未通过的原因分析
然后截出程序测试时的图片附上
图4.1存款模块测试
4.4取款测试
4.5转账测试
4.6查询账户测试
4.7修改密码测试
4.8退卡测试
4.9销户测试
小结
(字体,宋体,5号,行距,18磅,首行缩进2字符),写出自己的所得,所想等为期两个礼拜的Android课程设计已渐远去,带着对这次课程设计的些许记忆,我开始写这篇文章,为了自己以后能从中汲取经验、也为自己的留下珍贵的回忆,哪怕是微不足道而写下了这篇小结。
首先,让我的记忆追溯到10天以前,在周老师的指引下,我选择测验系统这一题目。
那个时候我并没有觉得我能很快做完,因为我对上机这块平时做的并不是很好,很多时候都是混过关的,也不知Android布局和结构什么的,反正脑子里一片混乱。
但是我还是铁了心,我觉得我一定能够很快做出来的,因为我坚信只要我努力,我会做好的。
于是我开始在脑子里构思、开始在心里建模。
我是一个好胜心很强的人,只要在追求胜利的途中,我就一定会奋斗到底。
在和同学们的积极讨论中,我的课程设计开始有了个雏形。
就这样我开始着手写我的代码了,可是对于很多语法语句,我有点记不清楚,这无疑加大了课程设计的难度,但我相信一切困难都是纸老虎,没有我过不去的坎。
于是我就把我的课本摆在我面前,哪句不记得了就翻书,哪里运行出现了错误我就回忆上机时的情景、或者是上网查找或者是打电话问老师和同学。
我记得Java字符串比对的问题我用了很久才调试出来Java的问题,我很是兴奋,因为我在平时上机的时候,对这方面的内容不熟,上课的时候也没听什么。
自己能够独立做出来,我觉得我做得不错。
通过自己不断的努力和讨索,我基本搞清楚理论方面的一些东西,具体怎么用比较清楚。
解决了一些自己的认为比较难的地方后我又继续朝前行进着,我相信在下面的过程中我会越做越顺的。
课程设计终于在我的努力下做完了。
这个时候我更加深入的了解了Java的特点以及一些相关知识。
与其临渊羡鱼,不如退而结网。
这次Android课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。
如果你连失败都不怕了,那你还怕什么,拾起懒惰的心,勤奋着就会走向成功斩。
这次的课程设计在我未来的时日里,是一个标杆,因为它告诉了我,只要我努力没有什么事我做不好的。
参考文献
[1]肖波安,刘华富著.C语言项目化实践教程.复旦大学出版社,2012
[2]肖波安,刘华富著.C语言项目化实践教程.复旦大学出版社,2012
附录
附上所有的代码.每个代码文件要有说明及代码的注释,如:
(字体宋体,5号,行距18磅)
/*
*文件名:
OpenAccount.c
*说明:
开户
*/
IntOpenAccount()
{
/*Code*/
}