c语言个人财务管理系统[1]

上传人:m**** 文档编号:469393012 上传时间:2023-01-06 格式:DOC 页数:17 大小:85.50KB
返回 下载 相关 举报
c语言个人财务管理系统[1]_第1页
第1页 / 共17页
c语言个人财务管理系统[1]_第2页
第2页 / 共17页
c语言个人财务管理系统[1]_第3页
第3页 / 共17页
c语言个人财务管理系统[1]_第4页
第4页 / 共17页
c语言个人财务管理系统[1]_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《c语言个人财务管理系统[1]》由会员分享,可在线阅读,更多相关《c语言个人财务管理系统[1](17页珍藏版)》请在金锄头文库上搜索。

1、 个人财政支出管理付欣 05计算机四班指导教师:梁新元一、问题描述及分析1二、实验程序设计思想及功能描述13、主要函数模块的设计思想和具体实现2三、实验程序测试41、程序开场执行时系统的所显示的页面:42、选择退出系统:53、选择登陆,并且输入的和密码都正确:54、用户输入的不正确:55、用户输入的正确,密码不正确:6四、实验程序自我评价7五、课程设计创新7六、课程设计总结7七、参考书目:7八、实验程序源代码8一、问题描述及分析编写一个个人财政支出管理系统,主要解决的问题是作为一个系统而言,它所要面对不只是某一个人而言,而是要面对很多的用户。那么想要解决这一问题,就必须要求这个系统能够存储许多

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

3、理系统所要求的相关功能。二、实验程序设计思想及功能描述根据前面对于编写一个个人财政支出管理系统的程序的问题描述和分析,确定了此程序的根本思想和相关功能。1、 根本思想首先定义一个构造体数组,这个数组的功能便是用来所有用户的所有信息。它的成员为每个用户的account、密码code、(name)、记录(record recmax),以及记录的条数(rec_len)。其中记录(record recmax)这个成员本身也是一个构造体数组。它包含了用户所有的记录(record),并且根据用户的操作,记录这个成员变量也会有所跟改,例如如果拥护增加了一条记录,那么这一条记录就会存储在此成员变量中。除了这个

4、成员变量是动态变化之外,记录的条数rec_len也会根据用户的操作进展变化,例如如果用户增加了一条记录,那么rec_len就会自加1,如果用户删除了一条记录,那么rec_len就会自减1。记录record recmax这个成员变量是以后函数中操作的主要容。除了这两个成员变量之外,其它的成员变量那么不会被改变,系统只允许用户对其进展访问,但不允许进展操作,因为这几个成员变量的作用主要是用来验证用户的身份用的,所以不可以更改。其中的密码code甚至只能别系统调用,而不能对用户进展显示的,也就是说密码code对于用户是不可预知的,这样做的目的是为了系统自身的平安性,以免用户的信息被其他人看到。这就是

5、这个构造体数组的功能和根本成员变量及各个成员变量的功能。定义了构造体数组之后,首先要做的就是要把所有的记录都存入这个构造体数组中,以方便用户的操作。所以在main函数中有系统自行调用了old_record这个函数来存入信息。在此之后进展的操作便是让用户选择所要进展的是登陆系统的操作还是退出系统的操作。如果选择登陆,那么要输入和密码。之后由系统来检查的存在性和密码的正确性。如果这两项都通过了系统的检查,那么用户便可以进展具体记录的操作了。这便是这个程序的根本设计思想。2、各个函数模块的功能1old_record( ):此函数由系统自行调用,作用是将所有用户信息存入系统。2void save( )

6、: 此函数的作用是将构造体数组中的信息写入文件存储,由系统调用。3load( ):此函数的作用是将构造体数组中写入文件的信息读出,由系统调用。4lookup_accounts :此函数的作用是将用户输入的与系统中的所有进展比照,查看系统中是否有此。5 check_code( ):此函数是作用是在系统查询到了之后,对用户输入的和密码进展检验,看是否相对应。6print_message :此函数的功能是在系统检查了用户输入的和密码之后,如果用户通过了系统的检查,在此显示用户可见的根本信息。7find_record :此函数的作用是根据用户输入的日期进展查找操作。8insert_record :此函

7、数的功能是在记录中增加一条新的记录,这个记录由用户输入。9del_record :此函数的功能是根据用户的输入的位置,将相应位置的记录删除。10sum_num :此函数的功能是计算所有收入和支出的总和,计算全部的收入的总合,计算全部输出的总合。11打印输出记录的函数:在本程序中一共有三个打印输出记录的函数,分别为all_print 、acc_print 、pay_print 这三个函数。它们的功能依次是打印输出全部记录,打印输出输入记录,打印输出支出记录。12mian( ):在主函数中,可以根据用户的选择来操作系统允许用户使用的功能,也可以随时退出这个系统。3、主要函数模块的设计思想和具体实现

8、1void save( )函数和load( )函数。这两个函数的功能是在系统调用了old_record( )这个函数之后,构造体就有了所有用户的所有信息。Save( )函数的作用是将所有的信息都存入文件中,便于数据的保存和读取。Load( )函数的作用那么是把存入的文件中的信息读出来。这两个函数所涉及的知识点为文件的读入和写出。主要是freadhe和fwrite两个函数的应用。它们的一般调用形式为:fread(buffer,size,count,fp);fwrite(buffer,size ,count,fp);其中:Buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwr

