C语言课程设计报告(银行账户信息管理系统)更正版.docx
《C语言课程设计报告(银行账户信息管理系统)更正版.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告(银行账户信息管理系统)更正版.docx(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 银行账户信息管理 HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYC语言程序设计课程设计报告课设题目: 银行账户信息管理 专 业: 电子信息工程(汽车电子) 班 级: T1223-14 姓 名: 朱鹏 成 绩: 完成日期: 2013年18周2013年19周 指导教师: 张吴波 田漫柳 目录C语言程序设计0课程设计报告0目录11.课程设计目的22.需求分析22.1 要求22.2任务描述32.3运行环境42.4开发工具43.总体设计43.1系统流设计43.2系统模块设计54.详细设计64.1数据结构设计64.2 模块接口设计74.3主要功能模块的流程图95.运行
2、结果145.1 欢迎界面145.2 主菜单145.3 次菜单-信息输入界面155.4 信息查询界面155.5记录查询界面165.6退出界面166.程序调试与测试176.1 主菜单选择测试176.2 次菜单选择测试176.3客户信息的输入测试186.4客户密码测试206.5存取款金额测试216.6存取款日期测试227.问题与不足238.建议239.编程体会2410.程序源代码2511.参考文献4212.用户使用手册4212.1 程序主要用途4212.2使用说明4212.3注意事项4312.4维护与升级431.课程设计目的1) 通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并
3、设计合理的模块化结构。2) 通过课程设计,进一步掌握C语言中重要的数据结构。掌握并熟练运用指针、链表、结构体、文件等数据结构。3) 通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。4) 通过课程设计,培养C语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。5) 通过课程设计,加强了自己的程序分析能力。2.需求分析2.1 要求1) 遵循软件开发过程的基本规范;能灵活应用,初步具备运用C程序解决实际问题的能力。2) 运用结构化程序设计方法,按照课程设计题目要求,完成包括需求分析、数据结构设计、概要设计、详细设计
4、、编写代码、调试和测试C程序等过程。3) 学会利用数组、结构体、链表进行相关信息表示。4) 功能模块划分清晰,系统结构图符合功能操作要求,且有详尽的功能描述5) 各主要功能模块有详尽的流程图及描述,用函数的形式实现,且调用入口、功能、出口等关系正确。6) 所设计的C程序较好的可读性和可靠性;程序书写风格规范,注释清晰。7) 界面友好(良好的人机互交),凡需要输入信息时,都有较详尽的提示信息,并对输入信息有较完善的值域分析。8) 程序经上机调试通过,不应出现语法型、功能型错误,并获得满意的结果。9) 学会通过各功能性测试用例测试程序的能力,尽可能避免原则性错误的出现。10) 掌握编写、调试和测试
5、C语言程序的基本技巧,充分理解结构化程序设计的基本方法。11) C语言课程设计报告的内容反应实际设计过程,且符合格式要求,无抄袭现象。2.2任务描述已知一银行有5个客户(客户信息为:编号、客户姓名、客户地址、客户电话、账户总金额(最开始为0)。设计一程序,完成以下功能。存、取款时间必须通过调用系统时间获得。1) 存款:输入客户编号、存款金额、存款日期,完成存款功能,需要判断客户编号是否存在,存款金额是否大于0,存款日期格式是否合法(格式为:YYYY-MM-DD,如2009-01-02)。2) 取款:输入客户编号、存款金额、取款日期,完成取款功能,需要判断客户编号是否存在,取款金额是否大于0,取
6、款金额是否小于客户的账户总金额,取款日期格式是否合法(格式为:YYYY-MM-DD,如2009-01-02)。3) 查询指定客户的余额4) 查询指定客户的存款记录5) 查询指定客户的取款记录6) 所有数据符合实际应用要求2.3运行环境1) Windows 7系统2) VC+6.0编译环境2.4开发工具C语言3.总体设计3.1系统流设计程序整体功能结构如图一所示:开始初始化并显示欢迎信息显示主菜单,输入选择存款取款余额查询存款记录查询取款记录查询显示输入菜单,输入并显示用户信息存取款?输入存取金额,日期,存取款是3.2系统模块设计1) 系统初始化模块 函数void startvalue();实现
7、初始化欢迎信息,并实现值得初始化。2) 菜单模块 函数int menu();和int menu2();分别实现一级二级菜单显示,一级菜单是主菜单,二级菜单是输入菜单,并返回相应的选项值。3) 存取款模块 函数void Deposit_Withdraw();实现存取款的功能,其中会使用相关其他函数共同实现。4) 信息查询模块 函数int InfoFind();实现信息的查询功能,包括账户余额查询,存取款历史记录查询。5) 日期审查模块 函数int isDataRight();实现对日期的审查,其中同样会调用其他函数辅助实现。4.详细设计4.1数据结构设计根据系统要求,用户信息包括:数据项名称数据
8、项系统表示数据类型数据长度备注客户编号P1-id整型8客户姓名P1-name字符串10客户地址P1-address字符串1024客户电话P1-telnum整型8账户余额P1-account双精度16账户密码P1-password整型8根据系统要求,日期信息包括:数据项名称数据项系统表示数据类型数据长度备注年P1-year整型8月P1-month整型8日P1-day整型8时P1-hour整型8系统自动添加分P1-min整型8系统自动添加秒P1-sec整型8系统自动添加根据系统要求,存取款记录包括:数据项名称数据项系统表示数据类型数据长度备注客户编号P1-id整型8日期信息P1- InOutDat
9、a结构体48存取款类型P1- ActionClass整型8存取款金额P1- ActionNum双精度16为了能实现系统的优越性和c语言的精华采用链表的建立取款记录表,示意图如下。 存取款记录1存取款记录22通讯录信息1221存取款记录3存取款记录44.2 模块接口设计1)所有函数声明/初始化void startvalue();/头部信息void SysTitle();/一级菜单int menu();/二级菜单int menu2( int InfoClass );/输入函数void InPut(char *cbox,int *ibox,double * money,int InPutClass,
10、char *boxname);/*日期时间相关函数*/将字符型的日期转换为整型,并分离出年月日void Char2Int ( char *DataIn,int *YearOut,int *MonthOut,int *DayOut);/判断是否为闰年int leap(int year);/计算某年某月的天数int month_days(int year,int month);/计算若干年的总天数unsigned int yearsdays(int toyear);/计算某个月的总天数int days(int year,int month);/日期换算为秒,用于排序unsigned int Dat
11、a2Sec( USEDATA * DataIn );/判断日期逻辑是否正确int isDataNumRight(int YearIn,int MonthIn,int DayIn);/判断日期是否正确int isDataRight(char *DataIn,int *YearOut,int *MonthOut,int *DayOut);/调用系统时间,给结日期结构体添加时间void systime(USEDATA * Data4Time);/客户编号验证int isIDexist(int IDin);/*存款、取款、查询相关函数*/存取款void Deposit_Withdraw(int Act
12、Class );/信息查询int InfoFind( int ActClass , int InfoClass );/寻找插入点RECORDS * InPoint();/将存取款记录按照日期排序void toorder();/增加存取款记录int InOut(int IDin,double ActNum, USEDATA * ActData, int ActClass);/ID、姓名、地址、电话查询结构体数组idint Find(int IDin,char *NameIn,char *AddressIn,int TelNumIn);/存取款记录和余额查询并输出int FindOutPut( i
13、nt IDin,char * NameIn, char * AddressIn, int TelNumIn, int actclass );/退出void exit0();2)全局变量1、用于存储正确的日期信息的结构体USEDATA RightData;2、用于存储客户信息的结构体数组CUSTOM customer5;3、用于存储存取款记录的链表的指针RECORDS *head=NULL,*p1=NULL,*p2=NULL;3)主要模块的实现系统以 int main()为入口,首先调用void startvalue()函数进行初始化,并显示欢迎信息。接着,按照用户的要求,调用void Depo
14、sit_Withdraw()函数进行存取款的操作,或者调用int InfoFind()函数进行信息的查询。不管还是存取款还是信息查询,都需要调用void InPut()函数进行输入信息的输入。存取款功能还会调用日期审查函数int isDataRight()对日期进行审查。通过审查之后,会调用int InOut()函数添加存取款记录,并修改账户余额。最后调用void exit0()函数退出。4.3主要功能模块的流程图1) 系统初始化模块 显示欢迎信息给系统初始化值进入系统 2) 菜单模块 显示主菜单接受用户输入选项合法?显示次菜单是否为6接受用户输入选项合法?执行相应功能是否为0是是否否是否否执
15、行退出函数3) 存取款模块 输入存取款人的信息显示存取款人的信息输入密码正确?输入存取款金额合法?输入存取款日期合法?新增记录,修改账户余额返回主菜单显示?是是是是否否否否显示存取款人的信息 4) 信息查询模块输入被查询人的信息将输入的信息转换为数组idId存在?输入密码正确?是否是否为余额?显示被查询人的余额显示被查询人的记录否是返回是否 5) 日期审查模块 输入日期长度为10?第5位和第8位是-?提取字符串中的数值,分离出年,月,日根据年,月,日判断日期逻辑是否正确正确?返回0返回1是是是否否否5.运行结果5.1 欢迎界面5.2 主菜单5.3 次菜单-信息输入界面5.4 信息查询界面5.5
16、记录查询界面5.6退出界面6.程序调试与测试测试数据:客户编号客户姓名客户地址客户电话账户余额账户密码1唐僧东土大唐88888880100000088888882孙悟空花果山8888888110000088888883猪八戒高老庄888888821000088888884沙和尚流沙河88888883100088888885佛祖西天8888888410000000088888886.1 主菜单选择测试若用户输入错误选项,则如图显示:6.2 次菜单选择测试若用户输入错误选项,则如图显示:6.3客户信息的输入测试1)若输入了不存在的客户编号:2)若输入了不存在的客户姓名:3)若输入了不存在的客户地址
17、:4)若输入了不存在的客户电话:6.4客户密码测试1)密码输入错误:2)密码错误三次:6.5存取款金额测试1)金额为负值:2)取款金额大于账户余额:6.6存取款日期测试1)若输入错误格式的日期:2)若输入正确格式的日期,但是日期不符合实际:7.问题与不足1、需求分析中存在的为题题目中说只有5个用户,而且没有对账户信息进行修改等操作,如果对账户信息的增删改三个功能,程序会更加完美。2、程序设计中的缺陷存取款的时候,给系统添加记录的时候,会同时进行排序,排序方法用的是排序,排序方法比较简陋,数据量较大的时候会比较耗时间。8.建议课程设计的题目涉及范围应该更广。对于课设的时间按排,可以提前把题目给学
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 银行 账户 信息管理 系统 正版
限制150内