


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、WORD格式程序设计工程训练报告C 语言程序设计个人财务管理系统专业资料整理WORD格式课程名称*院系专业班级学号指导教师C 语言程序设计工程训练信息科学与技术学院专业资料整理WORD格式教务处制专业资料整理WORD格式目录1. 需求分析 .12系统总框图和功能模块说明.12.1系统总框图 .12.2功能模块说明 .13系统设计 .23.1主要构造体 .23.2主要功能函数 .24系统调试 .34.1、程序开场执行时系统的所显示的页面:. .34.2、选择退出系统: . .34.3、选择登陆,并且输入的*和密码都正确:.34.4、用户输入的*不正确: . .44.5、用户输入的*正确,密码不正
2、确:. .44.6、用户进展具体操作: . .55总结.66源程序清单 .6专业资料整理WORD格式1. 需求分析编写一个个人财政支出管理系统,主要解决的问题是作为一个系统而言,它所要面对不只是某一个人而言,而是要面对很多的用户。那么想要解决这一问题,就必须要求这个系统能够存储许多用户的根本信息和记录。同时也要求系统能够对不同的用户的身份进展查找和验证。在验证通过之后,在对其进展用户所要求的操作。作为一个财政支出系统,那么就要求对于用户关于金钱的每一项操作都要有相应的记录,同时并允许用户对于每一条整体的记录进展操作,例如可以根据时间来查找某一确定日期是否进展了收入或者支出的操作,也可以根据特定
3、的需要来删除某一条整体的记录。但不允许对每条记录的单项数据进展更改,因为不管是收入还是支出,所涉及的金额都是固定的,时间也是固定的,所以系统不允许用户对其进展操作。除此之外,还必须有足够大的空间来存储新的记录。所以此程序就是基于这个思想而编写出来的,根本满足了用户对于一个财政支出管理系统所要求的相关功能。2 系统总框图和功能模块说明2.1 系统总框图个人财务管理系统输比修查输入对改询出个个账账账人人户户户信信资信清息息料息单2.2 功能模块说明1old_record( ):此函数由系统自行调用,作用是将所有用户信息存入系统。2void save( ): 此函数的作用是将构造体数组中的信息写入文
4、件存储,由系统调用。3load( ):此函数的作用是将构造体数组中写入文件的信息读出,由系统调用。4lookup_accounts:此函数的作用是将用户输入的*与系统中的所有帐专业资料整理WORD格式1专业资料整理WORD格式号进展比照,查看系统中是否有此*。5 check_code( ):此函数是作用是在系统查询到了*之后,对用户输入的*和密码进展检验,看是否相对应。6print_message:此函数的功能是在系统检查了用户输入的*和密码之后,如果用户通过了系统的检查,在此显示用户可见的根本信息。7find_record:此函数的作用是根据用户输入的日期进展查找操作。8 insert_re
5、cord:此函数的功能是在记录中增加一条新的记录,这个记录由用户输入。9 del_record:此函数的功能是根据用户的输入的位置,将相应位置的记录删除。10 sum_num:此函数的功能是计算所有收入和支出的总和,计算全部的收入的总合,计算全部输出的总合。11打印输出记录的函数:在本程序中一共有三个打印输出记录的函数,分别为 all_print 、acc_print、pay_print这三个函数。它们的功能依次是打印输出全部记录,打印输出输入记录,打印输出支出记录。12 mian( ):在主函数中,可以根据用户的选择来操作系统允许用户使用的功能,也可以随时退出这个系统。3 系统设计3.1 主
6、要构造体个人信息账户信息3.2 主要功能函数old_record( )/将所有用户信息存入系统print_message/显示用户可见的根本信息sum_num/计算所有收入和支出的总和all_print、acc_print、pay_print/打印输出全部记录,打印输出输入记录,打印输出支出记录专业资料整理WORD格式2专业资料整理WORD格式4 系统调试4.1 、程序开场执行时系统的所显示的页面:4.2 、选择退出系统:4.3 、选择登陆,并且输入的*和密码都正确:专业资料整理WORD格式3专业资料整理WORD格式4.4 、用户输入的*不正确:4.5 、用户输入的*正确,密码不正确:专业资料
7、整理WORD格式4专业资料整理WORD格式4.6 、用户进展具体操作 :专业资料整理WORD格式5专业资料整理WORD格式5 总结本程序在编写是,主要就是基于用户的角度去分析该如何设计此程序,和编写功能模块的。在编写程序时,所有的数据都是对构造体进展的操作,在此过程中,我发现了自己在对指针操作的时候,尤其是对指向构造体数组的指针和指向构造体的指针的操作都不够熟练。但在编写完此程序之后,我感觉自己对语法的应用有了明显的提高。6 源程序清单#include<stdio.h>#include<string.h>#define null 0#define max 20#defi
8、ne ok 1struct recordchar date20;char operate20;int num;struct list_recordchar account20;char code20;char name20;int rec_len;struct record recmax;rmax;/系统原有数据,用户不可知int old_record( struct list_record r)专业资料整理WORD格式6专业资料整理WORD格式int i;for(i=0;i<3;i+)ri.rec_len=4;strcpy(r0.account,"1001");st
9、rcpy(r1.account,"1002");strcpy(r2.account,"1003");strcpy(r0.code,"111111");strcpy(r1.code,"222222");strcpy(r2.code,"333333");strcpy( ,"wang");strcpy( ,"li");strcpy( ,"zhang");strcpy(r0.rec0.date,&quo
10、t;07-01-01");strcpy(r0.rec1.date,"07-02-01");strcpy(r0.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-0
11、4-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(r0.rec0.operate,"in");strcpy(r0.rec1.operate,"out");strcpy(r0.rec2.operate,"in");st
12、rcpy(r0.rec3.operate,"out");strcpy(r1.rec0.operate,"out");strcpy(r1.rec1.operate,"in");专业资料整理WORD格式7专业资料整理WORD格式strcpy(r1.rec2.operate,"out");strcpy(r1.rec3.operate,"in");strcpy(r2.rec0.operate,"in");strcpy(r2.rec1.operate,"out");
13、strcpy(r2.rec2.operate,"in");strcpy(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;return ok;/将
14、数据写入文件void save( )FILE *fp;int i;if(fp=fopen("wenjian","wb")=null)printf("can not open the file.n");return;for(i=0;i<max;i+)专业资料整理WORD格式8专业资料整理WORD格式if(fwrite(&ri,sizeof(struct list_record),1,fp)!=1)printf("file write error.n");fclose(fp);/文件读出void load
15、( )FILE *fp;int i;if(fp=fopen("wenjian","rb")=null)printf("can not open infile.n");return;for(i=0;i<max;i+)if(fread(&ri,sizeof(struct list_record),1,fp)!=1)if(feof(fp)(fclose(fp);return;fclose(fp);/将用户输入的*与系统中原有*比较,查找用户*int lookup_accounts( struct list_record r,c
16、har acc)int i;for(i=0;i<3;i+)if(strcmp(ri.account,acc)=0)return ok;专业资料整理WORD格式9专业资料整理WORD格式printf(" *不存在,请重新输入!n");return null;/检查密码函数struct list_record check_code(struct list_record r,char acc,char c)int i;struct list_record a;strcpy(a.account,"0");strcpy(a.code,"0"
17、;);a.rec_len=0;for(i=0;i<a.rec_len;i+)strcpy(a.reci.date,"0");strcpy(a.reci.operate,"0");a.reci.num=0;for(i=0;i<3;i+)if(strcmp(ri.account,acc)=0)if(strcmp(ri.code,c)=0)return ri;printf("the code is wrong,please input again!n");return a;/显示用户根本信息void print_message(
18、 struct list_record *p)专业资料整理WORD格式10专业资料整理WORD格式printf(" * :%sn",p->name);printf(" * :%sn",(*p).account);/根据用户输入的日期,查找记录int find_record( struct list_record *p,char d)int i;for(i=0;i<(*p).rec_len;i+)if(strcmp(*p).reci.date,d)=0)printf("dateoperatemoneyn");printf(&
19、quot;%s",(*p).reci.date);printf("%s",(*p).reci.operate);printf("%d n",(*p).reci.num);return ok;if(i=(*p).rec_len)printf("the date is not exit!n");return null;/插入函数,根据用户输入的信息,增加记录int insert_record( struct list_record *p,structrecord *p1,int lop)int i;if(lop<1)|(l
20、op>(*p).rec_len+1)专业资料整理WORD格式11专业资料整理WORD格式printf("the position is wrong.n");return 0;elsefor(i=(*p).rec_len;i>lop-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).re
21、ci.operate,(*p1).operate);(*p).reci.num=(*p1).num;(*p).rec_len+;return ok;/ 删除记录函数int del_record( struct list_record *p,int lop2)int i;if(lop2<1)|(lop2>(*p).rec_len)printf("the position is wrong.n");return null;else专业资料整理WORD格式12专业资料整理WORD格式for(i=lop2-1;i<(*p).rec_len-1;i+)strcpy(
22、*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-;return ok;/输出全部记录函数void all_print( struct list_record *p) int i;printf("dateoperatenumn");for(i=0;i<(*p).rec_len;i+) printf("%s",(*p).reci.date);printf(&quo
23、t;%s",(*p).reci.operate);printf("%d",(*p).reci.num);printf("n");/计算总的钱数int sum_num( struct list_record *p)int i;int sum=0;int sum_in=0;专业资料整理WORD格式13专业资料整理WORD格式int sum_out=0;for(i=0;i<(*p).rec_len;i+)sum+=(*p).reci.num;if(*p).reci.num>0)sum_in+=(*p).reci.num;if(*p).re
24、ci.num<0)sum_out+=(*p).reci.num;printf(" 总金额为 : %dn",sum);printf(" 总收入为 : %dn",sum_in);printf(" 总支出为 : %dn",sum_out);return ok;/输出收入记录int acc_print( struct list_record *p)int i;int sum_acc=0;printf("dateoperatenumn");for(i=0;i<(*p).rec_len;i+)if(*p).reci
25、.num>0)sum_acc+=(*p).reci.num;printf("%s",(*p).reci.date);printf("%s",(*p).reci.operate);printf("%d",(*p).reci.num);printf("n");专业资料整理WORD格式14专业资料整理WORD格式printf(" 总收入金额为 : %dn",sum_acc);return ok;if(sum_acc=0)printf("there is no account.n&quo
26、t;);return null;/输出支出记录int pay_print( struct list_record *p)int i;int sum_pay=0;printf("dateoperatenumn");for(i=0;i<p->rec_len;i+)if(*p).reci.num<0)sum_pay+=(*p).reci.num;printf("%s",(*p).reci.date);printf("%s",(*p).reci.operate);printf("%d",(*p).reci
27、.num);printf("n");printf(" 总的支出为 : %dn",sum_pay);return ok;if(sum_pay=0)printf("there is no payout.n");return null;void main( )int j=0,n=0;专业资料整理WORD格式15专业资料整理WORD格式int x,k,lop1,lop2;char data120;char accou20,cod20;struct record *p0;structrecord a;struct list_record b;s
28、truct list_record *p;b.rec_len=0;p0=&a;old_record(r);save( );load( );printf("欢迎使用个人财政支出管理系统!n");printf("-n");printf("|n");printf("|1、登陆系统|n");printf("|2、退出系统|n");printf("|n");printf("-n");scanf("%d",&x);if(x=0)pr
29、intf("感谢您使用本系统,再见!n");elsedoprintf(" 请输入*: ");/while(j<3);scanf("%s",accou);if(lookup_accounts(r,accou)专业资料整理WORD格式16专业资料整理WORD格式 printf(" 请输入密码: ");/while(j<3);scanf("%s",cod);b=check_code(r,accou,cod);if(b.rec_len=0)dob=check_code(r,accou,cod
30、);/while(n>3)scanf("%s",cod);n+;while(n<3);if(n=3)printf(" 您的密码不正确,请退出系统,谢谢使用,再见! n"); break;elseprintf("- 请选择您要进展的操作 -n");printf("|n");/while(j<3);printf("|2、查找记录|n");printf("|3、增加记录|n");printf("|4、删除记录|n");printf("|5、输出所有记录|n");printf("|6、输出所有收入记录|n");printf("|7、输出所有支出记录|n");printf("|n");printf("-|n");p=&b;print_message(p);专业资料整理WORD格式17专业资料整理WORD格式doscanf("%d",&k);/while(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新疆省吐鲁番市2025年小升初数学重难点模拟卷含解析
- 商标共享合同协议
- 2025至2031年中国离子风蛇行业投资前景及策略咨询研究报告
- 新余学院《键盘》2023-2024学年第一学期期末试卷
- 2025-2030年中国PPP模式行业发展规划及投资预测研究报告
- 2025至2031年中国立管检查口行业投资前景及策略咨询研究报告
- 2025-2030年中国3110kv继电保护装置行业市场运营动态调研与发展建议咨询报告
- 云计算数据中心架构与技术
- 2024-2025新入职员工安全培训考试试题附答案【培优A卷】
- 2024-2025公司安全培训考试试题7A
- 2025年全国低压电工作业证(复审)考试练习题库(600题)附答案
- 2025年上海市闵行区初三中考语文二模调研试卷
- 2025年《职业病防治法》宣传周知识考试题(附答案)
- 2024年潍坊市技师学院招聘笔试真题
- 2025年中考道德与法治一轮复习:专题4 我与他人 和谐相处 课件79张
- 无人机飞手培训班合作合同协议范本模板
- 港口智能运维系统-全面剖析
- 康复治疗士测试题及答案
- VDA6.3-2023版培训教材课件
- 皮瓣移植护理与病例介绍课件
- 河北新化股份有限公司锅炉技改项目(噪声、固体废物)竣工环境保护验收报告
评论
0/150
提交评论