数据结构课程设计--个人账簿管理系统

上传人:ji****72 文档编号:27039233 上传时间:2018-01-05 格式:DOC 页数:16 大小:241.79KB
返回 下载 相关 举报
数据结构课程设计--个人账簿管理系统_第1页
第1页 / 共16页
数据结构课程设计--个人账簿管理系统_第2页
第2页 / 共16页
数据结构课程设计--个人账簿管理系统_第3页
第3页 / 共16页
数据结构课程设计--个人账簿管理系统_第4页
第4页 / 共16页
数据结构课程设计--个人账簿管理系统_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《数据结构课程设计--个人账簿管理系统》由会员分享,可在线阅读,更多相关《数据结构课程设计--个人账簿管理系统(16页珍藏版)》请在金锄头文库上搜索。

1、1数据结构课程设计报告设计题目: 个人帐簿管理系统专业班级 12 计科三 学 生 陈畅灿 王飞 芦泽奇 董帅 学 号 20122308902 20122308905 20122308912 20122308917 组 长 王飞 指导教师 孙菁 起止时间 2014.11-2014,12 2目 录1、任务描述。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。32、问题分析。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。

2、 。 。 。 。 。 。 。 。 。 。 。32.1 设计基础。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。32.2 分析设计课题的要求。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。33、课程设计目的。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。

3、。 。 。 。 。 。 。 。 。 。34、功能设计。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。34.1 算法思想描述。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。34.2 程序流程图。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。44

4、.3 程序模块数据结构。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。44.3.1 菜单函数。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。54.3.2 录入数据。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。

5、 。 。 。 。 。 。 。 。 。 。 。 。64.3.3 查询数据。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。74.3.4 修改并查询数据。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。94.3.5 删除并查询数据。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。

6、 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。115、程序调试及简要分析。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。126、心得体会及领悟。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。17参考文献。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。1831、任务描述个人

7、帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。进入系统后可以输入和修改某月的收支情况,可以根据输入的月份查询每月的收支情况。2、问题分析:2.1 设计基础:掌握对文件的插入、删除、修改、排序等操作,建立一个文件,包括某人几月内的收支情况,能对文件中的信息进行扩充(追加) ,修改和删除,完成系统查询功能.2.2 分析设计课题的要求个人帐务数据由每月的收入及各项开支构成,包括食品消费,房租,子女教育费用,水电 费,医疗费,储蓄等;可以输入和修改某月的收支情况;可以根据输入的月份查询每月的收支情况。3、课程设计目的这个课题具体包含对文件的

8、插入、删除、修改、排序等操作,以及对数据元素的定义、调用等操作,在不断地尝试过程中,能够熟练地进行函数的编写和调用。这一系列的操作,让我们熟悉对文件的操作,以及对学过的知识的掌握与运用。4、功能设计4.1 算法思想描述:第一步列出菜单函数功能划分好,将对文件可进行的操作列成菜单,便于用户进行选择,让界面更友好。第二步输入数据向文件内写入内容,让各元素都有初值。4第三步根据要实现的功能,调用相应的函数初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;相应的功能可调用相应的函数来实现。第四步建好主函数建立一个好的主函数,将各功能都实现好。4.2 程序流程图图 1 流程图4.3 程序数据

9、结构模块结构:I=1I=2I=3I=4结束不符条件符合是是否继续否I=0开始输入数据I=2I=0直接退出5由功能块可将程序划分为几个模块(即实现程序功能所需的函数): 菜单函数 录入数据函数(录入数据主要通过链式 2 维数组直接录入数据) 修改数据函数(修改数据主要通过链式 2 维数组直接录入数据) 查询数据函数 删除数据函数4.3.1 菜单函数 菜单函数通过 menu()通过一个 do-while 语句,过滤掉错误的数字输入,即,当输入的数字大于 4 或者小于 0 的时候显示输入错误;再由一个 swich 语句,使菜单内选项可被输入的数字操控,即,可由输入的数字的不同而进行不同的操作。men

10、u 函数 : void menu(void)int item;int mon;Infor *a;a=(Infor *)malloc(sizeof(Infor);doprintf(n个人帐簿管理系统设计nn);printf(1.录 入 数 据。n);printf(2.修 改 数 据。n);printf(3.查 询 数 据。n);printf(4.删 除 数 据。n);printf(0.退 出 系 统。n);printf(请输入要进行的操作: );scanf(%d,while(item4 | itemmonth,&newI-spxf,&newI-fzfy,&newI-znjy,&newI-sdfy

11、,fflush(stdin);7writeinfor 函数中包含文件的打开、关闭以及文件的创建和文件的读写。通过一个 if 语句判断是否满足创建文件的条件,若无法创建文件,则跳出 writeinfor函数,若创建成功,则将上一步 input 函数中输入的信息储存在创建好的文件中,并在显示屏上显示“数据录入成功” ;fwrite(newI,sizeof(Infor),1,fp)函数阻止同一个月份的信息输入两次,若录入两次,则查询时打开的文件信息为第一次录入的信息,即,只有进行修改操作时才能更改录入的月份中的信息,用户不能妄想以重新输入的方式改变已经录入的数据信息。writeinfor 函数 vo

12、id writeinfor(Infor *newI)FILE *fp;fp=fopen(FilePath1,ab+);if(fp=NULL)printf(无法创建物件n,FilePath1);exit(0);fwrite(newI,sizeof(Infor),1,fp);fclose(fp);printf(录入数据成功n);所用的数据结构:fwrite()函数,new1 相当于一个指针而存储的方式就如一个二维数组链式的存放数据。数据录入成功界面如图 3 所示:8图 3 数据录入成功4.3.3 查询数据查询数据模块中包含一个 search 函数,通过 search 函数查询已经录入成功的月份包含

13、的数据信息,若输入的月份未经录入,则输出提示语句-“无法找到文件” ,反之,则输出已经录入好的数据信息。SStatus search(Infor *a)FILE *fp1;int mon;int isfound=0;printf(请输入正确查询的月份n);scanf(%d,fflush(stdin); fp1=fopen(FilePath1,rb+);if(fp1=NULL)printf(无法找到文件n,FilePath1);return Error; rewind(fp1);fread(a,sizeof(Infor),1,fp1);while(!feof(fp1) if(a-month=mo

14、n)isfound=1; break;elseisfound=0; fread(a,sizeof(Infor),1,fp1);fclose(fp1);if(isfound)return OK;elsereturn NotFound;9查询数据界面如图 4 所示:图 4 查询数据所用的数据结构:fread()函数,a 相当于一个指针而存储的方式就如一个二维数组链式的存放或读取数据。作用和 fwrite()函数一样4.3.4 修改并查询数据修改并查询数据模块中其主要作用的 modify 函数,它的作用是先打开文件,将文件内的与输入月份相对应的数据信息先显示出来,然后再将其修改并重新存入文件中。修改

15、之后再执行查询操作,显示在显示屏上的信息将变成修改后的信息。void modify(Infor *a,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) 10if(b-month=mon)fwrite(a,sizeof(Infor),1,fp2);elsefwrite(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 所示:图

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号