9、ite来说,是要输出数据的地址。Size:要读写的字节数。Count:要进展读写多少个size字节的数据项。Fp;文件型指针。调用这两个函数之后,如果调用成功,那么函数返回值为count的值,即输入或输出数据项的完整个数。2lookup_accounts 函数和 check_code( )函数:这两个函数的功能主要是用来核对用户的身份。系统先检验的是axxounts这个函数。根据用户输入的与系统中所有的进展比拟,查找看是否有一样的。如果找到了,那么进展对密码进展检验,看密码与是否对应。在检验的时候,如果用户输入的在系统中不存在,系统那么会给出提示要求用户从新输入。但如果用户输入了三次体统都找不

10、到的时候,系统那么会强制要求用户退出系统,此时那么显示完毕语的欢送词。而如果找到了,但用户输入的密码与原有密码不一致,系统也会给出提示信息要求用户再次输入。同样的,如果用户输入三次体统都检验到不是正确的密码的时候,系统那么会强制要求用户退出系统,此时那么显示完毕语的欢送词。在这两个函数中主要用到的知识点就是对字符串的相关操作。如果和密码都通过检验之后,此函数那么将返回struct list_record类型的数据。字符串处理的函数主要有以下几个:puts函数:其一般形式为puts(字符数组)。其作用是将一个字符串输出到终端。Gets函数:其一般形式为gets (字符数组)。其作用是从终端输入一

11、个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址。Stract函数:其一般形式为strcat(字符数组1,字符数组2)。Strcat是字符串连接的缩写。其作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1 中,函数调用后得到一个函数值字符数组1的地址。Strcpy函数:其一般形式为strcpy(字符数组1,字符数组2)。Strcpy是字符串复制的简写。它的作用是将字符串2复制到字符数组1中去。在本程序中。用到的最多的便是此函数。strcmp 函数:其一般形式为strcmp(字符串1,字符串2)。Strcmp是字符串比拟的缩写。它的作用是比拟字

12、符串1和字符串2,比拟的结果有函数值带回。如果字符串1=字符串2,那么函数值为0;如果字符串1大于字符串2,那么函数值为一个正整数,否那么那么为负整数。3find_record 函数:此函数的功能是根据用户输入的时间查找当天的记录。这个函数的参数为一个指向构造体的指针和一个字符串。字符串是用语输入的日期,指向构造体的指针指向的那么是用户输入的的这个构造体。如果找到了用户输入的日期,那么输出当天的所以记录。如果找不到,那么显示无此日的记录。4insert_record 函数和del_record 函数:这两个函数的功能是增加新的记录和删除用户指定的记录。在insert_record( )函数中,

13、此函数的参数是一个指向struct list_record的指针和一个指向struct record的指针还有一个选择插入位置的整形变量。在主函数中,先定义一个struct record的构造体。这个构造体的容是由用户输入的,也就是用户所要向struct list_record这个构造体中输入的新的记录的容。然后再在主函数中定义一个指向struct record构造体的指针,并指向已经输入记录的构造体,最后将此指针作为实参传入函数。由于向函数中传如是指针,所以在函数中记录更改之后,返回主函数的是更改后的记录。在del_record 函数中,有用户在主函数中输入要删除的记录的位置,然后调用此函数

14、,那么就会执行删除该记录的操作。与insert_record函数一样,参数传递的也是指针,所以在函数中更改的记录,返回主函数后依旧是更改后的记录。5sum_num 函数:此函数的功能是用来计算用户所有记录中的钱数的总和,以方便用户对于系统的操作,同时也可以使用户对自己的有更深入的了解。除此之外,该函数还能会对用户所有的收入和所有的支出进展求和,使用户能够知道自己的所有的收入的总和和所有支出的总和,这样也方便了用户进展下一步的操作。6打印输出函数: 在此程序中,打印输出函数共有三个,分别是输出全部记录,输出收入记录和输出支出记录。在这里定义三个输出函数是为了方便用户能够更容易的进展操作。假设只有

15、一个输出全部记录的函数,那么如果用户只想查看收入的记录或者支出的记录,此时用户只能自己一条一条的去查看,这样就会让用户感到不方便。一个良好的管理系统的目的就是能尽可能的满足用户的所有需要,分工越是准确越好,所以为了满足此项要求,在此定义了三个输出函数。7main( )函数:在一个程序中,main( )函数是最为重要的一个函数,因为它是所有程序执行的入口。同时函数也是以main( )函数的完毕作为完毕的,由此可见main 函数的重要性。在本程序中,所以的功能模块函数都是在main 函数中调用的,这样做的目的是为了是整个程序的构造简单紧凑,同时也是为了程序的调试方便。但这样也就相对的增加了main 函数的复杂性。在本程序中,main 函数中涉及的语法知识包括循环的嵌套使用,分之构造的嵌套使用,指针的应用,指向构造体指针的应用等许多语法构造。因为main 函数在本程序中有着至关重要的作用,所以在此详细说明。在程序开场执行之后,首先由用户来选择是要登陆系统还是要推出系统。如果是退出系统,那么程序便会完毕。如果选择登陆,那么系统便会要求用户输入和密码。系统先会对进展检查,如果检查通过了,那么要对密码进展检查,如果通过了,那么会显示用户信息,同时也允许用户对记录进展操作,而所有的操作都是由用户自行随意选择

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

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号