家庭财务管理系统(9页).doc

上传人:1595****071 文档编号:36313544 上传时间:2022-08-26 格式:DOC 页数:9 大小:145KB
返回 下载 相关 举报
家庭财务管理系统(9页).doc_第1页
第1页 / 共9页
家庭财务管理系统(9页).doc_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《家庭财务管理系统(9页).doc》由会员分享,可在线阅读,更多相关《家庭财务管理系统(9页).doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-家庭财务管理系统-第 9 页目录1. 课程设计目的及要求22. 相关知识23. 设计方案.22234. 程序代码实现.55. 测试数据及运行结果.136. 课程设计总结157. 参考文献.151 课程设计目的及要求通过课程设计,进一步巩固和复习C语言程序设计的基础知识,了解软件的编制过程及各环节的具体内容,掌握结构化程序、模块化程序设计方法,提高学生分析问题,解决问题以及书籍运用能力。2 相关知识 本课程设“家庭财务管理系统”就是通过学习C程序设计采用Visual C+作为编译环境。本系统的总体思想基于结构化的程序设计。应用高级语言程序设计中的基本控制结构,如循环和选择,着重实现管理系统的增

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

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

4、e add.c /*增加家庭成员财务信息记录*/#include delete.c /*删除家庭成员财务信息记录*/#include modnum.c /*按家庭成员序号修改家庭成员财务信息*/#include qname.c /*按家庭成员姓名查询家庭成员财务信息*/#include qseatnum.c /*按家庭成员序号查询家庭成员财务信息*/#include ssum.c /*按财务合计项排序浏览家庭成员财务信息*/void Admin() int choice = 0; /*存放用户选项的变量*/ /*=功能及操作的界面提示=*/ while(1) printf(-n); print

