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

个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情。关于本次课程设计虽然做得有些急,但是主要的功能还是实现了,虽然比较简单,但是还是遇到好多问题,有语言上的基本问题,有算法设计上的问题,在开始由于要求比较高而且想于要快,就是前
摘要由CSDN通过智能技术生成

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

关于本次课程设计虽然做得有些急,但是主要的功能还是实现了,虽然比较简单,但是还是遇到好多问题,有语言上的基本问题,有算法设计上的问题,在开始由于要求比较高而且想于要快,就是前面两个的原型主要功能没有实现,最后用啦一个简单的方法把功能实现了,钱面两个就是初步实现功能的,但是效率不是很好,比如用到数组保存数据,但是主要功能的到实现了,这次就把数组的固定内存分配问题改为用单链表实现动态空间分配,由于是数据结构的课程设计,这也是老师要求的吧。对于这次的还是基本满意的,但还是有许多需要优化的地方,因为考试较多,就没有经行优化,也厚有时间再来优化,排版上也有好多问题,这次课程设计有好多感悟,今天写完的代码在今天晚上睡觉后明天起来就觉得不行了,就要删掉,有时候这种感觉就是要把所有的代码都要删掉,流程模块都要重新设计,对这中事情又爱又恨,但还是觉得重新设计比较好,这样的收获也比较大,最终付出了努力,收获还是蛮大的,下面还是把代码弄出来吧,本来代码是分还多文件的,我只能把他们合并后再贴上来,这样就更没层次了。



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


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

#define MONTH 20


/*账户开支信息*/
struct Count{
	int month;         //月份
	float income;      //总收入
	float outcome;      //总支出
	float food;        //食品消费
	float rent;        //房租
	float education;   //子女教育费
	float water;       //水电费
	float hospital;    //医疗费
	float save;        //储蓄
	float other;       //其他
};


struct Node {
	struct Count acount;
	struct Node *next;  //指向下一个月的信息节点
};
typedef struct Node *PNode;
typedef struct Node *LinkList;
typedef struct LinkList *PLinkList;


int MenuSlect();
int EndWithZero();
int IsMonthExist(char *name,int month);
int IsCountExist(char* name);
void AboutIt();
void NewCount();
void LoadCount(char*);
void SortCount(char *);
void LookCount(char *);
void LookMonthCount(char *,int);
void ResetMonthCount(char *);
void AddMonthData(char *name);
void ReadCount(char *,LinkList *);
void OutputCount(LinkList countlist);
void SaveToFile(char *name,LinkList plist);

struct Count InputData(int );
LinkList BubbleMonthSort(LinkList head);

void AboutIt(){
	FILE *fp;
	char ch;
	fp = fopen("about.txt","r");
	printf ("\n");
	while((ch=getc(fp)) != EOF)
		printf("%c",ch);
	fclose(fp);
	printf("\n按任意键继续.......");
	getch();
	system("cls");
}

/*按月添加数据到文件末尾*/
void AddMonthData(char *name) {
	FILE *fp;
	int mon,i;
	int month;
	LinkList countlist;          //账户节点
	countlist = (LinkList) mal
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值