C语言程序设计个人财务管理系统

上传人:fe****u 文档编号:71145817 上传时间:2022-04-06 格式:DOCX 页数:22 大小:1.49MB
收藏 版权申诉 举报 下载
C语言程序设计个人财务管理系统_第1页
第1页 / 共22页
C语言程序设计个人财务管理系统_第2页
第2页 / 共22页
C语言程序设计个人财务管理系统_第3页
第3页 / 共22页
资源描述:

《C语言程序设计个人财务管理系统》由会员分享,可在线阅读,更多相关《C语言程序设计个人财务管理系统(22页珍藏版)》请在装配图网上搜索。

1、WORD格式程序设计工程训练报告C语言程序设计个人财务管理系统课程名称C语言程序设计工程训练姓名院(系)信息科学与技术学院专业班级学号指导教师教务处制专业资料整理目录1.需求分析.12系统总框图和功能模块说明.12.1系统总框图.12.2功能模块说明.13系统设计.23.1主要结构体.23.2主要功能函数.24系统调试.34.1、程序开始执行时系统的所显示的页面:.34.2、选择退出系统:.34.3、选择登陆,并且输入的帐号和密码都正确:.34.4、用户输入的帐号不正确:.44.5、用户输入的帐号正确,密码不正确:.44.6、用户进行具体操作:.55总结.66源程序清单.61.需求分析编写一个

2、个人财政支出管理系统,主要解决的问题是作为一个系统而言,它所要面对不只是某一个人而言,而是要面对很多的用户。那么想要解决这一问题,就必须要求这个系统能够存储许多用户的基本信息和记录。同时也要求系统能够对不同的用户的身份进行查找和验证。在验证通过之后,在对其进行用户所要求的操作。作为一个财政支出系统,那么就要求对于用户关于金钱的每一项操作都要有相应的记录,同时并允许用户对于每一条整体的记录进行操作,例如可以根据时间来查找某一确定日期是否进行了收入或者支出的操作,也可以根据特定的需要来删除某一条整体的记录。但不允许对每条记录的单项数据进行更改,因为不管是收入还是支出,所涉及的金额都是固定的,时间也

3、是固定的,所以系统不允许用户对其进行操作。除此之外,还必须有足够大的空间来存储新的记录。所以此程序就是基于这个思想而编写出来的,基本满足了用户对于一个财政支出管理系统所要求的相关功能。2系统总框图和功能模块说明2.1系统总框图个人财务管理系统输比修查输入对改询出个个账账账人人户户户信信资信清息息料息单2.2功能模块说明(1)old_record():此函数由系统自行调用,作用是将所有用户信息存入系统。(2)voidsave():此函数的作用是将结构体数组中的信息写入文件存储,由系统调用。(3)load():此函数的作用是将结构体数组中写入文件的信息读出,由系统调用。(4)lookup_acco

4、unts():此函数的作用是将用户输入的帐号与系统中的所有帐1号进行对比,查看系统中是否有此帐号。(5)check_code():此函数是作用是在系统查询到了帐号之后,对用户输入的帐号和密码进行检验,看是否相对应。(6)print_message():此函数的功能是在系统检查了用户输入的帐号和密码之后,如果用户通过了系统的检查,在此显示用户可见的基本信息。(7)find_record():此函数的作用是根据用户输入的日期进行查找操作。(8)insert_record():此函数的功能是在记录中增加一条新的记录,这个记录由用户输入。(9)del_record():此函数的功能是根据用户的输入的位

5、置,将相应位置的记录删除。(10)sum_num():此函数的功能是计算所有收入和支出的总和,计算全部的收入的总合,计算全部输出的总合。(11)打印输出记录的函数:在本程序中一共有三个打印输出记录的函数,分别为all_print()、acc_print()、pay_print()这三个函数。它们的功能依次是打印输出全部记录,打印输出输入记录,打印输出支出记录。(12)mian():在主函数中,可以根据用户的选择来操作系统允许用户使用的功能,也可以随时退出这个系统。3系统设计3.1主要结构体个人信息账户信息3.2主要功能函数old_record()/将所有用户信息存入系统print_messag

6、e()/显示用户可见的基本信息sum_num()/计算所有收入和支出的总和all_print()、acc_print()、pay_print()/打印输出全部记录,打印输出输入记录,打印输出支出记录24系统调试4.1、程序开始执行时系统的所显示的页面:4.2、选择退出系统:4.3、选择登陆,并且输入的帐号和密码都正确:34.4、用户输入的帐号不正确:4.5、用户输入的帐号正确,密码不正确:44.6、用户进行具体操作:55总结本程序在编写是,主要就是基于用户的角度去分析该如何设计此程序,和编写功能模块的。在编写程序时,所有的数据都是对结构体进行的操作,在此过程中,我发现了自己在对指针操作的时候,

