家庭收支记账软件

c语言简单家庭收支记账软件

#include<stdio.h>
#include<string.h>
/**
 * 完成项目1,家庭收支记账软件,整体框架搭建
*/

int main(){
    int loop = 1;
    int hasRecord = 0; //默认情况下没有收入或支出的明细
    char details[3000] = "-----------------当前收支明细记录-----------------\n收支\t收支金额\t账户金额\t\t说明\n";  //用来存储收支的记录信息
    double initBalance = 1000;

    
    do
    {
        printf("-----------------家庭收支记账软件-----------------\n");
        printf("                 1 收支明细\n");
        printf("                 2 登记收入\n");
        printf("                 3 登记支出\n");
        printf("                 4 退    出\n");
        printf("                 请选择(1-4):\n");

        int selection;  //记录用户的选择
        scanf("%d",&selection);

        switch (selection)
        {
        case 1:
            if (!hasRecord)
            {
                printf("当前没有收支明细.....来一笔吧!");
            }else{


                printf("%s\n",details);

            }          
            break;

        case 2:
            double addMoney;
            printf("本次收入金额:");
            scanf("%lf",&addMoney);
            printf("本次收入说明:");
            char addDetail[100];
            scanf("%s",addDetail);

            initBalance += addMoney;
            //将用户的输入信息拼接为一个完整的字符串
            char addDetails[300];
            sprintf(addDetails,"收入\t%.2f\t\t%.2f\t\t%s",addMoney,initBalance,addDetail);

            //将用户完整收入的信息添加到当前整体用户收支明细
            strcat(details,addDetails);
            //收入的登记情况
            hasRecord = 1;
            printf("登记收入完成\n");
            break;
        case 3:
            printf("本次指出金额:");
            double minusMoney;
            scanf("%lf",&minusMoney);
            if (minusMoney > initBalance)
            {
                printf("余额不足\n");
                break;
            }else{
                initBalance -= minusMoney;
                printf("本次支出说明:");
                char minusDetail[100];
                scanf("%s",minusDetail);

                //将用户输入的信息拼接为一个完整的字符串
                char minusDetails[300];
                sprintf(minusDetails,"支出\t%.2f\t\t%.2f\t\t%s",minusMoney,initBalance,minusDetail);

                //将用户完整收入的信息添加到当前整体用户收支明细里
                strcat(details,minusDetails);
                hasRecord = 1;
                printf("登记支出完成\n");
                break;
            }
            
        case 4:
            printf("你确定要退出吗(y/n):");
            char isExit;
            
            
            while (1){
                scanf("%c",&isExit);
                scanf("%c",&isExit);
                if (isExit == 'y' || isExit == 'n'){
                    break;
                }else{
                    printf("你输入有误,请重新输入(y/n):");
                }
            }
                if (isExit == 'y')
                {
                    loop = 0;
                    printf("欢迎再次来到家庭记账软件");
                }
                break;
            }
              
    } while (loop);
    
    printf("退出");
    getchar();
    getchar();
    return 0;
}

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值