个人记账管理
时间:2020-07-07 13:26:37 来源:雅意学习网 本文已影响 人
沈 沈 阳 工 程 学 院 信 信
息
学
院 C 语言程序设计实践 课 程 设 计 设计题目: :
个人记帐管理
系
别
物联网工程
班级
学生姓名
学
号
19
指导教师
职称
副教授/ / 讲师
起止日期: :
6 2016 年 年 2 12 月 月 6 16 日起 —— 至
7 2017 年 年 1 01 月 月 6 06 日止
沈
阳
工
程
学
院
信
息
学
院
C C 语言程序设计实践
课程设计成绩评定表
系( ( 部 ):
班级: :
学生姓名: :
指
导
教
师
评
审
意
见
评价内容 具
体
要
求 权重 评
分 加权分 调研 论证 能独立查阅文献,收集资料;能制定课程设计方案与日程安排。
0、1 5 5
4 4
3 3
2 2
工作能力 态度 工作态度认真,遵守纪律,出勤情况就是否良好,能够独立完成设计工作,
0、2 5 5
4 4
3 3
2 2
工作量 按期圆满完成规定得设计任务,工作量饱满,难度适宜。
0、2 5 5
4 4
3 3
2 2
说明书得质量 说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0、5 5 5
4 4
3 3
2 2
指导教师评审成绩
( ( 加权分合计乘以 8)
分
加权分合计
指
导
教
师
签
名: :
年
月
日
评
阅
教
师
评
审
意
见
评价内容 具
体
要
求 权重 评
分 加权分 查阅 文献 查阅文献有一定广泛性;有综合归纳资料得能力 0、2 5 5
4 4
3 3
2 2
工作量 工作量饱满,难度适中。
0、5 5 5
4 4
3 3
2 2
说明书得质量 说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0、3 5 5
4 4
3 3
2 2
评阅教师评审成绩
( ( 加权分合计乘以 4)
分
加权分合计
评
阅
教
师
签
名: :
年
月
日
答
辩
小
组
评
审
意
见
评价内容 具
体
要
求 权重 评
分 加权分 学生汇报
汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务得全部内容;时间符合要求。
0、5
5 5
4 4
3 3
2 2
答
辩
思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。
0、5
5 5
4 4
3 3
2 2
答辩小组评审成绩
( ( 加权分合计乘以 8)
分
加权分合计
答辩小组 教师签名: :
年
月
日
课
程
设
计
总
评
成
绩
分
沈
阳
工
程
学
院
信
息
学
院
C C 语言程序设计实践
课程设计成绩评定表
系( ( 部 ):
班级: :
学生姓名: :
指
导
教
师
评
审
意
见
评价内容 具
体
要
求 权重 评
分 加权分 调研 论证 能独立查阅文献,收集资料;能制定课程设计方案与日程安排。
0、1 5 5
4 4
3 3
2 2
工作能力 态度 工作态度认真,遵守纪律,出勤情况就是否良好,能够独立完成设计工作,
0、2 5 5
4 4
3 3
2 2
工作量 按期圆满完成规定得设计任务,工作量饱满,难度适宜。
0、2 5 5
4 4
3 3
2 2
说明书得质量 说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0、5 5 5
4 4
3 3
2 2
指导教师评审成绩
( ( 加权分合计乘以 8)
分
加权分合计
指
导
教
师
签
名: :
年
月
日
评
阅
教
师
评
审
意
见
评价内容 具
体
要
求 权重 评
分 加权分 查阅 文献 查阅文献有一定广泛性;有综合归纳资料得能力 0、2 5 5
4 4
3 3
2 2
工作量 工作量饱满,难度适中。
0、5 5 5
4 4
3 3
2 2
说明书得质量 说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0、3 5 5
4 4
3 3
2 2
评阅教师评审成绩
( ( 加权分合计乘以 4)
分
加权分合计
评
阅
教
师
签
名: :
年
月
日
答
辩
小
组
评
审
意
见
评价内容 具
体
要
求 权重 评
分 加权分 学生汇报
汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务得全部内容;时间符合要求。
0、5
5 5
4 4
3 3
2 2
答
辩
思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。
0、5
5 5
4 4
3 3
2 2
答辩小组评审成绩
( ( 加权分合计乘以 8)
分
加权分合计
答辩小组 教师签名: :
年
月
日
课
程
设
计
总
评
成
绩
分
沈阳工程学院信息学院 《C 语言程序设计实践》 课程设计任务书 课程设计题目:
个人记帐管理
系 系
别
物联网工程
班级
物联网 161
学生姓名
学 学
号
2
指导教师
职称
副教授、讲师
课程设计 进行地点:
实 实楼 训楼 F 六楼机房
任 任 务 下 达 时 间:
2016 年 12 月 14 日 起止日期:2016 年 年 12 月 月 16 日起——至 至 2017 年 年 01 月 月 06 日止 任 系主任
2016 年 12 月 09 日 日 批准
一、
课程设计得原始资料及依据 查阅有关资料,进一步理解面向对象程序设计得思想,并编写一个简单得应用程序系统。通过本设计可以加深理解使用结构化程序设计思想开发一个系统得方法,提高分析问题、解决问题与实际动手得能力。
二、课程设计主要内容及要求 设计内容: 1. 记账信息:月份、食品消费、房租费用、子女教育费、用水电费用、医疗费用、储蓄费用、收入费用。
2. 功能:分别可添加、修改、查询、排序、删除。
3. 保存。
设计要求: 1、 要求利用结构化得方法完成系统得设计; 2、 要求在设计得过程中建立清晰度层次结构; 3、 设计功能满足要求、易于操作得友好界面; 4、 界面中需有菜单; 5、 在系统得设计中,至少要建立 5 个以上独立函数; 6、 要求操作简单,用户界面友好。
7、 运行程序,检查结果就是否与理论值一致。
8、 在完成该题目时,小组人员进行详细得任务分工,并要在报告中体现出来。
三、对课程设计说明书撰写内容、格式、字数得要求 1.课程设计说明书就是体现与总结课程设计成果得载体,主要内容包括:设计题目、设计目得、设备器材、设计原理及内容、设计步骤、遇到得问题及解决方法、设计总结、参考文献等。一般不应少于 3000 字。
2.在适当位置配合相应得实验原理图、功能模块图、算法流程图等图表进行说明。应做到文理通顺,内容正确完整,书写工整,装订整齐。
3.设计总结部分主要写本人完成工作简介以及自己得设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决得办法以及今后得目标。
4.课程设计说明书手写或打印均可。手写要用学校统一得课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用 A4 纸,页边距均为 20mm,正文采用宋体小四号字,行间距 18 磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。
5.课程设计说明书装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。
求 四、设计完成后应提交成果得种类、数量、质量等方面得要求 1.完成“任务书”中指定得功能,运行结果正确。
2.课程设计说明书。
五、时间进度安排
顺序 阶段日期 计 划 完 成 内 容 备注 1 第 1 天 进行设计准备,阅读资料,分析设计任务书,明确设计要求、内容与步骤
2 第 2 天 需求分析
3 第 3 天 概要设计
4 第 45 天 详细设计
5 第 5—8 天 编码、调试
6 第 910 天 程序答辩,撰写课程设计报告
六、主要参考资料( 文献) [1]谭浩强、《C 程序设计》(第三版)、北京: 清华大学出版社、2006 [2]陈天洲、《C 语言高级程序设计》、 北京:人民邮电出版社、2002
[3]杨旭、《C 语言程序设计案例教程》、北京: 人民邮电出版社、2005 [4]郭翠英、《程序设计案例经典》、中国水利电力出版社、2004 [5]谭浩强、《程序设计基础》、北京:清华大学出版社、2004 [6]张翔、《C 语言函数大全》 电子工业出版社、2005 [7]王为青、《C 语言高级编程及实例剖析》、北京:人民邮电出版社、2008、02 [8]徐慧、《C 语言实例解析精粹》、北京:人民邮电出版社、2006、04 [9]姚大鹏 栾好利 张翼英 等编著、《C 语言程序设计教程习题与上机实训指导》、中国水利水电出版社、2005
课 程 设 计 任 务 分 工 组长姓名 张峻铭 题目 个人记 帐管理
项目组成员 个人任务描述 自我评定
录入功能得设计与储存功能设计与排序功能得设计以及删除功能得设计 优秀
主页面得设计与查询功能得设计与修改功能设计以及制作 world 文档 良好
目
录
第 1 章
绪
论 ........................................................................................................... 1
第 2 章 系统功能分析 ................................................................................................. 2
2、1
功能 ...................................................................................................................................... 2
2、2 系统功能需求 ......................................................................................................................... 2
第 3 章 总体设计 ......................................................................................................... 3
3、1 系统设计 ................................................................................................................................ 3
3、2 分块设计 ................................................................................................................................ 3
1)菜单 ........................................................................................................................................... 3
2)录入功能设计 ........................................................................................................................... 4
3 ) 存储功能设计 ........................................................................................................................ 5
4)查瞧功能设计 ........................................................................................................................... 5
5)修改功能设计 ........................................................................................................................... 7
6)查询功能设计 ........................................................................................................................... 8
7 ) 排序功能设计 ...................................................................................................................... 10
8)删除功能设计 ......................................................................................................................... 11
第 4 章 调试结果与设计分析 ................................................................................... 13
4、1 主页面 .................................................................................................................................. 13
4、2 录入数据 .............................................................................................................................. 13
4、3 查瞧数据 .............................................................................................................................. 14
4、4 修改数据 .............................................................................................................................. 14
4、5 查询数据 .............................................................................................................................. 15
4、6 排序系统 .............................................................................................................................. 16
4、7 删除系统 .............................................................................................................................. 16
结
论 ......................................................................................................................... 17
致
谢 ......................................................................................................................... 18
参考文献 ..................................................................................................................... 19
程序 ............................................................................................................................. 20
第 1 章
绪
论 程序设计过程有如解决一个实际问题,从解决实际问题得角度,我们可以这样来瞧:首先要了解这个问题得基本要求,即输入、输出、完成从输入到输出得要求就是什么;其次,从问题得要害入手,从前到后得解决问题得每个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需得变量、数组、指针、链表、命令、函数,然后确定处理过程--算法。可得最后结果 这次我们组要解决得实际问题就是个人账簿管理系统得设计我们将严格按照程序设计得过程来完成这一个课题得设计
第 2 章 系统功能分析
2、1
功能
个人帐簿管理系统记录某人每月得全部收入及各项开支情况,包括食品消 费,房租,子女教育费用,水电费,医疗费,储蓄等。进入系统后可以输入与 修改某月得收支情况,可以对每月得开支从小到大进行排序,可以根据输入得 月份查询每月得收支情况。
2、2 系统功能需求 1、文件操作功能:自动加载与保存数据文件。
2、数据输入功能:可以按提示录入各项数据。
3、数据修改功能:可以按提示修改各项数据。
4、查询功能:可按月份、食品消费进行特定查询,及显示全部数据。
5、排序功能:完成对每月开支得排序。
6、删除功能:可以按提示删除一些数据。
7、转码功能:我们对文件用得就是 dat 得形式,设计转码功能,将它转为 txt 形式。
第 3 章 总体设计 3、1 系统设计 按系统分析得功能要求将系统划分为以下几个主要功能模块: 结构图:
3、2 分块设计 1) 菜单 void menu(void)
{
int item;
int mon;
Yyy *a;
a=(Yyy *)malloc(sizeof(Yyy));
主菜单 录入数据 储存数据 修改数据 查询数据 删除数据 排序 退出 查瞧数据
do{
printf("…………个人帐簿管理系统设计…………\n");
printf("1、录入数据\n");
printf("2、查瞧数据\n");
printf("3、修改数据\n");
printf("4、查询数据\n");
printf("5、排序数据\n");
printf("6、删除数据\n");
printf("0、退出系统\n");
printf("请输入要进行得操作: " );
scanf("%d",&item);
}while(item>6 || item<1); } 2) 录入功能设计 void input(Yyy *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 writeyyy(Yyy *newI)
{
FILE *fp;
fp=fopen(,"ab+");
if(fp==NULL)
{
printf("无法创建文件:%s",);
exit(0);
}
fwrite(newI,sizeof(Yyy),1,fp);
fclose(fp);
printf("数据录入成功!\n");
}
4) 查瞧功能设计
void changeFormat(void)
//暂时只能操作一行文件有待改进
{
FILE *fp1,*fp2;
Yyy *a;
a=(Yyy *)malloc(sizeof(Yyy));
fp1=fopen(,"rb+");
if(fp1==NULL)
{
printf("无法找到文件:%s\n",);
return
;//返回主函数
}
fp2=fopen(,"wt+");
if(fp2==NULL)
{
printf("无法创建文件:%s\n",);
return
;//返回主函数
}
fputs(" \n … … … … … … … … … … … … … … 个 人 帐 簿 管 理 系统……………………………………\n",fp2);
fputs("记录月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 本月收入\n",fp2); fputs(" \n",fp2);
printf("\n 记录月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 本月收入\n"); printf(" \n");
rewind(fp1);
fread(a,sizeof(Yyy),1,fp1);
while(!feof(fp1))
{ printf("%7d %8d %8d %8d %8d %8d %8d %8d\n",a>month,a>spxf,a>fzfy,a
>znjy,a>sdfy,a>ylfy,a>cxfy,a>srfy); fprintf(fp2,"%7d %8d %8d %8d %8d %8d %8d %8d\n",a>month,a>spxf,a>fzfy,a>znjy,a>sdfy,a>ylfy,a>cxfy,a>srfy);
fread(a,sizeof(Yyy),1,fp1);
} fputs(" \n",fp2);
fputs("关闭本程序继续原程序!\n",fp2);
fclose(fp1);
fclose(fp2);
system; //调用打开转换得文本文件
remove;//删除文本文件文件
} 5) 修改功能设计 void modify(Yyy *a,int mon)
{
FILE *fp1,*fp2;
Yyy *b;
b=(Yyy *)malloc(sizeof(Yyy));
fp1=fopen(,"rt");
fp2=fopen("temp、dat","wt+");
rewind(fp1);
fread(b,sizeof(Yyy),1,fp1);
while (!feof(fp1))
{
if(b>month==mon)
{
fwrite(a,sizeof(Yyy),1,fp2);
}
else
{ fwrite(b,sizeof(Yyy),1,fp2);
}
fread(b,sizeof(Yyy),1,fp1);
}
fclose(fp1);
fclose(fp2);
remove;//删除源文件
rename("temp、dat",);//重命名中间文件
printf("修改数据成功!\n" );
changeFormat;
}
6) 查询功能设计 Status search(Yyy *a)
{
FILE *fp1;
int mon;
int isfound=0;
printf("请正确输入要查询得月份:");
scanf("%d",&mon);
fflush(stdin);
fp1=fopen(,"rb+");
if(fp1==NULL)
{
printf("无法找到文件:%s\n",);
return 0; //返回主函数
}
rewind(fp1);
fread(a,sizeof(Yyy),1,fp1);
while(!feof(fp1))
{
if(a>month==mon)
{
isfound=1;
break;
}
else
{
isfound=0;
}
fread(a,sizeof(Yyy),1,fp1);
}
fclose(fp1);
if(isfound)
return 1;
else
return NotFound;
}
7 ) 排序功能设计 void paixu(Yyy *a)
{
int i=0,j=0,flag=0,t;
pType px[8]={{0,0}};
char str[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++)
for(j=0;j<8i;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;
}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");
}
8) 删除功能设计 void delRecord(int mon)
{
FILE *fp1,*fp2;
Yyy *b;
b=(Yyy *)malloc(sizeof(Yyy));
fp1=fopen(,"rt");
fp2=fopen("temp、dat","wt+");
rewind(fp1);
fread(b,sizeof(Yyy),1,fp1);
while (!feof(fp1))
{ if(b>month!=mon)
fwrite(b,sizeof(Yyy),1,fp2);
fread(b,sizeof(Yyy),1,fp1);
}
fclose(fp1);
fclose(fp2);
remove;//删除源文件
rename("temp、dat",);//重命名中间文件
printf("删除数据成功!\n" );
}
第 4 章 调试结果与设计分析 4、1 主页面
4、2 录入数据
4、3 查瞧数据
4、4 修改数据
4、5 查询数据
4、6 排序系统
4、7 删除系统
结
论
在这次得课程设计,我发现了自己还有很多得不足,在这方面还有很多得不会。还需要更加深入得学习。通过此次得课程设计,在大一C语言学习得基础上,我较为深入得掌握了数据结构与算法得设计方法,具备了一定独立分析与设计能力与初步掌握软件开发过程得问题分析,系统设计,程序编码,测试等基本方法与技能。
致
谢 感谢队友得帮助,在我一些不懂得地方给予了我及时得帮助。感谢老师得教导,正在有些方面自己与同组人还有很多得不会,不过经过老师得辅导还就是成功编写了出来。
参考文献
程序 #include
<stdio、h>
#include
<stdlib、h>
#include
<memory、h>
#include
<windows、h>
//文件保存路径
#define
"Myyyy、dat"
#define
"Myyyy、txt"
//查询用声明
#define Status int
#define OK 1
#define Error 0
#define NotFound 2
typedef struct {
int month;//月份
int spxf;//食品消费
int fzfy;//房租费用
int znjy;//子女教育费用
int sdfy;//水电费用
int ylfy;//医疗费用
int cxfy;//储蓄费用
int srfy;//收入费用
} Yyy;
typedef struct {// 查询用自定义数据类型
int no;
int data;
}pType; void menu(void); //菜单
void input(Yyy *newI); //接收键盘输入
void writeyyy(Yyy *newI);//向文件内写入内容
void changeFormat(void );//将 dat 格式文件转换为 txt 文件
Status search(Yyy *a);//查询函数[返回查询得结果及查询得状态]
void paixu(Yyy *a);//对查询据结果排序
void modify(Yyy *a,int mon);//修改数据
void delRecord(int mon);//删除数据
void main
{
while(1)
{
menu;
}
} void menu(void) {
int item;
int mon;
Yyy *a;
a=(Yyy *)malloc(sizeof(Yyy));
do{
printf("…………个人帐簿管理系统设计…………\n");
printf("1、录入数据\n");
printf("2、查瞧数据\n");
printf("3、修改数据\n");
printf("4、查询数据\n");
printf("5、排序数据\n");
printf("6、删除数据\n");
printf("0、退出系统\n");
printf("请输入要进行得操作: " );
scanf("%d",&item);
}while(item>6 || item<1);
switch(item)
{
//退出程序
case 0: exit(0);
break;
//录入数据
case 1: input(a);
writeyyy(a);
break;
//查瞧数据
case 2: changeFormat;
break;
//修改数据
case 3: item=search(a);
mon=a>month;
if (item!=OK) printf("\n 没有符合条件得记录!\n");
else
{
printf("\n 记录月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 本月收入 \n"); printf(" \n"); printf("%7d %8d %8d %8d %8d %8d %8d %8d/n",a>month,a>spxf,a>fzfy,a>znjy,a>sdfy,a>ylfy,a>cxfy,a>srfy);
input(a);
modify(a,mon);
}
break;
//查询数据
case 4: item=search(a);
if (item!=OK) printf("\n 没有符合条件得记录!\n");
else{
printf("\n 记录月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 本月收入\n");
printf(" \n"); printf("%7d %8d %8d %8d %8d %8d %8d %8d/n",a>month,a>spxf,a>fzfy,a>znjy,a>sdfy,a>ylfy,a>cxfy,a>srfy);
}
break;
//排序数据
case 5: item=search(a);
if (item!=OK) printf("\n 没有符合条件得记录!\n");
else
paixu(a);
break;
//删除数据
case 6:
item=search(a);
mon=a>month;
if (item!=OK) printf("\n 没有符合条件得记录!\n");
else
{
printf("\n 记录月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 本月收入\n"); printf(" \n"); printf("%7d %8d %8d %8d %8d %8d %8d %8d/n",a>month,a>spxf,a>fzfy,a>znjy,a>sdfy,a>ylfy,a>cxfy,a>srfy);
delRecord(mon);
}
break;
}
free(a);//释放内存空间 }
void input(Yyy *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);
}
void writeyyy(Yyy *newI)
{
FILE *fp;
fp=fopen(,"ab+");
if(fp==NULL)
{
printf("无法创建文件:%s",);
exit(1);
}
fwrite(newI,sizeof(Yyy),1,fp);
fclose(fp);
printf("数据录入成功!\n");
}
void changeFormat(void)
//暂时只能操作一行文件有待改进
{
FILE *fp1,*fp2;
Yyy *a;
a=(Yyy *)malloc(sizeof(Yyy));
fp1=fopen(,"rb+");
if(fp1==NULL)
{
printf("无法找到文件:%s\n",);
return
;//返回主函数
}
fp2=fopen(,"wt+");
if(fp2==NULL)
{
printf("无法创建文件:%s\n",);
return
;//返回主函数
}
fputs(" \n … … … … … … … … … … … … … … 个 人 帐 簿 管 理 系统……………………………………\n",fp2);
fputs("记录月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 本月收入\n",fp2); fputs(" \n",fp2);
printf("\n 记录月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 本月收入\n"); printf(" \n");
rewind(fp1);
fread(a,sizeof(Yyy),1,fp1);
while(!feof(fp1))
{ printf("%7d %8d %8d %8d %8d %8d %8d %8d\n",a>month,a>spxf,a>fzfy,a >znjy,a>sdfy,a>ylfy,a>cxfy,a>srfy); fprintf(fp2,"%7d %8d %8d %8d %8d %8d %8d %8d\n",a>month,a>spxf,a>fzfy,a>znjy,a>sdfy,a>ylfy,a>cxfy,a>srfy);
fread(a,sizeof(Yyy),1,fp1);
} fputs(" \n",fp2);
fputs("关闭本程序继续原程序!\n",fp2);
fclose(fp1);
fclose(fp2);
system; //调用打开转换得文本文件
remove;//删除文本文件文件
}
Status search(Yyy *a) {
FILE *fp1;
int mon;
int isfound=0;
printf("请正确输入要查询得月份:");
scanf("%d",&mon);
fflush(stdin);
fp1=fopen(,"rb+");
if(fp1==NULL)
{
printf("无法找到文件:%s\n",);
return Error; //返回主函数
}
rewind(fp1);
fread(a,sizeof(Yyy),1,fp1);
while(!feof(fp1))
{
if(a>month==mon)
{
isfound=1;
break;
}
else
{
isfound=0;
}
fread(a,sizeof(Yyy),1,fp1);
}
fclose(fp1);
if(isfound)
return OK;
else
return NotFound;
}
void paixu(Yyy *a)
{
int i=0,j=0,flag=0,t;
pType px[8]={0};
char str[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++)
{
for(j=0;j<8i;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;
}
}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");
}
void modify(Yyy *a,int mon)
{
FILE *fp1,*fp2;
Yyy *b;
b=(Yyy *)malloc(sizeof(Yyy));
fp1=fopen(,"rt");
fp2=fopen("temp、dat","wt+");
rewind(fp1);
fread(b,sizeof(Yyy),1,fp1);
while (!feof(fp1))
{
if(b>month==mon)
{
fwrite(a,sizeof(Yyy),1,fp2);
}
else
{
fwrite(b,sizeof(Yyy),1,fp2);
}
fread(b,sizeof(Yyy),1,fp1);
}
fclose(fp1);
fclose(fp2);
remove;//删除源文件
rename("temp、dat",);//重命名中间文件
printf("修改数据成功!\n" );
changeFormat;
}
void delRecord(int mon)
{
FILE *fp1,*fp2;
Yyy *b;
b=(Yyy *)malloc(sizeof(Yyy));
fp1=fopen(,"rt");
fp2=fopen("temp、dat","wt+");
rewind(fp1);
fread(b,sizeof(Yyy),1,fp1); while (!feof(fp1))
{
if(b>month!=mon)
fwrite(b,sizeof(Yyy),1,fp2);
fread(b,sizeof(Yyy),1,fp1);
}
fclose(fp1);
fclose(fp2);
remove;//删除源文件
rename("temp、dat",);//重命名中间文件
printf("删除数据成功!\n" );
}