个人帐簿管理系统设计数据结构.docx
- 文档编号:1103739
- 上传时间:2022-10-17
- 格式:DOCX
- 页数:24
- 大小:82.53KB
个人帐簿管理系统设计数据结构.docx
《个人帐簿管理系统设计数据结构.docx》由会员分享,可在线阅读,更多相关《个人帐簿管理系统设计数据结构.docx(24页珍藏版)》请在冰豆网上搜索。
个人帐簿管理系统设计数据结构
计算机学院信管专业
数据结构课程设计
题目:
个人帐簿管理系统设计
班级:
姓名:
学号:
同组人:
起迄日期
课程设计地点:
指导教师:
评阅意见:
成绩评定:
评阅人:
日期:
完成日期:
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)主界面设计
voidmenu(void)
{
intitem;
intmon;
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)录入功能设计
voidinput(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)修改功能设计
voidmodify(Infor*a,intmon)
{
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)查询功能设计
Statussearch(Infor*a)
{
FILE*fp1;
intmon;
intisfound=0;
printf("请正确输入要查询的月份:
");
scanf("%d",&mon);
fflush(stdin);
fp1=fopen(FilePath1,"rb+");
if(fp1==NULL)
{
printf("无法找到文件:
%s\n",FilePath1);
returnError;//返回主函数
}
rewind(fp1);
fread(a,sizeof(Infor),1,fp1);
while(!
feof(fp1))
{
if(a->month==mon)
{
isfound=1;
break;
}
else
{
isfound=0;
}
fread(a,sizeof(Infor),1,fp1);
}
fclose(fp1);
if(isfound)
returnOK;
else
returnNotFound;
}
5)删除功能设计
voiddelRecord(intmon)
{
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(b,sizeof(Infor),1,fp2);
fread(b,sizeof(Infor),1,fp1);
}
fclose(fp1);
fclose(fp2);
remove(FilePath1);//删除源文件
rename("temp.dat",FilePath1);//重命名中间文件
printf("删除数据成功!
\n");
changeFormat();
}
6)排序功能设计
voidpaixu(Infor*a)
{
inti=0,j=0,flag=0,t;
pTypepx[8]={{0,0}};
charstr[8][10]={"记录月份","食品消费","房租费用","子女费用","水电费用","医疗费用","储蓄费用","本月收入"};
for(;i<8;i++)
px[i].no=i;
px[0].data=a->month;
px[1].data=a->spxf;
px[2].data=a->fzfy;
px[3].data=a->znjy;
px[4].data=a->sdfy;
px[5].data=a->ylfy;
px[6].data=a->cxfy;
px[7].data=a->srfy;
for(i=1;i<8;i++)
{
flag=0;
for(j=0;j<8-i;j++)
if(px[j].data>px[j+1].data)
{
t=px[j].data;
px[j].data=px[j+1].data;
px[j+1].data=t;
t=px[j].no;
px[j].no=px[j+1].no;
px[j+1].no=t;
flag=1;
}
if(flag==0)break;
}
printf("\n");
for(i=0;i<8;i++)
{
printf("%s",str[px[i].no]);
}
printf("\n-----------------------------------------------------------------------\n");
for(i=0;i<8;i++)
{
printf("%8d",px[i].data);
}
printf("\n");
}
第四章调试结果与测试分析
1.主界面
2.录入数据
3.查看数据
4.修改数据
5.查询数据
6.排序数据
7.删除数据
第五章总结(心得体会)
在这次的课程设计,我发现了自己还有很多的不足,在数据结构操作方面还有很多的不会。
还需要更加深入的学习。
通过此次的课程设计,在大一C语言学习的基础上,我较为深入的掌握了数据结构与
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人 帐簿 管理 系统 设计 数据结构