7、尤其是对指向结构体数组的指针和指向结构体的指针的操作都不够熟练。但在编写完此程序之后,我感觉自己对语法的应用有了明显的提高。6源程序清单#include#include#definenull0#definemax20#defineok1structrecordchardate20;charoperate20;intnum;structlist_recordcharaccount20;charcode20;charname20;intrec_len;structrecordrecmax;rmax;/系统原有数据,用户不可知intold_record(structlist_recordr)6int

8、i;for(i=0;i3;i+)ri.rec_len=4;strcpy(r0.account,1001);strcpy(r1.account,1002);strcpy(r2.account,1003);strcpy(r0.code,111111);strcpy(r1.code,222222);strcpy(r2.code,333333);strcpy(r0.name,wang);strcpy(r1.name,li);strcpy(r2.name,zhang);strcpy(r0.rec0.date,07-01-01);strcpy(r0.rec1.date,07-02-01);strcpy(r

9、0.rec2.date,07-03-01);strcpy(r0.rec3.date,07-04-01);strcpy(r1.rec0.date,07-01-02);strcpy(r1.rec1.date,07-02-02);strcpy(r1.rec2.date,07-03-02);strcpy(r1.rec3.date,07-04-02);strcpy(r2.rec0.date,07-01-03);strcpy(r2.rec1.date,07-02-03);strcpy(r2.rec2.date,07-03-03);strcpy(r2.rec3.date,07-04-03);strcpy(r

10、0.rec0.operate,in);strcpy(r0.rec1.operate,out);strcpy(r0.rec2.operate,in);strcpy(r0.rec3.operate,out);strcpy(r1.rec0.operate,out);strcpy(r1.rec1.operate,in);7strcpy(r1.rec2.operate,out);strcpy(r1.rec3.operate,in);strcpy(r2.rec0.operate,in);strcpy(r2.rec1.operate,out);strcpy(r2.rec2.operate,in);strcp

11、y(r2.rec3.operate,out);r0.rec0.num=3000;r0.rec1.num=-1500;r0.rec2.num=2500;r0.rec3.num=-1000;r1.rec0.num=-3000;r1.rec1.num=5000;r1.rec2.num=-1000;r1.rec2.num=2000;r2.rec0.num=1000;r2.rec1.num=-1500;r2.rec2.num=3000;r2.rec2.num=-500;returnok;/将数据写入文件voidsave()FILE*fp;inti;if(fp=fopen(wenjian,wb)=null

12、)printf(cannotopenthefile.n);return;for(i=0;imax;i+)8if(fwrite(&ri,sizeof(structlist_record),1,fp)!=1)printf(filewriteerror.n);fclose(fp);/文件读出voidload()FILE*fp;inti;if(fp=fopen(wenjian,rb)=null)printf(cannotopeninfile.n);return;for(i=0;imax;i+)if(fread(&ri,sizeof(structlist_record),1,fp)!=1)if(feof

13、(fp)(fclose(fp);return;fclose(fp);/将用户输入的帐号与系统中原有帐号比较,查找用户帐号intlookup_accounts(structlist_recordr,characc)inti;for(i=0;i3;i+)if(strcmp(ri.account,acc)=0)returnok;9printf(帐号不存在,请重新输入!n);returnnull;/检查密码函数structlist_recordcheck_code(structlist_recordr,characc,charc)inti;structlist_recorda;strcpy(a.acc

14、ount,0);strcpy(a.code,0);a.rec_len=0;for(i=0;ia.rec_len;i+)strcpy(a.reci.date,0);strcpy(a.reci.operate,0);a.reci.num=0;for(i=0;iname);printf(帐号:%sn,(*p).account);/根据用户输入的日期,查找记录intfind_record(structlist_record*p,chard)inti;for(i=0;i(*p).rec_len;i+)if(strcmp(*p).reci.date,d)=0)printf(dateoperatemoney

15、n);printf(%s,(*p).reci.date);printf(%s,(*p).reci.operate);printf(%dn,(*p).reci.num);returnok;if(i=(*p).rec_len)printf(thedateisnotexit!n);returnnull;/插入函数,根据用户输入的信息,增加记录intinsert_record(structlist_record*p,structrecord*p1,intlop)inti;if(lop(*p).rec_len+1)11printf(thepositioniswrong.n);return0;elsefo

16、r(i=(*p).rec_len;ilop-1;i-)strcpy(*p).reci.date,(*p).reci-1.date);strcpy(*p).reci.operate,(*p).reci-1.operate);(*p).reci.num=(*p).reci-1.num;strcpy(p-reci.date,p1-date);strcpy(*p).reci.operate,(*p1).operate);(*p).reci.num=(*p1).num;(*p).rec_len+;returnok;/删除记录函数intdel_record(structlist_record*p,intl

17、op2)inti;if(lop2(*p).rec_len)printf(thepositioniswrong.n);returnnull;else12for(i=lop2-1;i(*p).rec_len-1;i+)strcpy(*p).reci.date,(*p).reci+1.date);strcpy(*p).reci.operate,(*p).reci+1.operate);(*p).reci.num=(*p).reci+1.num;(*p).rec_len-;returnok;/输出全部记录函数voidall_print(structlist_record*p)inti;printf(d

18、ateoperatenumn);for(i=0;i(*p).rec_len;i+)printf(%s,(*p).reci.date);printf(%s,(*p).reci.operate);printf(%d,(*p).reci.num);printf(n);/计算总的钱数intsum_num(structlist_record*p)inti;intsum=0;intsum_in=0;13intsum_out=0;for(i=0;i0)sum_in+=(*p).reci.num;if(*p).reci.num0)sum_out+=(*p).reci.num;printf(总金额为:%dn,s

19、um);printf(总收入为:%dn,sum_in);printf(总支出为:%dn,sum_out);returnok;/输出收入记录intacc_print(structlist_record*p)inti;intsum_acc=0;printf(dateoperatenumn);for(i=0;i0)sum_acc+=(*p).reci.num;printf(%s,(*p).reci.date);printf(%s,(*p).reci.operate);printf(%d,(*p).reci.num);printf(n);14printf(总收入金额为:%dn,sum_acc);ret

