家庭财务管理系统81854

上传人:彩*** 文档编号:75041217 上传时间:2022-04-15 格式:DOCX 页数:15 大小:189.05KB
收藏 版权申诉 举报 下载
家庭财务管理系统81854_第1页
第1页 / 共15页
家庭财务管理系统81854_第2页
第2页 / 共15页
家庭财务管理系统81854_第3页
第3页 / 共15页
资源描述:

《家庭财务管理系统81854》由会员分享,可在线阅读,更多相关《家庭财务管理系统81854(15页珍藏版)》请在装配图网上搜索。

1、.目录1.22.23.23.123.223.334.55. .136. 157. .151课程设计目的及要求.专业资料 .通过课程设计,进一步巩固和复习 C语言程序设计的基础知识,了解软件的编制过程及各环节的具体容,掌握结构化程序、模块化程序设计方法,提高学生分析问题,解决问题以及书籍运用能力。2相关知识本课程设“家庭财务管理系统”就是通过学习 C 程序设计采用 Visual C+作为编译环境。本系统的总体思想基于结构化的程序设计。应用高级语言程序设计中的基本控制结构,如循环和选择,着重实现管理系统的增、删、改、查等典型的管理功能。3. 设计方案3.1 题目容家庭成员可以对其成员编号,以及收入

2、,支出构成进行增加,删除,修改等管理操作。家庭成员分为管理员和普通用户两类,权限不同。管理员还要在本系统外事先创建家庭成员信息文件,在文件中保存用户的序号, ,密码,权限。用户必须正确输入和密码才能登录使用本系统。3.2 分析题目要求管理员界面有 12 个选项可供管理员挑选: 1. 创建家庭成员财务信息文件(该文件容为序号,收入,支出,合计。)并初始化 2. 添加财务收支信息记录 ;3. 删除财务收支信息记录 ; 4. 按查询家庭成员财务收支信息记录 ;5. 按家庭成员序号查询家庭成员财务信息 ;6. 修改家庭成员收支信息记录; 7. 按财务合计项排序浏览; 8. 增加家庭成员信息; 9. 删

3、除家庭成员信息; 10. 按用户序号修改家庭成员信息 ;11. 按家庭成员序号排序浏览用户信息 12. 退出本系统。管理员界面,创建家庭成员财务信息文件并初始化,修改家庭成员收支信息记录。3.3 流程图(1)家庭管理选择界面.专业资料 .1.1 家庭管理选择界面(2)创建家庭成员财务信息文件 :1.2 创建家庭成员财务信息文件( 3) 修改家庭成员收支信息记录:.专业资料 .1.3 修改家庭成员收支信息记录4. 程序代码实现( 1)/*admin.c :家长管理功能选择界面,根据用户选项调用相应函数实现系统功能*/#include shead.h /*家庭成员财务信息头文件*/#include

4、 creat.c /*创建家庭成员财务信息文件*/.专业资料 .#include add.c /*增加家庭成员财务信息记录*/#include delete.c /*删除家庭成员财务信息记录*/#include modnum.c /* 按家庭成员序号修改家庭成员财务信息 */ #include qname.c /* 按家庭成员查询家庭成员财务信息 */#include qseatnum.c /*按家庭成员序号查询家庭成员财务信息*/#include ssum.c /*按财务合计项排序浏览家庭成员财务信息*/void Admin()int choice = 0; /*存放用户选项的变量 */*=

