




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计工程训练报告语言程序设计
个人财务管理系统课程名称
语言程序设计工程训练姓
名院(系)专业班级
信息科学与技术学院学
号指导教师教务处制
目
录1.需分........................................................................12系总框图和功能模块说明........................................................12。1系统框图.................................................................2.2功能模块说明................................................................13系设计........................................................................23.1主要结构体..................................................................23。2主要能函数...............................................................4系调试........................................................................34.1、程序开始执行时系统的所示的页面:.........................................34.2、选择退出系统:.............................................................34、选择登陆,并且输入的帐号和密码都正确....................................34.4、用户输入的帐号不正确:.....................................................44.5、用户输入的帐号正确,密码正确:............................................44、用户进行具体操:.........................................................55总............................................................................66源序清单......................................................................6
1。需求分析编写一个个人财政支出管理系统主要解决的问题是作为一个系统而言,它所要面对不只是某一个人而言,而是要面对很多的用户么想要解决这一问题就必须要求这个系统能够存储许多用户的基本信息和记录时也要求系统能够对不同的用户的身份进行查找和验证。在验证通过之后,在对其进行用户所要求的操作。作为一个财政支出系统,那么就要求对于用户关于金钱的每一项操作都要有相应的记录,时并允许用户对于每一条整体的记录进行操作如可以根据时间来查找某一确定日期是否进行了收入或者支出的操作也可以根据特定的需要来删除某一条整体的记录.不允许对每条记录的单项数据进行更改因为不管是收入还是支出所涉及的金额都是固定的,时间也是固定的,所以系统不允许用户对其进行操作.除此之外,还必须有足够大的空间来存储新的记录。所以此程序就是基于这个思想而编写出来的,基本满足了用户对于一个财政支出管理系统所要求的相关功能。2系统2。1系统总框图个人财务理系统输入个人信息
比对个人信息
修改账户资料
查询账户信息
输出账户清单2。2功能模块说明(1)old_record():此函数由系统自行调用作用是将所有用户信息存入系统。(2voidsave):此函数的作用是将结构体数组中的信息写入文件存储,由系统调用。(3)load():此函的作用是将结构体数组中写入文件的信息读出,由系统调用.1
(lookup_accounts(函数的作用是将用户输入的帐号与系统中的所有帐号进行对比,查看系统中是否有此帐号。()):此函数是作用是在系统查询到了帐号之后,对用户输入的帐号和密码进行检验,看是否相对应.(此函数的功能是在系统检查了用户输入的帐号和密码之后,果用户通过了系统的检查,在此显示用户可见的基本信息。(7)find_record(函数的作用是根据用户输入的日期进行查找操作()insert_record():此函数的功能是在记录中增加一条新的记这个记录由用户输入。()(此函数的功能是根据用户的输入的位置,将相应位置的记录删除。(10sum_num(函数的功能是计算所有收入和支出的总和,计算全部的收入的总合,计算全部输出的总合。)打印输出记录的函数:在本程序中一共有三个打印输出记录的函数,分别为all_print(()这三个函数它们的功能依次是打印输出全部记录,打印输出输入记录,打印输出支出记录。(():在函数中,可以根据用户的选择来操作系统允许用户使用的功能,也可以随时退出这个系统。3系统3。1主要结构体个人信息账户信息3.2主要功能函数old_record(//将所有用户信息存入系统print_message()sum_num()
//示用户可见的基本信息//算所有收入和支出的总和all_print()输出输入记录,打印输出支出记录
//印输出全部记录,打印2
4系统4。1、程序开始执行时系统的所显示的页面:4。2、选择退出系统:4.3、选择登陆,并且输入的帐号和密码都正确3
4。4、用户输入的帐号不正确:4.5、用户输入的帐号正确,密码不正确
:4
4。6、用户进行具体操作:5
5总结本程序在编写是,主要就是基于用户的角度去分析该如何设计此程序,和编写功能模块的在编写程序时所有的数据都是对结构体进行的操作在此过程中我发现了自己在对指针操作的时候尤其是对指向结构体数组的指针和指向结构体的指针的操作都不够熟练.但在编写完此程序之后,我感觉自己对语法的应用有了明显的提高6源程#include〈stdio.h〉#include〈。h#definenull0#define20ok1record{[20];[intnum;}list_record{code[20]name[20];int;rec[max];}r[max];//统原有数据,用户不可知int(structlist_recordr[]){inti;6
for(i=0;i<3;[i]。rec_len=4;strcpy(r[0].account,”1001");strcpy(r[1]。strcpy(r[;strcpy(”111111”);strcpy(r[1],”222222”);strcpy(r[2].code,"333333”);strcpy(r[0,"wang”strcpy(r[1].name”li”);strcpy(r[2]。,”zhang”);strcpy(r[0]。rec[0]。date,”07—01”strcpy(r[0]。,—02-”);strcpy(r[0]。rec[2].date,”07—01");strcpy(r[0]。,”07—04-01”);strcpy(r[1],—strcpy(r[1]。rec[1date,"07-02—02);strcpy(r[2].date,"07-03—strcpy(r[1]。[3]date,"07-04—02");strcpy(r[2].rec[0]”0703”);strcpy(r[2].rec[1]。0203";strcpy(r[2—03”);strcpy(r[2].rec[3-04—03”)strcpy(r[0].rec[0operate,;strcpy(r[0rec[1].operate,”);strcpy(r[0].rec[2,"in"strcpy(r[0][,”out");strcpy(r[1rec[0.operate,"out");strcpy(r[1rec[1.operate,”7
strcpy(r[1].rec[2],”strcpy(r[1rec3],;strcpy(r[2rec[0].operate,"in"strcpy(r[2].rec[1]”out”);strcpy(r[2];strcpy(r[2rec[3”out");r[0]。;r[0][;[.num=2500;r[1].rec[0num=-3000;r[1]rec[1r[1]rec[2—r[1][2]num=2000;r[2].rec[0]num=1000;[2[].num=[2].rec[2].num=3000;r[2].rec[2].num=—500;ok;}//数据写入文件save(){FILE*fp;inti;if((fp=fopen(”wenjian",”)==null){printf(”cannotopenthefilen”)return;}8
fori=0;i〈max;i++)if(fwrite(&[i],sizeof(structfp=1)printf("filewriteerror。\n"););}//件读出){FILE*;inti;if((fp=fopen("wenjian",){printf(notopeninfile。}〈if(fread(&r[,1,fp)!=1){if(fp));});}//用户输入的帐号与系统中原有帐号比较,查找用户帐号intstructlist_recordr[acc[]){inti;for;i<3;i++)if(strcmp(r[i]account)9
{ok}printf(”帐号不存在,重新输入!”);null;}//查密码函数(structlist_recordacc[]c[{inti;a;strcpy(。account,"0strcpy(a.code,"0";for;i<a。rec_len;){。[,"0");strcpy(。[ioperate”0"a.rec[i];}for;;if(strcmp(r[i]。account)==0)if(strcmp(r[i]))r[i]printf("thecodeagain!\”;}
//示用户基本信息structlist_record*{名:%s\n"p—〉;printf(”帐号:*p).account}//据用户输入的日期,查找记录intfind_record(structlist_record*,d[]){inti;for*。rec_len;i++){if(strcmp((*p)。rec[i].date,d)==0){printf(”dateoperate\n")printf(”%*p).rec[i].date);",(*p[i].operateprintf("%dn”*p)[i);ok;}}if(rec_len)printf(”thedateisnotexit!\n")null;}//入函数,根据用户输入的信息,增加记录intinsert_record(*p,struct*p1intlop){inti;
〈1){("thepositionisreturn}else{*p;i>lop-1{(*p(。(*p[(})(*preturnok;}}删除记录函数intlist_record{inti;){”thepositionisreturn
}{for(i=lop2-1;i〈p—;i++){strcpy*p).recidate,(*prec[i+1]。date);strcpy。(*p[;[inum=(*p[。}*p).rec_len--;ok}}//出全部记录函数all_print(*p){inti;n;fori=0;i〈。rec_len){printf(”%s”,(*p)。。);printf(”%s",(*p)。rec[i].operate);printf("%dprintf(”\”)
”,(*p).rec[].num);}}//算总的钱数intsum_num(structlist_record*
{inti;intintintfor(i=0;i〈(*rec_len;i++){。rec[i]。if((*p)。reci].num>0)sum_in+=(*p).reci.num;if((*p)。reci].num〈0)sum_out+=(*p)[inum;}printf("总金额为:%d\n”,sumprintf(”总收入为:”,sum_inprintf("总支出为:%d\n”,sum_out);ok;}//出收入记录intacc_printstructlist_record*p){inti;intprintf(operatenum\n"for;i<(*p)if((*p[{).rec[i]。num;
*p).rec[i]。date);printf(”%s"*p[ioperate);printf("%d(*pnum);printf(”\n");}printf(”总收入金额为:ok;if(printf(”therenoaccount。;null;}//出支出记录intpay_print(*p{inti;intnum\n")for(i=0;i<p-〉;i++)if((*p)。[i].num<0){(*p).rec[i].num;printf(”%s”(*。[;printf(”%s”,*p)]);d”,(*[i]。numprintf("\n");}printf(”总的支出为:%”,sum_pay)ok;if(sum_pay==0)
printf(isno);null;}){intj=0n=0;intdata1[20];accou[20*p0;a;;*p;b。;p0=&a;);load(;printf(”
欢迎使用个人财政支出管理系统!————————-------——---——-——————-——----—---———-——--—n”(”|printf(1陆系统("|出系统printf(”|
|\n"|\n;|\n");printf(”-——-——-———------—-----————---—-—-—-—-———---—————n”);
scanf(”%d,&x)if(printf("感谢您使用本系统,再见!\n{do{printf(”请输入帐号);
//while(j<3);("%,(r,accou)){printf("请输入密码;(”%s”cod);b=check_code(r,accou,cod);if(){do{
);(r,accou,;scanf(n++;}while(n<3)if(n=3)
〉printf(”您的密码不正确请退出系统,谢谢使用,见!\n;}{printf(”--—-—--——--——请选择您要进行的操作———-—--————\nprintf
”|//while(j<3);
\n";printf("|
2、记录|\n"printf("|
3、增加记录|\n");printf("|
4除记录|\n"printf(”5、输出所有记录|\n”;printf("|
6出所有收入记录|\n");printf("|、输出有记|\nprintf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年福建省泉州市晋江智信大数据科技有限公司招聘10人考前自测高频考点模拟试题及完整答案详解一套
- 2025年镇江市高等专科学校公开招聘高层次人才10人长期模拟试卷及答案详解(易错题)
- 2025江苏海事职业技术学院招聘高层次人员28人考前自测高频考点模拟试题及答案详解(全优)
- 2025江苏常州市属事业单位引进高层次人才模拟试卷及答案详解(全优)
- 2025内蒙古森工集团招聘50名高校毕业生(第一批)考前自测高频考点模拟试题及答案详解(名师系列)
- 2025贵州黔西南州交通建设发展中心招聘公益性岗位工作人员3人模拟试卷及答案详解(夺冠系列)
- 2025广西壮族自治区文化和旅游厅幼儿园勤杂工(残疾人专岗)招聘1人模拟试卷附答案详解
- 2025河南郑州高新区枫杨社区卫生服务中心招聘模拟试卷及参考答案详解
- 2025年上海大学公开招聘岗位(第二批)考前自测高频考点模拟试题附答案详解(典型题)
- 2025湖南邵阳市新宁县政协中心公开选调工作人员模拟试卷及答案详解(名校卷)
- 2024年注会考试《经济法》真题及答案
- 无人驾驶生产工艺流程
- 2025年上海高考数学重点知识点归纳总结(复习必背)
- 旋转-图形的旋转(省级赛课公开课一等奖)课件-九年级数学新人教版上册
- 第15课明至清中叶的经济和文化(课件)-高一中外历史纲要上(课件教学视频)
- 辽宁省抚顺市新抚区2024-2025学年八年级上学期10月月考数学试卷(含答案)
- 金属腐蚀与防护技术教具考核试卷
- 【MOOC】园林植物应用设计-北京林业大学 中国大学慕课MOOC答案
- caxa电子图板教程
- 维修人员认证与培训体系
- 职业技术学院《酒店财务管理》课程标准
评论
0/150
提交评论