个人帐簿管理系统设计数据结构Word格式.docx
- 文档编号:19993820
- 上传时间:2023-01-13
- 格式:DOCX
- 页数:19
- 大小:31.38KB
个人帐簿管理系统设计数据结构Word格式.docx
《个人帐簿管理系统设计数据结构Word格式.docx》由会员分享,可在线阅读,更多相关《个人帐簿管理系统设计数据结构Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
第七章致谢……………………………………………………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"
);
1.录入数据\n"
2.查看数据\n"
3.修改数据\n"
4.查询数据\n"
5.排序数据\n"
6.删除数据\n"
7.退出系统\n"
请输入要进行的操作:
"
);
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,&
spxf,&
fzfy,&
znjy,&
sdfy,&
ylfy,&
cxfy,&
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);
fclose(fp1);
fclose(fp2);
remove(FilePath1);
//删除源文件
rename("
FilePath1);
//重命名中间文件
修改数据成功!
\n"
changeFormat();
4)查询功能设计
Statussearch(Infor*a)
FILE*fp1;
intisfound=0;
请正确输入要查询的月份:
"
mon);
rb+"
if(fp1==NULL)
无法找到文件:
%s\n"
returnError;
//返回主函数
fread(a,sizeof(Infor),1,fp1);
while(!
if(a->
isfound=1;
break;
isfound=0;
if(isfound)
returnOK;
returnNotFound;
5)删除功能设计
voiddelRecord(intmon)
month!
=mon)
删除数据成功!
}
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;
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;
for(i=0;
%s"
str[px[i].no]);
\n-----------------------------------------------------------------------\n"
%8d"
px[i].data);
第四章调试结果与测试分析
1.主界面
2.录入数据
3.查看数据
4.修改数据
5.查询数据
6.排序数据
7.删除数据
第五章总结(心得体会)
在这次的课程设计,我发现了自己还有很多的不足,在数据结构操作方面还有很多的不会。
还需要更加深入的学习。
通过此次的课程设计,在大一C语言学习的基础上,我较为深入的掌握了数据结构与算法的设计方法,具备了一定的独立分析和设计能力和初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
第六章参考文献
1.严蔚敏吴伟民《数据结构》(C语言版)清华大学出版社2007
2.催俊凯。
计算机软件基础。
机械工业出版社。
2007.7
3.唐发根。
数据结构教程(第二版)。
北京航空航天大学出版社。
2005.5
4.谭浩强。
C程序设计(第三版)。
清华大学出版社。
2005
5.王宏生,宋继红。
数据结构。
北京:
国防工业出版社,2006.1
6.李建学,李光元,吴春芳。
数据结构课程设计案例精编(用C/C++描述)。
2007.2
第七章致谢
感谢队友的帮助,在我一些不懂的地方给予了我及时的帮助
感谢席老师的辅导,在有些方面自己和同组人还有好多的不会,不过经过老师的辅导还是成功编写了出来
第八章附录
源程序:
#include<
stdio.h>
#include<
stdlib.h>
memory.h>
windows.h>
//文件保存路径
#defineFilePath1"
Myinfor.dat"
#defineFilePath2"
Myinfor.txt"
//查询用声明
#defineStatusint
#defineOK1
#defineError0
#defineNotFound2
typedefstruct{
intmonth;
//月份
intspxf;
//食品消费
intfzfy;
//房租费用
intznjy;
//子女教育费用
intsdfy;
//水电费用
intylfy;
//医疗费用
intcxfy;
//储蓄费用
intsrfy;
//收入费用
}Infor;
typedefstruct{//查询用自定义数据类型
intno;
intdata;
}pType;
voidmenu(void);
//菜单
voidinput(Infor*newI);
//接收键盘输入
voidwriteinfor(Infor*newI);
//向文件内写入内容
voidchangeFormat(void);
//将dat格式文件转换为txt文件
Statussearch(Infor*a);
//查询函数[返回查询的结果及查询的状态]
voidpaixu(Infor*a);
//对查询据结果排序
voidmodify(Infor*a,intmon);
//修改数据
voiddelRecord(intmon);
//删除数据
voidmain()
while
(1)
menu();
}while(item>
switch(item)
{//退出程序
case0:
getchar();
exit
(1);
//录入数据
case1:
input(a);
writeinfor(a);
//查看数据
case2:
//修改数据
case3:
item=search(a);
mon=a->
if(item!
=OK)printf("
\n没有符合条件的记录!
\n录月份食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入\n"
-----------------------------------------------------------------------\n"
%7d%8d%8d%8d%8d%8d%8d%8d/n"
a->
month,a->
spxf,a->
fzfy,a->
znjy,a->
sdfy,a->
ylfy,a->
cxfy,a->
modify(a,mon);
//查询数据
case4:
if(item!
else{
\n记录月份食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入\n"
//排序数据
case5:
paixu(a);
//删除数据
case6:
delRecord(mon);
free(a);
//释放内存空间
}
voidinput(Infor*newI)
voidwriteinfor(Infor*newI)
FILE*fp;
fp=fopen(FilePath1,"
ab+"
if(fp==NULL)
无法创建文件:
%s"
exit(0);
fwrite(newI,sizeof(Infor),1,fp);
fclose(fp);
数据录入成功!
voidchangeFormat(void)//暂时只能操作一行文件有待改进
return;
fp2=fopen(FilePath2,"
if(fp2==NULL)
FilePath2);
fputs("
\n……………………………………个人帐簿管理系统……………………………………\n"
fp2);
记录月份食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入\n"
%7d%8d%8d%8d%8d%8d%8d%8d\n"
fprintf(fp2,"
关闭本程序继续原程序!
system(FilePath2);
//调用打开转换的文本文件
remove(FilePath2);
//删除文本文件文件
fp1=fope
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人 帐簿 管理 系统 设计 数据结构