C语言专业课程设计家庭财务标准管理系统_第1页
C语言专业课程设计家庭财务标准管理系统_第2页
C语言专业课程设计家庭财务标准管理系统_第3页
C语言专业课程设计家庭财务标准管理系统_第4页
C语言专业课程设计家庭财务标准管理系统_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HUNANUNIVERSITY

程序设计训练

*报M/

课程名称_________家庭财务管理系统_____________________

学生姓名_____________________________________________

学生学号______________________________________________

专业班级______________________________________________

指导老师______________________________________________

起止时间______________________________________________

湖南大学课程训练设计汇报

家庭财务管理系统

摘要

本汇报介绍了一个利用C语言知识和MicrosoftVisualc++6.0创建用于家庭各组员

财务情况管理家庭财务管理系统。在该系统中创建了包含增加,删除,修改,查找,浏览

功效总列表,包含了输入家庭组员收入信息情况,增加信息,删除信息,修改信息,创建

姓名查找和编号查询便于用户查找个人财务情况,创建累计排序浏览用户可从总体上浏览

全家庭财务信息情况。

目录

1绪论.....................................................................................1

2问题定义.................................................................................2

3可行性分析...............................................................................2

4系统需求................................................................................4

5方案设计分析............................................................................5

6系统运行情况...........................................................................14

7系统维护................................................................................15

8致谢15

1绪论

家庭财务管理对于每一个家庭来说有着关键意义,伴随科技发达,财务管理由原先手

写账本发展到现今电脑系统输入并统计,不仅大大降低了时间和精力,也是财务管理更系

统化,便捷化,清楚化,降低金钱.上缺失。家庭财务系统关键对家庭各项财务收支管理进

行在计算机上信息存放和处理,从而简化用户工作量

本汇报设计家庭财务管理系统关键是负责给家庭组员提供了一个在Widows操作系统

上运行管理平台,家庭财务管理者能够对其组员编号、姓名和收入、支出组成进行增加、

删除、修改,查找等管理操作,还能够对全家庭财务累计排序浏览。

C语言是中国外广泛使用一个计算机语言,学会使用C语言进行程序设计是计算机工

作者一项基础功。对于我们大学生来说,学习这么一门“C程序设计教程”更是必需。本

课程设计“家庭财务管理系统”就是经过学习《C程序设计》采取VisualC++作为编译环境,

是程序编译和运行。本系统总体思想基于结构化程序设计。应用高级语言程序设计中基础

控制结构,如循环和选择,着重实现管理系统增、删、改、查等经典管理功效。程序设计

是一门实践性很强课程,既要掌握概念,又要动手编译,还要上机调试运行,经过这一次

课程设计我们从实践中更深入学习和了解C语言,当然因为个人技术水平有限,在这途中

碰到很多问题,程序也未能做到很完美,望见谅!

2问题定义

家庭财务管理系统问题定义阶段必需回复关键问题是:“要处理问题是什么?”不知

道问题是什么就试图处理这个问题,显然是盲目标,只会白白浪费时间和金钱,最终得出

结果可能是亳无意义。尽管确切地定义问题必需性是十分显著,不过在实践中它却可能是

最轻易被忽略一个步骤。下面就将“家庭财务管理系统要处理问题做是什么?”这个问题

做出具体分析。

伴随社会主义不停发展和进步,大家生活部断完善,家庭收入和支出也越来越多,当

然也不能盲目标追求时尚,高估了自己能力,这就需要明确自己收支情况,对家庭财务来

龙去脉有个大致了解。。做到心中有数。

经过我分析初步得出以下多个方面是家庭财务管理系统必需要处理问题,

关键包含:

1:增加组员财务信息统计

2:删除组员财务信息统计

3:修改组员财务信息统计

4:按组员姓名查询财务信息

5:按组员编号查询财务信息

6:查询仝部组员信息

3可行性分析

深入明确系统目标,规模和功效。对系统开发背景、必需性和意义进行调查分析并依

据需要和可能提出确定开发系统初步方案和计•划。可行性研究是对系统进行全方面,概要

分析。此项活动开始时,要对初步调查结果进行复审,重新明确问题,对所提系统大致规

模和目标及相关约束条件论证,而且提出系统逻转模型和多种可能方案。