5、f(| |n); printf(| Welcome to Family Financial Management System |n); printf(| |n); printf(|-|n); printf(| 1. Creat Financial File |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(| System User Management |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. End Program |n); printf(-n); printf(# Please Input Yo

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

8、dRecord(); /*增加财务信息记录*/ break; case 3: DelRecord(); /*修改财务信息记录*/ break; case 4: QueryByName(); /*按家庭成员姓名查询财务信息*/ break; case 5: QueryBySeatNum(); /*按家庭成员序号查询财务信息*/ break; case 6: ModifyByNumber(); /*按家庭成员序号修改财务信息*/ break; case 7: SortBySum(); /*按财务合计项排序浏览财务信息*/ break; case 11: CreatUser(); /*创建初始家庭成

9、员信息文件*/ break; case 12: AddUser(); /*增加家庭成员*/ break; case 13: DelUser(); /*删除家庭成员*/ break; case 14: ModifyByUserNumber(); /*按家庭成员序号修改家庭成员*/ break; case 15: SortByUserNum(); /*按家庭成员序号排序浏览*/ break; case 0: exit(0); /*退出系统*/ default: break;(2)/*creat.c:用于创建家庭成员财务信息文件并初始化*/#include stdio.h/*函数CreatFile*

10、/void CreatFile() FILE *fp = NULL; /*定义指向文件的指针*/ money TmpS; /*定义进行操作时存放结构体变量的*/ char DataFile40 = ;/*存储员财务收支信息的文件名*/ int count = 1; /*计算可输入数据的最大范围*/ /*输入存放财务收支信息的文件名*/ printf(n please input new file name to store data,end with enter.); printf(n Notice:Name of file cant exceed 8 characters.suffix ca

11、nt exceed 3 characters,part of exceed will be discarded.n); gets(DataFile); /*如家长没有输入,则循环提示家长输入*/ while(*DataFile = (0) printf(n please input new file name to store data,end with enter.); printf(n Notice:Name of file cant exceed 8 characters,suffix cant exceed 3 characters.part of exceed will be dis

12、carded.n); gets(DataFile); /*用二进制写的方式打开文件,即创建文件*/ fp = fopen(DataFile,wb+); /*如果当前文件不存在,提示打开文件失败*/ if (fp = NULL) printf(n Open file %s fail!End with any key.n,DataFile); perror(Open file fail); getch(); exit(1); /*如果成功打开或创建文件,则提示输入家庭成员序号、姓名、财务收支构成等相关信息*/ printf(input number,name and the income and

13、outcome.number is 0 means input is end.n); printf(Number is not exceed 9 figures,Name is not exceed 20 characters,range of grade:0.001000.00n); /*循环从键盘上读取家长输入的序号、姓名、收入、支出等相关信息*/ while(count SIZE) printf(nsorry,number of data can not exceed%dn,SIZE); fclose(fp); /*在屏幕上显示初始化后的文件内容*/ /* clrscr();*/ pri

14、ntf(The data you input is store successful %s in file.n,DataFile); printf(Content as follow:n); /*打开财务信息文件,如无法打开,则提示*/ 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(nNumbertNametintouttsumn); while(fread(&

15、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); fclose(fp);(3)/* modnum.c :修改家庭成员收支信息记录 */#include stdio.hvoid ModifyByNumber() int i,j,k; long modnum;/*存储家长输入的要修改的家庭成员序号*/ /*输入各项修改后信息*/ long Number; char Name20; float in; fl

16、oat out; float sum; money TmpS; /*定义进行操作时的临时结构体变量*/ money sSIZE;/*SIZE,在shead.h头文件中定义的常量,值为100 */ int recNumber; char DataFile40 = ,next; /*DataFile存储家庭成员收支信息信息的文件名,next为是否进行下一次删除操作的选项*/ FILE *fp;/*=fp指针指向存储数据的文件名=*/ /*提示家长输入要进行修改记录的文件名*/ printf(nplease input the name of file where data is stored,en

17、d with enter key.n); gets(DataFile); /*提示家长输入要进行修改记录的文件名*/ while(*DataFile = (0) printf(nplease input the name of file where data is stored,end with enter key.n); gets(DataFile);begin: /*以读的方式打开文件,如文件不存在,提示错误*/ fp=fopen(DataFile,rb); if (fp = NULL) printf(nOpen file %s fail!End with any keyn,DataFil

18、e); perror(Open file fail); getch(); exit(1); printf(please input the Employeeseatnum which you will modify:); scanf(%ld,&modnum); printf(the money you will delete is:%ldn,modnum); /*输入要修改记录的各项内容值*/ Number=modnum; printf(name=); scanf(%s,Name); printf(in=); scanf(%f,&in); printf(out=); scanf(%f,&out

19、); /*用公式自动计算家庭成员财务合计*/ sum=in-out; /*将文件中要修改的信息存入结构体数组*/ recNumber=0; /*循环将文件数据读入结构体数组, 如文件中的数据家庭成员号和要修改的家庭成员号不符,则原样写入数组, 如文件中数据的家庭成员号和要修改家庭成员号匹配, 则根据家长输入的各项修改内容重新赋值,即修改,并写入数组*/ while(fread(&TmpS,sizeof(money),1,fp) != (int)NULL) if(TmpS.Number!=modnum) srecNumber.Number = TmpS.Number; strcpy(srecNu

20、mber.Name, TmpS.Name); srecNumber.in = TmpS.in; srecNumber.out = TmpS.out; srecNumber.sum = TmpS.sum; recNumber+; else srecNumber.Number = Number; strcpy(srecNumber.Name, Name); srecNumber.in = in; srecNumber.out = out; srecNumber.sum = sum; recNumber+; fclose(fp); /*将修改后的结构体数组记录写入文件*/ fp=fopen(Data

21、File,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,fp)!=1) printf(nWrite file %s fail!end with anykey.n,DataFile); perror(Write file fail!); getch(); exit(1); fclose(fp); /*显

22、示修改后的文件*/ 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(nNumber tNametintouttsumn); while(fread(&TmpS,sizeof(money),1,fp) != (int)NULL) if(TmpS.Number!=0) printf(n%ldt%s

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