好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

帐目管理系统的设计与实现.doc

59页
  • 卖家[上传人]:cn****1
  • 文档编号:498043860
  • 上传时间:2022-08-31
  • 文档格式:DOC
  • 文档大小:345.50KB
  • / 59 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 目录 一 设计要求 …………………………………………………………… 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九 参考文献 …………………………………………………………… 30帐目管理系统的设计与实现一、 设计要求此处的账目管理是整个银行业务中的一小部分,主要包括借款、还款、存款业务。

      同时,通过帐目管理系统的设计,运用计算机软件软件基础所学的知识,提高编程兴趣与编程思路,合理的运用资料,实现理论与实际相结合1) 为了管理账户,设置两个单链表:一是账户基本信息,包括账户的账号、姓名、身份证号、建账日期等信息;另一个是账户余额,包括账户的账号和当前余额两项数据2) 本程序能够执行账户的开户、借款、还款、存款、清户(删除)等操作,而且能够实现对账户信息的查询统计功能、按借款户的余额从大到小排序功能、按存款户的余额从大到小排序功能和按开户日期从小到大排序功能等3) 开新户时,用户只输入姓名、身份证号、金额、日期四个数据,由程序自动生成帐号并通知用户,并将相关数据同时插入上述两个链表中;(4) 余额为负数表示借款额,为正数表示存款额5) 能够按账号查询账户的基本信息和当前余额,能够列出最大借款额账户和最大存款额账户的基本信息和当前余额6) 程序能够统计当前帐户个数,当前借款总额、当前还款总额以及借款总额与存款总额的差额7)收集资料,全面分析课题,分解问题,形成总体编程思路;(8)深入分析各个小问题,编写各部分程序模块;(9)对于设计中用到的关键函数,要联系问题进行具体介绍;(10)上机调试,确保程序能正确运行,完成设计报告,并进行答辩。

      二、设计作用与目的 (1)通过设计,强化C语言的运用及C语句的准确掌握; (2)通过设计,加强我们对计算机软件软件基础知识的理解和运用; (3)通过设计,掌握设计软件一般方法,了解软件设计的一般思路;(4)通过设计,锻炼撰写报告的水平三、运行环境及工具软件3.1 硬件环境设备:采用Intel 应用服务器运行时内存要求:1MB;安装所需硬盘:2MB;3.2 软件环境操作系统:Windows 2000/XPista工具软件:MyTC四、系统设计4.1 系统总体设计此银行帐目管理系统包括六个模块,分别为创建一个空账目、显示账目信息、添加新账目、删除账目信息、修改账目信息、查找所需账目信息其中添加新账目包含姓名、身份证号、金额、日期四个数据的输入修改账目信息还包含了借款、存款、取款功能查询功能包含查询所存有的账户个数、查询最大存款户、查询最大借款户功能模块图如图1所示 银行帐目管理系统删除账目显示账目信息创建空账目查找账目修改账目添加账目姓名最大存款户账户个数取款存款借款最大借款户日期金额身份证号码图1银行帐目管理系统模块图4.2 程序设计组成框图、流程图开始功能选择进行显示账目进行修改账目进行删除账目进行添加账目初始界面创建新号显示账目添加账目删除账目修改账目查询账目结束退出系统进行创建新号进行查询账目NNNNNNNYYYYYYY图2 主程序流程图,《帐目管理系统的设计与实现》操作流程 4.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个本程序包含6大功能模块:0- 创建一个空账目;1- 显示账目信息;2- 添加新账目;3- 删除账目信息;4- 修改账目信息;5- 查找所需账目信息;6- 推出程序;为了管理账户,设置两个单链表:一是账户基本信息,包括账户的账号、姓名、身份证号、建账日期等信息;另一个是账户余额,包括账户的账号和当前余额两项数据本程序只创建了一个单链表:struct bankdata{ /*定义一个结构体*/int num; /*账户的账号*/char name[20]; /*姓名*/char person_num[19]; /*身份证号*/float balance; /*金额*/int establishtime; /*日期*/}所以在对账户的余额的操作功能上有教大的欠缺,日后定将进一步完善此项功能4.3.2 创建函数模块0- create(FILE *ptr)/*创建具有结构体的空文档*/struct bankdata data={-1,"NONAME","NONUM",0,0};对结构体进行初始化操作,即创建一个空账目。

      for(num=0;num<=15;num++){} 通过for循环限制账目数量本功能模块用到的函数有:fseek(移动文件流的读写位置) 相关函数 rewind,ftell,fgetpos,fsetpos,lseek表头文件 #include定义函数 int fseek(FILE * stream,long offset,int whence);函数说明 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()会返回实际写入的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)/*添加一个帐目*/添加账目,输入用户操作, 程序设计要求:开新户时,用户只输入姓名。

      点击阅读更多内容
      相关文档
      2025国开山东开大《土质学与土力学》形成性考核123答案+终结性考核答案.docx 中学综合素质知识点梳理【中学教师资格证】.docx 2025国开山东开大《特许经营概论》形成性考核123答案+终结性考核答案.doc 2025年高考英语全国一卷真题(含答案).docx 2025国开山东《农民专业合作社创建与管理》形成性考核123答案+终结性考核答案.docx 2025国开山东开大《自然现象探秘》形成性考核123答案+终结性考核答案.docx 2025国开山东《消费心理学》形成性考核123答案+终结性考核答案.doc 2025国开山东《小微企业管理》形成性考核123答案+终结性考核答案.doc 2025国开山东开大《资本经营》形成性考核123答案+终结性考试答案.docx 2025国开山东《小学生心理健康教育》形考123答案+终结性考试答案.docx 2025国开《视频策划与制作》形考任务1-4答案.docx 2025国开《亲子关系与亲子沟通》形考任务234答案+期末大作业答案.docx 2025国开电大《煤矿地质》形成性考核123答案.docx 2025国开电大《冶金原理》形考任务1234答案.docx 2025国开《在线学习项目运营与管理》形考任务1234答案.doc 2025国开电大《在线教育的理论与实践》阶段测验1-4答案.docx 2024 年注册环保工程师《专业基础考试》真题及答案解析【完整版】.docx 环保工程师---2023 年注册环保工程师《专业基础考试》真题及答案解析【完整版】.docx 2025国开《液压与气压传动》形考任务一参考答案.docx 2025年春江苏开放大学教育研究方法060616计分:形成性作业2、3答案.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.