结构化设计实验

合集下载

软件工程实验二-结构化程序设计

软件工程实验二-结构化程序设计

淮海工学院计算机科学系实验报告书课程名:《软件工程》题目:结构化设计实验班级:学号:姓名:结构化设计实验报告要求1目的与要求:1)系统学习和理解结构化软件工程设计阶段的基本任务、概念、原理、技术和方法;2)掌握设计阶段各种设计工具,如、层次图、程序流程图、N-S图、PAD图、判定表(树)、伪代码语言等工具的使用方法;3)通过理论学习和试验要逐步提高运用结构化软件工程的设计理论、技术和方法解决实际问题的综合应用和实践创新能力;4)请借阅有关Microsoft Office Visio 系统,预习系统有关的结构化设计工具和使用方法;5)按照实验题目要求独立完成结构化设计实验内容,严禁拷贝、抄袭他人设计成果;6)认真书写实验报告,并于第七周周五以前提交,不得延误;7)第三次实验,即软件测试实验将在本次实验的基础上完成,希望同学按照要求高质量完成本次实验。

8)本周六(4月16日)以前各班提交实验报告,不得延迟。

2 实验内容或题目1.针对自己第一次实验所完成的结构化分析项目(或题目),选择所绘制的数据流图,E-R图、状态图,完成下面2、3、4、5、6步要求的结构化设计内容;2.按照面向数据流图的结构化设计方法,并在优化所选择数据流图的基础上,导出项目的总体设计层次图(H图);特别注意:设计过程中必须给出细化好并且加了输入输出边界的数据流图;3.按照详细设计阶段所学的过程设计工具,分别选择程序流程图、盒图和PAD图等设计工具,在第2所得层次图中选择几个主要模块进行详细设计,画出相应详细设计结果图形;4.根据E-R图所建立的数据模型进行数据库(以关系数据库模型为基准,进行数据库表及其关系设计);5.根据H图进行界面菜单设计(模拟菜单显示样式绘制菜单设计图),选择一个数据库表(实体)进行界面表单(数据编辑界面)设计;6.选择第3步中某一模块的详细设计结果,画出对应得流图,并计算其环形(圈)复杂度。

