ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:339.13KB ,
资源ID:21740283      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21740283.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(个人账簿管理系统设计书Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

个人账簿管理系统设计书Word文件下载.docx

1、 6.1 调试中遇到的问题及对问题的解决方法 创建结构体对该程序至关重要,通过查阅参考书籍,创建了合适的结构体。由于初期未考虑到排序功能,后期做排序的时候,对整个程序做了一些修改,主要是结构体方面。本程序的排序系统的采用的是“快速排序”,代码主要来自数据结构(c语言版),由于书上代码为伪代码,所以调试时遇到一些问题,由于习惯使用c+中的引用传递,导致在c文件中编译错误,经过查找资料才发现问题所在,于是将c文件改为cpp文件,解决了做排序功能时遇到的一些问题 6.2 算法的时间复杂度和空间复杂度空间复杂度: O(f(n)时间复杂度:O(n)7.输出典型数据,获得测试结果;8.源程序(带注释)#i

2、nclude stdlib.hmemory.hwindows.h/文件保存路径#define FilePath1 Myinfor.dat#define FilePath2 Myinfor.txt/查询用声明#define Status int#define OK 1#define Error 0#define NotFound 2typedef struct void menu(void); /菜单void input(Infor *newI); /接收键盘输入void writeinfor(Infor *newI);/向文件写入容void changeFormat(void );/将dat格

3、式文件转换为txt文件Status search(Infor *a);/查询函数返回查询的结果及查询的状态void paixu(Infor *a);/对查询据结果排序void modify(Infor *a,int mon);/修改数据void delRecord(int mon);/删除数据int main() while(1) menu(); void menu(void) int item; int mon; Infor *a; a=(Infor *)malloc(sizeof(Infor); do printf(n个人帐簿管理系统设计nn);tt1.录 入 数 据。ntt2.查 看 数

4、 据。tt3.修 改 数 据。tt4.查 询 数 据。tt5.排 序 数 据。tt6.删 除 数 据。tt0.退 出 系 统。nn请输入要进行的操作: ); scanf(%d,&item); while(item6 | itemmonth; if (item!=OK) printf(n没有符合条件的记录! elsen记录月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 本月收入 n- n%7d %8d %8d %8d %8d %8d %8d %8dn,a-month,a-spxf,a-fzfy,a-znjy,a-sdfy,a-ylfy,a-cxfy,a-srfy); modif

5、y(a,mon); /查询数据 case 4: else /排序数据 case 5:n没有找到符合排序条件的记录! paixu(a); /删除数据 case 6: delRecord(mon); free(a);/释放存空间void input(Infor *newI)/接收从键盘输入的数据n请依次输入数据说明:中间以空格符隔开:n(本月月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 收入费用)n%d%d%d%d%d%d%d%dnewI-month,&spxf,&fzfy,&znjy,&sdfy,&ylfy,&cxfy,& fflush(stdin);void writein

6、for(Infor *newI)/向文件写入容 FILE *fp; fp=fopen(FilePath1,ab+ if(fp=NULL)无法创建文件:%s,FilePath1); exit(0); fwrite(newI,sizeof(Infor),1,fp);/这里可以做特别处理可防止存在同一月份有2条以上的记录问题。这里就不写了。 fclose(fp);数据录入成功!void changeFormat(void) /暂时只能操作一行文件有待改进 FILE *fp1,*fp2; fp1=fopen(FilePath1,rb+ if(fp1=NULL)无法找到文件:%sn return ; /

7、返回主函数 fp2=fopen(FilePath2,wt+ if(fp2=NULL),FilePath2); fputs( n个人帐簿管理系统nn,fp2);记录月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 本月收入 n rewind(fp1); fread(a,sizeof(Infor),1,fp1); while(!feof(fp1)/从原文件.dat中读数据写入显示文件.txt中 fprintf(fp2,关闭本程序继续原程序! fclose(fp1); fclose(fp2); system(FilePath2); /调用打开转换的文本文件 remove(FilePa

8、th2);/删除文本文件文件Status search(Infor *a) FILE *fp1; int isfound=0;请正确输入要查询的月份:mon); /清除缓冲区 return Error;feof(fp1)/查询操作 if(a-month=mon) isfound=1; isfound=0; if(isfound) return OK; return NotFound;void paixu(Infor *a) int i=0,j=0,flag=0,t; pType px8=0,0; char str810=记录月份,食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入; fo

9、r(;i 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; for(i=1;i+)/冒泡排序 flag=0; for(j=0;jpxj+1.data) t=pxj.data; pxj.data=pxj+1.data; pxj+1.data=t; t=pxj.no; pxj.no=pxj+1.no; pxj+1.no=t; flag=1; /输出结果 if(flag=0) break; for(i=0; %s,

10、strpxi.no);n- n%8d ,pxi.data);void modify(Infor *a,int mon)/修改数据 Infor *b; b=(Infor *)malloc(sizeof(Infor);rt fp2=fopen(temp.datrewind(fp1); fread(b,sizeof(Infor),1,fp1); while (!feof(fp1)/重写数据 if(b- fwrite(a,sizeof(Infor),1,fp2); fwrite(b,sizeof(Infor),1,fp2);remove(FilePath1); /删除源文件 rename(/重命名中间

11、文件修改数据成功! /显示数据void delRecord(int mon) /删除数据feof(fp1) /重写数据month!=mon) 删除数据成功!9.总结 经过这次数据结构课程设计,我们不仅及时巩固的了数据结构、算法、以及软件工程的知识,并对数据结构和算法的配合对于程序时间和空间性能的影响以及软件工程提供的开发流程和工具对于实现特定功能程序的重要意义。当我们面对一个实际问题,应该迅速根据问题性质和特点抽象成特定的数据结构,当然每个问题都有可能能够抽象成多种数据结构,每种数据结构适应于不同的算法,例如,马踏棋盘问题就可以采用广度优先搜索或深度优先搜索来解决。因此此时就应该综合考虑这样的

12、数据结构、算法以及它们的空间和时间效率,然后从中选择一个作为实现程序的基础。此外,对程序的测试应该要仔细,根据模块的特点和测试阶段,采用各种软件测试方法对程序进行测试,确保各个模块的正确性和完整性,最后集成起来测试其是否正确和完整地实现了问题描述中要求的功能。一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机存储,数据的存储结构是数据结构的实现形式,是其在计算机的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实

13、现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。10.致 感课设期间永老师和睿老师给予我们的悉心帮助。11.参考文献1 严蔚敏,吴伟民.数据结构(C语言版)M.:清华大学.20032 严蔚敏,吴伟民.数据结构题集(C语言版)m. :3 William Ford,William Topp.DATA STRUCTURE WITH C+ .:清华大学(影印版). 20054 谭浩强.c语言程序设计M.:清华大学. 2005.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1