资源简介
一、具体任务题目: 个人账簿管理系统设计
功能: 个人账簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。
进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况。
分步实施:
1. 初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;
2. 完成最低要求:建立一个文件,包括某人5个月的收支情况,能对文件中的信息进行扩充(追加),修改和删除;
3. 进一步要求:完成对每月的开支排序,以及完成系统查询功能。有兴趣的同学可以自己扩充系统功能。
部分代码:
typedef struct {
int month;//月份
int spxf;//食品消费
int fzfy;//房租费用
int znjy;//子女教育费用
int sdfy;//水电费用
int ylfy;//医疗费用
int cxfy;//储蓄费用
int srfy;//收入费用
} Infor;
代码片段和文件信息
#include “linklist.h“
#include “calculate.h“
int check(linkList Lint e)
{
LNode *p1*p2;
p1=L;
p2=p1->next ;
while(p2!=NULL&&p2->data.month {
p1=p2;p2=p2->next;
}
if(p2==NULL)return 0;
if(p2->data.month==e){
printf(“已经存在的记录...可选择修改项更改记录...\n“);
return 1;
}
else return 0;
}
void Insert(linkList &LElemType e)
{
LNode *p1*p2*p;
p1=L;
p2=p1->next ;
while(p2!=NULL&&p2->data.month {
p1=p2;p2=p2->next;
}
p=(linkList)malloc(sizeof(LNode));//申请新结点
p->data.month=e.month;
p->data.food=e.food;
p->data.house=e.house;
p->data.edu=e.edu;
p->data.med=e.med;
p->data.save=e.save;
p->data.wt_elc=e.wt_elc;
p->data.outcome=e.outcome;
p1->next=p;
p->next=p2;
}
void FillList(linkList LSqList &S)
{
LNode *p;
p=L->next;
int ik=1;
for(i=1;i<13;++i)
{
S.r[i].outcome=0;
S.r[i].month=0;
}
for(pi=1;p!=NULL;p=p->nexti++)
{
S.r[i].outcome=p->data.outcome;
S.r[i].month=p->data.month;
}
printf(“排序前:\n“);
for(i=1;i<13;i++)
{
if(S.r[i].month!=0)printf(“第%d月支出:%d\n“S.r[i].monthS.r[i].outcome);
}
BubbleSort(S);
printf(“\n\n排序后的结果为:\n“);
for(i=1;i<13;i++)
{
if(S.r[i].month!=0)printf(“No.%d: 第%d月支出:%d\n“k++S.r[i].monthS.r[i].outcome);
}
}
void BubbleSort(SqList &a)//冒泡排序
{
keytype temp;
for (int i=1;i<=11;i++)
{
for (int j=1;j<13-i-1;j++)
{
if(a.r[j].outcome>a.r[j+1].outcome)
{
temp.month=a.r[j].month;temp.outcome=a.r[j].outcome;
a.r[j].month=a.r[j+1].month;a.r[j].outcome=a.r[j+1].outcome;
a.r[j+1].month=temp.month;a.r[j+1].outcome=temp.outcome;
}
}
}
}
LNode* Find(linkList L)
{
LNode *p;
int select;
printf(“请输入需要查找的月份:\n“);
p=L->next ;
scanf(“%d“&select);
while(p&&p->data.month!=select)
p=p->next;
return p;
}
void Change(linkList &L)
{
LNode *p*q;
int nm;
p=Find(L);
if (p==NULL)
{
printf(“未找到相应的记录!\n“);
return;
}
q=L;
while (q!=NULL && q->next!=p)
{
q=q->next;
}
q=q->next;
printf(“请选择需要修改的子项目:\n1-食品2-房租3-子女教育4-水电5-医疗6-储蓄\n“);
scanf(“%d“&n);
printf(“修改为...\n“);
scanf(“%d“&m);
switch(n){
case 1:q->data.food=m;break;
case 2:q->data.house=m;break;
case 3:q->data.edu=m;break;
case 4:q->data.wt_elc=m;break;
case 5:q->data.med=m;break;
case 6:q->data.save=m;break;
}
q->data.outcome=q->data.food+q->data.house+q->data.edu+q->data.med+q->data.wt_elc;
printf(“修改后:“);
printf(“\n 食品 房租 教育 水电 医疗 储蓄\n“);
printf(“%2d月:%5d%5d%5d%5d%5d%5d 总支出: %d\n“p->data.monthp->data.foodp->data.housep->data.edup->data.wt_elcp->data.medp->data.savep->data.outcome);
printf(“-----------------------------------------------------\n“);
}
void save(linkList L)
{
printf(“\n“);
printf(“正在保存账户记录表,请稍后...\n\n\n“);
int i=0;FILE *fp;
fp=fopen(“count.txt““w“);
LNode *p=L->next;
fprintf(fp“ 食品 房租 教育 水电
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-01-04 22:06 个人帐簿管理系统设计\
文件 3479 2011-12-15 20:40 个人帐簿管理系统设计\Calculate.cpp
文件 598 2011-12-15 20:40 个人帐簿管理系统设计\calculate.h
文件 347 2011-12-15 20:40 个人帐簿管理系统设计\count.txt
目录 0 2012-01-04 22:03 个人帐簿管理系统设计\Debug\
文件 12892 2011-12-15 20:40 个人帐簿管理系统设计\Debug\Calculate.obj
文件 204885 2011-12-15 20:40 个人帐簿管理系统设计\Debug\exp1.exe
文件 248152 2011-12-15 20:40 个人帐簿管理系统设计\Debug\exp1.ilk
文件 5227 2011-12-15 20:40 个人帐簿管理系统设计\Debug\li
文件 7726 2011-12-15 20:40 个人帐簿管理系统设计\Debug\main.obj
文件 13588 2012-01-04 22:03 个人帐簿管理系统设计\Debug\menu.obj
文件 232380 2012-01-04 21:55 个人帐簿管理系统设计\Debug\menu.pch
文件 25600 2012-01-04 22:03 个人帐簿管理系统设计\Debug\menu.pdb
文件 58368 2012-01-04 22:03 个人帐簿管理系统设计\Debug\vc60.idb
文件 53248 2012-01-04 21:55 个人帐簿管理系统设计\Debug\vc60.pdb
文件 4573 2011-12-15 20:40 个人帐簿管理系统设计\exp1.dsp
文件 514 2011-12-15 20:40 个人帐簿管理系统设计\exp1.dsw
文件 35840 2011-12-30 10:28 个人帐簿管理系统设计\exp1.ncb
文件 49664 2011-12-15 20:40 个人帐簿管理系统设计\exp1.opt
文件 1371 2011-12-15 20:40 个人帐簿管理系统设计\exp1.plg
文件 1142 2011-12-15 20:40 个人帐簿管理系统设计\li
文件 1119 2011-12-15 20:40 个人帐簿管理系统设计\li
文件 1605 2011-12-15 20:40 个人帐簿管理系统设计\main.cpp
文件 1936 2011-12-15 20:40 个人帐簿管理系统设计\menu.cpp
文件 3377 2012-01-04 22:03 个人帐簿管理系统设计\menu.dsp
文件 516 2012-01-04 22:06 个人帐簿管理系统设计\menu.dsw
文件 33792 2012-01-04 22:06 个人帐簿管理系统设计\menu.ncb
文件 49664 2012-01-04 22:06 个人帐簿管理系统设计\menu.opt
文件 888 2012-01-04 22:03 个人帐簿管理系统设计\menu.plg
- 上一篇:单片空间后方交会c++
- 下一篇:A星算法,A*算法C++实现,8数码求解
评论
共有 条评论