1、个人帐簿管理系统设计数据结构计算机学院信管专业数据结构课程设计题 目:个人帐簿管理系统设计班 级:姓 名:学 号:同组人XX:起迄日期课程设计地点:指导评阅意见:成绩评定:评阅人: 日期:完成日期:20XX12月第一章前言2第二章系统功能分析21.功能22.要求23.系统功能需求2第三章总体设计31.系统设计32.分块设计3第四章调试结果和测试分析91. 主界面102.录入数据103.查看数据114.修改数据115.查询数据116.排序数据127.删除数据12第五章总结心得体会12第六章参考文献13第七章致谢14第八章附录14第一章 前言:程序设计过程有如解决一个实际问题,从解决实际问题的角度
2、,我们可以这样来看:首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;其次,从问题的要害入手,从前到后的解决问题的每个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、指针、链表、命令、函数,然后确定处理过程算法。可得最后结果这次我们组要解决的实际问题是个人账簿管理系统的设计,我们将严格按照程序设计的过程来完成这一个课题的设计第二章 系统功能分析1.功能:个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进
3、行排序,可以根据输入的月份查询每月的收支情况。2.要求:1界面友好,函数功能要划分好2总体设计应画一流程图3程序要加必要的注释4要提供程序测试方案5 程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。3.系统功能需求分析1.文件操作功能:自动加载和保存数据文件。2.数据输入功能:可以按提示录入各项数据。3.数据修改功能:可以按提示修改各项数据。4.查询功能:可按月份、食品消费进行特定查询,及显示全部数据。5.排序功能:完成对每月开支的排序。6.删除功能:可以按提示删除一些数据。7.转码功能:我们对文件用的是dat的形式,设计转码功能,将它转为txt形式。第三章总
4、体设计1.系统分析按系统分析的功能要求将系统划分为以下几个主要功能模块: 结构图 2.分块设计 1主界面设计void menu int item; int mon; Infor *a; a=mallocsizeof; do printf; printf; printf; printf; printf; printf; printf; printf; printf; scanf; while6 | item;2录入功能设计void input printfn依次输入数据:nn; scanfmonth,&newI-spxf,&newI-fzfy,&newI-znjy,&newI-sdfy,&new
5、I-ylfy,&newI-cxfy,&newI-srfy; fflush; 3修改功能设计void modify FILE *fp1,*fp2; Infor *b; b=mallocsizeof; fp1=fopen; fp2=fopen; rewind; freadb,sizeof,1,fp1; while !feof ifmonth=mon fwritea,sizeof,1,fp2; else fwriteb,sizeof,1,fp2; freadb,sizeof,1,fp1; fclose; fclose; remove;/删除源文件 rename;/重命名中间文件 printf; ch
6、angeFormat; 4查询功能设计Status search FILE *fp1; int mon; int isfound=0; printf; scanf; fflush; fp1=fopen; if printf; return Error; /返回主函数 rewind; freada,sizeof,1,fp1; while!feof ifmonth=mon isfound=1; break; else isfound=0; freada,sizeof,1,fp1; fclose; if return OK; else return NotFound; 5删除功能设计void del
7、Record FILE *fp1,*fp2; Infor *b; b=mallocsizeof; fp1=fopen; fp2=fopen; rewind; freadb,sizeof,1,fp1; while !feof ifmonth!=mon fwriteb,sizeof,1,fp2; freadb,sizeof,1,fp1; fclose; fclose; remove;/删除源文件 rename;/重命名中间文件 printf; changeFormat; 6排序功能设计void paixu int i=0,j=0,flag=0,t; pType px8=0,0; char str8
8、10=记录月份,食品消费,房租费用,子女费用,水电费用,医疗费用,储蓄费用,本月收入; for;i pxi.no=i; px0.data=a-month; px1.data=a-spxf; px2.data=a-fzfy; px3.data=a-znjy; px4.data=a-sdfy; px5.data=a-ylfy; px6.data=a-cxfy; px7.data=a-srfy; fori=1;i flag=0; forj=0;j ifpxj+1.data t=pxj.data; pxj.data=pxj+1.data; pxj+1.data=t; t=pxj.no; pxj.no=
9、pxj+1.no; pxj+1.no=t; flag=1; if break; printf; fori=0;i printf; printf; fori=0;i printf; printf; 第四章调试结果与测试分析1.主界面2.录入数据3.查看数据4.修改数据5.查询数据6.排序数据7.删除数据第五章总结心得体会在这次的课程设计,我发现了自己还有很多的不足,在数据结构操作方面还有很多的不会。还需要更加深入的学习。通过此次的课程设计,在大一语言学习的基础上,我较为深入的掌握了数据结构与算法的设计方法,具备了一定的独立分析和设计能力和初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等
10、基本方法和技能。第六章参考文献1.严蔚敏 吴伟民数据结构C语言版清华大学2007 2.催俊凯。计算机软件基础。机械工业。2007.73.唐发根。数据结构教程第二版。航空航天大学。2005.54.谭浩强。C程序设计第三版。清华大学。20055.王宏生,宋继红。数据结构。:国防工业,2006.16.李建学,李光元,吴春芳。数据结构课程设计案例精编用C/C+描述。:清华大学。2007.2第七章致谢感谢队友的帮助,在我一些不懂的地方给予了我及时的帮助感谢席老师的辅导,在有些方面自己和同组人还有好多的不会,不过经过老师的辅导还是成功编写了出来第八章附录源程序:#include #include #inc
11、lude #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 spxf;/食品消费 int fzfy;/房租费用 int znjy;/子女教育费用 int sdfy;/水电费用 int ylfy;/医疗费用 int cxfy;/储蓄费用 int srfy;/收入费用 Infor; t
12、ypedef struct / 查询用自定义数据类型 int no; int data; pType; void menu; /菜单 void input; /接收键盘输入 void writeinfor;/向文件内写入内容 void changeFormat;/将dat格式文件转换为txt文件 Status search;/查询函数返回查询的结果及查询的状态 void paixu;/对查询据结果排序 void modify;/修改数据 void delRecord;/删除数据 void main while menu; void menu int item; int mon; Infor *
13、a; a=mallocsizeof; do printf; printf; printf; printf; printf; printf; printf; printf; printf; scanf; while6 | item; switch /退出程序 case 0: getchar; getchar; exit; break; /录入数据 case 1: input; writeinfor; break; /查看数据 case 2: changeFormat; break; /修改数据 case 3: item=search; mon=a-month; if printf; else p
14、rintf; printf; printfmonth,a-spxf,a-fzfy,a-znjy,a-sdfy,a-ylfy,a-cxfy,a-srfy; input; modify; break; /查询数据 case 4: item=search; if printf; else printf; printf; printfmonth,a-spxf,a-fzfy,a-znjy,a-sdfy,a-ylfy,a-cxfy,a-srfy; break; /排序数据 case 5: item=search; if printf; else paixu; break; /删除数据 case 6: it
15、em=search; mon=a-month; if printf; else printf; printf; printfmonth,a-spxf,a-fzfy,a-znjy,a-sdfy,a-ylfy,a-cxfy,a-srfy; delRecord; break; free;/释放内存空间 void input printfn依次输入数据:nn; scanfmonth,&newI-spxf,&newI-fzfy,&newI-znjy,&newI-sdfy,&newI-ylfy,&newI-cxfy,&newI-srfy; fflush; void writeinfor FILE *fp;
16、 fp=fopen; if printf; exit; fwritenewI,sizeof,1,fp; fclose; printf; void changeFormat /暂时只能操作一行文件有待改进 FILE *fp1,*fp2; Infor *a; a=mallocsizeof; fp1=fopen; if printf; return ; /返回主函数 fp2=fopen; if printf; return ; /返回主函数 fputs; fputs; fputs; printf; printf; rewind; freada,sizeof,1,fp1; while!feof pri
17、ntfmonth,a-spxf,a-fzfy,a-znjy,a-sdfy,a-ylfy,a-cxfy,a-srfy; fprintfmonth,a-spxf,a-fzfy,a-znjy,a-sdfy,a-ylfy,a-cxfy,a-srfy; freada,sizeof,1,fp1; fputs; fputs; fclose; fclose; system; /调用打开转换的文本文件 remove;/删除文本文件文件 Status search FILE *fp1; int mon; int isfound=0; printf; scanf; fflush; fp1=fopen; if printf;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1