您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > C语言程序设计个人财务管理系统
程序设计工程训练报告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源程序清单......................................................................611.需求分析编写一个个人财政支出管理系统,主要解决的问题是作为一个系统而言,它所要面对不只是某一个人而言,而是要面对很多的用户。那么想要解决这一问题,就必须要求这个系统能够存储许多用户的基本信息和记录。同时也要求系统能够对不同的用户的身份进行查找和验证。在验证通过之后,在对其进行用户所要求的操作。作为一个财政支出系统,那么就要求对于用户关于金钱的每一项操作都要有相应的记录,同时并允许用户对于每一条整体的记录进行操作,例如可以根据时间来查找某一确定日期是否进行了收入或者支出的操作,也可以根据特定的需要来删除某一条整体的记录。但不允许对每条记录的单项数据进行更改,因为不管是收入还是支出,所涉及的金额都是固定的,时间也是固定的,所以系统不允许用户对其进行操作。除此之外,还必须有足够大的空间来存储新的记录。所以此程序就是基于这个思想而编写出来的,基本满足了用户对于一个财政支出管理系统所要求的相关功能。2系统总框图和功能模块说明2.1系统总框图2.2功能模块说明(1)old_record():此函数由系统自行调用,作用是将所有用户信息存入系统。(2)voidsave():此函数的作用是将结构体数组中的信息写入文件存储,由系统调用。(3)load():此函数的作用是将结构体数组中写入文件的信息读出,由系统调用。(4)lookup_accounts():此函数的作用是将用户输入的帐号与系统中的所有帐个人财务管理系统输入个人信息比对个人信息修改账户资料查询账户信息输出账户清单2号进行对比,查看系统中是否有此帐号。(5)check_code():此函数是作用是在系统查询到了帐号之后,对用户输入的帐号和密码进行检验,看是否相对应。(6)print_message():此函数的功能是在系统检查了用户输入的帐号和密码之后,如果用户通过了系统的检查,在此显示用户可见的基本信息。(7)find_record():此函数的作用是根据用户输入的日期进行查找操作。(8)insert_record():此函数的功能是在记录中增加一条新的记录,这个记录由用户输入。(9)del_record():此函数的功能是根据用户的输入的位置,将相应位置的记录删除。(10)sum_num():此函数的功能是计算所有收入和支出的总和,计算全部的收入的总合,计算全部输出的总合。(11)打印输出记录的函数:在本程序中一共有三个打印输出记录的函数,分别为all_print()、acc_print()、pay_print()这三个函数。它们的功能依次是打印输出全部记录,打印输出输入记录,打印输出支出记录。(12)mian():在主函数中,可以根据用户的选择来操作系统允许用户使用的功能,也可以随时退出这个系统。3系统设计3.1主要结构体个人信息账户信息3.2主要功能函数old_record()//将所有用户信息存入系统print_message()//显示用户可见的基本信息sum_num()//计算所有收入和支出的总和all_print()、acc_print()、pay_print()//打印输出全部记录,打印输出输入记录,打印输出支出记录34系统调试4.1、程序开始执行时系统的所显示的页面:4.2、选择退出系统:4.3、选择登陆,并且输入的帐号和密码都正确:44.4、用户输入的帐号不正确:4.5、用户输入的帐号正确,密码不正确:54.6、用户进行具体操作:65总结本程序在编写是,主要就是基于用户的角度去分析该如何设计此程序,和编写功能模块的。在编写程序时,所有的数据都是对结构体进行的操作,在此过程中,我发现了自己在对指针操作的时候,尤其是对指向结构体数组的指针和指向结构体的指针的操作都不够熟练。但在编写完此程序之后,我感觉自己对语法的应用有了明显的提高。6源程序清单#includestdio.h#includestring.h#definenull0#definemax20#defineok1structrecord{chardate[20];charoperate[20];intnum;};structlist_record{characcount[20];charcode[20];charname[20];intrec_len;structrecordrec[max];}r[max];//系统原有数据,用户不可知intold_record(structlist_recordr[]){7inti;for(i=0;i3;i++)r[i].rec_len=4;strcpy(r[0].account,1001);strcpy(r[1].account,1002);strcpy(r[2].account,1003);strcpy(r[0].code,111111);strcpy(r[1].code,222222);strcpy(r[2].code,333333);strcpy(r[0].name,wang);strcpy(r[1].name,li);strcpy(r[2].name,zhang);strcpy(r[0].rec[0].date,07-01-01);strcpy(r[0].rec[1].date,07-02-01);strcpy(r[0].rec[2].date,07-03-01);strcpy(r[0].rec[3].date,07-04-01);strcpy(r[1].rec[0].date,07-01-02);strcpy(r[1].rec[1].date,07-02-02);strcpy(r[1].rec[2].date,07-03-02);strcpy(r[1].rec[3].date,07-04-02);strcpy(r[2].rec[0].date,07-01-03);strcpy(r[2].rec[1].date,07-02-03);strcpy(r[2].rec[2].date,07-03-03);strcpy(r[2].rec[3].date,07-04-03);strcpy(r[0].rec[0].operate,in);strcpy(r[0].rec[1].operate,out);strcpy(r[0].rec[2].operate,in);strcpy(r[0].rec[3].operate,out);strcpy(r[1].rec[0].operate,out);strcpy(r[1].rec[1].operate,in);8strcpy(r[1].rec[2].operate,out);strcpy(r[1].rec[3].operate,in);strcpy(r[2].rec[0].operate,in);strcpy(r[2].rec[1].operate,out);strcpy(r[2].rec[2].operate,in);strcpy(r[2].rec[3].operate,out);r[0].rec[0].num=3000;r[0].rec[1].num=-1500;r[0].rec[2].num=2500;r[0].rec[3].num=-1000;r[1].rec[0].num=-3000;r[1].rec[1].num=5000;r[1].rec[2].num=-1000;r[1].rec[2].num=2000;r[2].rec[0].num=1000;r[2].rec[1].num=-1500;r[2].rec[2].num=3000;r[2].rec[2].num=-500;returnok;}//将数据写入文件voidsave(){FILE*fp;inti;if((fp=fopen(wenjian,wb))==null){printf(cannotopenthefile.\n);return;}for(i=0;imax;i++)9if(fwrite(&r[i],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(&r[i],sizeof(structlist_record),1,fp)!=1){if(feof(fp))(fclose(fp));return;}fclose(fp);}//将用户输入的帐号与系统中原有帐号比较,查找用户帐号intlookup_accounts(structlist_recordr[],characc[]){inti;for(i=0;i3;i++)if(strcmp(r[i].account,acc)==0){returnok;10}printf(帐号不存在,请重新输入!\n);returnnull;}/
本文标题:C语言程序设计个人财务管理系统
链接地址:https://www.777doc.com/doc-2908977 .html