帐目管理系统的设计与实现_第1页
帐目管理系统的设计与实现_第2页
帐目管理系统的设计与实现_第3页
帐目管理系统的设计与实现_第4页
帐目管理系统的设计与实现_第5页
已阅读5页,还剩54页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1目录一 设计要求 2二 设计作用与目的 2三 运行环境及工具软件 23.1 硬件环境 33.2 软件环境 3四 系统设计 34.1 系统总体设计 34.2 程序设计组成框图、流程图 34.3 各模块具体设计 54.3.1 主函数模块设计 54.3.2 创建函数模块 64.3.3 查看函数模块 84.3.4 开户函数模块 84.3.5 销户函数模块 104.3.6 修改帐目函数模块 114.3.7 查询函数模块 12五 源程序设计 14六 实验调试结果 26七 设计中的问题及解决方法 29八 设计心得 29九 参考文献 302帐目管理系统的设计与实现一、 设计要求此处的账目管理是整个银行业务中的一小部分,主要包括借款、还款、存款业务。同时,通过帐目管理系统的设计,运用计算机软件软件基础所学的知识,提高编程兴趣与编程思路,合理的运用资料,实现理论与实际相结合。(1)为了管理账户,设置两个单链表:一是账户基本信息,包括账户的账号、姓名、身份证号、建账日期等信息;另一个是账户余额,包括账户的账号和当前余额两项数据。(2)本程序能够执行账户的开户、借款、还款、存款、清户(删除)等操作,而且能够实现对账户信息的查询统计功能、按借款户的余额从大到小排序功能、按存款户的余额从大到小排序功能和按开户日期从小到大排序功能等。(3)开新户时,用户只输入姓名、身份证号、金额、日期四个数据,由程序自动生成帐号并通知用户,并将相关数据同时插入上述两个链表中;(4)余额为负数表示借款额,为正数表示存款额。(5)能够按账号查询账户的基本信息和当前余额,能够列出最大借款额账户和最大存款额账户的基本信息和当前余额。(6)程序能够统计当前帐户个数,当前借款总额、当前还款总额以及借款总额与存款总额的差额。(7)收集资料,全面分析课题,分解问题,形成总体编程思路;(8)深入分析各个小问题,编写各部分程序模块;(9)对于设计中用到的关键函数,要联系问题进行具体介绍;(10)上机调试,确保程序能正确运行,完成设计报告,并进行答辩。二、设计作用与目的(1)通过设计,强化 C 语言的运用及 C 语句的准确掌握;(2)通过设计,加强我们对计算机软件软件基础知识的理解和运用;(3)通过设计,掌握设计软件一般方法,了解软件设计的一般思路;(4)通过设计,锻炼撰写报告的水平。3三、运行环境及工具软件3.1 硬件环境设备:采用 Intel 应用服务器运行时内存要求:1MB;安装所需硬盘:2MB;3.2 软件环境操作系统:Windows 2000/XPista工具软件:MyTC四、系统设计4.1 系统总体设计此银行帐目管理系统包括六个模块,分别为创建一个空账目、显示账目信息、添加新账目、删除账目信息、修改账目信息、查找所需账目信息。其中添加新账目包含姓名、身份证号、金额、日期四个数据的输入。修改账目信息还包含了借款、存款、取款功能。查询功能包含查询所存有的账户个数、查询最大存款户、查询最大借款户。功能模块图如图 1 所示。创建空账目银行帐目管理系统查找账目添加账目姓名显示账目信息金额身份证号码日期存款借款取款图 1 银行帐目管理系统模块图删除账目账户个数最大借款户最大存款户修改账目44.2 程序设计组成框图、流程图5开始功能选择进行显示账目进行修改账目进行删除账目进行添加账目初始界面创建新号显示账目添加账目删除账目修改账目查询账目结束退出系统进行创建新号进行查询账目NNNNNN NYYYYYYY 图 2 主程序流程图, 帐目管理系统的设计与实现操作流程64.3 各模块具体设计本程序按要求设计一个账目管理系统,编译器为:myTC。程序源文件名为zhangmu.c。程序入口为 main()函数:先由 fopen()函数创建一个存储账目信息的文档:fopen(“D:account.txt“,“r+“);由于进行的“r+“操作,首先在 D 盘创建一个account.txt 文件。4.3.1 主函数模块设计主函数用到函数为:fopen(打开文件) 相关函数 open,fclose表头文件 #include定义函数 FILE * fopen(const char * path,const char * mode);函数说明 参数 path 字符串包含欲打开的文件路径及文件名,参数 mode 字符串则代表着流形态。mode 有下列几种形态字符串:r 打开只读文件,该文件必须存在。r+ 打开可读写的文件,该文件必须存在。w 打开只写文件,若文件存在则文件长度清为 0,即该文件内容会消失。若文件不存在则建立该文件。w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。由于 Dos 窗口显示有限,所以限制账目数量为 15 个。7本程序包含 6 大功能模块:0- 创建一个空账目;1- 显示账目信息;2- 添加新账目;3- 删除账目信息;4- 修改账目信息;5- 查找所需账目信息;6- 推出程序;为了管理账户,设置两个单链表:一是账户基本信息,包括账户的账号、姓名、身份证号、建账日期等信息;另一个是账户余额,包括账户的账号和当前余额两项数据。本程序只创建了一个单链表:struct bankdata /*定义一个结构体*/int num; /*账户的账号*/char name20; /*姓名*/char person_num19; /*身份证号*/float balance; /*金额*/int establishtime; /*日期*/所以在对账户的余额的操作功能上有教大的欠缺,日后定将进一步完善此项功能。4.3.2 创建函数模块0- create(FILE *ptr)/*创建具有结构体的空文档*/struct bankdata data=-1,“NONAME“,“NONUM“,0,0;对结构体进行初始化操作,即创建一个空账目。for(num=0;num定义函数 int fseek(FILE * stream,long offset,int whence);8函数说明 fseek()用来移动文件流的读写位置。参数 stream 为已打开的文件指针,参数 offset 为根据参数 whence 来移动读写位置的位移数。参数 whence 为下列其中一种:SEEK_SET 从距文件开头 offset 位移量为新的读写位置。SEEK_CUR 以目前的读写位置往后增加 offset 个位移量。SEEK_END 将读写位置指向文件尾后再增加 offset 个位移量。当 whence 值为 SEEK_CUR 或 SEEK_END 时,参数 offset允许负值的出现。下列是较特别的使用方式:1) 欲将读写位置移动到文件开头时:fseek(FILE *stream,0,SEEK_SET);2) 欲将读写位置移动到文件尾时:fseek(FILE *stream,0,0SEEK_END);返回值 当调用成功时则返回 0,若有错误则返回-1,errno 会存放错误代码。附加说明 fseek()不像 lseek()会返回读写位置,因此必须使用ftell()来取得目前读写的位置。fwrite(将数据写至文件流) 相关函数 fopen,fread,fseek,fscanf表头文件 #include定义函数 size_t fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream);函数说明 fwrite()用来将数据写入文件流中。参数 stream 为已打开的文件指针,参数 ptr 指向欲写入的数据地址,总共写入的字符数以参数 size*nmemb 来决定。Fwrite()会返回实际9写入的 nmemb 数目。返回值 返回实际写入的 nmemb 数目。4.3.3 查看函数模块1- view(FILE *ptr)/*查看文档内容*/本功能模块用到的函数有:fseek (FILE * stream,long offset,int whence);fread(从文件流读取数据) 相关函数 fopen,fwrite,fseek,fscanf表头文件 #include定义函数 size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream);函数说明 fread()用来从文件流中读取数据。参数 stream 为已打开的文件指针,参数 ptr 指向欲存放读取进来的数据空间,读取的字符数以参数 size*nmemb 来决定。Fread()会返回实际读取到的 nmemb 数目,如果此值比参数 nmemb 来得小,则代表可能读到了文件尾或有错误发生,这时必须用 feof()或ferror()来决定发生什么情况。返回值 返回实际读取到的 nmemb 数目。4.3.4 开户函数模块2- add(FILE *ptr)/*添加一个帐目*/添加账目,输入用户操作,程序设计要求:开新户时,用户只输入姓名、身份证号、金额、日期四个数据,由程序自动生成帐号并通知用户,并将相关数据同时插入上述两个链表中;本程序账号由人工手动输入。其余项目也有人工输入。fseek(ptr,num*sizeof(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论