C语言课设(个人帐簿管理系统)精品资料.doc
《C语言课设(个人帐簿管理系统)精品资料.doc》由会员分享,可在线阅读,更多相关《C语言课设(个人帐簿管理系统)精品资料.doc(40页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、数据结构课程设计报告兰州理工大学专业班级:题 目:姓 名:学 号:指导教师: 个人帐簿管理系统目录摘 要11绪论12系统分析12.1 功能需求12.2数据需求12.3 性能需求23总体设计23.1系统设计方案23.2功能模块设计24详细设计34.1录入数据模块34.2修改数据子模块44.3查询数据子模块54.4排序数据子模块664.6删除数据子模块75调试与测试85.1 调试85.2 测试86结论9结束语9参考文献9附录1用户手册10附录2源程序1338摘 要个人帐簿管理系统的开发是为了方便个人记录每月的全部收入及开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。并进行查询和
2、排序等。主要实现以下功能:(1) 记录月份以及每月的食品消费,房租,子女教育费用,水电费,医疗费,储蓄等内容。(2) 要求该系统能查看该数据并进行修改和查询等。(3) 并用冒泡法进行排序以及能进行内容的删除。报告从系统分析,总体设计,详细设计,调试与测试方面进行描述和介绍。关键词:个人帐簿管理系统;扩充;修改;删除。 前言当今社会是个劳逸结合的社会,计算机在人们的生活中越来越重要,个人账簿管理的开发给大众的生活平添了方便。个人账簿管理系统是一个比较普遍的管理系统,它的存在方便个人记录每月的全部收入及开支情况。根据课程设计任务书要求,个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品
3、消费,房租,子女教育费用,水电费,医疗费,储蓄等。进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况。另外要求建立一个文件,包括某人5个月的收支情况,能对文件中的信息进行扩充(追加),修改和删除;完成对每月的开支排序,以及完成系统查询功能。可进行功能的适当扩充。2系统分析2.1 功能需求个人帐簿管理系统要求记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等并能进行修改,查询,排序,删除等功能。2.2数据需求系统主要处理的是个人帐簿信息,因此其输入和输出都与此相关。(1) 输入数据:月份和食品
4、消费,房租,子女教育费用,水电费,医疗费,储蓄等数据。(2) 输出数据:月份和食品消费,房租,子女教育费用,水电费,医疗费,储蓄等的数据。2.3 性能需求本系统主要需要达到记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等并能进行修改,查询,排序,删除等功能。3总体设计3.1系统设计方案(1) 菜单本系统根据需要主要设计了6个菜单,分别为录 入 某 月 账 单 数 据 查 看 某 月 账 单 数 据修 改 某 月 账 单 数 据查 询 某 月 账 单 数 据排 序 某 月 账 单 数 据退 出 系 统(2) 文件保存方式系统需要保文件,文件存储月份和
5、食品消费,房租,子女教育费用,水电费,医疗费,储蓄等数据。(3) 数据类型系统定义了数组,结构体等类型,存储月份和食品消费,房租,子女教育费用,水电费,医疗费,储蓄等信息。(4) 算法设计系统中主要排序算法(冒泡排序)。数据流图 编辑员 录入员 某月的收支 待修改信息个人账簿管理系统 修改后信息 符合要求条目 检索条件 查询者个人账簿文件录入个人月账单修改个人月账单某月的收支 待修改信息查询检索条目是否 与现有数据匹配 检所条件 符合要求条目3.2功能模块设计根据分析,系统主要设计了6个模块,分别是:录入数据模块,查看数据模块,修改数据模块,查询数据模块,排序数据模块,删除数据模块;功能模块图
6、如图1所示。图1功能模块图(1)录入某月账单数据录入数据模块把输入的信息存储到文件里,为以下操作提供数据。(2)查看某月账单数据查看数据模块是输入要执行的操作,打开文件,查看帐户里面的信息(3)修改某月账单数据修改数据模块是输入要修改的月份,打开文件,找到该月的信息,把新输入的信息复制给原有信息,已达到修改的目的。(4)查询某月账单数据查询数据模块是打开文件,输入要查看的月份,就将输出该月的信息。(5)排序某月账单数据排序数据模块是用冒泡排序,把某月份的费用从小到大排列。(6)删除数据删除数据模块是用链表把其中某月删除。4详细设计4.1录入数据模块录入主要通过scanf函数实现。具体程序实现流
7、程如图2所示。 图2输入月份和食品消费,房租,子女教育费用,水电费,医疗费,储蓄等数据。4.2修改数据子模块修改文件中的信息,具体程序实现流程如图4所示。 图3输入月份首先判断文件中是否有该信息,没有,输出没有符合条件的记录,有,输出该信息,再进行修改;即重新输入月份和食品消费,房租,子女教育费用,水电费,医疗费,储蓄等数据。4.3查询数据子模块查询某月的信息,具体程序实现流程如图5所示。 图4输入要查询的月份,首先判断文件中是否有该信息,没有,输出无法找到该文件,有,输出该信息。 4.4排序数据子模块排序某月的所有费用,具体程序实现流程如图6所示;图5冒泡排序:即第1个数与第2个数比较,若第
8、1个大,就与第2个数交换;若第2个数大,就不交换;继续第2个与第3个比较,。,直到比较完为止。4.6删除数据子模块删除某月的信息,具体程序实现流程如图7所示。 图6输入要删除的月份,若文件中没有该信息,输出无法找到该文件,若文件中有该信息,输出请选择要删除的月份,输入月份,利用链表的知识删除该月份。5调试与测试5.1 调试调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到相关的问题所在。以解决问题。(1) 系统提示的错误:函数没有起到作用,跟踪发现根本就没有结果,最后发现这个语句根本就没有被调用。(2) 调试过程中遇到了储存内容重复的错误。经多次实验后得得出是系统的问题,这将有
9、待改进。5.2 测试软件测试是软件生存期中的一个重要阶段,是软件质量保证的关键步骤从用户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以软件测试应该是“为了发现错误而执行程序的过程”。或者说,软件测试应该根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误或缺陷。过度测试则会浪费许多宝贵的资源。到测试后期,即使找到了错误,然而付出了过高的代价。(1)输入正确的数:输入数据1:1 2 3 4 5 6 7 8预期结果:1 2 3 4 5 6 7 8运行结果:1 2 3 4 5 6 7 8说明
10、:远行正确。(2)输入错误的数:输入数据2:15 3 4 5 6 7 8 9 预期结果:15 3 4 5 6 7 8 9运行结果:15 3 4 5 6 7 8 9说明:远行错误。6结论经过两周的课程设计,个人帐簿管理系统基本完成,实现了任务书中的所有要求。这对不熟悉程序的人来说操作起来也不是那么轻松上手,所以还有改进的地方,相信再以后,一定会写出更完善的程序结束语为期二个礼拜的数据结构课程设计终于顺利完成,在这期间真正的学到了一些经验,能够熟练的掌握一些C语言的编程思路及数据结构中的一些算法,能够熟练的运用学到的函数,学会了如何调试报告并加以改正,并知道了在输入信息时也要认真看清是何类型。学到
11、课本或一些理论中学不到的知识,这才达到了实践的目的,当程序经过多次调试,成功运行的时候,心里是激动的,这种成就感是前所未有的,也让大学生活显得不那么平常,格外的充实。参考文献1 谭浩强.C语言程序设计(第三版).清华大学出版社,20072 姜灵芝,余健.C语言课程设计案例精编.清华大学出版社,20083 网上相关资料附录1用户手册(1)录入数据(2)查看数据(3)修改数据 (4)查询数据(5)排序数据(6)删除数据附录2源程序 #include #include #include #include /文件保存路径#define FilePath1 Myfile.dat#define FileP
12、ath2 Myfile.txt/查询用声明#define Status int/宏定义#define OK 1/宏定义#define Error 0/宏定义#define NotFound 2/宏定义typedef struct int month;/月份 int spxf;/食品消费 int fzfy;/房租费用 int znjy;/子女教育费用 int sdfy;/水电费用 int ylfy;/医疗费用 int cxfy;/储蓄费用 int srfy;/收入费用 Infor;typedef struct / 查询用自定义数据类型 int no; int data; pType;void m
13、enu(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();/函数调用
14、void menu(void)/菜单 int item;/定义整型 int mon;/定义整型 Infor *a; a=(Infor *)malloc(sizeof(Infor); do printf(ntt个人帐簿管理系统设计nn);/输出 printf(tt1.$录 入 某 月 数 据$n);/输出 printf(tt2.$查 看 录 入 数 据$n);/输出 printf(tt3.$修 改 某 月 数 据$n);/输出 printf(tt4.$查 询 某 月 数 据$n);/输出 printf(tt5.$排 序 某 月 数 据$n);/输出 printf(tt6.$删 除 某 月 数 据
15、$n);/输出 printf(tt0.$*退 出 系 统*$n);/输出printf(ttnn);/输出 printf(请输入要进行的操作: );/输出 scanf(%d,&item);/输入 while(item6 | itemmonth;/复制 if (item!=OK) printf(n没有符合条件的记录!n); /判断输出 else printf(n记录月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 本月收入 n);/输出 printf(- n);/输出 printf(%7d %8d %8d %8d %8d %8d %8d %8dn,a-month,a-spxf,a-
16、fzfy,a-znjy,a-sdfy,a-ylfy,a-cxfy,a-srfy);/输出 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 %8dn,a-month,a-spxf,a-fzf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言课设个人帐簿管理系统 精品资料 语言 个人 帐簿 管理 系统 精品 资料
限制150内