个人收支管理系统Word格式.docx
- 文档编号:8291095
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:17
- 大小:48.63KB
个人收支管理系统Word格式.docx
《个人收支管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《个人收支管理系统Word格式.docx(17页珍藏版)》请在冰点文库上搜索。
inty,m,d;
charzy[100];
//摘要
floatmoney,rmoney;
//金额,余额
charbiz[5];
//币种
intx;
〃收支类型(标记,明细表或查询统计用)
扣[100];
本程序中主要数据都需要显示顺序、日期、摘要、金额、余额、币种和收支类型,所以需要定义data结构体。
Intn:
表示顺序。
Inty,m,d:
用来定义日期。
Charzy:
摘要。
Floatmoney>
rmoney:
金额、余额。
Charbiz[5]:
币种。
Intx:
定义收支类型。
五、函数功能描述
1.check():
函数原型:
intcheck()
check函数主要用于检查输入日期的合法性、日期的先后顺序是否正确,并查找符合日期要求的数据。
2.fflush()
fflush(stdin)
主要用于清除缓存,方便用户接下来的操作。
3.gets()
gets()
函数主要用于把用户输入的数据保存到指定数据中。
4.strlen()
size_tstrlen(constchar*s)
该函数是用来计算字符串的长度,用于用户接下来的操作。
5.strcpy()
char*strcpy(char*s1,constchar*s2)
该函数用于把字符串s2复制给字符串s1o
6.file*()
file*fp1;
通过文件指针便于对流的访问。
7.Fopen()
fopen(FILE_NAME,”r或w”)
该函数用于打开文件,进行读取或写入。
8.Fclose()
fclose()
该函数主要用来关闭用户打开的文件。
9.Main。
voidmain()
Main()为主函数。
四、程序实现
1.源码分析
(1)程序预处理
^include<
stdio.h>
//标准输入输出函数库
stdlib.h>
//标准函数库
string.h>
〃字符串操作函数库
(2)主函数main()
Main。
函数主要实现了对整个程序的调用,以及相关功能模块的
调用。
它主要的工作是初始化程序。
{
intn;
〃确定用户需要进入的功能模块
do
printf(,,++++++++++++++++++\n,1);
phntfC个人收支管理\n"
);
//用户可以进行的功能操作选项
printffl.收入\n"
);
printf("
2.支出\n"
3.明细表\n"
printf(M.查询与统计\n"
5.写入文件W);
6.读取文件\n"
printff'
O.退出系统\nH);
printf(”请输入你要进行操作:
“);
scanf("
%d"
&
n);
〃捕获用户要进行的操作
sv/itch(n)(
case1:
income(p);
system(”cls"
break;
〃进入收入模块,结束后返回
case2:
expend(p);
system("
cis11);
break;
〃进入指出模块,结束后返回
case3:
list(p);
system(”cls”);
//进入明细表,结束后返回
case4:
destat(p);
systemCcls"
//进入查询与统计,结束后返回
case5:
write(p);
〃进入写入文件,结束后返回
case6:
read(p);
〃进入读取文件,结束后返回
}
}while(n!
=0);
〃退出系统
2.程序运行结果显示
(1)初始化界而
(2)进入收入模式
收
入表与*x系个入出翎御人蚩收高酉写演退
••
1
。
入
♦♦
I
立
♦
t♦<
理
23
15bId
计
顷・
.
•,
K•,
、
•
.V■
*.•
n
En
♦。
ir-u:
2<
5>
•*
<
3S
脚
1:
20
•'
.RK1
fl
•八•
7-
结束时按Enter返回主界而
(3)进入支出模式
个入出乖询入瞿-收支明置读退一•••••••♦
Lrl
2-?
-
渺20沅皿-你E>
等回入入入入X入青Him月寿尢耍A
结束时按Enter返回主界面
(4)明细表
*C:
\DocuaentsandSettings\£
dsinistrator\^i$\^程设计2\个人收支管理・ewe'
入你要进行操苗3
时话也意m期劣先后顺序!
!
I入馨始■间(f>
|2000-1-1.),2000-1-1入截至时间(p]2bbW-l-l);
2009-9-9号日期•-W全箱
2001-1-1天235
2U0S-5-S干6S64
0-0-ggH
«
标志[为收入标志。
为支出!
请按Ent
(5)查询与统计
统03^Ifi.xl“个入出细相入堆1收支明言读退1
入你哭进行操作84
.WH
.查m
按年查询
-1
按月查询
H
表与交豢
人个入出纽询入堆收帝香iis
123
2J
(6)
写入文件
(7)读取文件
在这我们主要显示退出系统后读取文件操作显示:
tt作
tIt比一攵giyfc±
充'
A表与文豪个入出M询入取土收5^3®
、.<
■:
.己E»
■»
麻、牛枝t//1・4/Ht请输m请
之后用户可以根据需要进行相应操作查看数据。
(8)退出系统
I收酬查写读退」123456M上
++个入出细
++
A
+4-收
!
4+4-+++支管坦
4,4-»
,4-
—▼观
任
1F
怕
■
-□X
-C:
\Docu>
entsandSettings\AdBinistratorBl程设计—
六、课程设计总结
经过2个星期的努力,终于完成了个人收支管理系统的设计。
本来,在开始上课之前,我们都以为这是很简单的东西,毕竟我们都学习了这么时间,并且也在课上进行了一次次的实战训练。
可是,没想到,别看平时比较容易,在这一刻,要把课上学到的知识融会贯通,要想设计出自己心满意足的东西是多么的困难。
不过,还好,总算完成了,也感受到了成功的喜悦。
努力奋斗,并不是没有回报的!
当然,在这2个星期的过程中,我们也发现了许多问题并克服了它们。
这些问题或许是上课时没注意到的细节问题,或是自己之前一直没能搞懂的知识点,但不论如何,它都让我们学会了好多新的东西,有了新的感悟。
在此,感谢老师们的辛勤工作,无私贡献,感谢老师们的指导。
七、源代码
^include〈string.h>
structdata{
〃摘要
〃币种
}p[100];
intk=1;
intcheckl(inty,intm,intd)〃检测日期合法性
inta[12]=(31,28,31,30,31,30,31,31,30,31,30,31};
if(y>
o){
if(d>
0&
&
d<
=a[m-1])
return1;
if((((y%4==0)&
(y%100!
=0))11(y%400==0))&
(m==2)&
(d==29))
return0;
intcheck2(inty1,intmlJntd1Jnty2,intm2,intd2)//检测日期的先后顺序是否正确
if(y2>
y1)return1;
if(y2==y1&
8tm2>
m1)return1;
if(y2==y1&
m2==m1&
d2>
d1)return1;
m2==m1&
d2==d1)return1;
else
intcheck3(inty1,intmlJntd1,inty2,intm2,intd2)〃查找符合要求的日期
inti,k=O;
for(i=0;
i<
100;
i++)
if((check2(y1,m1,d1,p[i].y,p[i].m,p[i].d))
8t(check2(p[i].y,p[i].m,p[i].d,y2,m2,d2)))
k=k+1;
if(k=1)
intincome(structdatap[])
inti;
charq[100];
for(i=k-1;
;
++)(
do{
请输入日期(例:
2012-7-1):
”);
scanf(”%d・%d・%d”,&
p[i].y,&
p[i]・n】,&
p[i].d);
}
\vhile(!
check1(p[i].y,p[i].m,p[i].d));
fflush(stdin);
请输入摘要(默认:
无):
"
gets(p[i].zy);
if(strlen(p[i].zy)==O)strcpy(p[i].zy,"
无"
fflush(stdin);
iij输入金额:
scanf(”%〃,&
p[i].money);
printf("
请输入币种(默认RMB):
gets(p[i].biz);
if(strlen(p[i].biz)==O)strcpy(p[i].biz,"
RMB11);
p[i].x=1;
p[i].rmoney=p[i-1].rmoney+p[i].money;
P[i]・n=k;
it输入Enter继续:
gets(q);
intexpend(structdatap[])//支出
for(i=k-1;
do(
请输入日期(例:
2012-7-1):
scanf(”%d・%d-%d”,&
p[i].m,&
\7hile(!
gets(p[i].zy);
无,fflush(stdin);
scanf("
%f1,&
p[i].money);
gets(p[i].biz);
if(strlen(p[i].biz)==O)strcpy(p[i].biz,HRMB"
p[i]*0;
p[i].rmoney=p[i・1].rmoney+p[i].money;
P[i].n=k;
请输入Enter继续:
intlist(structdatap[])
intI,y1,m1,d1,y2,m2,d2;
do{printf("
输入时请注意日期的先后顺序!
\n"
请输入起始时间(例2000-1-1):
scanf(”%d・%d・%d"
y1,&
m1,&
d1);
)
while(!
check1(y1,m1,d1));
请输入截至时间(例2000-1-1):
scanf(”%d・%d・%d”,&
y2,6tm2,&
d2);
while(!
check1(y2,m2,d2));
check2(y1,m1,d1,y2,m2,d2));
if(check3(y1,m1,d1,y2,m2,d2)==0)
{printf(“此时间段内没有收支记录!
W);
else{
顺序号\t日期\t\t摘要\t金额\t余额\t币种\t标志\n"
k;
printf(,'
%d\t%d-%d-%d\t%s\t%g\t%g\t%s\t%d\n,l,p[i].n,p[i].y,p[i].m,p[i].d,p[i].zy,p[i].money,p[i].rmoney,p[i].biz,p[i].x);
注意:
标志1为收入,标志0为支出!
printf(”请按Enter继续!
”);
intdestat(structdatap[])〃查洵与统计
inty,m,z,i;
charq[100];
floatsum1=0,sum2=0,rmoney;
it选择查询方式:
\n"
1.^询年份:
Z.查询月份:
scanf(”%d”,&
z);
if(z==1)
printf(”请输入要查询的年份:
scanf(”%d”,&
y);
(
if((y==p[i].y)&
(p[i].x==1))
sum1=sum1+p[i].rmoney;
(p[i].x==O))sum2=sum2+p[i].rmoney;
if(z==2)
phntfC请输入年份:
”);
scanf(”%d”,&
do{
请输入月份:
scanf
while(m<
11|m>
12);
if((p[i].y==y)&
(p[i].x==1)&
(p[i].m==m))sum1=sum1+p[i].rmoney;
(p[i].x==O)&
(p[i].m==m))sum2=sum2+p[i].rmoney;
rmoney=sum1-sum2;
printfC总收入:
%g\n"
sum1);
pnntf("
总支出:
sum2);
余额:
%g\nM,rmoney);
请按Enter继续:
void\vrite(structdatap[])〃写入文件{
FILE*fp;
charq[20],t[100];
if(k.l=O)
printff1请先输入数据!
请输入文件名:
if(strlen(q)==O)(
strcpy(q,"
record.dat"
printff已保存为默认文件data.dat'
n"
);
fp=fopen(q,,W,);
fv/rite(&
p[i],sizeof(structdata),1,fp);
phntfC记录己存储!
\n“);
printf(”\n清按Enter键继续:
gets(t);
voidread(structdatap[])〃读取文件
charq[2O],t[1OO];
k=0;
输入文件名
gets(q);
if(strlen(q)==O){
strcpy(q,"
record・dat”);
printfC已打开默认文件data.dat'
if((fp=fopen(q,,,rb,,))==NULL)
文件不存在!
fp=fopen(q,T);
feof(fp))
fread(&
p[k++],sizeof(structdata),1,fp);
fclose(fp);
k=k-1;
printf(-文件已读取!
\nH);
printf(”\n请按Enter键继续:
printf(”++++++++++++++++++\n"
printff1个人收支管理\nH);
printf(H1.收入\n"
printf(”4.查询与统计\nM);
5.入文件\n"
6.取文件W);
请输入你要进行操作:
scanf(”%d“,&
switch(n)(
case1:
systen】
(”cls”);
expend(p);
cis”);
list(p);
cis"
system(”cIs”);
system("
cls"
}v/hile(n!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人 收支 管理 系统