一、需求分析
1、系统概述:
班级财务管理是班级日常生活必不可少的,反应了班级财务的运作功能与过程,采用计算机来管理班级财务管理系统可方便快捷地查询与管理。本系统是班级财务管理系统,可让使用者明白地记录,反应班级财务的收入,支出,用途与统计。
系统主要功能分类:
1. 登录与注册
1) 管理员登录
2) 普通用户登录
2. 班级财务管理
1) 班级收支信息录入
2) 班级收支信息查询、
3) 班级收支信息修改
4) 班级收支信息删除
5) 班级收支信息统计
2、系统运行环境:
(1)硬件环境: CPU:奔腾3以上
内存:64M以上
显卡:集成显卡
硬盘:10M
(2)软件环境: 操作系统:windows 98/me/2000/XP/vista
DOS系统支持中文输出
3、功能需求描述:
(1) 登录模块:输入用户名和密码,并判断是管理员还是普通成员,管理员和普通成员具有不同的功能选择界面。
(2) 录入信息:各项财务收支信息(包括使用人、用途、收入、支出、收入(或支出)时间)。
(3) 修改班级成员信息。
(4) 删除班级成员信息。
(5) 查询班级财务信息。
(6) 统计班级财务信息:包括个人所有的收支,月季班级收支,班级在一年的收支.
(7) 按用途支出排序:根据描述的用途使用链表对其进行排序
二、总体设计
1、总体开发思想:
(1)主要的数据结构:
系统用一个以为链表将数据录入,并完成查询,修改,等内容。
头指针head
……
Null
(2)数据存贮方式:
用二进制码将用户名和密码存储于date.txt文件中
用二进制码将数据存储于shuju.txt文件中
(3)使用的语言: C语言。
2、系统模块结构图:
3、模块设计:以下为各个功能模块的流程图
|
|
三、功能实现
1、主要函数:函数名及参数含义;
(1)链表模块主要函数:
int chazhao(char string[40]) //查找用户名和密码
int denglu(int num) //管理员与普通用户登录
int creat_manager(int num) //创建管理员
int creat_normal(int num) //创建普通用户
struct person *duqu() //读取文件资料
int luru_person() //录入成员信息
int lookup_num() //按编号查找
int lookup_name() //按姓名查找
int lookup_describe() //按描述查找
int lookup_date() //按日期查找
int lookup_all() //查询所有收支信息
int xiugai_name() //按姓名修改
int xiugai_income() //按收入修改
int xiugai_outlay() //按支出修改
int xiugai_describe() //按描述修改
int xiugai_date() //按日期修改
int del_num() //通过成员编号查找
int del_name() //通过成员姓名查找
int del_describe() //通过项目名称查找
int del_date() //通过日期查找
int tongji_name(int i) //统计个人财务信息
int tongji_month(int i) //统计月财务信息
int tongji_year(int i) //统计全体年财务信息
struct person *insert(struct person *head,struct person *p) //插入链表
struct person *sort(struct person *head) //排序链表
int fenlei(int i) //按描述排序支出
struct person
{
intnum;
charname[30];
charpassword;
intyear;
intmonth;
intday;
floatincome;
floatoutlay;
chardescribe[100];
structperson *next;
};
2、使用界面
(1)欢迎画面:
(2)密码输入界面:
(3)登录界面:
(4)录入成员信息:
(5)修改成员信息:
(6)查询班级收支信息:
(7)删除班级收支信息
(8)统计班级收支信息:
(9)按描述支出排序:
四、总结
在3月份,我接触到了课程设计,并选择了班级财务管理系统。第一次尝试自己制作一个小型的程序,让我感到无从下手。在两个星期后,才想到了将各部分模块化,应用各种函数,并用链表实现数据的链接,完成基本功能。在这个基础上,不仅让我加大对C语言的熟悉度,并且让我更深入地了解编程。同时在完成过程中,查阅了许多书籍,获取了更多的知识。比如如何能在输入密码时将密码变成星号,如何让计算机自我判断登录者是管理员还是普通用户……种种不明白,在一番努力之后成为我的程序的一部分。
总的来说,第一次尝试,给了我许多新鲜感,让我认识到许多自己的不足,自己明白程序有很多的漏洞需要完善;让我更加清楚自己所需要学的,为我今后的学习指明了方向,也因此让我体验到了编程的乐趣。