C语言程序设计个人财务管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计工程训练报告C语言程序设计个人财务管理系统
课程名称 C语言程序设计工程训练
姓名
院(系)信息科学与技术学院
专业班级
学号
指导教师
教务处制
目录
1.需求分析 1
2系统总框图和功能模块说明 1
2.1系统总框图 1
2.2功能模块说明 1
3系统设计 2
3.1主要结构体 2
3.2主要功能函数 2
4系统调试 3
4.1、程序开始执行时系统的所显示的页面: 3
4.2、选择退出系统: 3
4.3、选择登陆,并且输入的帐号和密码都正确: 3
4.4、用户输入的帐号不正确: 4
4.5、用户输入的帐号正确,密码不正确: 4
4.6、用户进行具体操作: 5
5总结 6
6源程序清单 6
1.需求分析
编写一个个人财政支出管理系统,主要解决的问题是作为一个系统而言,它所要面对不只是某一个人而言,而是要面对很多的用户。那么想要解决这一问题,就必须要求这个系统能够存储许多用户的基本信息和记录。同时也要求系统能够对不同的用户的身份进行查找和验证。在验证通过之后,在对其进行用户所要求的操作。
作为一个财政支出系统,那么就要求对于用户关于金钱的每一项操作都要有相应的记录,同时并允许用户对于每一条整体的记录进行操作,例如可以根据时间来查找某一确定日期是否进行了收入或者支出的操作,也可以根据特定的需要来删
除某一条整体的记录。但不允许对每条记录的单项数据进行更改,因为不管是收入还是支出,所涉及的金额都是固定的,时间也是固定的,所以系统不允许用户对其进行操作。除此之外,还必须有足够大的空间来存储新的记录。所以此程序就是基于这个思想而编写出来的,基本满足了用户对于一个财政支出管理系统所要求的相关功能。
2系统总框图和功能模块说明
2.1系统总框图
输出账户清单
2.2功能模块说明
(1)old_record( ):此函数由系统自行调用,作用是将所有用户信息存入系统。
(2)void save( ): 此函数的作用是将结构体数组中的信息写入文件存储,由系统调用。
(3)load( ):此函数的作用是将结构体数组中写入文件的信息读出,由系统调用。
(4)lookup_accounts():此函数的作用是将用户输入的帐号与系统中的所有帐号进行对比,查看系统中是否有此帐号。
(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() //打印输出全部记录,打印输出输入记录,打印输出支出记录
4系统调试
4.1、程序开始执行时系统的所显示的页面:
4.2、选择退出系统:
4.3、选择登陆,并且输入的帐号和密码都正确:
4.4、用户输入的帐号不正确:
4.5、用户输入的帐号正确,密码不正确:
4.6、用户进行具体操作:
5总结
本程序在编写是,主要就是基于用户的角度去分析该如何设计此程序,和编写功能模块的。在编写程序时,所有的数据都是对结构体进行的操作,在此过程中,我发现了自己在对指针操作的时候,尤其是对指向结构体数组的指针和指向结构体的指针的操作都不够熟练。但在编写完此程序之后,我感觉自己对语法的应用有了明显的提高。
6源程序清单
#include
#include
#define null 0
#define max 20
#define ok 1
struct record{
char date[20];
char operate[20];
int num;
};
struct list_record{
char account[20];
char code[20];
char name[20];
int rec_len;
struct record rec[max];
}r[max];
//系统原有数据,用户不可知
int old_record( struct list_record r[]) {
int i;
for(i=0;i<3;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");