20、urnok;if(sum_acc=0)printf(thereisnoaccount.n);returnnull;/输出支出记录intpay_print(structlist_record*p)inti;intsum_pay=0;printf(dateoperatenumn);for(i=0;irec_len;i+)if(*p).reci.num0)sum_pay+=(*p).reci.num;printf(%s,(*p).reci.date);printf(%s,(*p).reci.operate);printf(%d,(*p).reci.num);printf(n);printf(总的支出

21、为:%dn,sum_pay);returnok;if(sum_pay=0)printf(thereisnopayout.n);returnnull;voidmain()intj=0,n=0;15intx,k,lop1,lop2;chardata120;characcou20,cod20;structrecord*p0;structrecorda;structlist_recordb;structlist_record*p;b.rec_len=0;p0=&a;old_record(r);save();load();printf(欢迎使用个人财政支出管理系统!n);printf(-n);print

22、f(|n);printf(|1、登陆系统|n);printf(|2、退出系统|n);printf(|n);printf(-n);scanf(%d,&x);if(x=0)printf(感谢您使用本系统,再见!n);elsedoprintf(请输入帐号:);/while(j3);scanf(%s,accou);if(lookup_accounts(r,accou)16printf(请输入密码:);/while(j3)scanf(%s,cod);n+;while(n3);if(n=3)printf(您的密码不正确,请退出系统,谢谢使用,再见!n);break;elseprintf(-请选择您要进行的

23、操作-n);printf(|n);/while(j0)if(k=10)printf(感谢您使用本系统,再见!n);if(k=2)printf(请输入您要查询的日期:);scanf(%s,data1);find_record(p,data1);if(k=3)printf(请输入你要插入的位置:n);scanf(%d,&lop1);printf(请输入您要添加的记录:n);printf(日期:);scanf(%s,p0-date);printf(操作:);scanf(%s,p0-operate);printf(金额:);scanf(%d,&(p0-num);insert_record(p,p0,l

24、op1);if(k=4)printf(请输入您要删除的记录的位置:n);scanf(%d,&lop2);del_record(p,lop2);18if(k=5)all_print(p);sum_num(p);if(k=6)acc_print(p);if(k=7)pay_print(p);while(k0);break;j+;while(j3);printf(感谢您使用本系统,再见!n);19(2)量化评分表请学生将下面成绩评定表复制到报告的最后一页(单独一页)。程序设计工程训练成绩评定标准表明细项目评分等级(含系数)评分分值实际得分考勤A(1)B(0.8)C(0.5)D(0.0)10工程项目规范A(1)B(0.8)C(0.5)D(0.2)10工程训练报告A(1)B(0.8)C(0.5)D(0.2)30设计作品质量A(1)B(0.8)C(0.5)D(0.2)45材料收集情况A(1)B(0.8)C(0.5)D(0.2)5优良中合格不合格综合评分90-10080-8970-7960-690-59该生成绩为:,指导老师(签名):评定日期:年月日20

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