已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构课程设计报告数据结构课程设计报告 个人帐簿管理系统设计个人帐簿管理系统设计 2010 年 01 月 21 日 目目 录录 1 引 言 1 2 需求分析 2 3 概要设计 4 4 详细设计 5 5 测试结果 6 6 设计体会 12 7 结束语 13 8 参考文献 11 摘摘 要要 该课程设计主要设计个人账簿管理系统以记录某人每月的全部收入及各项开支 情况 包括食品消费 房租 子女教育费用 水电费 医疗费 储蓄等 在课 程设计中 用到了 C 语言以及数据结构中的相关知识 当然也有少数参考了其 他人对某些问题的处理经验 对于进入系统后可以输入和修改某月的收支情况 可以对每月的开支从小到大进行排序 可以根据输入的月份查询每月的收支情 况 在程序设计中 添加了使用说明和帮助事项 并且采用了面向对象这种解 决问题的方法 程序通过调试运行 初步是想了设计目标 并且经过适当完善 后 将可以应用在个人理财解决实际问题 一一 引引 言言 本课程设计主要解决在个人帐簿管理系统记录某人每月的全部收入及各项 开支情况 包括食品消费 房租 子女教育费用 水电费 医疗费 储蓄等 进入系统后可以输入和修改某月的收支情况 可以对每月的开支从小到大进行 排序 可以根据输入的月份查询每月的收支情况 现在是一个科技文化飞速发展的时代 家家户户都可以见到计算机的影子 我们平时的生活 工作以及学习和娱乐都与电脑有着密切的联系 随着经济的 发展 理财成为我们生活中不可缺少的内容 理财的重要性显而易见 因此 非常有必要设计一个个人帐薄管理系统 它能够为我们家庭生活个人理财提供 诸多方便 使理财更系统 更精确 作为计算机应用的一部分 使用计算机提供个人帐薄管理系统 既继承了 传统理财形式 也克服了人工理财的许多缺点 譬如 计算复杂 会时有错误 而用计算机处理的话这种错误可以轻易避免 输入方便 节省了理财人的时间 提高效率和精确度 查询方便 信息详细清晰 便于理财 二二 需求分析需求分析 个人帐薄管理系统具有良好的性能和实用的功能 其性能的良好表现为 输入性强 检索迅速 查询方便 可靠性高等 其实用的功能表现为 由于个 人理财所要记载的项目比较琐碎 查询不方便 容易搞错顺序 应用该管理系 统可以输入任意每月开支情况 不但不会轻易犯错 而且可以容易修改每月的 记录 包括食品消费 房租 子女教育费用 水电费 医疗费 储蓄等 节省 时间和空间 这些优点能够促进优化家庭及财政管理 促进财政管理的科技化 和现代化 个人帐薄管理系统可以为用户提供任意月份的查询 月份消费信息包括食 品消费 房租 子女教育费用 水电费 医疗费 储蓄 具体信息如表 2 1 所 示 表表 2 12 1 个人开支项目信息表个人开支项目信息表 数字编号名称具体信息 1录入数据录入个人每月份的开支情况 2查看数据查看所录入月份的开支情况 3修改数据如果录入开清情况有误 可以修改 4查询数据可以查询所有月份的开支情况 5排序数据可以把所要查询的月份的开支情况按从小到大 排列 6删除数据删除所输入月份的数据 0退出系统退出系统 三三 概要设计概要设计 设计本系统 首先要认真研读老是给的题目要求 仔细分析设计该题需要 用到的技术和知识 同时应该积极查询相关资料 复习有关知识 不懂的地方 多向同学以及朋友提问 从而达到事半功倍的想过 也可以参考网上的有关知 识帮助有自己解答 总之 就是动用一切可以动用的力量 达到充实自己的目 的 以下为该设计系统流程图 图图 3 03 0 四四 详细设计详细设计 1 1 算法设计算法设计 1 录入 查询 修改 删除数据 建立一个文件 包括某人 5 个月的开支 情况 对文件中的信息扩充 包括修改 删除等 所以先确定文件保存路径 接受键盘输入 像文件内写入内容 将 dat 格式文件转换为 txt 文件 查询用 声明 自定义数据类型 然后返回查询结果及查询状态 继而对查询结果排序 删除数据时 先调用打开转换的文本文件 修改数据时 要重写数据 删除源 文件 重命名中间文件 显示新的数据 2 起泡排序 菜单 1 录 入 数 据 2 查 询 数 据 4 查 询 数 据 3 修 改 数 据 5 排 序 数 据 6 删 除 数 据 0 退 出 系 统 开始 结束 起泡排序是每趟把当先序列中最小的元素放在开始位置 是交换排序中最 简单的排序方法 其基本思想是 两两比较相邻记录的关键码 如果反序则交 换 值到没有反序的记录为止 将整个待排序的记录序列分成为有序区和无序 区 初始状态有序区为空 无序区包括所有待排序的记录 对无序去从前向后 依次将相邻记录的关键码进行比较 若反序则交换 从而使得关键码晓得记录 向前移 关键码大的记录向后移 像水中的气泡 体积大的先浮上来 重复执 行 之前无序区中没有反序的记录 确定每趟范围 3 其基本思想是 先确定文件保存路径 建立一个文件 录入个人 5 个月 的开支情况 对文件中的信息扩充 包括修改 删除等 接受键盘输入 向文 件内写入内容 将 dat 格式文件转换为 txt 文件 然后输入 2 进行查看 查看 所录入的数据 如果数据有误 可以输入 3 修改数据 输入 4 查询所有月份的 开支情况 系统自动启用气泡排序对数据精心两两比较 按从小到大的顺序排 列 2 2 实现代码实现代码 include include include include 文件保存路径 define FilePath1 Myinfor dat define FilePath2 Myinfor txt 查询用声明 define Status int define OK 1 define Error 0 define NotFound 2 typedef struct int month 月份 int food 食品消费 int house 房租费用 int edu 子女教育费用 int elc 水电费用 int health 医疗费用 int store 储蓄费用 int income 收入费用 Infor typedef struct 查询用自定义数据类型 int no int data pType void menu void 菜单 void input Infor newI 接收键盘输入 void writeinfor Infor newI 向文件内写入内容 void changeFormat void 将 dat 格式文件转换为 txt 文件 Status search Infor a 查询函数 返回查询的结果及查询的状态 void paixu Infor a 对查询据结果排序 void modify Infor a int mon 修改数据 void delRecord int mon 删除数据 void main while 1 menu void menu void int item int mon Infor a a Infor malloc sizeof Infor do printf n 个人帐簿管理系统 软件 082 郭帅 n n printf t t1 录入数据 n printf t t2 查看数据 n printf t t3 修改数据 n printf t t4 查询数据 n printf t t5 排序数据 n printf t t6 删除数据 n printf t t0 退出系统 n n printf 请输入要进行的操作 scanf d while item 6 itemmonth if item OK printf n 没有符合条件的记录 n else printf n 记录月份食品消费房租费用子女费用水电费用医疗费用储 蓄费用本月收入 n printf n printf 7d 8d 8d 8d 8d 8d 8d 8d n a month a food a house a edu a elc a health a store a income input a modify a mon break 查询数据 case 4 item search a if item OK printf n 没有符合条件的记录 n else printf n 记录月份食品消费房租费用子女费用水电费用医疗费用储 蓄费用本月收入 n printf n printf 7d 8d 8d 8d 8d 8d 8d 8d n a month a food a house a edu a elc a health a store a income break 排序数据 case 5 item search a if item OK printf n 没有符合条件的记录 n else paixu a break 删除数据 case 6 item search a mon a month if item OK printf n 没有符合条件的记录 n else printf n 记录月份食品消费房租费用子女费用水电费用医疗费用储 蓄费用本月收入 n printf n printf 7d 8d 8d 8d 8d 8d 8d 8d n a month a food a house a edu a elc a health a store a income delRecord mon break free a 释放内存空间 void input Infor newI printf n 请依次输入数据 说明 中间以空格符隔开 n 本月月份食品消费房租费用子女 费用水电费用医疗费用储蓄费用收入费用 n scanf d d d d d d d d fflush stdin void writeinfor Infor newI FILE fp fp fopen FilePath1 ab if fp NULL printf 无法创建文件 s FilePath1 exit 0 fwrite newI sizeof Infor 1 fp 这里可以做特别处理可防止存在同一月份有条以上的记 录问题 这里就不写了 fclose fp printf 数据录入成功 n void changeFormat void 暂时只能操作一行文件有待改进 FILE fp1 fp2 Infor a a Infor malloc sizeof Infor fp1 fopen FilePath1 rb if fp1 NULL printf 无法找到文件 s n FilePath1 return 返回主函数 fp2 fopen FilePath2 wt if fp2 NULL printf 无法创建文件 s n FilePath2 return 返回主函数 fputs n 个人帐簿管理系 统 n n fp2 fputs 记录月份食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入 n fp2 fputs n fp2 printf n 记录月份食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入 n printf n rewind fp1 fread a sizeof Infor 1 fp1 while feof fp1 从原文件 dat 中读数据写入显示文件 txt 中 printf 7d 8d 8d 8d 8d 8d 8d 8d n a month a food a house a edu a elc a health a store a income fprintf fp2 7d 8d 8d 8d 8d 8d 8d 8d n a month a food a house a edu a elc a health a store a income fread a sizeof Infor 1 fp1 fputs n fp2 fputs 关闭本程序继续原程序 n fp2 fclose fp1 fclose fp2 system FilePath2 调用打开转换的文本文件 remove FilePath2 删除文本文件文件 Status search Infor a FILE fp1 int mon int isfound 0 printf 请正确输入要查询的月份 scanf d fflush stdin 清除缓冲区 fp1 fopen FilePath1 rb if fp1 NULL printf 无法找到文件 s n FilePath1 return Error 返回主函数 rewind fp1 fread a sizeof Infor 1 fp1 while feof fp1 查询操作 if a month mon isfound 1 break else isfound 0 fread a sizeof Infor 1 fp1 fclose fp1 if isfound return OK else return NotFound void paixu Infor a int i 0 j 0 flag 0 t pType px 8 0 0 char str 8 10 记录月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 本月收入 for imonth px 1 data a food px 2 data a house px 3 data a edu px 4 data a elc px 5 data a health px 6 data a store px 7 data a income for i 1 i 8 i 冒泡排序 flag 0 for j 0 jpx j 1 data t px j data px j data px j 1 data px j 1 data t t px j no px j no px j 1 no px j 1 no t flag 1 输出结果 if flag 0 break printf n for i 0 i 8 i printf s str px i no printf n n for i 0 imonth mon fwrite a sizeof Infor 1 fp2 修改数据 else fwrite b sizeof Infor 1 fp2 fread b sizeof Infor 1 fp1 fclose fp1 fclose fp2 remove FilePath1 删除源文件 rename temp dat FilePath1 重命名中间文件 printf 修改数据成功 n changeFormat 显示数据 void delRecord int mon 删除数据 FILE fp1 fp2 Infor b b Infor malloc sizeof Infor fp1 fopen FilePath1 rt fp2 fopen temp dat wt rewind fp1 fread b sizeof Infor 1 fp1 while feof fp1 重写数据 if b month mon fwrite b sizeof Infor 1 fp2 fread b sizeof Infor 1 fp1 fclose fp1 fclose fp2 remove FilePath1 删除源文件 rename temp dat FilePath1 重命名中间文件 printf 删除数据成功 n changeFormat 显示数据 五五 具体实现及运行结果具体实现及运行结果 5 15 1 创建工程并建立文件创建工程并建立文件 1 启动 C FREE 2 新建工程名为 zj 的 Win32 控制台应用程序 3 建立头文件 Myinfor h 在其中定义图类 myinfor 4 建立源文件 myinfor cpp 在其中定义图类 myinfor 的构造函 数 myinfor 开支情况输出输出函数 PutOutVexInfo 5 建立源文件 myinfor Main cpp 在其中输入开支情况及项目信息 通 过主函数调用其它各函数 实现个人帐薄管理系统的设计 个人帐薄管理系统的实现个人帐薄管理系统的实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025西北工业集团有限公司中层领导人员招聘1人笔试历年参考题库附带答案详解
- 政企面试新题型分析
- 安全员安全生产培训记录
- 教育行业报告在线教育的机遇与挑战
- 2025年燃料电池技术推广项目可行性研究报告及总结分析
- 2025年电视剧制作公司投资可行性研究报告及总结分析
- 脊柱损伤患者翻身护理的特殊操作要求
- 警察医院面试题目及答案
- 金华银行面试题目及答案
- 手术室护理技术创新研究与前沿进展
- 小学主题班会 遵纪守法从我做起 课件
- 炼钢厂铁水包使用管理制度(4篇)
- 应用写作-终结性考核-国开(SC)-参考资料
- 合同解除协议书范例模板
- 流域水环境综合治理
- 河道疏浚沙石运输合同
- iso220002024食品安全管理体系标准
- 国家开放大学本科《公共部门人力资源管理》期末纸质考试总题库2025版
- NBT 47013.4-2015 承压设备无损检测 第4部分:磁粉检测
- 羽毛球比赛对阵表模板
- 房屋续租再签合同范本
评论
0/150
提交评论