班费收支管理系统代码有1.自行输入班费收入或支出的日期,来源,金额,2.班费信息的修改,3.按班费支出或收入的日期查询班费信息,4.班费信息展示并计算班费余额。请用c语言实现
时间: 2024-02-28 21:56:50 浏览: 20
好的,以下是班费收支管理系统的 C 语言实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_RECORDS 100
struct Record {
char date[20];
char source[50];
float amount;
};
struct ClassFee {
struct Record records[MAX_RECORDS];
int count;
float balance;
};
void add_income(struct ClassFee *cf, char date[], char source[], float amount) {
strcpy(cf->records[cf->count].date, date);
strcpy(cf->records[cf->count].source, source);
cf->records[cf->count].amount = amount;
cf->balance += amount;
cf->count++;
}
void add_expense(struct ClassFee *cf, char date[], char source[], float amount) {
strcpy(cf->records[cf->count].date, date);
strcpy(cf->records[cf->count].source, source);
cf->records[cf->count].amount = -amount;
cf->balance -= amount;
cf->count++;
}
void modify_info(struct ClassFee *cf, int idx, char date[], char source[], float amount) {
cf->balance -= cf->records[idx].amount;
strcpy(cf->records[idx].date, date);
strcpy(cf->records[idx].source, source);
cf->records[idx].amount = amount;
cf->balance += amount;
}
void search_info(struct ClassFee *cf, char date[]) {
printf("日期\t来源\t金额\n");
for (int i = 0; i < cf->count; i++) {
if (strcmp(cf->records[i].date, date) == 0) {
printf("%s\t%s\t%.2f\n", cf->records[i].date, cf->records[i].source, cf->records[i].amount);
}
}
}
void show_info(struct ClassFee *cf) {
printf("日期\t来源\t金额\n");
for (int i = 0; i < cf->count; i++) {
printf("%s\t%s\t%.2f\n", cf->records[i].date, cf->records[i].source, cf->records[i].amount);
}
printf("班费余额:%.2f\n", cf->balance);
}
int main() {
struct ClassFee cf = {0};
add_income(&cf, "2022-01-01", "班费收入", 1000);
add_expense(&cf, "2022-01-03", "购买文具", 200);
add_expense(&cf, "2022-01-05", "场地租赁", 500);
show_info(&cf);
modify_info(&cf, 1, "2022-01-04", "购买文具", 300);
show_info(&cf);
search_info(&cf, "2022-01-03");
return 0;
}
```
以上代码实现了班费收支管理系统的基本功能,包括添加收入/支出、修改信息、查询信息和展示信息,并且可以计算出班费余额。需要注意的是,以上代码仅供参考,具体实现方法可以根据实际需求进行调整。