3 实验步骤与源程序1.画出有边界的数据流图2.画出项目总体设计层次图(H图)3.画出程序流程图4.画出盒图5.画出PAD图6.设计项目数据库表及关系7.选择一个数据库表设计界面8.画出所选择的模块对应的流图计算环形(圈)复杂度4测试数据与实验结果(可以抓图粘贴)1、画出有边界的数据流图有边界的数据流图:2、画出项目总体设计层次图(H图)H图:3、画出程序流程图还书功能流程图:4、画出盒图还书功能盒图:5、画出PAD图还书功能PAD图:6、设计项目数据库表及关系数据库表的具体结构如下:1)管理员表:用于保存管理员信息,结构如下/****** Object: Table [dbo].[Users] Script Date: 04/26/2015 15:56:26 ******/ SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE[dbo].[Users]([Name][nvarchar](50)NULL,[Password][nvarchar](50)NULL,[Type][int]NULL)ON[PRIMARY]GO2)图书信息表/****** Object: Table [dbo].[Book] Script Date: 04/26/2015 15:56:26 ******/ SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE[dbo].[Book]([Num][nvarchar](50)NOT NULL,[Name][nvarchar](50)NULL,[Author][nvarchar](50)NULL,[Type][int]NULL,[ISBN][nvarchar](50)NULL,[CBS][nvarchar](50)NULL,[CBRQ][datetime]NULL,[Status][nvarchar](50)NULL,CONSTRAINT[PK_Book]PRIMARY KEY CLUSTERED([Num]ASC)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF, ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GO3)借书卡信息表/****** Object: Table [dbo].[Card] Script Date: 04/26/2015 15:56:26 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE[dbo].[Card]([Num][nvarchar](50)NOT NULL,[Name][nvarchar](50)NULL,[Class][nvarchar](50)NULL,[StartTime][datetime]NULL,[EndTime][datetime]NULL,CONSTRAINT[PK_Card]PRIMARY KEY CLUSTERED([Num]ASC)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF, ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GO4)图书借阅表/****** Object: Table [dbo].[Lend] Script Date: 04/26/2015 15:56:26 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE[dbo].[Lend]([CardNum][nvarchar](50)NULL,[BookNum][nvarchar](50)NULL,[Time][datetime]NULL,[Status][nvarchar](50)NULL)ON[PRIMARY]GO5)图书类型表/****** Object: Table [dbo].[Type] Script Date: 04/26/2015 15:56:26 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE[dbo].[Type]([ID][int]IDENTITY(1,1)NOT NULL,[Name][nvarchar](50)NULL,CONSTRAINT[PK_Type]PRIMARY KEY CLUSTERED([ID]ASC)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF, ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GO7、选择一个数据库表设计界面8、画出所选择的模块对应的流图计算环形(圈)复杂度流图:圈复杂度为:35 结果分析与实验体会本次实验实在实验一的基础上继续做的实验,一开始感觉到十分困难,对于图书管理系统的数局流图还不是很清晰,但是通过分析,将数据的每一步走向细化,分界,完成了对整个系统的H图构造,对整个系统的功能更加的清晰,而程序流程图、盒图以及PAD图,通过老师的讲解以及书上的知识,将系统内的部分功能模块画出来还是比较简答的,其中的逻辑顺序并不复杂,此次还设计了数据库表以及界面的设计,内容的量上还是比较多的,但是最终我完成了设计,希望我以后再软件工程这门课中学习的更加游刃有余!。

实验3 结构化程序设计初步

实验3  结构化程序设计初步

实验3 结构化程序设计初步1.实验目的(1)掌握C++赋值语句与输入输出语句的使用方法,区别C语言的输入输出语句(2)掌握关系运算符、逻辑运算符与条件运算符的运算规则并能熟练计算由这些运算符构成的表达式(3)深入掌握C++各种流程控制语句(选择语句、循环语句和跳转语句)的要点和使用方法(4)能够灵活地运用C++各种语句进行综合程序设计2.实验内容2.1程序分析题。

分析下面程序的运行结果,上机运行程序,观察其输出结果与你的分析结果是否相同?(1)有如下程序,从键盘输入123456.78↙后,变量c1、c2、a、b的值分别是多少?#include <iostream.h>void main( ){char c1,c2;int a;float b;cin>>c1>>c2>>a>>b;cout<<c1<<" "<<c2<<" "<<a<<" "<<b<<'\n';}(2)#include <iostream.h>#include <iomanip.h>void main( ){double a=123.456789012345;cout<<a<<endl;cout<<setprecision(9)<<a<<endl;cout<<setprecision(6)<<a<<endl;cout<<setiosflags(ios::fixed)<<a<<endl;cout<<setiosflags(ios::fixed)<<setprecision(8)<<a<<endl;}(3)#include <iostream.h>#include <iomanip.h>void main( ){double a=123.456789012345;cout<<setiosflags(ios::scientific)<<a<<endl;cout<<setiosflags(ios::scientific)<<setprecision(4)<<a<<endl;}#include <iomanip.h>void main( ){int b=123456;cout<<b<<endl;cout<<hex<<b<<endl;cout<<setiosflags(ios::uppercase)<<b<<endl;cout<<dec<<setw(10)<<b<<','<<b<<endl;cout<<setfill('*')<<setw(10)<<b<<endl;cout<<setiosflags(ios::showpos)<<b<<endl;}(5)有如下程序,从键盘输入86 24 75↙后,程序的输出结果为多少,为什么?#include <iostream.h>void main( ){int a,b,c;cin>>a>>oct>>b>>hex>>c;cout<<a<<" "<<b<<" "<<c<<endl;}(6)#include <iostream.h>#include <iomanip.h>void main( ){short a=-1;cout<<dec<<a<<" "<<oct<<a<<" "<<hex<<a<<endl;}(7)#include <stdio.h>void main( ){int a=-1;printf("dec:%d,oct:%o,hex:%x,unsigned:%u\n",a,a,a,a);}(8)以下程序中,为了给整型变量k1,k3赋值为10,给k2,k4赋值为20,如何输入数据?#include <stdio.h>void main( ){int k1,k2,k3,k4;scanf("%d%d",&k1,&k2);scanf("%d,%d",&k3,&k4);printf("k1=%d,k2=%d,k3=%d,k4=%d\n",k1,k2,k3,k4);}void main( ){int a=3,b=4,c=5,d=6,e,f;e=a>b&&(c=8);cout<<c<<" "<<e<<endl;f=a<b&&(e=c<d);cout<<e<<" "<<f<<endl;f=a<b||(d>0?d++:d--);cout<<d<<" "<<f<<endl;}(10)#include <iostream.h>void main( ){int x,y,z,w;z=(x=-1)?(y=-1,y+=x+5):(x=7,y=9);w=y*'a'/4;cout<<x<<" "<<y<<" "<<z<<" "<<w<<endl;}(11)#include <iostream.h>void main( ){int a=5,b=7,c=3,t;if(a= -1) cout<<"Yes"<<endl;else cout<<"No"<<endl;if(a>b) { t=a;a=b;b=t; }if(a>c) { t=a;a=c;c=t; }if(b>c) { t=b;b=c;c=t; }cout<<a<<" "<<b<<" "<<c<<endl;}解析:a被赋值为-1,输出YESIf语句成立则执行,不成立则不执行分析只有b>c成立,=后面的值赋给左边的,顺序从左到右(12)#include <iostream.h>void main( ){ char c='3';switch(c-'1'){case 0:case 1:cout<<c+1<<endl;case 2:cout<<c+2<<" "<<char(c+2)<<endl;default:cout<<c+3<<" "<<char(c+3)<<endl;}}‘3’是字符型,ASCLL码为051,执行Switch时,根据switch表达式的值找到与之匹配的case子句,就从此子句开始执行下去,不再进行判断(13)#include <iostream.h>void main( ){int a=2,b=7,c=5;switch(a>0){case 1:switch(b<0){case 1: cout<<"+";break;case 2: cout<<"-";break;}case 0:switch(c==5){case 0: cout<<"*";break;case 1: cout<<"/";break;default: cout<<"#";break;}default: cout<<"$";}cout<<"\n";}a>0是真,值为1,执行case1,继续下面,b<0是假,不执行其中的case1.case2c==5是真,值为1,执行case1,输出/,其后有break,被中断不再执行分句里其下的命令,default: cout<<"$"前面没有break,则输出$(14)#include <iostream.h>void main( ){int a=10,b=0;do{a+=2;b+=a;cout<<"a="<<a<<",b="<<b<<endl;if(b>20) break;}while(a!=14);}(15)#include <iostream.h>void main( ){int i,j;for(i=10;i<20;i++){for(j=2;j<=i/2;j++)if(i%j==0) break;if(j>i/2)cout<<i<<" ";}cout<<endl;}(16)#include <iostream.h>void main( ){int i,j,m=0;for(i=0;i<5;i++)for(j=0;j<5;j++)if(j>=i) m++;cout<<m<<endl;}(17)#include <iostream.h>void main( ){int i,j;for(i=1;i<=9;i++){for(j=1;j<=9;j++){ if(j>i) break;cout<<i<<"*"<<j<<"="<<i*j<<" ";}cout<<endl;}}(18)#include <iostream.h>void main( ){int i=1,sum=0;while(i<=100){if(i%2==0){ i++; continue;}sum+=i;i++;}cout<<sum<<endl;}2.2编程题(1)编写程序从键盘输入一个大写字母,将其转换为小写字母并输出。

软件工程实验2结构化设计实验

软件工程实验2结构化设计实验

淮海工学院计算机工程学院实验报告书课程名:《软件工程》题目:实验2 结构化设计实验班级:Z软件152学号:2017140600姓名:李梦燕实验2结构化设计实验实验目的和要求1、通过本实验,学生应熟练掌握结构化软件工程设计概要设计和详细设计方法,包括软件体系结构设计,系统实现方案设计和结构化程序设计等技术和方法。

2、通过本实验,熟悉设计方法和与设计工具使用,含软件体系结构设计(H图)、系统实现方案设计、结构化程序设计工具程序流程图、PAD图、盒图、伪代码等。

实验环境硬件环境:配置性能较好的台式计算机每人1台,并具备网络环境软件环境:Micresoft Visio实验学时2学时,必做实验实验题目1. 针对自己第一次实验所完成的结构化分析项目(或题目),选择所绘制的数据流图,完成下面2、3要求的结构化设计内容;2. 按照面向数据流的设计方法,并在优化所选择数据流图的基础上,设计出项目的总体设计层次图;3. 按照详细设计阶段所学的过程设计工具,分别选择程序流程图、盒图和PAD图等设计工具,并选择2所得层次图中几个主要模块进行详细设计,画出相应设详细计结果图形;实验过程与实验结果1、根据数据流图,运用面向数据流的设计方法,映射出软件结构,画出相应的软件结构图;软件结构图如下2、运用启发式规则,优化软件结构,画出最终层次图。

3、4、设计软件系统界面。

包括登陆界面、主界面。

实验体会这次实验的题目较多,画的图也比较多,花费了不少是时间。

通过这次实验我理解了结构化软件工程设计的基本任务、概念、原理、技术和方法。

第一次使用Visio画界面图,刚开始画的时候是真的很不适应,用起来也非常不熟悉,但是经过第一次画后画第二个界面就十分的顺畅了。

实验四 结构化程序设计

实验四 结构化程序设计

实验四结构化程序设计一、实验目的1.掌握结构化程序设计思想和算法设计方法2.掌握各类语句的用途和使用方法3.掌握条件的表示方法4.掌握表示条件结构的几种语句形式5.掌握表示循环结构的几种语句形式6.掌握break语句和continue语句的功能和使用7.了解goto语句的适用范围及使用二、实验相关知识本次实验涉及如何根据一个问题来设计算法,采用“自顶向下,逐步细化”的结构化程序设计方法,以及如何将算法用C语言描述出来。

掌握C语言中三种程序控制结构:顺序、选择和循环及对应的各类语句。

如表达式语句、复合语句、空语句、条件语句、循环语句和跳转语句,以及表示条件的关系运算符(<、<=、>、>=、==、!=)和逻辑运算符(!、&&、||)的使用。

基本的顺序结构语句有表达式语句、空遇句、复合语句等,选择结构语句有if语句和switch语句等,循环结构语句有while语句、do-while语句和for语句以及跳转语句break和continue等。

1.表示选择结构的语句形式●if(表达式)语句●if(表达式)语句1else语句2●if(表达式1)语句1else if(表达式2)语句2…else if(表达式n-1)语句n-1else语句n●if (表达式1)if (表达式2)语句1else 语句2elseif (表达式3)语句3else 语句4●switch (表达式) {case 常量表达式1: 语句列1case 常量表达式2: 语句列2 …case 常量表达式n: 语句列ndefault: 语句列n+1}2.表示循环结构的语句●while (表达式) 语句●do语句while (表达式);●for (表达式1;表达式2;表达式3)语句3.表示跳转的语句●break语句可用来跳出switch语句或循环结构,其一般形式为:break;要注意的是,break语句仅用于跳出所在的switch语句或循环语句。

结构化程序设计实训报告

结构化程序设计实训报告

一、实验背景结构化程序设计是一种计算机编程方法,旨在提高程序的可读性、可维护性和可扩展性。

通过使用顺序结构、选择结构和循环结构等基本程序结构,可以使程序更加清晰、易于理解。

本次实训旨在通过实践操作,使学生掌握结构化程序设计的基本思想和方法,提高编程能力。

二、实验目的1. 掌握结构化程序设计的基本思想。

2. 熟练掌握三种基本程序结构:顺序结构、选择结构和循环结构。

3. 学会利用结构化程序设计思想解决数据处理问题。

4. 掌握VF(Visual FoxPro)程序调试的基本方法,能进行基本的程序设计。

三、实验内容及步骤1. 实验内容本次实训主要包括以下内容:(1)顺序结构:编写一个简单的程序,实现数字1到10的累加。

(2)选择结构:编写一个程序,根据用户输入的年龄判断是否成年。

(3)循环结构:编写一个程序,计算1到100的整数之和。

(4)结合以上结构,实现一个简单的学生成绩管理系统。

2. 实验步骤(1)在VFP环境下新建一个程序文件,命名为“结构化程序设计实验.prg”。

(2)编写程序代码,实现实验内容。

(3)保存程序文件。

(4)运行程序,验证程序功能。

(5)对程序进行调试,解决可能出现的问题。

四、实验过程及结果1. 顺序结构实验代码如下:```visual foxpro顺序结构实验clearlocal sum = 0for i = 1 to 10sum = sum + iendfor"1到10的累加和为:" + str(sum) ```运行结果:1到10的累加和为:55 2. 选择结构实验代码如下:```visual foxpro选择结构实验clearlocal age = 18if age >= 18"您已成年"else"您还未成年"endif```运行结果:您已成年3. 循环结构实验代码如下:```visual foxpro循环结构实验clearlocal sum = 0for i = 1 to 100sum = sum + iendfor"1到100的整数之和为:" + str(sum)```运行结果:1到100的整数之和为:50504. 学生成绩管理系统代码如下:```visual foxpro学生成绩管理系统clearlocal score_list = {}local input_scorefor i = 1 to 5"请输入第" + str(i) + "位学生的成绩:"input_score = input("请输入成绩:") aadd(score_list, input_score) endforlocal max_score = score_list[1]local min_score = score_list[1]for i = 2 to len(score_list)if score_list[i] > max_scoremax_score = score_list[i]endifif score_list[i] < min_scoremin_score = score_list[i]endifendfor"最高分为:" + str(max_score)"最低分为:" + str(min_score)```运行结果:请输入第1位学生的成绩:90请输入第2位学生的成绩:85请输入第3位学生的成绩:78请输入第4位学生的成绩:92请输入第5位学生的成绩:88最高分为:92最低分为:78五、实验总结1. 实验收获通过本次实训,我掌握了以下内容:(1)顺序结构、选择结构和循环结构的语句格式、功能及使用方法。

实验一结构化程序设计

实验一结构化程序设计

实验一结构化程序设计实验一利用LabVIEW控件进行结构化程序设计一、实验目标:1. 理解LabView的结构的基本概念2. 掌握LabView中特有的顺序结构和移位寄存器的基本使用方法3. 掌握LabView中公式节点的使用方法二、实验设备安装有LabVIEW的计算机。

三、实验要求和内容LabView中的结构中的For和While相当于别的语言中的各种循环语句,而顺序结构主要为了方便于进行和时间相关的编程。

本单元基本要求为循序渐进地学习和调试结构相关的内容,重点在于掌握LabView中进行循环和时间相关编程的方法。

1. 使用For循环产生100个随机数。

在随机数产生的同时判定当前随机数的最大值和最小值。

有时称其为“流动的”最大值和最小值。

在前面板上显示流动最大值、最小值和当前的随机数。

循环中一定要包含Time Delay Express VI以便用户可以观看值随着For循环的运行而更新。

2. 构建VI,每秒显示一个0到1之间的随机数。

同时,计算并显示产生的最后四个随机数的平均值。

只有产生4个数以后才显示平均值,否则显示0。

每次随机数大于0.5时,使用Beep.vi产生蜂鸣声。

【提示】虽然叙述简单,但实现不易,请注意:每秒产生一个随机数,我们可以使用用于定时的VI要计算最后四个数的平均,我们需要使用移位寄存器要注意顺序结构和移位寄存器的嵌套关系3. 创建前面板有3个圆LED的VI。

运行程序时,第一个LED打开并保持打开状态。

1秒钟以后,第二个LED打开并保持打开状态;再过2秒钟,第三个LED打开并保持打开状态。

所有LED都保持打开状态3秒钟,然后程序结束。

(使用顺序结构)[选做]4. 创建一个计时测试程序,比较公式节点和本地LabVIEW 数学函数的平均执行时间。

此程序需要一个For循环或一个平序或叠序结构以及一个Case结构。

要求For循环运行计时测验N次,然后使用Statistics Express VI对结果做平均。

结构化教学的实践案例(3篇)

结构化教学的实践案例(3篇)

第1篇一、背景随着我国教育改革的不断深入,结构化教学作为一种新型的教学模式,逐渐受到广大教育工作者的关注。

结构化教学强调以学生为中心,通过设计合理的课程结构,培养学生的自主学习能力、合作能力和创新精神。

本文将以小学语文课堂为例,探讨结构化教学的实践案例。

二、案例背景某小学三年级语文课堂,教材内容为《美丽的西湖》。

该课旨在让学生了解西湖的自然风光和人文历史,培养学生的审美情趣和爱国情怀。

以下是结构化教学在该课中的应用实践案例。

三、教学目标1. 知识与技能:了解西湖的自然风光和人文历史,掌握生字词和课文内容。

2. 过程与方法:通过图片、视频、实地考察等多种途径,激发学生的学习兴趣,提高学生的观察、分析和表达能力。

3. 情感态度与价值观:培养学生热爱祖国大好河山,增强民族自豪感。

四、教学过程(一)导入环节1. 播放西湖风景视频,让学生初步感受西湖的美丽。

2. 提问:同学们,你们知道西湖在哪里吗?西湖有什么特点?(二)自主学习环节1. 学生分组,每组领取一张西湖地图,自主学习课文内容,了解西湖的自然风光和人文历史。

2. 每组选取一名代表,分享本组的自主学习成果。

(三)合作探究环节1. 教师引导学生讨论:西湖有哪些著名的景点?这些景点有哪些特点?2. 学生分组,每组选择一个景点进行深入探究,了解其历史背景、文化内涵和现实意义。

3. 各组汇报探究成果,教师点评并总结。

(四)实践活动环节1. 教师组织学生进行“我是小小导游”活动,每组选取一名学生扮演导游,向其他同学介绍所选景点的特点。

2. 学生互相评价,教师点评并总结。

(五)总结环节1. 教师引导学生回顾本节课的学习内容,总结西湖的自然风光和人文历史。

2. 学生分享自己的学习心得,表达对祖国的热爱之情。

五、教学反思1. 结构化教学在小学语文课堂中的应用,有助于提高学生的学习兴趣和积极性。

2. 通过自主学习、合作探究和实践活动,学生的自主学习能力、合作能力和创新精神得到培养。

实验4 结构化系统设计

实验4 结构化系统设计

实验报告
课程名称:信息系统分析与设计实验名称:结构化系统设计
学院:__信息与计算机学院__________________ 实验日期年月日
班级:________________ 姓名:________________ 学号:
实验4 结构化系统设计
1.实验目的
●自动化系统边界将DFD的处理划分成手工处理部分和系统处理部分。

●结构图的层次描述系统每部分的功能和子功能。

●结构图:用来展示一个计算机程序模块间关系的层次图。

●事务分析使用作为输入的系统流程图和事件表建立树型结构的顶端模块,即产生主程序的
主模块和第一层被调用模块。

●变换分析使用作为输入的数据流片段去建立子树,程序中的每个事件建立一棵子树。

2.实验任务与要求
(1)回答P378思考题1,并绘制图10-24有系统自动化边界的数据流程图;
(2)回答P379思考题2,绘制出得出的结构图;
(3)回答P380思考题3,绘制出得出的结构图;
(4)回答P381思考题4,绘制出得出的结构图。

要求:
对上述问题应提供详细的文字说明。

3.实验工具与方法
Windows XP操作系统,Microsoft Visio 2007。

4.实验结果及总结。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二结构化设计实验
1.实验目的:
能够通过结构化分析的结构进行设计,了解设计过程中的模块化原理。

2.实验内容:
在上一次实验已经用结构化分析方法详细地分析了这个工资支付系统,请从结构化分析所得到的结果(完整数据流图),判断为事务流或是变换流,采用模块化的方法,设计工资支付系统的结构。

最终生成一个工资支付软件结构。

3.实验要求:
写出设计过程、画出工资支付软件结构,用层次图表现
4.实验步骤:
4.1设计过程:
1.供选择的方案
1)低成本系统:把每月发一次工资改为每两个月发一次工资,则人工
计算工资的成本大约可减少一半,即每年可节省1.2万元。

除了已经进
行的可行性研究的费用外,不再需要新的投资。

2)中成本系统:
i.建议基本上复制现有系统的功能:课时表和任务表交到处理工资事
务的专用机房,操作员把这些数据通过终端送入计算机ii.数据收集程序接收并校核这些事务数据,把它们存储在磁盘上。

iii.然后运行工资支付程序,这个程序从磁盘中读取事务数据,计算工资,打印出工资表、工资明细表和财务报表。

3)高成本系统:建立一个中央数据库,为开发完整的管理信息系统做好准
备,并且把工资支付系统作为该系统的第一个子系统。

2.最佳方案
低成本系统存在的问题:
1)违反常规;
2)教职工反对;
3)不能解决根本问题,随着学校规模扩大,人工处理工资事务的费用也将
成比例地增加。

高成本系统:
开发成本大约将增加到12万元,然而从工资支付这项应用中获得的经济效益并不变。

所以,中等成本系统是最佳方案,成本居于高成本与低成本之间,而效益不次于高成本系统。

3.功能分解
1)取数据
a)收集事务数据
b)审核事务数据
2)计算工资
a)计算正常工资
b)计算超额工资
c)更新年度报表
3)打印表格
4.2工资支付软件结构:。

相关文档
最新文档