IC饭卡模拟系统课程设计报告.docx
- 文档编号:24915831
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:33
- 大小:365.79KB
IC饭卡模拟系统课程设计报告.docx
《IC饭卡模拟系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《IC饭卡模拟系统课程设计报告.docx(33页珍藏版)》请在冰豆网上搜索。
IC饭卡模拟系统课程设计报告
摘要
通过软件工程课程设计,锻炼了对整个软件开发过程的能力,能切实体会到软件工程在实践中的指导作用,并按软件工程的要求完成规范的各项软件开发文档,为参加大型软件开发项目打下坚实的理论基础。
IC饭卡模拟系统是一个完整的企业管理信息系统,由多个模块有机结合而成,包括增加管理员、增加用户、查询管理员、查询用户、查询用户续费记录、查询用户消费记录、查余、须费、消费和退出软件模块。
本系统能够模拟学校食堂总管理系统及终端消费系统,实现学校食堂IC饭卡的使用周期内的所有功能。
所本设计是产品管理子系统,说明传统生命周期法在软件开发中的应用,内容包括:
需求分析、概要设计、详细设计、实现与调试分析、测试分析,用户手册,最后是心得体会。
关键词:
软件工程;管理系统;模块;分析设计;
1.引言1
2.需求分析1
2.1系统现状1
2.2用户需求2
2.3系统功能需求2
2.4数据描述4
2.4数据采集………………………………………………………………………………………5
3概要设计………………………………………………………………………………………5
3.1总体设计…………………………………………………………………………5
3.2接口设计…………………………………………………………………………7
3.3数据结构设计……………………………………………………………………8
3.4运行设计…………………………………………………………………………9
3.5出错处理设计……………………………………………………………………9
3.6安全设计………………………………………………………………………10
3.7维护设计………………………………………………………………………10
4详细设计………………………………………………………………………………………10
4.1程序设计说明……………………………………………………………………10
4.2主要模块内部设计………………………………………………………………13
5实验于调试分析………………………………………………………………………………22
5.1实现环境…………………………………………………………………………22
5.2语言选择…………………………………………………………………………22
5.3调试分析…………………………………………………………………………22
6测试分析………………………………………………………………………………………24
6.1测试用例…………………………………………………………………………24
6.2测试结果…………………………………………………………………………24
7用户手册………………………………………………………………………………………27
8总结……………………………………………………………………………………………28
参考文献…………………………………………………………………………………………29
1.引言
随着生产规模的扩大、自动化技术的应用,以及市场经济体系的培育,使得我校食堂管理的性质和环境都发生了巨大的变化。
食堂的组织机构更加庞大,管理功能更为复杂,食堂及用户之间的联系越来越紧密,所采用的决策对总体运营的影响越来越复杂,因而管理决策问题不仅数量多,而且复杂程度高,难度大。
管理信息系统在企业生产、管理中的应用越来越广泛和重要,一套好的管理信息系统直接影响到企业的生存和发展。
IC饭卡模拟系统,就是针对学校食堂的管理实际开发的软件系统,以期对食堂的生产、管理等活动进行科学、高效的管理。
IC饭卡模拟系统是一个完整的管理信息系统,由多个模块有机结合而成,包括增加管理员、增加用户、查询管理员、查询用户、查询用户续费记录、查询用户消费记录、查余、须费、消费和退出等软件模块。
本说明书介绍的是IC饭卡模拟系统中的管理子系统的开发过程。
2.需求分析
2.1系统现状
通过对学校食堂进行深入的调查,我们发现原系统产品管理过程中主要存在以下几方面的问题。
1.由于没有系统化的充值、消费记录,食堂的资金管理很成问题,由于管理不规范,食堂的的收入和支出与统计值并不一致,非常不易于食糖的管理和发展;2.由于由于没有严格的资金管理规范,资金出现小额不明的现象,甚至被充值管理员私自带走的现象发生;3.没有定期的充值、消费报表,食堂的运营领导人不能清晰的掌握具体的数据,不利于进一步的决策。
这些问题或多或少地长期存在于食堂的管理过程中,直接影响食堂的效益和正常运行,是管理者们所面临的棘手问题。
随着现代信息技术的发展,传统的管理模式已经不适应现代管理的实际。
必须通过建立现代的信息管理制度,采用现代管理手段参与管理,才可能通过各种措施降低成本,提高质量,使食堂能够取得进一步的发展。
2.2用户需求
为了将资金管理纳入规范化、现代化管理的轨道,针对食堂资金管理中存在的问题和管理的实际需要,我们将理顺管理体制、建立各种管理规范与开发信息系统有机地结合起来。
通过建立专门的资金管理系统来实施对食堂进行统一管理,要求成品管理子系统满足以下几个方面的要求:
1.从根本上理顺食堂管理体系,明晰管理员操作子系统和终端消费子系统各模块在系统中的功能;
2.食堂管理要求按照现代管理的要求进行管理,从饭卡的申请建立、正常的消费使用、必要的充值记录和最终的信息统计要求作到帐帐相符;
4.规范资金管理过程的信息流。
根据管理的实际需要规范充值记录和消费记录。
通过资金管理子系统的开发,实现对资金的动态管理,及时提供管理过程中所需的各种信息。
总之,希望通过系统的开发,解决资金遗失、被盗、成本不实等内部管理中存在的问题。
2.3系统功能需求
1.待开发软件的功能需求
产成品管理信息系统必须能够完成对公司产成品入库、出库数据的录入、更新、统计、查询、打印等工作,进行高效、准确的管理。
产生以下信息:
(1)产品须费记录表:
随时(定期/不定期)报告饭卡充值情况;
(2)产品消费记录表:
按要求定期/不定期报告饭卡使用消费情况;
以上二表,满足了食堂资金的笼集和使用等各方面管理的需要。
2.待开发软件的功能
按照用户需求,要满足以上功能,我们设计出了管理系统的结构。
见图1。
图1饭卡管理系统层次方框图
结合系统需求,对图1所示的系统功能解释如下:
增加管理员:
提供增设管理员的功能,在实际利于食堂的人事管理。
增加用户:
提供增设用户的功能,在实际使用中即饭卡的办理功能。
查询管理员:
提供管理员查询功能,可对管理员的基本信息进行查询。
查询用户:
提供用户查询功能,可对用户的基本信息进行查询,实际中可用于对挂失时的信息核对过程。
查询用户须费记录:
提供即时生成须费记录报表的功能,可供管理者随时查阅。
查询用户消费记录:
提供即时生成消费记录报表的功能,可供管理者随时查阅。
查余:
提供给用户的查询余额的功能。
须费:
提供给用户的饭卡充值功能,用户通过管理员将实际的钱币充值到系统的记录中,以便正常的使用。
消费:
提供饭卡的最基本的正常消费使用功能,用户通过扣除记录中的数额购买饭菜。
退出:
提供系统的正常使用功能。
同时,通过分析,我们给出了饭卡管理系统的顶层数据流图。
见图2。
图2饭卡管理系统顶层数据流图
2.4数据描述
1.静态数据及其数据字典
待开发软件的功能已经用层次方框图和顶层数据流图表示出来了,其中涉及到的静态数据及其数据字典如下:
表1用户须费记录(或产成品临时入库单)
字段名
中文描述
类型
长度
是否可以为空
是否作为主键
CP-01
账号
D
8
N
Primarykey
CP-02
姓名
C
6
N
CP-03
余额
C
4
N
CP-04
时间
C
2
N
CP-05
须费金额
D
5
N
表2用户消费记录(或产成品临时出库单)
字段名
中文描述
类型
长度
是否可以为空
是否作为主键
CP-01
账号
D
8
N
Primarykey
CP-02
姓名
C
6
N
CP-03
余额
C
8
N
CP-04
时间
C
2
N
CP-05
消费金额
C
5
N
CP-06
等级
C
1
N
2.动态数据
输入数据:
菜单命令、查询条件、统计条件、记录等。
输出数据:
查询结果、统计结果、生成报表等。
内部数据:
操作所产生的中间数据。
2.5数据采集
通过键盘向软件系统输入数据。
3概要设计
本软件将辅助管理人员完成全食堂产成品须费、消费等方面的管理,可以进行查询、打印报表等工作,提高食堂对资金的管理效率。
在分析阶段,我们已经提出了系统的结构、顶层数据流图和数据字典。
本节我们将对系统的硬件环境作简要介绍,并对待开发系统作概要设计。
3.1总体设计
1.处理流程
(1)系统启动。
(2)初始化系统,读入记录。
(3)进入消息循环状态,通过事件驱动激活各模块,执行各任务。
(4)一任务执行完毕后重新进入消息循环状态。
(5)通过事件驱动退出系统。
2.系统总体结构和模块设计。
通过以上分析,我们进一步设计出了产成品管理系统的总体结构模块图(见图3)。
图3系统总体结构图
各模块设计如下:
模块编号
模块名称
M1
初始化模块
M2
关闭系统模块
M3
系统功能模块
M4.1
管理员数据添加模块
M4.2
用户数据添加模块
M5.1
管理员数据查询模块
M5.2
用户数据查询模块
M6
数据情况统计模块
M7.1
用户须费报表打印模块
M7.2
用户消费报表打印模块
M8
消费管理模块
M9
须费管理模块
M10
系统启动模块
M11
用户查余模块
表3系统模块结构表
各模块功能分配如下:
(1)系统控制功能:
初始化模块(M1)、关闭系统模块(M2)、系统功能模块(M3)。
(2)数据维护功能:
管理员数据添加模块(M4.1)、出用户数据添加模块(M4.2)、消费管理模块(M8)、须费管理模块(M9)、用户查余模块(M11)。
(3)查询统计功能:
管理员数据查询模块(M5.1)、用户数据查询模块(M6.2)。
(5)打印功能:
用户须费报表打印模块(M7.1)、用户消费报表打印模块(M7.2)。
(6)数据情况统计功能:
数据情况统计模块(M6)。
3.程序流图:
图4:
程序流图
3.2接口设计
1.外部接口
(1)用户界面
采用控制台窗口界面。
(2)软件接口
软件运行于windows操作系统上。
(3)硬件接口
运行于IBMPC386及兼容机以上。
2.内部接口
(1)初始化模块(M1):
系统初始时由操作系统调用,之后进入消息循环状态。
(2)关闭系统模块(M2):
由系统功能模块调用,之后退出系统。
(3)系统功能模块(M3):
接受各事件驱动消息,启动管理员数据添加模块、用户数据添加模块、消费管理模块、须费管理模块、用户查余模块等模块。
(4)管理员数据添加模块(M4.1):
由相应事件驱动消息激活,完成添加管理员基本信息功能,之后进入消息循环状态。
(5)用户数据添加模块(M4.2):
由相应事件驱动消息激活,完成添加用户基本信息功能,之后进入消息循环状态。
(6)管理员数据查询模块(M5.1):
由相应事件驱动消息激活,完成管理员基本信息查询功能,之后进入消息循环状态。
(7)用户数据查询模块(M5.2):
由相应事件驱动消息激活,完成用户基本信息查询功能,之后进入消息循环状态。
(8)数据情况统计模块(M6):
由相应事件驱动消息激活,完成查询统计入库情况功能,之后进入消息循环状态。
(9)用户须费报表打印模块(M7.1):
由相应事件驱动消息激活,完成打印用户须费情况记录功能,之后进入消息循环状态。
(10)用户消费报表打印模块(M7.2):
由相应事件驱动消息激活,完成打印用户消费情况记录功能,之后进入消息循环状态。
(11)消费管理模块(M8):
由相应事件驱动消息激活,完成消费管理功能,之后进入消息循环状态。
(12)须费管理模块(M9):
由系统功能模块调用,完成须费管理功能。
(13)系统启动模块(M10):
由初始化模块调用。
(14)用户查余模块(M11):
由相应事件驱动消息激活,完成用户查余功能,之后进入消息循环状态。
3.3数据结构设计
1.逻辑结构设计
在重新设计了用户消费/须费情况记录单,并对两单的结构、所用数据类型、总长、数长、显长等方面进行全面的分析后,我们设计出了系统所用到的数据库的数据字典如下。
表4用户消费情况记录单(或产成品临时入库单)数据字典
字段名
中文描述
类型
长度
是否可以为空
是否作为主键
CP-01
账号
D
8
N
Primarykey
CP-02
姓名
C
6
N
CP-03
余额
C
4
N
CP-04
时间
C
2
N
CP-05
须费金额
D
5
N
表5产成品出库单(或产成品临时出库单)数据字典
字段名
中文描述
类型
长度
是否可以为空
是否作为主键
CP-01
账号
D
8
N
Primarykey
CP-02
姓名
C
6
N
CP-03
余额
C
8
N
CP-04
时间
C
2
N
CP-05
消费金额
C
5
N
2.物理结构设计
数据库中各表的文件物理结构采用顺序的记录文件。
3.4运行设计
1.运行模块的命名
模块命名为Mx.y,x相同则为同一功能的模块。
2.运行模块控制
(1)操作系统启动M1。
(2)M1启动M10。
(3)M10启动M3。
(4)进入消息驱动状态,M3通过事件驱动启动相应的功能模块,包括M9和M11。
(5)在消息驱动状态下,M3通过事件驱动启动M2,退出系统。
3.运行模块时间响应
各模块运行时间控制在1至2秒内。
3.5出错处理设计
1.系统应具有相当健壮性,避免或降低由系统错误所造成的数据库损坏。
2.对关键性操作,如查询失败等提供警告和确认机制。
3.6安全设计
系统提供严格的管理员身份验证机制,在每个时间段的事物的记录都有相应的记载,做到专人定时管理。
3.7维护设计
系统严格按照设计规范进行设计,并保持各阶段文档的完整性,为以后对软件的维护打好基础。
4详细设计
在以上工作的基础上,我们对有输出要求的全部数据进行属性分析、存储分析、关联分析、查询统计分析、数据分类与处理功能分析,进一步研究了整个系统的人—机接口,提出了系统细化后的数据流图和系统的层次方框图。
见图5、图6。
4.1程序设计说明
1.模块描述
(1)系统详细功能模块如图7、图8。
(2)模块设计如下:
表6产成品库存数据数据字典
模块编号
模块名称
M1
初始化模块
M2
关闭系统模块
M3
系统功能模块
M4.1
管理员数据添加模块
M4.2
用户数据添加模块
M5.1
管理员数据查询模块
M5.2
用户数据查询模块
M6
数据情况统计模块
M7.1
用户须费报表打印模块
M7.2
用户消费报表打印模块
M8
消费管理模块
M9
须费管理模块
M10
系统启动模块
M11
用户查余模块
(3)功能分配:
(1)初始化模块(M1):
系统初始时由操作系统调用,之后进入消息循环状态。
(2)关闭系统模块(M2):
由系统功能模块调用,之后退出系统。
(3)系统功能模块(M3):
接受各事件驱动消息,启动管理员数据添加模块、用户数据添加模块、消费管理模块、须费管理模块、用户查余模块等模块。
(4)管理员数据添加模块(M4.1):
由相应事件驱动消息激活,完成添加管理员基本信息功能,之后进入消息循环状态。
(5)用户数据添加模块(M4.2):
由相应事件驱动消息激活,完成添加用户基本信息功能,之后进入消息循环状态。
(6)管理员数据查询模块(M5.1):
由相应事件驱动消息激活,完成管理员基本信息查询功能,之后进入消息循环状态。
(7)用户数据查询模块(M5.2):
由相应事件驱动消息激活,完成用户基本信息查询功能,之后进入消息循环状态。
(8)数据情况统计模块(M6):
由相应事件驱动消息激活,完成查询统计入库情况功能,之后进入消息循环状态。
(9)用户须费报表打印模块(M7.1):
由相应事件驱动消息激活,完成打印用户须费情况记录功能,之后进入消息循环状态。
(10)用户消费报表打印模块(M7.2):
由相应事件驱动消息激活,完成打印用户消费情况记录功能,之后进入消息循环状态。
(11)消费管理模块(M8):
由相应事件驱动消息激活,完成消费管理功能,之后进入消息循环状态。
(12)须费管理模块(M9):
由系统功能模块调用,完成须费管理功能。
(13)系统启动模块(M10):
由初始化模块调用。
(14)用户查余模块(M11):
由相应事件驱动消息激活,完成用户查余功能,之后进入消息循环状态。
图5:
细化后的IC饭卡模拟系统数据流图
4.2主要模块内部设计
4.2.1模块M3设计
模块M3的设计主要是实现饭卡信息管理的基本功能,包括对管理员和用户的基本信息的查询以及用户的消费与须费功能。
通过对每个功能模块化设计,方便实现整个系统的管理。
4.2.1.1模块算法
(1)对管理员和用户的基本信息的添加
classuser*user:
:
creat1(void)//构建链表及用户信息的添加
{classuser*head1;
classuser*p1,*p2;
intn,bal=100;
time_tit;
structtm*st;
n=0;
intm,b,h;
ifstreamcalfile("d:
rjgc\\calculate.txt",ios:
:
in);
if(!
calfile){system("cls");//清屏
cout<<"\n\n\n\n\n\n\n\n\n\t\t\t\tOpenforreaderror!
"< getch(); exit (1);} calfile>>m; calfile>>b; calfile>>h; calfile.close(); system("cls");//清屏 p1=p2=(classuser*)malloc(LEN2); {cout<<"\n\n\t\t\t请输入用户的工号(输入0结束): "; cin>>p1->no1; cout<<"\n\n\t\t\t请输入用户的姓名: "; cin>>p1->name1; p1->balance=bal; time(&it); st=localtime(&it); p1->year1=1900+st->tm_year; p1->mon1=1+st->tm_mon; p1->day1=st->tm_mday; p1->hour1=st->tm_hour; p1->min1=st->tm_min; p1->sec1=st->tm_sec; h++; } head1=NULL; while(p1->no1! =0) {n=n+1; if(n==1)head1=p1; elsep2->next=p1; p2=p1; p2->next=0; p1=(classuser*)malloc(LEN2); {cout<<"\n\n\t\t\t请输入用户的工号(输入0结束): "; cin>>p1->no1; if(p1->no1==0)gotohg;//如果输入为0,就不再输入个后面的了 cout<<"\n\n\t\t\t请输入用户的姓名: "; cin>>p1->name1; p1->balance=bal; time(&it); st=localtime(&it); p1->year1=1900+st->tm_year; p1->mon1=1+st->tm_mon; p1->day1=st->tm_mday; p1->hour1=st->tm_hour; p1->min1=st->tm_min; p1->sec1=st->tm_sec; h++; } } hg: p2->next=NULL; ofstreamcallfile("d: rjgc\\calculate.txt",ios: : trunc); if(! callfile){system("cls");//清屏 cout<<"\n\n\n\n\n\n\n\n\n\t\t\t\tOpenforwriteerror! "< getch(); exit (1);} callfile< callfile< callfile< callfile.close(); return(head1); } voidadmin: : add1(classadmin*head)//增加管理员到链表里,做成系统后可调用store把新信息存入文件 {classadmin*p0,*p1; system("cls");//清屏 p0=(classadmin*)malloc(LEN1); cout<<"\n\n\t\t\t请输入新增管理员的工号: "; cin>>p0->no; cout<<"\n\n\t\t\t请输入新增管理员的姓名: "; cin>>p0->name; p1=head; while(p1->next! =NULL) p1=p1->next; p1->next=p0; p0->next=NULL; } voidadmin: : store(classadmin*head)//把链表内容存入到文件里 {classadmin*p; ofstreamjhfile("d: rjgc\\admin.txt",ios: : trunc); if(! jhfile){system("cls");//清屏 cout<<"\n\n\n\n\n\n\n\n\n\t\t\t\tOpenforwriteerror! "< getch(); exit (1);} p=head; do {jhfile< jhfile< p=p->next; }while(p! =NULL); jhfile<<'0'; jhfile.close(); } (2)对管理员和用户基本信息的查询 voidadmin: : display1(classadmin*head)//显示链表管理员信息 {classadmin*p1; p1=head; while(p1) {cout<<"管理员的工
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IC 模拟 系统 课程设计 报告