2022年个人帐簿管理系统大学课程设计.docx
《2022年个人帐簿管理系统大学课程设计.docx》由会员分享,可在线阅读,更多相关《2022年个人帐簿管理系统大学课程设计.docx(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品学习资源学号:202140420213编号:B04900083课 程 设 计目 录一概述 0教 学 院课程名称题二总体方专班姓目业级名三具体设同组人员指导老师运算机学院数据结构课程设计个人帐簿治理系统网络工程1 班夏能罗四维、邱少雄、王欢冯珊案 设 计1计 4四 程 序的调试2021年12月25日与 运 行结 果说明 18五课程设计总结 20参考文献 21附录 22一 概述1. 课程设计的目的(1) 懂得和把握该课程中的有关基本概念,程序设计思想和方法;(2) 培育综合运用所学学问独立完成课题的才能;欢迎下载精品学习资源(3) 培育勇于探究、严谨推理、实事求是、有错必改,用实践来检验理论,
2、全方位考虑问题等科学技术人员应具有的素养;(4) 把握从资料文献、科学试验中获得学问的才能,提高同学从别人体会中找到解决问题的新途径的悟性,初步培育工程意识和创新才能;2. 课程设计的要求个人帐簿治理系统记录某人每月的全部收入及各项开支情形,包括食品消费 , 房 租, 子女 训练 费用 , 水 电费 , 医 疗费 , 储 蓄等 ;该 系统 采纳 了Windows XP 操作系统结合 Visual C+ 6.0,TC 2.0 等软件开发 ,可以输入和修改某月的收支情形,可以对每月的开支从小到大进行排序,可以依据输入的月份查询每月的收支情形;该课程设计中会频繁的使用到C 语言里的文件操作的学问点,
3、而文件操作又是我们平常的学习当中使用的比较少的地方,所以在课程设计之前我们组的成员特地花了一节课的时间重新阅读了C 程序设计教程以及 C primer plus里的文件操作的相关学问;二 总体方案设计1. 系统整体设计思路本课程序中主要通过C 语言的文件操作实现文件的读写操作来存放治理数据,里面主要包含功能函数有接收键盘输入数据、将数据写入指定文件、 将.dat 文件文件转换 .txt 文件显示出来、找到对应月份、对一个月内各项支出进行排序、修改其中一项数据以及删除整月数据;整个系统的界面以及对各功能函数的调用都放在了主函数之中;整个程序中一个指针变量a 贯穿始终,可以使各个函数共享指针变量
4、a所指向的内存区域的数据;整个程序涉及到的功能较多,代码普遍较长,依据课程设计教案大纲里的要求以及我们对程序的整体设计我们将整个程序分为了6 个功能, 7 个功能函数以及主函数来调度各个函数以来实现功能;2. 算法的整体思路数据类型设定为:typedef struct int month;int shipin;int fangzu;int zinv;欢迎下载精品学习资源int shuidian;int yiliao ;int chuxu;int shouru; Infor ;为了便利使用,所以每一个变量基本上都使用了拼音;另外为了便利查询与排序,又另外定义了typedef struct int
5、 no;int data;pType;便利排序时候使用;整个程序流程图如下:整个程序在主函数中由 switch 调用各个功能函数来执行整个程序;3. 主要特点本程序可以在掌握台里录入数据后写入文件当中,即使退出了程序,只要不删除自己所写的文件都可以随时通过程序对文件里的任意数据进行增删改 查,并且可以实现对多文件的治理,在修改数据的时候我们可以对指定文件里欢迎下载精品学习资源的指定月份的指定数据项进行修改表达了修改的敏捷性,在查询的时候我们可以在掌握台中查询一个文件中里的一个月的数据也可以在掌握台中查询指定文件里的直径月份的数据,仍可以对指定文件里的指定月份的数据整项删除;最终该程序仍可以对每
6、个月中的各项开支进行从小到大的排序;4. 具备功能该程序可以接收键盘输入数据、将数据写入指定文件、将.dat 文件文件转换为 txt 文件显示出来便利查看、找到对应月份、对一个月内各项支出进行排序、修改其中一项数据以及删除整月数据最终在主函数中对小组成员的各个函数进行整体的调试调用;具体情形见下表:void inputInfor *a该函数接受一个从主函数传过来的指 针变量,将数据写入a 所指向的内存区域void writeinforInfor *a该函数将 a 所指向的内存区域的数据写入到指定的 .dat 文件中void changeFormat该函数用于查询的时候将 .dat 文件里的数据
7、写入到掌握台中,并转化一个 .txt 文件显示出来,最终关闭这个文件;函数执行完毕并删除该 .txt 文件int searchInfor *a接受主函数中传来的指针变量,查找该指针指向的内存区域中a-month 与你所需 要查找的month 值相等的位置,使 a 指针刚好指向这个月的数据,如找到了标志位为1 返回正确, 假如没找到的话就显示为找到对应月份;void paixuInfor *a对指定月份里的数据项里的数据从小到大进行排序;void modifyInfor *a,int mon对指定文件的指定月份的指定的数据项的数据进行修改void delRecordint mon对指定的文件的指
8、定月份的数据整月进行删除我在本程序中承担的主要任务是查找对应月份,查询数据或修改该月份中的一项数;该三项功能主要解决的问题是如何在指定的文件中找到对应的数据项并对该数据项进行相应的操作;最终在主函数中通过switch 对各个功能模欢迎下载精品学习资源块进行整体调用最终实现该系统;我所主要要解决的问题是如何使用正确的文件读写操作模式字符串来打开 文件以及对指定的 .dat 文件读取后转换为 .txt 文件并最终依据以定的格式显示在屏幕上;另外在查询函数中我们要在相应的文件中找到对应的月份,并将指 针移动到这里指向该数据区域,这样的话我们就可以利用该指针变量便利的查 询、修改数据,这也正是表达出指
9、针变量使用的敏捷性;其中文件操作中 fopen 函数模式字符串的功能如下:模式字符串意义“r”打开已过文件,可以读取文件“w”打开已文件,可以写入文件,先将文件的长度截为 0,假如该文件不存在就创建之“a”打开一个文本文件 , 可 以写 入文件,向已有文件的尾部追加内容, 假如该文件不存在就先创建之“r+”打开一个文本文件 , 可 以进 行更新,也可以读取和写入文件“w+”打开已隔文本文件,可以进行更新(写入),假如该文件存在就第一 将其长度截为 0;假如不存在就先创建之“a+”打开一个文本文件,可以进行更新(读取和写入),向已有的文件的尾部追加内容,假如该文件不存在就先创建之;可以读取整个文
10、件, 但写入时只能追加内容欢迎下载精品学习资源“rb”,”wb+”,”ab”,”ab+”,”a+b”,”wb+”,”w+b” “ab+”,”a+b”与前面的模式相同,只是使用二进制模式而非文本模式打开文件欢迎下载精品学习资源三 具体设计1. changeFormat该函数功第一在掌握台上打印一排语句提示用户输入想要查找的文件名, 如该文件不存在的话该程序就会终止;如该文件存在的话使用文件类型指欢迎下载精品学习资源针 fp1 指向该文件,以二进制文件读写方式打开该文件,接着我用相通的名字却用 .txt 后缀创建了另一个文件,并用文件类型指针fp2 指向它,并在该文件中打印一些展现文字使输出结果更
11、加好看,同时将这些文字也打印在了掌握台上,最终将 fp1 文件指向的内容用格式化输出fprintf 全部写入 fp2 中,最终分别关闭 fp1,fp2,并将刚刚的 .txt 文件显示出来,同时删除刚刚创建的 .txt 文件;void changeFormatFILE *fp1,*fp2;Infor *a;char filename100;欢迎下载精品学习资源int i;a=Infor *mallocsizeofInfor;printf请输入您要查询的数据所在的文件名(以.dat为后缀的文件名) ;scanf%s,filename;fp1=fopenfilename,rb+;/ 以读写方式打开一
12、个二进制文件iffp1=NULLprintf无法找到文件 n ;exit0;fori=0;filenamei.=.;i+filename2i=filenamei;iffilename2i.=.strcatfilename2,.txt;/ 将 filename的后缀改为 .txt文件fp2=fopenfilename2,wb+;iffp2=NULLprintf无法创建文件 n ;return; /返回主函数fputs n个人帐簿治理系统 rn,fp2;fputs记录月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 本月收入 rn,fp2;fputs- rn,fp2;printfn
13、记录月份 食品消费 房租费用子女费用 水电费用医疗费用 储蓄费用 本月收入 n;欢迎下载精品学习资源printf- n;rewindfp1;/ 使 fp1 指向文件开头freada,sizeofInfor,1,fp1;while.feoffp1/从原文件 .dat中读数据写入显示文件.txt中printf%7d%8d%8d%8d%8d%8d%8d%8dn,a-month,a-shipin,a-fangzu,a-zinv,a-shuidian,a-yiliao,a-chuxu,a-shouru;fprintffp2,%7d %8d %8d %8d %8d %8d %8d %8drn,a-mont
14、h,a-shipin,a-fangzu,a-zinv,a-shuidian,a-yiliao,a-chuxu,a-shouru;/ 格式化文件输出freada,sizeofInfor,1,fp1;fputs- rn,fp2;fputsr关闭本程序连续原程序! n,fp2;fclosefp1;fclosefp2;systemfilename2; /调用打开转换的文本文件removefilename2;2. searchinfor *a该函数功第一在掌握台上打印一排语句提示用户输入想要查找的文件名,如该文件不存在的话该程序就会终止;如该文件存在的话使用文件类型指针 fp1 指向该文件,以二进制文件
15、读写方式打开该文件,接着我用相通的名字却用 .txt 后缀创建了另一个文件,并用文件类型指针 fp2 指向它,并在该文件中打印一些展现文字使输出结果更加好看,同时将这些文字也打印在了掌握台上,最终将 fp1 文件指向的内容用格式化输出 fprintf 全部写入 fp2 中,最终分别关闭 fp1,fp2,并将刚刚的 .txt 文件显示出来, 同时删除刚刚创建的 .txt 文件;欢迎下载精品学习资源int searchInfor *aFILE *fp1;int mon;int isfound=0;/ 标志变量,初始为 0 代表为找到对应的月份, 如找到对应的月份这设置为 1char filenam
16、e100;printf请输入文件名字 .dat文件:;scanf%s,filename; printf请正确输入月份 : ;scanf%d,&mon;fflushstdin; /清除缓冲区fp1=fopenfilename,rb+;欢迎下载精品学习资源iffp1=NULLprintf无法找到文件 n ;exit0;rewindfp1;/ 将 fp1 指向文件头,这样更加严谨freada,sizeofInfor,1,fp1;while.feoffp1/查询操作ifa-month=monisfound=1;break;elseisfound=0;freada,sizeofInfor,1,fp1;f
17、closefp1;ifisfoundreturn OK;elseprintf未找到对应的月份 n ;return 1;3. void modifyInfor *a,int mon该函数主要功能在于修改指定文件下指定月份的指定数据项,第一用fp1 指向指定的文件,同时用fp2 打开一个 temp.dat 文件;月份是通过前欢迎下载精品学习资源面的 search函数找到后,通过指针变量a”传递”过来的;第一挑选修改哪一项数据,然后输入要修改的数据的内容将其写入a 指向的内存区域里对应的数据项;此时我们用printf 在掌握台打印出修改后的月份的数据;然后用指针变量 b 来储备从 fp1 文件中读取
18、的数据,当它不是对应的月份就直接写入 fp2 指向的 temp.dat文件中,当它是对应的月份的时候就将a指向的内存区域的数据写入 fp2 指向的 temp.dat文件中,该过程仍是一个直到 fp1 指向文件结尾时才终止的函数;最终关闭fp1,fp2 指向的文件,删除源文件,将 temp.dat文件的名字命名为与从前文件相同的名字并在掌握台上打印出修改胜利的字样;欢迎下载精品学习资源void modifyInfor *a,int mon/修改数据FILE *fp1,*fp2;int i;int money ;char filename100;Infor *b;b=Infor *mallocsi
19、zeofInfor;欢迎下载精品学习资源printf修改后的数据所要插入的文件(留意与前面的文件名肯定要是一样的!) ;scanf%s,filename;fp1=fopenfilename,rb+;fp2=fopentemp.dat,wb+;/temp.dat作为暂时文件printf你要修改哪一项数据? 1 代表食品, 2 代表房租, 3 代表子女费用, 4 代表水电费用, 5 代表医疗费用, 6 代表储蓄, 7 代表收入:;scanf%d,&i;whilei7printf请重新输入: ;scanf%d,&i;printf请将修改后的数据输入进来 : ;scanf%d,&money ;swit
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 个人 帐簿 管理 系统 大学 课程设计
限制150内