5、功能及操作的界面提示 =*/while(1)printf(-n);printf(|n);printf(|Welcometo Family FinancialManagementSystem|n);printf(|n);printf(|-|n);printf(|1.Creat FinancialFile|n);printf(|2.AddRecord()|n);printf(|3.DelRecord()|n);printf(|4.QueryByName()|n);printf(|5.QueryBySeatNum()|n);printf(|6.ModifyByNumber()|n);printf(|

6、7.SortBySum()|n);printf(+n);printf(|SystemUserManagement|n);printf(|11.CreatNewUserFile()|n);printf(|12.AddUser()|n);printf(|13.DelUser()|n);printf(|14.ModifyUser()|n);printf(|15.SortByUserNum()|n);.专业资料 .printf(+n);printf(|0.EndProgram|n);printf(-n);printf(#Please InputYour Choose#n);printf(# numbe

7、r 17 to Manage the Familys Finance#n);printf(# number 11,12,13,14,15 to Manage the System User#n);printf(# number0 to Exit theSystem#n);printf(-n);scanf(%d,&choice);getchar();/*根据用户选项调用相应函数*/switch(choice)case 1:CreatFile();/*创建初始财务信息文件 */break;case 2:AddRecord();/*增加财务信息记录 */break;case 3:DelRecord(

8、);/*修改财务信息记录 */break;case 4:QueryByName(); /*按家庭成员查询财务信息*/break;case 5:QueryBySeatNum();/*按家庭成员序号查询财务信息*/break;case 6:ModifyByNumber();/*按家庭成员序号修改财务信息*/break;case 7:SortBySum();/*按财务合计项排序浏览财务信息*/break;case 11:CreatUser();/*创建初始家庭成员信息文件*/break;case 12:AddUser();/*增加家庭成员 */break;case 13:DelUser();/*删除

9、家庭成员 */break;case 14:ModifyByUserNumber();/*按家庭成员序号修改家庭成员*/.专业资料 .break;case 15:SortByUserNum(); /* 按家庭成员序号排序浏览 */ break;case 0:exit(0);/*退出系统 */default:break;( 2)/*creat.c :用于创建家庭成员财务信息文件并初始化 */ #include stdio.h/* 函数 CreatFile*/ void CreatFile()FILE *fp = NULL;/*定义指向文件的指针 */money TmpS;/*定义进行操作时存放结构