当今社会是一个讲求效率社会,时间就是金钱。开发简单,易于操作,管理软件不仅

能够节省时间,还能够避免浪费人力,物力,提升效率。待开发系统是一个对家庭理财管

理系统,简单,易学,将成为家庭理财好帮手。

并非全部问题全部有简单显著处理措施,实际上,很多问题不可能在预定系统规模或时间

限制之内处理。假如问题没有可行解,那么花费在这项工程上任何时间、人力、软件资源

和经费,全部是无谓浪费。可行性研究目标,就是用最小代价在尽可能短时间内确定问题

是否能处理。必需时刻记住,可行性研究目标不是处理问题,而是确定问题是否值得去处

理。

现从下述三个方面分析家庭理财系统问题可行性。

(I)技术可行性就技术可行性来说:我们已经学习了VC,含有了开发和维护实力。所以

只要加上认真编译、测试,这个家庭管理系统绝对能够实现,开发和维护该系统也是可行。

12)经济可行性。就经济可行性来说,因为我们为了学习每个人全部有配置很算差不多个

人电脑,并组建了内部局域网,所以硬件上是没有问题。而软件上因为是自己开发,所以

开发及以后维护费用并不高,在经济条件方面也是许可。再加上因为家庭财务管理系统是

各个家庭管理自己家财务,所以她不会包含联机,只要在自己家中计算机按上家庭理财系

统就能够使用。操作简单,功效强大。是每个家庭必不可少好帮手。所以家庭理财系统是

很值得开发一款家庭助手软件。

13)操作可行性。就操作可行性来说,该系统能够实现家庭理财功效要求,使家庭组员能

够立即、全方面掌握财产流动情况、财产使用、收支情况等。能够在很大程度上节省家庭

在财产管理方面花费精力。总而言之,证实我们开发该系统是切实可行。

总结:因为投资效益比远大于100%,技术、经济、操作全部有可行性,能够进行开发。

4系统需求

1编写目标

本需求编写目标在于研究家庭理财系统软件开发路径和应用方法。一个好需求分析能

够为以后工作减轻很多无须要花费。它是软件开过程中最关键任务之一,假如需求分析完

成不好,这个软件很有可能是没有作用,所以我们一定要编写好需求分析。

2背景及范围

本项目标名称:家庭财务管理系统。

本项目标任务提出者是很多家庭账务繁琐家庭

本产品能具体化、合理化管理家庭输入、开支、收入信息统计,用结构化思维方法去

了解计算机基础工作原理。

3确定对系统综合要求

(1)功效需求:

关键功效:提供家庭日常收入、开销具体情况。账户管理等多项功效。

输入要求:数据完整,详实。

输出要求:简捷,快速,实时。

C2)意图

a.帮助家庭管理财务信息.

b.为了给家庭人员减轻负担.

c.为了促进国家经济建设发展.

3)目标

经过本系统软件,能帮家庭组员快速方便对家庭财务管理、查看等需求操作时方

便家庭财务统计管理,使散乱多种统计,档案能够具体化,直观化、合理化。

(4)使用及范围

本软件适适用于每个财务复杂家庭,它是比较完善系统管理软件,对家庭财务信

息能够随时输入,更改,查看。

15)背景

现在大多数家庭全部在为麻烦财务管剪发愁,假如有一个专门管理软件来管理这些

账务,岂不为家庭组员降低很多负担?

(6)用户特点

本软件使用对象是家庭组员只要稍微知道计算机基础操作就能够利用该软件进行所

需操作。

5方案设计分析

1、结构体设计

用于存放每个家庭组员序号、姓名、收入、支出、累计方面信息。

typedefstruct

/*每一组输入编号*/

longno;

longNumber;/*家庭组员编号*/

charName[20];/*家庭组员姓名*/

floatin;/*家庭组员收入*/

charintime[10];/*收入时间*/

floatout;/*家庭组员支出*/

charouttime[10];/*支出时间*/

floatsum;/*总计*/

