C/C++实现个人收支系统的示例代码
昨天朋友委托我做一个基于C++的课程小设计,题目如下:
设计一个简单的个人收支管理系统,至少包括如下功能:
1、逐笔输入个人收入或支出的明细,写入到文件保存,可不断进行输入和追加。
输入的明细数据包括:收支明细类别编码、发生日期、金额、备注。
1)为了简化用户的输入,类别编码由字母和数字构成:“a”表示收入、“b”表示支
出,数字是大类下的编号。类别编码及类别名称的对应由自己定义、组织在程序中
并输出展示。比如a1表示收入类的生活费,b1表示支出类的学习,编号依次递增,
类别的数量和名称根据日常需要自拟。
例如:
收入类:a1‐生活费,a2‐奖学金,a3‐稿费
支出类:b1‐学习用品,b2‐生活用品,b3‐游戏
2)用户输入收支明细,具体的输入格式如下(各数据用一个或多个连续空格分隔,
直接输入回车表示输入结束):
请逐笔输入类别编码、发生日期、金额、备注:
输入收支明细:a12020‐1‐262000.01月生活费
输入收支明细:b12020‐3‐952.5买书
…
输入收支明细:b22020‐5‐978.00购买台灯
3)将输入的明细数据写入到一个文件中进行保存,便于以后进行追加和处理。
2、根据日常对个人收支管理的需要,完成汇总,进行功能设计和编码实现。需要
统计并输出用户所输入月份各收支类别的汇总情况,输出后,再次询问用户是否输
出该月的各笔明细,用户回答是,则按明细类别的升序输出;回答否,则不输出。
输入和输出结果如下:
请输入对收支类别数据进行汇总的月份:2020‐3
2020年3月收支类别数据的汇总
收入/支出明细类别金额
收入生活费2000
…
支出学习用品200
…
2020年3月的总收入为:1500,总支出为:1200
是否输出该月的各笔明细(y为输出,其他为不输出):y
2020年3月收支类别数据的明细
类别收入/支出发生日期金额备注
生活费收入2020‐03‐012000.03月生活费
学习用品支出2020‐03‐0310.0买钢笔
…
自己敲了一遍,具体实现如下:
#include#include #include #defineMAX_MARK100 usingnamespacestd; structPay { charpayment[2]; intinout; intyear; intmonth; intday; intmoney; charmark[MAX_MARK]; }ioi;/*日期,收入/支出金额收入来源/支出目的*/ voiddisplayMenu() { cout<<"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++"< >kind; if(kind==1){ cout<<"请输入查找的年月(XXXX-XX):"; scanf("%d-%d",&tempYear,&tempMonth); for(i=0;i >tempPayment; for(i=0;i >judge; if(judge==1){ printf("%d年%d月收支类别数据的明细:\n",sumYear,sumMonth); cout<<"类别\t收入\t支出\t发生日期\t金额\t备注"< ioi[k].money) k=j; temp=ioi[k]; ioi[k]=ioi[i]; ioi[i]=temp; } } intmain() { intallNum=0; intchoice=0; structPayioi[50]; while(1) { displayMenu(); cout<<"请选择您的操作(1,2,3,4,5)"< >choice; switch(choice) { case1: allNum=addPayment(ioi,allNum); break; case2: findPayment(ioi,allNum); break; case3: sortMoney(ioi,allNum); sumPayment(ioi,allNum); break; case4: writeFile(ioi); break; case5: exit(0); break; default: cout<<"输入不合法,重新输入"< 总结
到此这篇关于C/C++实现个人收支系统的示例代码的文章就介绍到这了,更多相关c++个人收支系统内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!