10、体变量的*/char DataFile40 = ;/*存储员财务收支信息的文件名*/int count = 1;/*计算可输入数据的最大围*/*输入存放财务收支信息的文件名*/printf(n please input new file name to store data,end with enter.);printf(nNotice:Name of filecantexceed 8 characters.suffixcantexceed3 characters,part of exceed will be discarded.n);gets(DataFile);/*如家长没有输入,则循环提

11、示家长输入*/while(*DataFile = (0)printf(n please inputnew file name tostore data,end with enter.);printf(n Notice:Name of file cant exceed 8 characters,suffix cant exceed 3 characters.part of exceed will be discarded.n);gets(DataFile);/*用二进制写的方式打开文件,即创建文件*/fp = fopen(DataFile,wb+);/*如果当前文件不存在,提示打开文件失败*/i

12、f (fp = NULL)printf(n Open file %s fail!End with any key.n,DataFile); perror(Open file fail);getch();exit(1);/*如果成功打开或创建文件,则提示输入家庭成员序号、财务收支构成等相关信息 */printf(inputnumber,nameand the income and outcome.number is 0 meansinputis end.n);.专业资料 .printf(Numberisnotexceed9figures,Nameisnotexceed20characters,r

13、ange of grade:0.001000.00n);/* 循环从键盘上读取家长输入的序号、 、收入、支出等相关信息 */ while(count SIZE)printf(nsorry,number of data can not exceed%dn,SIZE); fclose(fp);/*在屏幕上显示初始化后的文件容*/* clrscr();*/printf(The data you input is store successful %s in file.n,DataFile); printf(Content as follow:n);/*打开财务信息文件,如无法打开,则提示*/fp=f

14、open(DataFile,rb);.专业资料 .if (fp = NULL)printf(nOpen file%sfail!End with any key n,DataFile); perror(Open file fail);getch();exit(1);printf(nNumbertNametintouttsumn); while(fread(&TmpS,sizeof(money),1,fp) != (int)NULL)printf(n%ldt%st%4.2ft%4.2ft%4.2fn,TmpS.Number,TmpS.Name,TmpS.in,TmpS.out,TmpS.sum);

15、fclose(fp);(3)/* modnum.c:修改家庭成员收支信息记录*/#include stdio.hvoid ModifyByNumber()int i,j,k;long modnum;/*存储家长输入的要修改的家庭成员序号*/*输入各项修改后信息 */long Number;char Name20;float in;float out;float sum;money TmpS;/*定义进行操作时的临时结构体变量*/money sSIZE;/*SIZE,在 shead.h 头文件中定义的常量,值为100 */int recNumber;char DataFile40 = ,next

16、;/*DataFile存储家庭成员收支信息信息的文件名,next 为是否进行下一次删除操作的选项 */FILE *fp;/*=fp指针指向存储数据的文件名=*/*提示家长输入要进行修改记录的文件名*/printf(npleaseinputthe name of filewhere data is stored,endwith enterkey.n);gets(DataFile);/*提示家长输入要进行修改记录的文件名*/while(*DataFile = (0)printf(nplease input the name of file where data is stored,end with

17、 enter key.n);gets(DataFile);begin:.专业资料 ./* 以读的方式打开文件,如文件不存在,提示错误 */ fp=fopen(DataFile,rb);if (fp = NULL)printf(nOpen file %s fail!End with any keyn,DataFile); perror(Open file fail);getch();exit(1);printf(please input the Employeeseatnum which you will modify:); scanf(%ld,&modnum);printf(the money

18、 you will delete is:%ldn,modnum); /* 输入要修改记录的各项容值 */ Number=modnum;printf(name=);scanf(%s,Name);printf(in=);scanf(%f,&in);printf(out=);scanf(%f,&out);/*用公式自动计算家庭成员财务合计*/sum=in-out;/*将文件中要修改的信息存入结构体数组*/recNumber=0;/*循环将文件数据读入结构体数组,如文件中的数据家庭成员号和要修改的家庭成员号不符,则原样写入数组,如文件中数据的家庭成员号和要修改家庭成员号匹配,则根据家长输入的各项修改容

19、重新赋值,即修改,并写入数组*/while(fread(&TmpS,sizeof(money),1,fp) != (int)NULL)if(TmpS.Number!=modnum)srecNumber.Number = TmpS.Number;strcpy(srecNumber.Name, TmpS.Name);srecNumber.in = TmpS.in;srecNumber.out = TmpS.out;srecNumber.sum = TmpS.sum;recNumber+;elsesrecNumber.Number = Number;strcpy(srecNumber.Name, N

20、ame);srecNumber.in = in;srecNumber.out = out;.专业资料 .srecNumber.sum = sum;recNumber+;fclose(fp);/*将修改后的结构体数组记录写入文件*/fp=fopen(DataFile,wb+);if (fp = NULL)printf(nSet up file %sfail !end with anykey.n,DataFile); perror(Set up fail);getch();exit(1);for(i=0; irecNumber; i+)if(fwrite(&si,sizeof(money),1,f

21、p)!=1)printf(nWrite file %s fail!end with anykey.n,DataFile); perror(Write file fail!);getch();exit(1);fclose(fp);/*显示修改后的文件 */fp=fopen(DataFile,rb);if (fp = NULL)printf(nOpen file%sfail!End with any key n,DataFile); perror(Open file fail);getch();exit(1);printf(the file after modify is:n); printf(n

22、Number tNametintouttsumn); while(fread(&TmpS,sizeof(money),1,fp) != (int)NULL)if(TmpS.Number!=0)printf(n%ldt%st%4.1ft%4.1ft%4.1fn,TmpS.Number,TmpS.Name,TmpS.in,TmpS.out,TmpS.sum);fclose(fp);/* 提示是否进行下一次修改*/printf(nGo on ?(y/n);next=getche();putchar(n);.专业资料 .if ( next =y | next =Y) goto begin;5. 测试数

23、据及运行结果.专业资料 .51 管理员界面52 创建家庭成员财务信息文件并初始化.专业资料 .5 3 修改家庭成员收支信息记录6. 课程设计总结一周的时间既短暂又漫长,但我学会了很多东西。我深切的体会到在目前一个高速发展的社会,学好计算机对于一个大学生的重要性。就C语言来说,每个题目都是.专业资料 .以前没有练习过的, 所以我们必须用自己平时所学的和发挥自己的创造性的思维去完成一个程序。对于我个人来说,这的确是个一个很大的挑战,但却培养了我们做事的耐性和严谨行。因为只要有一个地方出错就会导致整个程序不运行。记得刚开始的时候,我经常因为一些英文字母而失去耐心,但现在想想我能一个人编一个完整的程序了,这是多大的进步啊!对我有多大的鼓励!以上便是我这一周来课设的总结。7. 参考文献1 马秀丽、志妩、虞闯 .C 语言实践训练 . 北京:清华大学, 20102 马秀丽、志妩、虞闯 .C 语言程序设计 . 北京:清华大学, 2008.专业资料 .

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!