中小企业账务处理系统设计说明书.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*******************
实践教课
*******************
兰州理工大学
计算机与通讯学院
2011年秋天学期
面向对象课程设计
题目:中小公司账务办理系统的设计与实现
专业班级:计算机科学与技4班术
姓名:马真
学号:10240436
指导教师:朱红蕾
成绩:_______________
i
目录
要.........................................................................
................................................................................
(I)
言.........................................................................
...............................................................................
(II)
一、系统剖
析..................................................................................
(1)
编写目
的..............................................................................
................................................................................
(1)
项目背
景..............................................................................
................................................................................
(1)
功能概
括..............................................................................
................................................................................
(1)
数据词
典..............................................................................
................................................................................
(3)
功能需
求..............................................................................
................................................................................
(3)
属
性..............................................................................
................................................................................
(4)
其余需
求................................................................. ..................................................................错误!不决义书签。
二、系统整体设计.................................................................................. .. (4)
应用背景.............................................................................. ................................................................................
(4)
定义.............................................................................. ................................................................................ .. (4)
程序描绘.............................................................................. ................................................................................
(5)
功
能..........................................................................
............................................................................
(5)
性
能..........................................................................
............................................................................
(5)
输入项
目..........................................................................
............................................................................
(5)
输出项
目..........................................................................
............................................................................
(5)
程序逻
辑..........................................................................
............................................................................
(5)
设计总结
....................................................................... ........................................................................... . (11)
参照文件
....................................................................... ........................................................................... (12)
致
谢......................................................................... ............................................................................... . (13)
ii
摘要
本软件是简单适用的公共软件。
考虑到系统的构架简单,且主要实现主要模块,供给清楚的设计框架,本文档在先做出纲要设计前提下,而后在纲要设计的基础长进行扩展和详尽的描绘,达成主要模块的详尽设计。
该系统包含该系统界面友善,操作简易,能达成增添公司账务,公司账务明细的改正,公司账务的删除等功能,开发本系统的整体的任务是实现财务管理的自动化和系统化,帮助管理人员更好更高效的达成财务管理工作。
重点词:中小公司,账务管理,信息管理;
I
序言
一个公司的账务管理是公司各项管理中最为重要的,也是最为繁琐的部分。
公司的账务管理主要包含以下几方面的内容:公司账务的增添,此中包含进账信息及其、
明细出账信息及其明细;公司账务明细的改正;公司账务明细的删除;账务资料的查问,如依照账务流水号查问,依照日期查问等。
还有就是账务汇总、也是最重要的部分,
能够依照各样方式汇总,如依照流水账号汇总.依照日期汇总.依照流水号和日期汇总等。
实现账务管理的规范化和自动化是十分必需的。
我们这个系统的开发就是为了这一需求而开发的。
这是一个相对较小的管理软件,所以对操作系统及运转环境的要求其实不显然,主假如软件的开发与运转要有有关数据库的支持。
在开发工作的先期,一定要有严格的数据库成立过程,这表此刻,要提早达成数据的收集与整理,以后在保证数据正确性的基础上实行数据的录入工作,并且最后达成的数据库要依据操作权限支持增添、删除、改正、查问等功能。
在此基础上才可进一步实现软件的开发工作。
II
一.系统剖析
我设计的账务管理系统是一个相对较小的应用系统,所以对原有设施的影响不太显然,一般而言,我们平时所使用的操作设施足以运转这个软件。
并且,使用这个管理系统会使用户和本来对比节俭好多时间,使工作更高效。
因为用户经过使用此系统会更快的达成工作,所以整个开发环境会因系统的使用节俭好多人力、物力,进而进入更有效的工作运转状态。
经剖析可知开发这个项目的经费估算其实不高昂;再者,经过使用此软件会节俭人力物力方面的开销,换句话说,就等于挽回了相当一部分的经费支出,所以说对经费支出的影响是乐观的。
编写目的
跟着社会经济的迅速发展,账务管理已经成为公司管理的重要的一部分,因为账务管理与经济或财产的保值增值有关,是公司财产的决议,公司生计、发展、赢利的总目标离不开财务的筹资、投资以及对资本的运用管理。
其次,账务管理目标是拟订生产目标、销售目标等一系列目标的基础和前提,这使得账务管理在公司管理中处于一个中心地位,账务管理目标将从根本上反应公司的总目标。
所以确立一个合理的账务管理目标对公司的长久发展有着极为重要的意义。
项目背景
项目名称:账务管理系统
用户:中小型公司
功能概括
本系统可分为系统管理模块、出入账务模块、账务资料模块以及账目汇总模块.
各个模块的功能描绘:
系统管理模块:系统管理部分包含数据库的备份和恢复以及用户管理,包含增添新用户和改正目前用户密码以及退出系统。
出入账务模块:出入账务模块用来增添进账资料、进账明细、出账资料及出账明
1
细。
账务资料模块:账务资料模块用来对账务资料进行管理,包含增添账务明细、改正账务
明细、删除账务明细,以及账务资料的查问,包含按流水号查问和按日期查问。
账目汇总模块:账务汇总模块用来依照各样要求汇总账目,包含依照账目汇总、
依照日期汇总、依照客户汇总、依照账目+日期汇总、依照日期+客户汇总等。
系统构造图如下图:
增添入账信息
出入账务管理
增添出账信息
增添明细账务
账务信息管理改正明细账务
财
务删除明细账务
管
理按流水号查问
系
账务信息查问
统
按日期查问
按账目汇总
按日期汇总
账务信息汇总按客户汇总
按账目日期汇总
按日期客户汇总
图系统构造图2
数据词典
下边给出的是本系统主要数据元素的数据词典卡片:
帐目名称
名字:帐目名称
又名:无
描叙:业务帐目名
格式:字符串
地点:财务信息表
管理员姓名
名字:管理员姓名
又名:姓名
描叙:管理员的姓名。
书写形式:姓+名字
格式:字符串
地点:管理员信息表
功能需求
1本系统的开发主假如为了方便公司对账务方面的管理,使公司在账务方管理方面更为安全、公然、透明和快捷。
2本系统的主要功能:出入账务管理、账务信息管理、账务信息查问以及账目汇总。
账务管理是为实现公司的目标服务的,并受账务管理内容的限制。
基本任务是依
3法合理筹资并有效的利用公司的各项财产,最后提升效益。
公司账务管理的任务有以下几个方面:
4依法合理的筹集资本,知足公司资本需要量。
5有效地分派和使用公司资本,提升资本利用效率。
3
分派公司的利润,协调各方面的经济关系。
推行账务监察,保护财经法例。
属性
易操作,页面中重要部分带有详尽说明,采纳严格的用户注册模块,保证系统安全性,需要管理员按期为数据库备份,能在不一样操作系统中运转。
其余需求
用户能方便的对系统进行设置以及一些详细操作。
当系统出现故障是,能够供给友善的信息,并对问题进行记录,保证不丢掉数据;管理员经过改正服务器代码和数据库解决等。
二、系统整体设计
背景
a.名称:账务管理系统。
用户:中小型公司
b.本项目与其余软件或其余系统的关系:工作于Windows2000以上全部的系统。
定义
程序流程图:又叫程序框图,它是历史最悠长使用最为宽泛的描绘工程设计的方法,但是它也是用得最杂乱的一种方法。
程序描绘
功能
账务的基本信息和财务更新的信息的录入、改正、查问、删除模块,财务更新信息
的录入、改正、查问、删除模块,以及系统保护功能。
4
性能
此系统的开发时为了加速公司内部的账务的计算和管理。
输入项目
查问时:输入要进行查问的条件
改正时:输入要进行改正的数据
增添时:在对应的数据界面输入要输入的财务项目信息用户注册时:输入用户的注册信息输出项目
查问时:输出用户的查问信息
改正时:输出改正能否成功
增添时:输出信息增添能否成功
用户注册时:输出注册能否成功
程序逻辑
1)用户登岸模块程序流程(如图)
5
开始
1->n
输入用
户信息
信息审查
用户不存在
密码不正确
密码正确
T
2)n+1->n
3)
4)
5)
6)n > 3
7)
8)
9)结束
10)
11)
12)图用户登岸模块程序流程
13)
14)
15)
16)
17)
18)数据的查问程序流程图(如图)6
开始
选择查问的方式
输入查问条件
数据信息汇总
输出查问结果
结束
图数据的查问程序流程图
3)注册的程序流程图(如图5.3) 7
开始
输入用户信息
T
用户存在
账号成在
F
次密码一致
注册成功
结束
图注册的程序流程图
8
4)用户密码的改正(如图)
开始
输入信息
判断账号和密
码的正确性输入不正确
两次新密码的
一致性
改正成功
结束
图用户密码的改正
接口
1.储存设施接口:用于系统的备份与恢复。
2.用户接口:用于输入数据的命令接口,提示用户能否履行将要办理的操以便得9
3.到确认。
4.数据库接见接口:为系统的工作基础、信息支持。
5.查问接口:为用户供给直接界面。
10
设计总结
经过此次课程设计,我拓宽了知识面,锻炼了能力,综合素质获得较大提升。
安排课程设计的基本目的,在于经过理论与实质的联合、人与人的交流,进一步提升思想觉醒。
特别是察看、剖析和解决问题的实质工作能力,以便培育成为能够主动适应社会主义现代化建设需要的高素质的复合型人材。
作为整个学习系统的有机构成部分,课程设计固然时间紧急,但其实不拥有绝对独立的意义。
它的一个重要功能,在于运用学习成就,查验学习成就。
运用学习成就,把讲堂上学到的系统化的理论知识,试试性地应用于实质设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建讲和假想。
查验学习成就,看一看讲堂学习与实质工作究竟有多大距离,并经过综合剖析,找出学习中存在的不足,以便为完美学习计划,改变学习内容与方法供给实践依照。
对我们计算机专业的学生来说,实质能力的培育至关重要,而这类实质能力的培育单靠讲堂教课是远远不够的,一定从讲堂走向实践。
这也是一次预演和准备毕业设计工作。
经过课程设计,让我们找出自己情况与实质需要的差距,并在此后的学习时期实时增补有关知识,为求职与正式工作做好充足的知识、能力准备,进而缩短从校园走向社会的心理转型期。
课程设计达到了专业学习的预期目的。
在一个礼拜的课程设计以后,我们广泛感觉不单实质着手能力有所提升,更重要的是经过对软件开发流程的认识,进一步激发了我们对专业知识的兴趣,并能够联合实质存在的问题在专业领域内进行更深入的学习。
11
[3]参照文件
[4]
[5]
[6][1]初小璐.完整掌握SQLServer2000[M] 机械工业第一版社,2004
[7][2]JeraodV.Post. 数据库管理系统(英文版.第三版)[美]清华大学第一版社
[8]张海藩.软件工程导论[M].北京:清华大学第一版社
[9]谢希仁.计算机网络(第二版)[M].北京:电子工业第一版社
[10]戴志诚,赵国峰.JSP信息化系统建设事例[M].北京:人民邮电第一版社
[11]成晓静,毕靖.网页设计三剑客完整学习手册[M].北京:中国电力第一版社
[12]赵强.精晓JSP编程[M].北京:电子工业第一版社
[13]萨师煊,王珊.数据库系统概论[M].北京:高等教育第一版社
12
致谢
在财务管理系统的开发过程中,我第一要感谢全部帮助过我的老师和同学,没有他们的鼎力支持和帮助,我的系统的开发将不会这样顺利的达成,在系统的开发过程中,他们提出了很多可贵的建议,对系统的开发有着至关的重要性。
我还要感谢同学
们向我们提出的一些宝贵的建议,使我的系统变得更为的完美。
此外,还要感谢张其文老师对我的指导,没有他灌注的理论知识和实践指导,我不行能开发出这个系统。
13
附录:源代码
#include<stdio.h>
#include<stdlib.h>
#include<memory.h>
#include<windows.h>
//文件保留路径
#defineFilePath1"Myinfor.dat"
#defineFilePath2"Myinfor.txt"
//查问用申明
#defineStatusint
#defineOK1
#defineError0
#defineNotFound2
typedefstruct{
intjczwgl;//出入账务管理
intzwxxgl;//账务信息管理
intzwxxcx;//账务信息查问
intzwxxhz;//账务信息汇总
}Infor;
typedefstruct{// 查问用自定义数据种类
intno;
intdata;
}pType;
voidmenu(void);//菜单
voidinput(Infor*newI);// 接收键盘输入
voidwriteinfor(Infor*newI);// 向文件内写入内容
voidchangeFormat(void);//将dat格式文件变换为txt文件
Statussearch(Infor*a);//查问函数[返回查问的结果及查问的状态]voidpaixu(Infor*a);//对查问据结果排序
voidmodify(Infor*a,intmon);// 改正数据
voiddelRecord(intmon);//删除数据
voidmain()
{
while(1)
{
menu();
}
}
14
voidmenu(void)
{
intitem;
intmon;
Infor*a;
a=(Infor*)malloc(sizeof(Infor));
do{
printf("\n⋯⋯⋯⋯中小企管理系⋯⋯⋯⋯\n\n");
printf("\t\t1. 入数据。
\n");
printf("\t\t2. 看数据。
\n");
printf("\t\t3.改正数据。
\n");
printf("\t\t4. 数据。
\n");
printf("\t\t5.排序数据。
\n");
printf("\t\t6. 除数据。
\n");
printf("\t\t0.退出系。
\n\n");
printf("入要行的操作:");
scanf("%d",&item);
}while(item>6||item<-1);
switch(item)
{//退出程序
case0:getchar();//保留界面getchar();exit(1); break;
//入数据case1:input(a);
writeinfor(a);
break;
//看数据
case2:changeFormat();break;
//改正数据
case3:item=search(a);
mon=a->month;
if(item!=OK)printf("\n 没有切合条件的!\n"); else
{ 15
printf("\n出入账务管理账务信息管理账务信息查问账务信息汇总\n");
printf("-----------------------------------------------------------------------\n");
printf("%7d%8d%8d%8d%8d%8d%8d%8d\n",a->jczwgl,a->zwxxgl,a->zwxxcx,a->zwxxhz);input(a);
modify(a,mon);
}
break;
//查问数据
case4:item=search(a);
if(item!=OK)printf("\n 没有切合条件的记录!\n");
else{
printf("\n出入账务管理账务信息管理账务信息查问账务信息汇总\n");
printf("-----------------------------------------------------------------------\n");
printf("%7d%8d%8d%8d%8d%8d%8d%8d\n",a->jczwgl,a->zwxxgl,a->zwxxcx,a->zwxxhz);
}
break;
//排序数据
case5: item=search(a);
if(item!=OK)printf("\n没有找到切合排序条件的记录!\n");else
paixu(a);
break;
//删除数据
case6:
item=search(a);
mon=a->month;
if(item!=OK)printf("\n 没有切合条件的记录!\n");
else
{
printf("\n出入账务管理账务信息管理账务信息查问账务信息汇总\n");
printf("-----------------------------------------------------------------------\n");
printf("%7d%8d%8d%8d%8d%8d%8d%8d\n",a->jczwgl,a->zwxxgl,a->zwxxcx,a-
>zwxxhz);delRecord(mon);
}
break;
16
}
free(a);//开释内存空间
}
voidinput(Infor*newI)// 接收从键盘输入的数据
{
printf("\n请挨次输入数据[说明:中间以空格符分开]:\n(出入账务管理账务信息管理账务信息查问账务信息汇总)\n");
scanf("%d%d%d%d%d%d%d%d",&newI->jczwgl,&newI->zwxxgl,&newI->zwxxcx,&newI-
>zwxxhz);fflush(stdin);
}
voidwriteinfor(Infor*newI)// 向文件内写入内容
{
FILE*fp;
fp=fopen(FilePath1,"ab+");
if(fp==NULL)
{
printf("没法创立文件:%s",FilePath1);
exit(0);
}
fwrite(newI,sizeof(Infor),1,fp);// 这里能够做特别办理可防备存在同一月份有2条以上的记录问
题。
这里就不写了。
fclose(fp);
printf("数据录入成功!\n");
}
voidchangeFormat(void)//临时只好操作一行文件有待改良
{
FILE*fp1,*fp2;
Infor*a;
a=(Infor*)malloc(sizeof(Infor));
fp1=fopen(FilePath1,"rb+");
if(fp1==NULL)
{
printf("没法找到文件:%s\n",FilePath1);
return;//返回主函数
}
fp2=fopen(FilePath2,"wt+");
if(fp2==NULL)
{
17
printf("没法建文件:%s\n",FilePath2);
return;//返回主函数
}
fputs("\n⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯中小企管理系⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯\n\n",fp2);
fputs("\n出管理信息管理信息信息\n",fp2);
fputs("-----------------------------------------------------------------------\n",fp2);
printf("\n 出管理信息管理信息信息\n");
printf("-----------------------------------------------------------------------\n");
rewind(fp1);
fread(a,sizeof(Infor),1,fp1);
while(!feof(fp1))// 从原文件[.dat]中数据写入示文件[.txt]中
{
printf("%7d%8d%8d%8d%8d%8d%8d%8d\n",a->jczwgl,a->zwxxgl,a->zwxxcx,a->zwxxhz);
fprintf(fp2,"%7d%8d%8d%8d%8d%8d%8d%8d\n",a->jczwgl,a->zwxxgl,a->zwxxcx,a->zwxxhz);fread(a,sizeof(Infor),1,fp1);
}
fputs("-----------------------------------------------------------------------\n",fp2);
fputs("关本程序原程序!\n",fp2);
fclose(fp1);
fclose(fp2);
system(FilePath2);//用翻开的文本文件
remove(FilePath2);//除文本文件文件
}
Statussearch(Infor*a)
{
FILE*fp1;
intmon;
intisfound=0;
printf("正确入要的月份:");
scanf("%d",&mon);
fflush(stdin);//消除冲区
fp1=fopen(FilePath1,"rb+");
if(fp1==NULL)
18
{
printf("没法找到文件:%s\n",FilePath1);
returnError;//返回主函数
}
rewind(fp1);
fread(a,sizeof(Infor),1,fp1);
while(!feof(fp1))// 查问操作
{
if(a->month==mon)
{
isfound=1;
break;
}
else
{
isfound=0;
}
fread(a,sizeof(Infor),1,fp1);
}
fclose(fp1);
if(isfound)
returnOK;
else
returnNotFound;
}
voidpaixu(Infor*a)
{
inti=0,j=0,flag=0,t;
pTypepx[8]={{0,0}};
charstr[8][10]={" 出入账务管理","账务信息管理","账务信息查问","账务信息汇总"};
for(;i<8;i++)
px[i].no=i;
px[0].data=a->jczwgl;
px[1].data=a->zwxxgl;
px[2].data=a->zwxxcx;
px[3].data=a->zwxxhz;
for(i=1;i<8;i++)// 冒泡排序
{
19
flag=0;
for(j=0;j<8-i;j++)
if(px[j].data>px[j+1].data)
{
t=px[j].data;
px[j].data=px[j+1].data;
px[j+1].data=t;
t=px[j].no;
px[j].no=px[j+1].no;
px[j+1].no=t;
flag=1;
}
//输出结果
if(flag==0)break;
}
printf("\n");
for(i=0;i<8;i++)
{
printf("%s",str[px[i].no]);
}
printf("\n-----------------------------------------------------------------------\n"); for(i=0;i<8;i++)
{
printf("%8d",px[i].data);
}
printf("\n");
}
voidmodify(Infor*a,intmon)// 改正数据
{
FILE*fp1,*fp2;
Infor*b;
b=(Infor*)malloc(sizeof(Infor));
fp1=fopen(FilePath1,"rt");
fp2=fopen("temp.dat","wt+");
rewind(fp1);
fread(b,sizeof(Infor),1,fp1);
while(!feof(fp1))// 重写数据20
{
if(b->month==mon)
{
fwrite(a,sizeof(Infor),1,fp2);// 改正数据
}
else
{
fwrite(b,sizeof(Infor),1,fp2);
}
fread(b,sizeof(Infor),1,fp1);
}
fclose(fp1);
fclose(fp2);
remove(FilePath1); //删除源文件
rename("temp.dat",FilePath1);//重命名中间文件printf("改正数据成功!\n");
changeFormat(); //显示数据
}
voiddelRecord(intmon) //删除数据
{
FILE*fp1,*fp2;
Infor*b;
b=(Infor*)malloc(sizeof(Infor));
fp1=fopen(FilePath1,"rt");
fp2=fopen("temp.dat","wt+");
rewind(fp1);
fread(b,sizeof(Infor),1,fp1);
while(!feof(fp1)) //重写数据
{
if(b->month!=mon)
fwrite(b,sizeof(Infor),1,fp2);
fread(b,sizeof(Infor),1,fp1);
}
fclose(fp1);
fclose(fp2);
remove(FilePath1); //删除源文件
rename("temp.dat",FilePath1);//重命名中间文件
printf("删除数据成功!\n");
changeFormat(); //显示数据
21
}
22。