C语言代码班费收支管理系统,用C语言编写。它具备以下功能: 输入信息:可以输入收入和支出的信息,包括日期、金额、类型、备注等。 删改信息:可以对已经输入的信息进行修改和删除操作。 按收支时间查询信息:可以按照指定时间范围内的收支信息进行查询。 展示信息并计算余额:可以展示所有收支信息,并且能够计算余额。系统会根据输入的信息自动计算当前余额,并在每次添加或修改信息时更新余额。
时间: 2024-03-12 17:43:30 浏览: 62
C语言编写班费管理系统
5星 · 资源好评率100%
好的,以下是一个简单的班费收支管理系统的C语言代码,实现了上述功能:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个结构体来存储收支信息
struct Record {
char date[20]; // 日期
char type[20]; // 类型
float amount; // 金额
char note[100]; // 备注
struct Record *next; // 指向下一个节点的指针
};
// 添加收支记录
void addRecord(struct Record **head, char *date, char *type, float amount, char *note) {
struct Record *newRecord = (struct Record*) malloc(sizeof(struct Record));
strcpy(newRecord->date, date);
strcpy(newRecord->type, type);
newRecord->amount = amount;
strcpy(newRecord->note, note);
newRecord->next = NULL;
if (*head == NULL) {
*head = newRecord;
} else {
struct Record *p = *head;
while (p->next != NULL) {
p = p->next;
}
p->next = newRecord;
}
}
// 删除收支记录
void deleteRecord(struct Record **head, int index) {
struct Record *p = *head;
if (index == 0) {
*head = p->next;
free(p);
} else {
for (int i = 0; i < index - 1; i++) {
p = p->next;
}
struct Record *temp = p->next;
p->next = temp->next;
free(temp);
}
}
// 修改收支记录
void modifyRecord(struct Record **head, int index, char *date, char *type, float amount, char *note) {
struct Record *p = *head;
for (int i = 0; i < index; i++) {
p = p->next;
}
strcpy(p->date, date);
strcpy(p->type, type);
p->amount = amount;
strcpy(p->note, note);
}
// 查询收支记录
void searchRecord(struct Record *head, char *start, char *end) {
printf("日期\t\t类型\t\t金额\t\t备注\n");
struct Record *p = head;
while (p != NULL) {
if (strcmp(p->date, start) >= 0 && strcmp(p->date, end) <= 0) {
printf("%s\t%s\t%.2f\t%s\n", p->date, p->type, p->amount, p->note);
}
p = p->next;
}
}
// 显示所有收支记录和余额
void showRecord(struct Record *head) {
float balance = 0;
printf("日期\t\t类型\t\t金额\t\t备注\n");
struct Record *p = head;
while (p != NULL) {
printf("%s\t%s\t%.2f\t%s\n", p->date, p->type, p->amount, p->note);
balance += p->amount;
p = p->next;
}
printf("当前余额为%.2f元\n", balance);
}
int main() {
struct Record *head = NULL;
// 添加测试数据
addRecord(&head, "2022-01-01", "收入", 1000, "红包");
addRecord(&head, "2022-01-02", "支出", 500, "买书");
addRecord(&head, "2022-01-03", "支出", 200, "吃饭");
// 显示所有记录和余额
showRecord(head);
// 查询2022年1月的记录
printf("\n2022年1月的记录:\n");
searchRecord(head, "2022-01-01", "2022-01-31");
// 删除第二条记录
deleteRecord(&head, 1);
// 显示所有记录和余额
printf("\n删除一条记录后的余额:\n");
showRecord(head);
// 修改第一条记录
modifyRecord(&head, 0, "2022-01-05", "收入", 2000, "工资");
// 显示所有记录和余额
printf("\n修改一条记录后的余额:\n");
showRecord(head);
return 0;
}
```
以上代码是一个简单的班费收支管理系统,可以进行收支记录的添加、删除、修改、查询和展示等操作,并且能够自动计算余额。
阅读全文