个人帐簿管理系统设计数据结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机学院信管专业
数据结构课程设计
题目:个人帐簿管理系统设计
班级:
姓名:学号:
同组人:
起迄日期
课程设计地点:
指导教师:
评阅意见:
成绩评定:
评阅人:日期:
完成日期:2013年12月
目录
第一章前言 (2)
第二章系统功能分析 (2)
1.功能 (2)
2.要求 (2)
3.系统功能需求 (2)
第三章总体设计 (3)
1.系统设计 (3)
2.分块设计 (3)
第四章调试结果和测试分析 (9)
1. 主界面 (10)
2.录入数据 (10)
3.查看数据 (11)
4.修改数据 (11)
5.查询数据 (11)
6.排序数据 (12)
7.删除数据 (12)
第五章总结(心得体会) (12)
第六章参考文献 (13)
第七章致 (14)
第八章附录 (14)
第一章前言:
程序设计过程有如解决一个实际问题,从解决实际问题的角度,我们可以这样来看:首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要什么;其次,从问题的要害入手,从前到后的解决问题的每个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、指针、链表、命令、函数,然后确定处理过程--算法。可得最后结果
这次我们组要解决的实际问题是个人账簿管理系统的设计,我们将严格按照程序设计的过程来完成这一个课题的设计
第二章系统功能分析
1.功能:
个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况。
2.要求:
1)界面友好,函数功能要划分好
2)总体设计应画一流程图
3)程序要加必要的注释
4)要提供程序测试方案
5) 程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运
行的程序是没有价值的。
3.系统功能需求分析
1.文件操作功能:自动加载和保存数据文件。
2.数据输入功能:可以按提示录入各项数据。
3.数据修改功能:可以按提示修改各项数据。
4.查询功能:可按月份、食品消费进行特定查询,及显示全部数据。
5.排序功能:完成对每月开支的排序。
6.删除功能:可以按提示删除一些数据。
7.转码功能:我们对文件用的是dat的形式,设计转码功能,将它转为
txt形式。
第三章总体设计
1.系统分析
按系统分析的功能要求将系统划分为以下几个主要功能模块:
结构图
2.分块设计
1)主界面设计
void menu(void)
{
int item;
int mon;
Infor *a;
a=(Infor *)malloc(sizeof(Infor));
do{
printf("…………个人帐簿管理系统设计…………\n"); printf("1.录入数据\n");
printf("2.查看数据\n");
printf("3.修改数据\n");
printf("4.查询数据\n");
printf("5.排序数据\n");
printf("6.删除数据\n");
printf("7.退出系统\n");
printf("请输入要进行的操作: " );
scanf("%d",&item);
}while(item>6 || item<-1);
2)录入功能设计
void input(Infor *newI)
{ printf("\n依次输入数据:\n(本月月份食品消费房租费用子女费用水电费用医疗费用储蓄费用收入费用)\n");
scanf("%d%d%d%d%d%d%d%d",&newI->month,&newI->spxf,&newI->fzfy,&newI->znjy,&newI->sdfy,&newI->ylfy,&newI->cxfy,&newI->srfy);
fflush(stdin); }
3)修改功能设计
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))
{
if(b->month==mon)
{
fwrite(a,sizeof(Infor),1,fp2);
}
else
{
fwrite(b,sizeof(Infor),1,fp2);
}
fread(b,sizeof(Infor),1,fp1);
}
fclose(fp1);
fclose(fp2);
remove(FilePath1);//删除源文件
rename("temp.dat",FilePath1);//重命名中间文件 printf("修改数据成功!\n" );
changeFormat();
}
4)查询功能设计
Status search(Infor *a)
{
FILE *fp1;
int mon;
int isfound=0;
printf("请正确输入要查询的月份:");
scanf("%d",&mon);
fflush(stdin);
fp1=fopen(FilePath1,"rb+");
if(fp1==NULL)
{
printf("无法找到文件:%s\n",FilePath1);