[money;

由编号、姓名、收入、支出组成用于描述一个有机整体——家庭组员财务信息系统,为了

表明这些字段不是孤立,而是共同描述一个完整事物,所以用结构体这种形式来表现。

2.函数设计

为实现家庭财务管理系统用了下列自定义函数

tianjiashouzhi();/*增加组员财务信息统计*/

shanchushouzhi();/*删除组员财务信息统计*/

xiugaishouzhi();/*修改组员财务信息统计*/

xingmingchaxun();/*按组员姓名查询财务信息*/

bianhaochaxun();/*按组员编号查询财务信息*/

chaxunquanbu();/*查询全部组员信息*/

步骤图:

退

1

输入你要添加信息文件名

请依据提醒输入你要添加信息

结束

2

是否继续

3

NI是否修改

输出该组员财务信息

Y

系统运行界面:删除家庭组员财务信息

tttttt欢迎来到家庭财务管理系统!nun

nuntttttt

加成

息nnu

记录

ttttu

nnn录nun

记tttt#

务口

nun□心nnn

务自

-膏

uuuuttn

unn

tttttt0.退出系统nuu

»««请输入您的选择3,2,345,6,0)(以回奉键结束)««»

睛输入你要查询的文件名

文件全部内容如下:

(,,,:,

lIlIAII|*II*I4I*II1I•«II1I(IIlIIIIIBIiItI“IIIII1I1I11II11InIIJIIBIIIIIiItII1t1AII1I1IIIIIIIIIIIBI4111;IIiItI1I(III1I1IkI|I“IIiI|Ii1t1IIiItIIIi1t11I1I|I|I“II1I1I

1

员^

^<qqq

贝345.0000007L

收987654

蜃456.000000元

收121223

-111.000000

UJI1111UJiUUUU111111UHilUUUUJIUu1""U111111H14HHUU111111MHH144111111

■■aa■■takiAA*4XAaa■■>>■>“*4XAXA**>■■>■>“a*XA*■1*(1ta“XA&a■■aa1*“〃—*4*a1■

II11IIIIIIIIIIIIilIIJIIIII1111IIllilIIJIIIIIIIIIIIIIHIUIHIIHIIIIHIIIIHH11IlliIIHIIIUI

员^

WWW

员<

入23243.0000007C

时43453

^出

间545.0000007C

6566

at

|博输入存储数据的文件名,按回车键结束!

Ijtcwgl

摄黔茎耀等窖庭瞥编号:2

物页取矍i己条如下:

该项内容编号:6

成县编号:2

成员姓名:wv/w

成员收入:23243.000000元

收入时间:43453

成员支出:545.000000元

支出时间:6566

收支总和:22698.000000

你确定要删除该记录吗?删除后不可恢复!!〈是:“Y;否:“N)

恭喜!至项纪录已成功删除

皂否查着而除后剩下的内容、

是否•《是:〃Y;否:n/N).

成员编号:1

成员姓会qqq

双员HV/k•345.0000007c

收入电间;987654

456.000000元

支出俞间:121223

收支9和:-111.000000

Mt并

ttttMt

tttt编tttt

号3

员^

L

员<0

员^0

^

出5665

u如HMt

1、r-/4r—i

成员编号:4

成员姓名:4343

成员收入:5454.000000元

收入时间,6565

成员支出:657.000000元

支出时间:767

收支总和:4797.000000

股WMttt

成tttt

员tt^tt5

节•

员45454

^•

成1

<

收间7

76

皿ttt*

NUttt

是否继续删除?<是:yd;否:“N〉

6系统运行情况

1出现问题。

•刚开始输出时乱码,上网搜了才知道是数据溢出。

•数据输入和输出结果不一致。

•删除、修改功效不能准期实现。

2相关处理方法

•经过不停试验,删除多出结构体;

•查找错误,严格定义变量类型;

•不停进行调试及改善。

3现在运行情况

针对一系列运行过程中出现问题,我们进行了对应修改,到现在为止,该管理系统基

础上能够正常运行,实现其预期功效管理,但仍有很多能够改善地方。

4系统操作说明

进入系统操作界面后,输入0"6选择功效。

>选择1

依据系统提醒,添加家庭组员收支信息。

>选择2

依据系统提醒,删除家庭组员收支信息

>选择3

依据系统提醒,修改家庭组员收支信息

>选择4

依据系统提醒,按姓名查找家庭组员收支信息

>选择5

依据系统提醒,按编号查找家庭组员收支信息

>选择6

查看全部家庭组员收支信息。

7系统维护

一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长时期,在这

期间会需要程序员来维护这个软件正常工作,所以清楚简练文档是必不可少,而不仅仅是

只需要源代码。

总结

经过本此课程设计,让我们更熟练地掌握了《c程序设计教程》知识,熟

悉了一个管理系统利用和操作,熟悉怎样采取VisualC++作为编译环境,使程

序成功编译和运行,此次我们所设计家庭财务管理系统可应用于家庭简单管理,

对家庭各组员财务收入,支出进行增加,删除,修改,按姓名查询,按编号查

询和浏览全部家庭组员财务信息。

在这次课程设计中因为对知识掌握不够熟悉,专业技术水平有限,从程序

初步设计,编辑到程序运行,从一开始按模块撰写,到各模块链接运行,我碰

到很多问题,有过放弃想法,可最终还是坚持到了最终,直到把程序写完,编

管调试完成。以后回头看自己结果,即使不轻易,不过心里还是很快乐,毕竟

是自己亲手做。经过这次课程设计,我愈加深入地学习了VC语言这门课程,

让我学了一个学期知识得以应用,增强了我求知欲望和学习爱好,想对VC语

言课程有更多了解。

致谢

很感谢老师一直以来对我们悉心指导,从最初选|题,到教导检验进展情况,到程序综

合调试,再到最终设计汇报,老师牺牲休息时间给了我们耐心知道和无私帮助,老师这种

无私奉献敬业精神令人钦佩,在此我们向老师表示我们最真挚谢意。同时,感谢同学对我

帮助,帮助我检验程序错误,调试程序,才有了今天我成功。很感谢大家。

参考文件

visualC++项目案例设计清华大学出版社.

项目案例导航科学出版社

还有baidu文库,baidu知道。

程序源代码:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<conio.h>

#include<math.h>

^defineSIZE100

typedefstruct

longno;/*每一组输入编号*/

longNumber;/*家庭组员编号*/

charName[20];/*家庭组员姓名*/

floatin;/*家庭组员收入*/

charintime[10];/*收入时间*/

floatout;/*家庭组员支出*/

charouttime[10];/*支出时间*/

floatsum;/*总计*/

}money;

voidtianjiashouzhi()/*添加财务收支信息统计*/

(

FILE*fp=NULL;/*定义指向文件指针*/

moneyTm,ch;/*定义进行操作时临时结构体变量*/

charDa[40],next;/*存放财务收支信息文件名*/

intcount=l;/*计算可输入数据最大范围*/

printfCXn请输入要添加财务收支信息文件名:〃);

gets(Da);

begin:count=l;

fp=fopen(Da,"ab+”);

if(fp==NULL)/*判定文件是否成功打开*/

{

printfC\n打开文件%s失败!按任意键结束!\n*»Da);

exit(0);

)

while(fread(&ch,sizeof(money),1,fp)!=(int)NULL)/*从文件中读

取数据并判定是否成功*/

(

count++;

)

fclose(fp);

/*假如成功打开或创建文件,则提醒输入家庭组员序号、姓名、收入、支

出等相关信息*/

fp=fopen(Da,"ab+");/*ab+:当文件存在时,追加,当文件不存在时,创建*/

printf(〃输入编号,姓名,收入,收入时间,支出,支出时间,输入编号为0

时结束!\n〃);

printf("编号不超出九位,姓名不超出二十个字符。\n〃);

while(count<=SIZE)

(

Tm.no=count;

printfC\n输入编号为零时结束输入!\n〃);

printf("组员编号:〃);

scanf&Tm.Number);

if(Tm.Number=0)/*假如输入编号为0,结束*/

break;

printf(〃输入组员姓名:〃);

scanf("%s”,Tm.Name);

printf("输入组员收入:");

scanf("%f”,&Tm.in);

printf("输入收入时间:”);

scanf("%s”,Tm.intime);

printf(“输入组员支出:");

scanf("%f”,&Tm.out);

printf("输入支出时间:”);

scanf("%s”,Tm.outtime);

Tm.sum=Tm.in-Tm.out;

printf("\n");

if(fwrite(&Tm,sizeof(money),1,fp)[=1)/*将数据写入文件并

判定是否成功*/

(

printf("\n写入文件%s失败!以任意键结束!\n",Da);

exit(0);

)

count++;

)

/*假如输入数据量超出最大许可范围,则提醒数据不能录入*/

if(count>SIZE)

printf("\n对不起,输入数据量超出最大许可范围%(1\11〃,SIZE);

fclose(fp);

system("cis");

printf("您输入数据已成功存放在%s文件中。\n〃,Da);

printf("文件全部内容以下:\n");

fp=fopen(Da,"rb");/*只读方法打开二进制文件*/

if(fp==NULL)/*判定是否打开成功*/

{

prinlJC("\n打开文件%5失败!按任意键结束!\n”,Da);

exit(0);

)

while(fread(&.Tm,sizeof(money),1,fp)!=(int)NULL)/*从文件中读取

数据,是否读取成功*/

{pri•nt,!C(LLU1AAA1,1ALXIAAAALA1./_1,上,LILALAAUAlALALA1_!_!LLAJAAAAAtUXILUALALAL_1Al_iLAlALALX;

printf(“组员编号:%ld\n*,Tm.Number);

printf("组员姓名:%s\n”,Tm.Name);

printf("组员收入:%f元\n”,Tm.in);

printf("收入时间:%s\n*,Tm.intime);

printf("组员支出:%f7U\n*,Tm.out);

printf("支出时间:%s\n”,Tm.outtime);

printf("收支总和:%f\n”,Tm.sum);

pri•ntJfr»(/"AA「I,上上1AAAR4_i」'A/1,」,」■!/▲A/AAAA1,AALR1』上」」,QA/上/_!,/AAAl\"\);

printf("\n\n");

)

fclose(fp);

/*问询是否继续*/

printf("\n是否继续?(是:y/Y;否:n/N)");

next=getche();system("cis");

putchar('\n,);

if(next==,y*11next==,Y*)gotobegin;

)

voidshanchushouzhi()/*删除家庭组员收支信息统计*/

inti,result=0;

longdelnum;/*存放要输入要删除家庭组员序号*/

moneyTm;/*定义进行操作时临时结构体变量*/

moneys[SIZE];

intrecNumber;/*原文件中统计数*/

charDa[40],next;

FILE*fp;/*fp指针指向存放数据文件名*/

printf("\n请输入存放数据文件名,按回车键结束!\n〃);

gets(Da);

begin:

/*以二进制读方法打开文件*/

fp=fopen(Da,"rb");

if(fp==NULL)

(

printf("\n打开文件%s失败!按任意键结束!\n",Da);

exit(0);

)

/*输入要删除家庭组员序号*/

printf(〃请输入要删除家庭组员编号:〃);

scanf&delnum);

printf("您要删除编号是:%ld\n*,delnum);

while(fread(&Tm,sizeof(money),1,fp)!=(int)NULL)

/*从文件中读取数据,是否读取成功*/

if(Tm.Number==delnum)

{printf("该项收支统计以下:\n");

pri•nt,fC(/"LAuA」A」AA」上上」A」AA「「!_」」_!UA」AA1ALA_1A上▲▲_!A」AAAAAA\"\);

printf("该项内容编号:%ld\n",Tm.no);

printf("组员编号:%ld\n”,Tiu.Number);

printf("组员姓名:%s\n”,Tm.Name);

printf("组员收入:%f元\11”,Tm.in);

printf("收入时间:%s\n*,Tm.intime);

printf("组员支出:%f元\n”,Tm.out);

printf("支出时间:%s\n”,Tm.outtime);

printf("收支总和:%f\n*,Tm.sum);

pri•nt,fC(♦"im,,,,£■imiii1,IR1£11,iui门1111miA,"\;

result=l;

)

)

rewind(fp);/*把文件指针重新指向文件开头*/

if(result==0)

{printfC\n你输入编号不存在,请确定后重新输入\n");

printf("\n是否继续删除?(是:y/Y;否:n/N)”);

next=getche();system("cls");

putchar('\n);

if(next=,y'||next==,Y')gotobegin;

)

/*问询是否删除*/

printf("\n你确定要删除该统计吗?删除后不可恢复!!(是:y/Y;否:

n/N)");

next=getche();

putchar('\n);

if(next==,y\\next==,Y?)

{system("cis");

printf("恭喜!该项纪录己成功删除。。\n");

/*将文件中信息存入结构体数组*/

/水和要删除家庭组员序号相匹配项不写入数组,

循环后数组中即为去掉了要删除统计后剩下统计*/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论