1、个人帐簿管理系统目 录摘 要 1前 言 2正 文 31. 采用类c语言定义相关的数据类型 32. 各模块的伪码算法 33. 函数的调用关系图 54. 调试分析 55. 测试结果 66. 源程序(带注释) 11总 结 31参考文献 32致 谢 33附件 部分源程序代码 34摘 要 今天,随着微型计算机的普及,使越来越多的人们了解到了计算机的作用,以及带给我们的便利。个人账簿管理系统就是我们常说的管理信息系统MIS(Management Information System)中的一种,它是一个计算机软硬件资源以及数据库的人-机系统。随着信息技术,计算机技术的发展,在社会各领域都已经离不开信息系统的
2、支持。个人账簿管理系统针对个人用户设计,是一个单用户系统,它提供各全方位的财务数据统计、数据查询、数据打印,方便个人理财,做出正确的财务决策。为了更加适应现代越来越快的生活节奏和越来越多的个人收支情况,以科学的管理、使用的简便为出发点,建立了一个具有实用性、高效性及功能划分细致的个人财务管理系统,Visual C作为前台开发工具,运用面向对象的设计方法,完成了该管理系统的模块和功能设计。结果表明:系统具有较高的可靠性和灵活性,且便于扩充和维护。关键词: 个人账簿管理;存储结构;前 言当前生活节奏加快,人们生活水平不断提高,收入和支出越来越趋于多样化,传统的人工记录方式和管理家庭和自己账簿情况的
3、记录方式不便于长期保存,还一些不可避免的缺点。开发一个能够管理个人账簿的软件系统已经很有必要,这样可以减轻人们在个人账簿管理时的负担。能克服传统管理方法的多个缺点。该程序主要是通过线性表的逻辑结构、存储结构,线性表及队列上基本运算实现的。可以让我们学会如何把学到的知识用于解决实际问题。它的主要功能1 个人账簿信息输入、浏览及排序。2 个人账簿信息查询及更改。3 账簿信息及文件操作。正文采用类c语言定义相关的数据类型 typedef struct char month10; char spxf5; char fzfy5; char znjy5; char sdfy5; char ylfy5; c
4、har cxfy5; char srfy5; MYBILL;各模块的伪码算法 void showpaixu(MYBILL bill,int length)menu1: system(cls); int choice; printf(nnnn *个人账簿信息管理系统*nn); printf( 1. 显示全部个人账簿信息nn); printf( 2. 按月份顺序排序nn); printf( 3. 按每月收入排序nn); printf( 0. 返回上一级菜单nn); printf( *n); printf( 请选择(03)n ); scanf(%d,&choice); switch(choice)
5、case 1: length=load(bill); list(bill,length); printf( 请按任意键返回.n); getch(); break; case 2: length=load(bill); monthsort(bill,length); save(bill,length); printf( 请按任意键返回.n); getch(); break;case 3: length=load(bill); srfysort(bill,length); save(bill,length); printf( 请按任意键返回.n); getch(); break; case 0:
6、return; goto menu1;3 函数的调用关系图 4 调试分析a、 调试中遇到的问题及对问题的解决方法 调试中遇到的问题及对问题的解决方法1、 输出的运行界面不整齐,例如“*”在编写程序的时候输入不整齐,运行出来的界面就不好看。2、 在使用解释符号时应该注意“/”,不适合于TC的环境,要用“/* */”。3、 函数的调用不正确。解决方法:当在一个函数中要调用另一个函数时,必须在调用函数的函数块中对被调用函数进行类型的声明 b、算法的时间复杂度和空间复杂度 5 测试结果 6 源程序(带注释)#include stdio.h #include stdlib.h#include strin
7、g.h#include conio.h#define M 50typedef struct char month10; char spxf5; char fzfy5; char znjy5; char sdfy5; char ylfy5; char cxfy5; char srfy5; MYBILL;void mprint(MYBILL temp) /int i printf(n*n); printf(n 月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 本月收入 n); printf(-n); printf(%8s%6s%10s%10s%10s%10s%10s%10sn,te
8、mp.month,temp.spxf,temp.fzfy,temp.znjy,temp.sdfy,temp.ylfy,temp.cxfy,temp.srfy); printf(*end*n);int enter(MYBILL t) system(cls); int i,n; printf(*n); printf(请确定您要输入几个月的账单: ); scanf(%d,&n); if(n0) printf(请输入您的个人账单信息n); printf(n 月份 食品消费 房租费用 子女费用 水电费用 医疗费用 储蓄费用 本月收入 n); printf(-n); for(i=0;in;i+) scan
9、f(%s%s%s%s%s%s%s%s,&ti.month,&ti.spxf,&ti.fzfy,&ti.znjy,&ti.sdfy,&ti.ylfy,&ti.cxfy,&ti.srfy); printf(-n); printf(信息录入成功!); return n; if(n=0) printf(对不起,您输入的月数不正确n); exit(0);void list(MYBILL t,int n) system(cls); int i; printf(n*个人账簿信息*n); printf( 总共有 %d 个月的账单 n,n); printf( 月份 食品消费 房租费用 子女费用 水电费用 医疗费
10、用 储蓄费用 本月收入 n); printf(-n); for(i=0;in;i+) printf(%8s%6s%10s%10s%10s%10s%10s%10sn,ti.month,ti.spxf,ti.fzfy,ti.znjy,ti.sdfy,ti.ylfy,ti.cxfy,ti.srfy); if(i+1)%10=0) printf(请输入任意键继续.n); getchar(); printf(*结束*n);int monthfind(MYBILL t,int n,char *s) int i; for(i=0;in-1) printf(对不起,没有找到要删除的月份的账单!n); else
11、 mprint(ti); printf(您确认要删除该月的账单么?(1.是/0.否)n); scanf(%d,&ch); if(ch=1) for(j=i+1;jn-1) printf(对不起,没有找到要修改的记录!n); else mprint(ti); printf(您确定要修改这条记录么?(1.是/0.否)n); scanf(%d,&ch); if(ch=1) printf(请输入新的记录n); printf(*n); printf( 月份 食品消费 房租费用 工作子女教育费用 水电费用 医疗费用 储蓄费用 收入费用n); printf(-n); scanf(%s%s%s%s%s%s%s
12、%s,&ti.month,&ti.spxf,&ti.fzfy,&ti.znjy,&ti.sdfy,&ti.ylfy,&ti.cxfy,&ti.srfy); printf(-n); printf(记录修改成功!n); int add(MYBILL t,int n) MYBILL temp; int i,j; char s20; printf(请输入您要插入的记录n); printf(*n); printf( 月份 食品消费 房租费用 工作子女教育费用 水电费用 医疗费用 储蓄费用 收入费用n); printf(-n); scanf(%s%s%s%s%s%s%s%s,&temp.month,&te
13、mp.spxf,&temp.fzfy,&temp.znjy,&temp.sdfy,&temp.ylfy,&temp.cxfy,&temp.srfy); printf(-n); printf(请输入您要插入的位置 n); scanf(%s,&s); i=monthfind(t,n,s); for(j=n-1;j=i;j-) strcpy(tj+1.month,tj.month); strcpy(tj+1.spxf,tj.spxf); strcpy(tj+1.fzfy,tj.fzfy); strcpy(tj+1.znjy,tj.znjy); strcpy(tj+1.sdfy,tj.sdfy); s
14、trcpy(tj+1.ylfy,tj.ylfy); strcpy(tj+1.cxfy,tj.cxfy); strcpy(tj+1.srfy,tj.srfy); strcpy(ti.month,temp.month); strcpy(ti.spxf,temp.spxf); strcpy(ti.fzfy,temp.fzfy); strcpy(ti.znjy,temp.znjy); strcpy(ti.sdfy,temp.sdfy); strcpy(ti.ylfy,temp.ylfy); strcpy(ti.cxfy,temp.cxfy); strcpy(ti.srfy,temp.srfy); n+
15、; printf(记录插入成功!n); return n;void save(MYBILL t,int n) int i; FILE *fp; if(fp=fopen(mybill.txt,wb)=NULL) printf(文件不能打开!n); exit(1); fprintf(fp,%d,n); fprintf(fp,rn); for(i=0;in;i+) fprintf(fp,%-8s%4s%13s%8s%7s%12s%12s%8s,ti.month,ti.spxf,ti.fzfy,ti.znjy,ti.sdfy,ti.ylfy,ti.cxfy,ti.srfy); fprintf(fp,r
16、n); fclose(fp);int load(MYBILL t) int i,n; FILE *fp; if(fp=fopen(mybill.txt,rb)=NULL) printf(对不起,不能打开文件!n); exit(1); fscanf(fp,%d,&n); for(i=0;in;i+) fscanf(fp,%s%s%s%s%s%s%s%s,&ti.month,&ti.spxf,&ti.fzfy,&ti.znjy,&ti.sdfy,&ti.ylfy,&ti.cxfy,&ti.srfy); fclose(fp); return n;void monthsort(MYBILL t,int
17、 n) int i,j,flag; MYBILL temp; for(i=0;in;i+) flag=0; for(j=0;j0) flag=1; strcpy(temp.month,tj.month); strcpy(temp.spxf,tj.spxf); strcpy(temp.fzfy,tj.fzfy); strcpy(temp.znjy,tj.znjy); strcpy(temp.sdfy,tj.sdfy); strcpy(temp.ylfy,tj.ylfy); strcpy(temp.cxfy,tj.cxfy); strcpy(temp.srfy,tj.srfy); strcpy(t
18、j.month,tj+1.month); strcpy(tj.spxf,tj+1.spxf); strcpy(tj.fzfy,tj+1.fzfy); strcpy(tj.znjy,tj+1.znjy); strcpy(tj.sdfy,tj+1.sdfy); strcpy(tj.ylfy,tj+1.ylfy); strcpy(tj.cxfy,tj+1.cxfy); strcpy(tj.srfy,tj+1.srfy); strcpy(tj+1.month,temp.month); strcpy(tj+1.spxf,temp.spxf); strcpy(tj+1.fzfy,temp.fzfy); s
19、trcpy(tj+1.znjy,temp.znjy); strcpy(tj+1.sdfy,temp.sdfy); strcpy(tj+1.ylfy,temp.ylfy); strcpy(tj+1.cxfy,temp.cxfy); strcpy(tj+1.srfy,temp.srfy); if(flag=0) break; printf(按月份排序成功!n);void srfysort(MYBILL t,int n) int i,j,flag; MYBILL temp; for(i=0;in;i+) flag=0; for(j=0;j0) flag=1; strcpy(temp.month,tj
20、.month); strcpy(temp.spxf,tj.spxf); strcpy(temp.fzfy,tj.fzfy); strcpy(temp.znjy,tj.znjy); strcpy(temp.sdfy,tj.sdfy); strcpy(temp.ylfy,tj.ylfy); strcpy(temp.cxfy,tj.cxfy); strcpy(temp.srfy,tj.srfy); strcpy(tj.month,tj+1.month); strcpy(tj.spxf,tj+1.spxf); strcpy(tj.fzfy,tj+1.fzfy); strcpy(tj.znjy,tj+1
21、.znjy); strcpy(tj.sdfy,tj+1.sdfy); strcpy(tj.ylfy,tj+1.ylfy); strcpy(tj.cxfy,tj+1.cxfy); strcpy(tj.srfy,tj+1.srfy); strcpy(tj+1.month,temp.month); strcpy(tj+1.spxf,temp.spxf); strcpy(tj+1.fzfy,temp.fzfy); strcpy(tj+1.znjy,temp.znjy); strcpy(tj+1.sdfy,temp.sdfy); strcpy(tj+1.ylfy,temp.ylfy); strcpy(tj+1.cxfy,temp.cxfy); strcpy(tj+1.srfy,temp.srfy); if(flag=0) break; printf(按每月收入排序成功!n);void copy() char outfile20; int i,n; MYBILL t; FILE *sfp,*tfp; if(sfp=fopen(mybill.txt,rb)=NULL) printf(对不起,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1