课程设计账户管理系统(1)

本文介绍了一个用于管理个人财务的系统,能够详细记录每月的收入和各项开支,包括食品、房租、子女教育、水电、医疗、储蓄和其他费用。系统允许用户输入和修改特定月份的数据,并能按金额从小到大排序开支。此外,用户可以通过输入月份来查询当月的收支情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况。

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Count{
	int month;         //月份
	char *name;        //账户名
	float food;        //食品消费
	float rent;        //房租
	float education;   //子女教育费
	float water;       //水电费
	float hospital;    //医疗费
	float save;        //储蓄
	float other;       //其他
};


void Menu();
void NewCount();
void SearchCount();

 

int main() {
	char* ch;
	int n;

	while(1){
		Menu();
		printf("\n选择菜单:");
		scanf("%s",ch);
		n = atoi(ch);
		switch(n) {
		case 1:
			NewCount();
			break;
		case 2:
			SearchCount();
			break;
		case 0:
			exit(0);
		default:
			printf("\n输入错误!");
			break;
		}
	}

	return 0;
}


void NewCount(){
	struct Count tempCount;
	FILE *fp;
	int i,mon;

	printf("输入账户名:");
	scanf("%s",tempCount.name);
	if ((fp = fopen(tempCount.name,"r"))!= NULL){
		printf("账户已经存在!请进行其他操作!\n");
		return ;
	}
	else {
			fp = fopen(tempCount.name,"w");
			fputs( "月份  食品消费  房   租  子女教育   水电费   医 疗    储  蓄     其 他\n",fp);
			printf("月份  食品消费  房   租  子女教育   水电费   医  疗   储   蓄  其  他\n");
			fclose(fp);
			printf("输入月份数目:");
			scanf("%d",&mon);
			for(i=0;i<mon;i++){
				fp = fopen(tempCount.name,"a");
				/*输入各项*/
				printf("%s","输入月份:");
				scanf("%d",&tempCount.month);
				printf("%20s","输入食品消费:");
				scanf("%f",&tempCount.food);
				printf("%20s","输入房租:");
				scanf("%f",&tempCount.rent);
				printf("%20s","输入子女教育费:");
				scanf("%f",&tempCount.education);
				printf("%20s","输入水电费:");
				scanf("%f",&tempCount.water);
				printf("%20s","输入医疗费:");
				scanf("%f",&tempCount.hospital);
				printf("%20s","输入储蓄费:");
				scanf("%f",&tempCount.save);
				printf("%20s","输入其他费用:");
				scanf("%f",&tempCount.other);
				/*把各项写入到文件*/
				fprintf(fp,"%-4d%9.2f%9.2f%9.2f%9.2f%9.2f%9.2f%9.2f\n",
						tempCount.month,tempCount.food,tempCount.rent,
						tempCount.education,tempCount.water,tempCount.hospital,
						tempCount.save,tempCount.other);
				fclose(fp);
		}
	}
}


void Menu() {
	printf("\n-----------------------------------");
	printf("\n- 1.新建账户                      -");
	printf("\n- 2.查询账户                      -");
	printf("\n- 3.                              -");
	printf("\n- 4.                              -");
	printf("\n- 5.                              -");
	printf("\n- 6.                              -");
	printf("\n- 0.退出程序                      -");
	printf("\n-----------------------------------");
}


void SearchCount(){
	FILE* fp;
	char name[20],ch;
	while(1){
		printf("\n输入要查找的账户:");
		scanf("%s",name);
		if((fp = fopen(name,"r")) == NULL){
			printf("\n账户不存在,请核对后重先输入或者输入“n”结束");
			scanf("%c",&ch);
			if(ch =='n'){
				//fclose(fp);
				return ;
			}
			else
				continue;
		}
		while((ch=getc(fp)) != EOF)
			printf("%c",ch);
		fclose(fp);
		break;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值