交通咨询模拟系统实验报告完整版

交通咨询模拟系统实验报告完整版
交通咨询模拟系统实验报告完整版

交通咨询模拟系统实验

报告

HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

一、问题描述

全国交通咨询模拟:处于对不同目的的旅客对交通工具有不同的要求。例如, 因

公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则希望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。

【基本要求】(1)提供对城市信息进行编辑(如:添加或删除)的功能。

(2)城市之间有两种交通工具:火车和飞机。提供对列车时刻表和 飞机航班进行编辑(增设或删除)的功能。

(3)提供两种最优决策:最快到达或最省钱到达。全程只考虑一种 交通工具。

(4)旅途中耗费的总时间应该包括中转站的等候时间。

(5)咨询以用户和计算机的对话方式进行。由用户输入起始站、终 点站、最优决策原则和交通工具,输出信息:最快需要多长时 间才能到达或者最少需要多少旅费才能到达,并详细说明依次

【测试数据】

1如下:

班次

逻辑结构拆分:

3、核心设计:细地了解。并且从中也可得知路线的添加即数据的存储是这个系统进行运作的一个基础。而为了便于数据的存储、添加、删除等操作,我选择了储存文件对这些数据进行了存储。将每个信息量放在不同的文件中,可以更有效、直观地对这些数据进行处理。

流程图中的7个主要功能模块在主函数中,采用输入选项进入子菜单,但是其他操作都是在路线添加好后进行的,并且为了每一项功能进行完后,系统可以及时回到主交互界面,我采用的是无限循环形式,即while (1)。

以邻接表作交通图的存储结构,表示边的结点内除含有邻接点的信息外,包括交通工具、路程中消耗的时间和花费以及出发和到达的时间等多项属性。

三、主控及功能模块层次结构: 1、模块说明:本系统分为个模块

1、)主函数

2、)添加城市

3、)查找城市并返回序号

4、)删除城市

5、)添加列车

6、)添加航班

7、)删除列车或航班

8、)找出最小费用路线

9、)初始化系统数据(读入内存) 10、)找出最快路线

11、)计算最快路线耗费的时间并打印 12、)计算最小费用路线 13、)主界面

14、)存储信息到文件 15、)退出、

2、下面是各模块示意图:

函数变量声明:

#include <>

#include <>

#define ERR 0

#define OK 1

#define Dij_MAXN 33

#define MAX_VERTEX_NUM 31

#define MAX_STRING_NUM 10

#define MAX_TRAFFIC_NUM 10

const char CityFile[] ="D:\\";

const char TrainFile[] ="D:\\";

const char FlightFile[] ="D:\\";

typedef short int CityType;

typedef struct TrafficNode

{

char name[MAX_STRING_NUM]; rainNum;

}

fprintf(fp,"%d\n",total);

for (i=0;i

{

for (j=0;j

{

fprintf(fp,"%s %s %s ", AdjList[i].Train[j].name, CityName[i],

CityName[AdjList[i].Train[j].EndCity]);

fprintf(fp,"%2d:%2d %2d:%2d %d\n",

AdjList[i].Train[j].StartTime/60,

AdjList[i].Train[j].StartTime%60,

AdjList[i].Train[j].StopTime/60,

AdjList[i].Train[j].StopTime%60,

AdjList[i].Train[j].Cost);

}

}

fclose(fp);total=0;

fp=fopen(FlightFile,"w");

for (i=0;i

{

total+=AdjList[i].FlightNum;

}

fprintf(fp,"%d\n",total);

for (i=0;i

{

for (j=0;j

{

fprintf(fp,"%s %s %s ", AdjList[i].Flight[j].name, CityName[i],

CityName[AdjList[i].Flight[j].EndCity]);

fprintf(fp,"%2d:%2d %2d:%2d %d\n",

AdjList[i].Flight[j].StartTime/60,

AdjList[i].Flight[j].StartTime%60,

AdjList[i].Flight[j].StopTime/60,

AdjList[i].Flight[j].StopTime%60,

AdjList[i].Flight[j].Cost);

}

}

fclose(fp);return 1;

}

(4)添加城市:

int InsertCity (char *Name)

{

strcpy(CityName[CityNum],Name);

AdjList[CityNum].city=CityNum;

AdjList[CityNum].FlightNum=0;

AdjList[CityNum].TrainNum=0;

CityNum++;

return 1;

}

(5)删除城市:

int DelCity (char *Name)

{

int city,i,j;

city=SeekCity(Name);

for (i=city;i

{

strcpy(CityName[i],CityName[i+1]);

AdjList[i].FlightNum=AdjList[i+1].FlightNum;

AdjList[i].TrainNum=AdjList[i+1].TrainNum;

for (j=0;j

{

AdjList[i].Flight[j].Cost=AdjList[i+1].Flight[j].Cost;

AdjList[i].Flight[j].EndCity=AdjList[i+1].Flight[j].EndCity; strcpy(AdjList[i].Flight[j].name,AdjList[i+1].Flight[j].name); AdjList[i].Flight[j].StartTime=AdjList[i+1].Flight[j].StartTime;

AdjList[i].Flight[j].StopTime=AdjList[i+1].Flight[j].StopTime;

}

}

CityNum--;

return 1;

}

(6)添加火车路线:

int InsertTrain (char *train,char *StartCity,char *EndCity,int StartTime,int EndTime,int cost)

{

int i,j;

i=SeekCity(StartCity);

j=SeekCity(EndCity);

AdjList[i].Train[AdjList[i].TrainNum].Cost=cost;

AdjList[i].Train[AdjList[i].TrainNum].EndCity=j;

AdjList[i].Train[AdjList[i].TrainNum].StartTime=StartTime; AdjList[i].Train[AdjList[i].TrainNum].StopTime=EndTime;

strcpy(AdjList[i].Train[AdjList[i].TrainNum].name,train);

AdjList[i].TrainNum++;

return 1;

}

(7)添加航班路线:

int InsertFlight(char *flight,char *StartCity,char *EndCity,int StartTime,int EndTime,int cost)

{

int i,j;

i=SeekCity(StartCity);

j=SeekCity(EndCity);

AdjList[i].Flight[AdjList[i].FlightNum].Cost=cost;

AdjList[i].Flight[AdjList[i].FlightNum].EndCity=j;

AdjList[i].Flight[AdjList[i].FlightNum].StartTime=StartTime; AdjList[i].Flight[AdjList[i].FlightNum].StopTime=EndTime;

strcpy(AdjList[i].Flight[AdjList[i].FlightNum].name,flight); AdjList[i].FlightNum++;

return 1;

}

(8)删除路线:

int DelPath (char *name)

{

int i,j,flag=0;

for (i=0;i

{

for (j=0;j

if (strcmp(AdjList[i].Flight[j].name,name)==0)

{

flag=1;

break;

}

if (flag)

{

for (;j

{

AdjList[i].Flight[j].Cost=AdjList[i].Flight[j+1].Cost;

AdjList[i].Flight[j].EndCity=AdjList[i].Flight[j+1].EndCity; strcpy(AdjList[i].Flight[j].name,AdjList[i].Flight[j+1].name); AdjList[i].Flight[j].StartTime=AdjList[i].Flight[j+1].StartTime;

AdjList[i].Flight[j].StopTime=AdjList[i].Flight[j+1].StopTime;

}

AdjList[i].FlightNum--;

break;

}

for (j=0;j

if (strcmp(AdjList[i].Train[j].name,name)==0)

{

flag=1;break;

}

if (flag)

{

for (;j

{

AdjList[i].Train[j].Cost=AdjList[i].Train[j+1].Cost;

AdjList[i].Train[j].EndCity=AdjList[i].Train[j+1].EndCity;

strcpy(AdjList[i].Train[j].name,AdjList[i].Train[j+1].name);

AdjList[i].Train[j].StartTime=AdjList[i].Train[j+1].StartTime;

AdjList[i].Train[j].StopTime=AdjList[i].Train[j+1].StopTime;

}

AdjList[i].TrainNum--;

break;

}

}

return 1;

}

(9)打印最小费用路线:

void Dijkstra_Output(int matx[Dij_MAXN][Dij_MAXN],int

PreCity[Dij_MAXN],int p_end,int TravelType)

{

int track[Dij_MAXN];

int i=0,j,k,min,tmp,end,cost=0;

int startH, startM, endH, endM;rainNum;k++)

if

(AdjList[track[i]].Train[k].EndCity==end&&min>AdjList[track[i]].Train[k].C ost)

{

min=AdjList[track[i]].Train[k].Cost;

tmp=k;

}

printf("%s

",AdjList[track[i]].Train[tmp].name);

startH =

AdjList[track[i]].Train[tmp].StartTime/60 ;

startM =

AdjList[track[i]].Train[tmp].StartTime%60;

endH =

AdjList[track[i]].Train[tmp].StopTime/60 ;

endM =

AdjList[track[i]].Train[tmp].StopTime%60 ;

if( !(startH/10) )

{

printf("0");

}

printf("%d:",startH);

if( !(startM/10) )

{

printf("0");

}

printf("%d -- ",startM);

if( !(endH/10) )

{

printf("0");

}

printf("%d:",endH);

if( !(endM/10) )

{

printf("0");

}

printf("%d\n",endM);

rain[tmp].StartTime/60,AdjList[track[i]].Train[tmp].StartTime%60,AdjList[t rack[i]].Train[tmp].StopTime/60,AdjList[track[i]].Train[tmp].StopTime%60);

}

}

else

{

for(i--;i>0;i--)

{

printf("\n%s:",CityName[track[i]]);

end=track[i-1];min=32767;

for

(k=0;k

rain[k].EndCity改为

AdjList[track[i]].Flight[k].EndCity!

/*if

(AdjList[track[i]].Train[k].EndCity==end&&min>AdjList[track[i]].Flight[k]. Cost)

{ */

if

(AdjList[track[i]].Flight[k].EndCity==end&&min>AdjList[track[i]].Flight[k] .Cost)

{

min=AdjList[track[i]].Flight[k].Cost;

tmp=k;

}

printf("%s",AdjList[track[i]].Flight[tmp].name);

startH =

AdjList[track[i]].Flight[tmp].StartTime / 60 ;

startM =

AdjList[track[i]].Flight[tmp].StartTime % 60;

endH =

AdjList[track[i]].Flight[tmp].StopTime / 60 ;

endM =

AdjList[track[i]].Flight[tmp].StopTime % 60 ;

if( !(startH/10) )

{

printf("0");

}

printf("%d:",startH);

if( !(startM/10) )

{

printf("0");

}

printf("%d -- ",startM);

if( !(endH/10) )

{

printf("0");

}

printf("%d:",endH);

if( !(endM/10) )

{

printf("0");

}

printf("%d\n",endM);

light[tmp].StartTime /

60,AdjList[track[i]].Flight[tmp].StartTime %

60,AdjList[track[i]].Flight[tmp].StopTime /

60,AdjList[track[i]].Flight[tmp].StopTime % 60);

}

}

printf("\n%s: DESTINATION!",CityName[track[0]]);

printf("\nMin Cost : %d\n",cost);

}

(10)找出最小费用路线

void Dijkstra(int matx[Dij_MAXN][Dij_MAXN],int p_start,int p_end,int TravelType)

{

int PreCity[Dij_MAXN]; .\n");

return -1;

}

fscanf(fp,"%d",&CityNum);

for (i=0;i

{

fscanf(fp,"%s",&CityName[i]);

AdjList[i].city=i;

AdjList[i].TrainNum=0;

AdjList[i].FlightNum=0;

}

fclose(fp);

fp=fopen(TrainFile,"r");

if (!fp)

{

printf("\nError:Cannot Open Train File...\n"); return -1;

}

fscanf(fp,"%d",&num);

for (i=0;i

{

fscanf(fp,"%s",&stmp1);

fscanf(fp,"%s",&stmp2);

fscanf(fp,"%s",&stmp3);

j=SeekCity(stmp2);

AdjList[j].Train[AdjList[j].TrainNum].EndCity=SeekCity(stmp3);

strcpy(AdjList[j].Train[AdjList[j].TrainNum].name,stmp1); fscanf(fp,"%d:%d",&hour,&minute);

AdjList[j].Train[AdjList[j].TrainNum].StartTime=hour*60+minute;

fscanf(fp,"%d:%d",&hour,&minute);

AdjList[j].Train[AdjList[j].TrainNum].StopTime=hour*60+minute;

fscanf(fp,"%d",&cost);

AdjList[j].Train[AdjList[j].TrainNum].Cost=cost;

AdjList[j].TrainNum++;

}

fclose(fp);

fp=fopen(FlightFile,"r");

if (!fp)

{

printf("\nError:Cannot Open Flight File...\n");

return -1;

}

fscanf(fp,"%d",&num);

for (i=0;i

{

fscanf(fp,"%s",&stmp1);

fscanf(fp,"%s",&stmp2);

fscanf(fp,"%s",&stmp3);

j=SeekCity(stmp2);

AdjList[j].Flight[AdjList[j].FlightNum].EndCity=SeekCity(stmp3);

strcpy(AdjList[j].Flight[AdjList[j].FlightNum].name,stmp1);

fscanf(fp,"%d:%d",&hour,&minute);

AdjList[j].Flight[AdjList[j].FlightNum].StartTime=hour*60+minute;

fscanf(fp,"%d:%d",&hour,&minute);

AdjList[j].Flight[AdjList[j].FlightNum].StopTime=hour*60+minute;

fscanf(fp,"%d",&cost);

AdjList[j].Flight[AdjList[j].FlightNum].Cost=cost; AdjList[j].FlightNum++;

}

fclose(fp);

return 1;

}

(12)找出最快路线:

int SearchMinTime (CityType City,CityType EndCity,int CurTime,int curPathNo,int TravelType)

{

int i;

if (City==EndCity)

{

if (MinTime>CurTime-StartTime)

{

for (i=0;i<=curPathNo;i++)

{

MinPath[i].City=Path[i].City;

MinPath[i].TraNo=Path[i].TraNo;

curPath=curPathNo;

}

MinTime=CurTime-StartTime;

}

}

else

{

curPathNo++;

Path[curPathNo].City=City;

if (!TravelType)

{

for (i=0;i

{

if

((AdjList[City].Train[i].StartTime>=(CurTime%1440))&&(AdjList[City].Train[ i].StopTime+(CurTime/1440)*1440-StartTime

{

Path[curPathNo].TraNo=i;

SearchMinTime(AdjList[City].Train[i].EndCity,EndCity,AdjList[City].Train[i ].StopTime+(CurTime/1440)*1440,curPathNo,TravelType);

}

if

((AdjList[City].Train[i].StartTime<(CurTime%1440))&&(AdjList[City].Train[i ].StopTime+(CurTime/1440)*1440-StartTime

{

Path[curPathNo].TraNo=i;

SearchMinTime(AdjList[City].Train[i].EndCity,EndCity,AdjList[City].Train[i ].StopTime+(CurTime/1440+1)*1440,curPathNo,TravelType);

}

}

}

else

{

for (i=0;i

{

if

((AdjList[City].Flight[i].StartTime>=CurTime)&&(AdjList[City].Flight[i].St opTime+(CurTime/1440)*1440-StartTime

{

Path[curPathNo].TraNo=i;

SearchMinTime(AdjList[City].Flight[i].EndCity,EndCity,AdjList[City].Flight [i].StopTime+(CurTime/1440)*1440,curPathNo,TravelType);

}

if

((AdjList[City].Flight[i].StartTime

{

Path[curPathNo].TraNo=i;

SearchMinTime(AdjList[City].Flight[i].EndCity,EndCity,AdjList[City].Flight [i].StopTime+(CurTime/1440+1)*1440,curPathNo,TravelType);

}

}

}

}

return 1;

}

(13)计算最快路线所需时间并打印:

int CalcMinTime (int StartCity,int EndCity,int TravelType)

{

int i;

int startH, startM, endH, endM;ity=StartCity;

if (!TravelType)

{

for (i=0;i

{

Path[0].TraNo=i;

StartTime=AdjList[StartCity].Train[i].StartTime;

SearchMinTime(AdjList[StartCity].Train[i].EndCity,EndCity,AdjList[StartCit y].Train[i].StopTime,0,TravelType);

}

}

else

{

for (i=0;i

{

Path[0].TraNo=i;

StartTime=AdjList[StartCity].Flight[i].StartTime;

SearchMinTime(AdjList[StartCity].Flight[i].EndCity,EndCity,AdjList[StartCi ty].Flight[i].StopTime,0,TravelType);

}

}

if (MinTime==32767)

{

printf("\nNo access to that destination!");

return 0;

}

rain[MinPath[0].TraNo].StartTime;

light[MinPath[0].TraNo].StartTime;

printf("\nPath:\n");

for (i=0;i<=curPath;i++)

{

if (!TravelType)

printf("%s : %s

",CityName[MinPath[i].City],AdjList[MinPath[i].City].Train[MinPath[i].TraN o].name);

else

printf("%s : %s

",CityName[MinPath[i].City],AdjList[MinPath[i].City].Flight[MinPath[i].Tra No].name);

startH =

AdjList[MinPath[i].City].Train[MinPath[i].TraNo].StartTime / 60 ;

startM =

AdjList[MinPath[i].City].Train[MinPath[i].TraNo].StartTime % 60 ;

endH =

AdjList[MinPath[i].City].Train[MinPath[i].TraNo].StopTime / 60 ;

endM =

AdjList[MinPath[i].City].Train[MinPath[i].TraNo].StopTime % 60 ;

if( !(startH/10) )

{

printf("0");

}

printf("%d:",startH);

if( !(startM/10) )

{

printf("0");

}

printf("%d -- ",startM);

if( !(endH/10) )

{

printf("0");

}

printf("%d:",endH);

if( !(endM/10) )

{

printf("0");

}

printf("%d\n",endM);

rainNum)

{

min=32767;

end=AdjList[i].Train[j].EndCity;

while

(end==AdjList[i].Train[j].EndCity&&j

{

if (AdjList[i].Train[j].Cost

{

min=AdjList[i].Train[j].Cost;

}

j++;

}

ma[i][end]=min;

}

}

}

else

{

for (i=0;i

{

min=32767;j=0;

while (j

{

min=32767;

end=AdjList[i].Flight[j].EndCity;

while

(end==AdjList[i].Flight[j].EndCity&&j

{

if (AdjList[i].Flight[j].Cost

{

min=AdjList[i].Flight[j].Cost;

}

j++;

}

ma[i][end]=min;

}

}

}

Dijkstra(ma,StartCity,EndCity,TravelType);

return 1;

}

五、功能模块间函数的调用关系,如下图所示:

文件系统实验报告

嵌入式系统实验报告(二) --嵌入式文件系统的构建 138352019陈霖坤一实验目的 了解嵌入式操作系统中文件系统的类型和作用 了解JFFS2文件系统的优点及其在嵌入式系统中的作用 掌握利用Busybox软件制作嵌入式文件系统的方法 掌握嵌入式linux文件系统的挂载过程 二实验内容与要求 编译BusyBox,以BusyBox为基础,构建一个适合的文件系统; 制作ramdisk文件系统映像,用你的文件系统启动到正常工作状态; 研究NFS作为根文件系统的启动过程。 三Busybox介绍 BusyBox最初是由Bruce Perens在1996年为Debian GNU/Linux安装盘编写的,其原始构想是希望在一张软盘上能放入一个开机系统,以作为急救盘和安装盘。后来它变成了嵌入式Linux设备和系统和Linux发布版安装程序的实质标准,因为每个Linux可执行文件需要数Kb的空间,而集成两百多个程序的BusyBox可以节省大量空间。Busybox集成了包括mini-vi编辑器、/sbin/init、文件操作、目录操作、系统配置等应用程序。 Busybox支持多种体系结构,可以选择静态或动态链接,以满足不同需要。 四linux文件系统 文件系统是对一个存储设备上的数据和元数据进行组织的机制,linux文件系统接口设计为分层的体系结构,从而将用户接口层、文件系统实现层和操作存储设备的驱动程序分隔开。 在文件系统方面,linux可以算得上操作系统中的“瑞士军刀”。Linux支持许多种文件系统,从日志型文件系统到集群文件系统和加密文件系统,而且对于使用标准的和比较奇特的文件系统以及开发文件系统来说,linux是极好的平台,这得益于linux内核中的虚拟文件系统(VFS,也称虚拟文件系统交换器)。 文件结构 Windows的文件结构是多个并列的树状结构,不同的磁盘分区各对应一个树。Linux的文件结构是单个的树,最上层是根目录,其它目录都从根目录生成。不同的linux发行版集

交通仿真实验报告

交通仿真实验报告 篇一:交通仿真实验报告 目录 1 上机性质与目的.................................. 2 2 上机内容....................................... 2 3 交叉口几何条件、信号配时和交通流数据描述.......... 3 3.1 交叉口几何数据................................ 3 3.2 交叉口信号配时系统............................ 3 3.3 交叉口交通流数据.............................. 4 4 交叉口交通仿真.................................. 4 4.1 交通仿真步骤.................................. 4 4.2 二维输出..................................... 13 4.3 3D输出...................................... 14 5 仿真结果分析................................... 15 6 实验总结和体会 (15) 实验上机名称:信号交叉口仿真 1 上机性质与目的 本实验属于计算机仿真实验,借助仿真系统模拟平面信号交叉口场景,学生将完成从道路条件设计到信号相位配置等一系列仿真实验。 实验目的: 1. 了解平面信号交叉口在城市交通中的地位; 2. 了解平面信号交叉口的主要形式、规模等基本情况; 3. 了解交叉口信号相位配时及对交叉口通行能力的影响;

管理信息系统实验报告

一、对实习目的认识 ERP模拟实习(实验)是在学生学习《生产运作管理》等相关课程的基础上,为使学生加深对理论教学的理解,配合教学内容所开设的实验教学环节。通过对与企业主要业务有关的各子系统的认知与操作,使学生了解ERP系统的基本构成与操作方法,能够增强学生计算机的应用能力,培养学生分析问题与解决问题的能力,有利于对理论教学内容的消化与吸收,并为今后从事实际工作打下一定的基础。 本实习是以广州五羊-本田公司某个月份的实际主要业务为基础,通过模拟实习,使学生在参与营销、技术、采购、设备、生产、品质、仓库、财务、人事等各个环节的实际操作过程中,熟悉各职能部门是怎样独立运作,部门之间是怎样相互协调关系。把企业作为整体系统适应外部环境变化的条件,应该如何有效地进行现代企业管理的运作。为便于实习,对每一个功能模块操作,提出较为具体的要求: 通过基础数据模块的实习,理解基础数据在企业管理中的作用。 通过营销管理模块的实习,掌握销售合同的签定,按客户订单组织生产的一般流程,掌握客户管理的基本内容与要求,了解售后服务的主要业务,明确营销管理在企业管理中的重要地位。 通过生产管理模块的实习,掌握生产计划的制定方法,以及按生产计划组织生产过程的一般流程,了解物料清单和物料需求计划的基本内容。 通过采购管理模块的实习,掌握物料采购的一般流程;理解物料供应的基本要求。 通过仓库管理模块的实习,掌握库存管理的一般流程,了解库存控制的方法。 通过品质管理模块的实习,理解品质管理的体系包括品质的控制、品质保证、品质工程三个重要组成部分的基本要求;掌握物料、产品质检的一般流程;了解质检技术标准。 通过财务管理模块的实习,掌握应收款和应付款业务处理流程;掌握成本核算的内容及要求;掌握财务成果核算的要点,了解资金筹备和运用的价值分析。 学生通过以上模块的实习,能够了解现代企业管理的一般流程,并能整合所学的管理理论知识,掌握现代企业管理的实用工具与方法,成为企业所需要的实用管理人才。 二、对《企业管理教学模拟实习软件》的整体设计思想的认识 现代企业管理教学模拟实习多媒体教学系统分为“实习目的、企业背景简介、企业流程介绍、模拟实习”四个部分;在模拟实习部分中包括十三个功能模块,每个模块都配有详细的操作说明以及相应的理论知识同时提供了完整的在线帮助、数据导入、数据流程图和教学案例等;完全模拟一个大型企业整体运作过程,学生可自行设计数据进行教学与实习,使教学与实习更贴近于实际。 我们通过对企业管理教学系统的操作学习,学生能够充分体验到企业在以销定产经营模式中,销售定单的变动将引起生产计划、物料分解、采购计划、库存管理、质量管理及相应的财务、设备、人事等各个环节的变化,反映出整个系统

Linux文件系统实验报告

黄冈师学院 提高型实验报告 实验课题文件系统的设计与实现(实验类型:□综合性 设计性□应用性) 实验课程操作系统原理 实验时间2015-2016 第二学期 学生何正发 专业班级软件工程1401 学号07

成绩: 一、实验目的和要求 1、熟悉操作系统设计的过程,巩固操作系统的基本知识,加深对操作原理、功能及各种不同的存储管理方法理解与应用; 2、学会运用各种语言、软件开发新软件的基本方法; 3、增强实际应用能力和动手操作能力。 二、实验条件 Win7 /Windows 8.1/Linux等操作系统,装有java、C、C++、C#等语言工具的环境。 三、实验原理分析 可以选择最佳适应算法,按照从小到大的次序组成空闲区自由链,当用户作业或进程申请一个空闲区时,存储管理 程序从表头开始查找,当找到第一个満足要求的空闲区时,停止查找。如果该空闲区大于请求表中的请求长 度,将减去请求长度后的剩余空闲区部分留在可用表中。回收时,从作链中删去要回收的作业块,同时在空 闲链中插入该作业大小的空闲区,并按顺序排列 四、实验方案或步骤 1、应用环境、需求分析 本模拟系统主要针对文件的管理和操作名主要有:创建用户、文件、文件夹,读文件,写文件,执行文件,关闭文件,删除用户、文件夹、文件的功能。 创建用户、文件、文件夹:在对系统发出操作命令之前必须先登录用户,然而登录之前必须创建该用户。在创建完后,可通过登录用户来创建文件和文件夹。在创建文件时可设置文件的属性和输入文件的容。 读文件:读取任何已创建的只读或读写文件的容;如果所要读的文件不是可读文件时,系统会显示该文件不可读;如果所读文件不存在,系统会显示文件不存在。 写文件用户可写或重写读写文件中的容,并保存文件中的重写容,以供下次读取;当所要写的文件不是可写的文件时,系统会显示该文件不可写;当所要写的文件并不存在时,系统会显示该文件不存在。

交通运输系统仿真实验报告

一、系统描述 1.1.系统背景 本系统将基于下面的卫星屏幕快照创建一个模型。当前道路网区域的两条道路均为双向,每个运动方向包含一条车道。Tapiolavagen路边有一个巴士站,Menninkaisentie路边有一个带五个停车位的小型停车场。 1.2.系统描述 (1)仿真十字路口以及三个方向的道路,巴士站,停车点;添加小汽车、公交车的三维动画,添加红绿灯以及道路网络描述符; (2)创建仿真模型的汽车流程图,三个方向产生小汽车,仿真十字路口交通运行情况。添加滑条对仿真系统中的红绿灯时间进行实时调节。添加分析函数,统计系统内汽车滞留时间,用直方图进行实时展示。 二、仿真目标 1、timeInSystem值:在流程图的结尾模块用函数统计每辆汽车从产生到丢弃的,在系统中留存的时间。 2、p_SN为十字路口SN方向道路的绿灯时间,p_EW为十字路口EW方向道路的绿灯时间。 3、Arrival rate:各方向道路出现车辆的速率(peer hour)。

三、系统仿真概念分析 此交通仿真系统为低抽象层级的物理层模型,采用离散事件建模方法进行建模,利用过程流图构建离散事件模型。 此十字路口交通仿真系统中,实体为小汽车和公交车,可以源源不断地产生;资源为道路网络、红绿灯时间、停车点停车位和巴士站,需要实施分配。系统中小汽车(car)与公共汽车(bus)均为智能体,可设置其产生频率参数,行驶速度,停车点停留时间等。 四、建立系统流程 4.1.绘制道路 使用Road Traffic Library中的Road模块在卫星云图上勾画出所有的道路,绘制交叉口,并在交叉口处确保道路连通。 4.2.建立智能体对象 使用Road Traffic Library中的Car type模快建立小汽车(car)以及公共汽车(bus)的智能体对象。 4.3.建立逻辑 使用Road Traffic Library中的Car source、Car Move To、Car Dispose、

生产系统建模与及仿真实验报告

生产系统建模与及仿真 实验报告 实验一Witness仿真软件认识 一、实验目的 1、学习、掌握Witness仿真软件的主要功能与使用方法; 2、学习生产系统的建模与仿真方法。 二、实验内容 学习、掌握Witness仿真软件的主要功能与使用方法 三、实验报告要求 1、写出实验目的: 2、写出简要实验步骤; 四、主要仪器、设备 1、计算机(满足Witness仿真软件的配置要求) 2、Witness工业物流仿真软件。 五、实验计划与安排 计划学时4学时 六、实验方法及步骤 实验目的: 1、对Witness的简单操作进行了解、熟悉,能够做到基本的操作,并能够进行简单的基础建模。 2、进一步了解Witness的建模与仿真过程。 实验步骤: Witness仿真软件是由英国lanner公司推出的功能强大的仿真软件系统。它可以用于离散事件系统的仿真,同时又可以用于连续流体(如液压、化工、水力)系统的仿真。目前已成功运用于国际数千家知名企业的解决方案项目,有机场设施布局

优化、机场物流规划、电气公司的流程改善、化学公司的供应链物流系统规划、工厂布局优化和分销物流系统规划等。 ◆Witness的安装与启动: ?安装环境:推荐P4 1.5G以上、内存512MB及以上、独立显卡64M以上显存,Windows98、Windows2000、Windows NT以及Windows XP的操作系统支持。 ?安装步骤:⑴将Witness2004系统光盘放入CD-ROM中,启动安装程序; ⑵选择语言(English);⑶选择Manufacturing或Service;⑷选择授权方式(如加密狗方式)。 ?启动:按一般程序启动方式就可启动Witness2004,启动过程中需要输入许可证号。 ◆Witness2004的用户界面: ?系统主界面:正常启动Witness系统后,进入的主界面如下图所示: 主界面中的标题栏、菜单栏、工具栏状态栏等的基本操作与一般可视化界面操作大体上一致。这里重点提示元素选择窗口、用户元素窗口以及系统布局区。 ?元素列表窗口:共有五项内容,分类显示模型中已经建立和可以定义的模型元素。Simulation中显示当前建立的模型中的所有元素列表;Designer中显示当前Designer Elements中的所有元素列表;System中显示系默认的特殊地点;Type中

管理信息系统实验报告

实验一认识计算机硬件和网络结构 一、实验题目 认识计算机硬件和网络结构。 二、实验课时 2课时。 三、实验目的 认识计算机的主要构成部件、功能、型号、在计算机机箱内的位置、网络结构等。 四、实验内容和要求 1、利用多媒体演示计算机的主要组成部件:机箱、主板、CPU、内存条、硬盘、软驱、光驱、插槽、BUS总线、串行接口、并行接口、USB接口等; 2、打开机箱,实物展示并讲解个部件的功能及其连接; 3、机箱、主板、CPU、CPU风扇、内存条、显卡、网卡等分别如下所示。 机箱主板

内存条显卡网卡无线网卡 CPU CPU风扇硬盘 机箱背面并行接口串行接口USB接口 4、观察每个部件在机箱的位置,并掌握每个部件的功能和基本知识。 5、观察实验室网络结构图。 6、结合某网吧的例子更好地理解网络结构。 Parallel port Serial port USB port Keyboard and mouse ports

7、独立完成上述内容,并提交书面实验报告。 五、实验体会 通过本次实验,我了解了计算机的各种硬件和网络结构。知道了各种硬件的形状、功能、特征等。还知道了网络结构的流程、大体构造。这使我对计算机有了初步的认识,为以后更进一步的学习打下了坚实的基础。也为我以后的学习和生活提供了方便。 1、cpu——中央处理器,是一台计算机的运算核心和控制核心。 2、硬盘——是电脑的主要存储媒介之一。 3、主板——又叫主机板、系统板或母板,安装在机箱内,是微机最基本也是最重要的部件之一。 4、机箱——作为电脑配件的一部分,它起的主要作用是放置和固定各电脑配件,起到一个承托和保护作 用。 5、内存条——是连接CPU和其他设备的通道,起到缓冲和数据交换作用。

FAT文件系统操作系统课程设计实验报告

操作系统课程设计之三 设计任务:模拟OS文件系统 在任一OS(Window或者Dos;也可以是在Linux下,但要求能将结果演示给老 师看)下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的模拟OS 字 ,第 ⑤、每个目录实际能放下文件或子目录30项。 ⑸、文件系统空间分配: ①、第0个盘块(1k)存放磁盘信息(可以设定为格式说明“FAT32”、盘块大小,盘块数等 内容) ②、第1个盘块起,至125盘块,共125个盘块(125k)存放FAT内容 ③、第126、127(2个)盘块,存放位示图

④、从第128盘块至10000盘块,皆为数据(区)盘块,其逻辑编号从0开始,至 9872号数据盘块,即第0数据盘块为128号盘块,第1数据盘块为129号盘块,… ⑤、第0数据盘块(即128号盘块),存放根目录(同样只用一个盘块作根目录), 由于第0、1目录项为“.”(本目录), “..”(父目录),因此根目录下同样只能存放30个文件或目录,并且从第2个目录项开始。 ⑥、文件或子目录数据,放在第1数据盘块及以后的数据盘块中,由用户按需要使 用。 内容 ⑺、删除文件 #DelFile 文件名.扩展名,在文件所在的目录项中,将第一个字节变为0xE5,并同时修改FAT内容和位示图内容;如果文件不存在,给出出错信息 ⑻、文件拷贝 #CopyFile 老文件,新文件,为新文件创建一个目录项,并将老文件内容复制到新文件中,并同时修改FAT内容和位示图内容 ⑼、显示位示图内容

#ShowBitMP,将位示图内容(已有信息部分),显示在屏幕上(按十六进制)⑽、显示FAT内容 #ShowFAT,将FAT内容(已有信息部分),显示在屏幕上(按十六进制) 4、程序的总体流程为: ⑴、输出提示符#,等待接受命令,分析键入的命令; ⑵、对合法的命令,执行相应的处理程序,否则输出错误信息,继续等待新命令 关于对FAT表和MAP表的用法 1.当要用到数据块是,查询MAP表(因为只做比较查询即可),查询到的未用位置 置1,然后在FAT表上进行相应记录,在本程序做出的规定是,当文件夹FAT 表做-1,若是文件则按照FAT做对应的顺序记录,最后一块同样是-1结束,2.回收的时候,是按照FAT表的首项,做顺序置0,然后MAP也在相应位置置0

交通仿真实验报告

土木工程与力学学院交通运输工程系 实 验 报 告 课程名称:交通仿真实验 实验名称:基于VISSIM的城市交通仿真实验 专业:交通工程 班级: 1002班 学号: U201014990 姓名:李波 指导教师:刘有军 实验时间: 2013.09 ---- 2013.10

实验报告目录 实验报告一: 无控交叉口冲突区设置与运行效益仿真分析 实验报告二: 控制方式对十字交叉口运行效益影响的仿真分析实验报告三: 信号交叉口全方式交通建模与仿真分析 实验报告四: 信号协调控制对城市干道交通运行效益的比较分析实验报告五: 公交站点设置对交叉口运行效益的影响的仿真分析实验报告六: 城市互通式立交交通建模与仿真分析 实验报告七: 基于VISSIM的城市环形交叉口信号控制研究 实验报告成绩

实验报告一: 无控交叉口冲突区设置与运行效益仿真分析 一、实验目的 熟悉交通仿真系统VISSIM软件的基本操作,掌握其基本功能的使用. 二、实验内容 1.认识VISSIM的界面; 2.实现基本路段仿真; 3.设置行程时间检测器; 4.设置路径的连接和决策; 5.设置冲突区 三、实验步骤 1、界面认识: 2、(1)更改语言环境—(2)新建文件—(3)编辑基本路段—(4)添加车流量 3、(1)设置检测器—(2)运行仿真并输出评价结果 4、(1)添加出口匝道—(2)连接匝道—(3)添加路径决策—(4)运行仿真 5、(1)添加相交道路—(2)添加车流量—(3)设置冲突域—(4)仿真查看 四、实验结果与分析

时间; 行程时间; #Veh; 车辆类别; 全部; 编号: 1; 1; 3600; 18.8; 24; 可知:检测器起终点的平均行程时间为:18.8; 五、实验结论 1、检测器设置的地点不同,检测得到的行程时间也不同。但与仿真速度无关。 2、VISSIM仿真系统的数据录入比较麻烦,输入程序相对复杂。 实验报告二: 控制方式对十字交叉口运行效益影响的仿真分析 一、实验目的 掌握十字信号交叉口处车道组设置、流量输入、交通流路径决策及交通信号控制等仿真操作的方法和技巧。 二、实验内容 1.底图的导入 2.交叉口专用车道和混用车道的设置方法和技巧 3.交通信号设置 4.交叉口冲突区让行规则设置

仿真实验报告经典案例概述

XXXXX 实验报告 学院(部)XX学院 课程名称生产系统仿真实验 学生姓名 学号 专业 2012年9月10日

《生产系统仿真》实验报告 年月日 学院年级、专业、班实验时间9月10日成绩 课程名称生产系统仿真 实训项目 名称 系统仿真软件的基础应 用 指导 教师 一、实验目的 通过对Flesim软件进一步的学习,建立模型,运用Flesim软件仿真该系统,观察并分析运行结果,找出所建模型的问题并进行改进,再次运行循环往复,直到找出构建该系统更为合理的模型。 二、实验内容 1、建立生产模型。 该模型生产三种产品,产品到达速率服从均值为20、方差为2的正态分布;暂存器的最大容量为25个;检测器的检测时间服从均值为30的指数分布,预制时间为10s;传送带的传送速率为1m/s,带上可容纳的最大货件数为10个。 2、运行生产模型。 3、对运行结果进行分析,提出改进方案在运行,直到找到更为合理的模型。 三、实验报告主要内容 1、根据已有数据建立生产模型。 将生产系统中所需实体按组装流程进行有序的排列,并进行连接如图1所示

图1 2、分别对发生器、暂存器、检验台和传送带进行参数设置。 (1)发生器的产品到达速率服从均值为20、方差为2的正态分布。如图2所示。 (2)暂存器的最大容量设置为25件。如图3所示。 (3)设置检验台的检测时间服从均值为30s的指数分布,预制时间为10s.如图4所示。 (4)传送带的传送速率为1m/s,最大容量为10件。如图5所示 图2 图3 图4 图5 3、对发生器及暂存器进一步设置。 (1)发生器在生成产品时设置三种不同类型的产品,通过颜色区分。如图6所示。 (2)暂存器在输出端口通过设置特定函数以使不同颜色的产品在不同的检验台检验。如图7所示。

操作系统文件管理实验报告

操作系统实验报告实验名称:文件管理 专业班级:网络工程1301 学号: 姓名: 2015 年6 月16 日

实验一文件管理 一、实验目的 文件管理是操作系统的一个非常重要的组成部分。学生应独立用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。 二、预备知识 1.VS2010的使用 2.C#的学习 3.文件主目录与子目录的理解 三、实验容与步骤 用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。要求设计一个10 个用户的文件系统,每次用户可保存10 个文件,一次运行用户可以打开5 个文件。系统能够检查打入命令的正确性,出错时能显示出错原因。对文件必须设置保护措施,例如只能执行,允许读等。在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护。文件的操作至少有Create、delete、open、close、read、write 等命令。 所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录。前者应包含文件主及它们的目录区指针;后者应给出每个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等。另外为打开文件设置运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。 程序流程图:

逻辑设计: 使用线性数组表表示MFD,泛型数组表示UFD,每个元素包括用户ID、保存的文件数、再使用线性表表示文件信息,每个元素包括文件名,文件属性(保护码),文件的状态等信息。 物理设计: //主目录 private FileUser[] mfd; //当前用户 private FileUser currentuser; ///

/// 文件 /// public class FileObject { public string filename; public int size=20; public int read=0; public int write = 0; public string author; } /// /// 文件系统用户 /// public class FileUser { public string username;

文件系统实验报告

实验二文件系统实验报告

一.实验简介 本实验要求在假设的I/O 系统之上开发一个简单的文件系统,这样做既能让实验者对文件系统有整体了解,又避免了涉及过多细节。用户通过create, open, read 等命令与文件系统交互。文件系统把磁盘视为顺序编号的逻辑块序列,逻辑块的编号为0 至L-1。I/O 系统利用内存中的数组模拟磁盘。 实际物理磁盘的结构是多维的:有柱面、磁道、扇区等概念。I/O 系统的任务是隐藏磁盘的结构细节,把磁盘以逻辑块的面目呈现给文件系统。逻辑块顺序编号,编号取值范围为0 至L .. 1,其中L 表示磁盘的存储块总数。实验中,我们可以利用字符数组ldisk[L][B] 构建磁盘模型,其中 B 表示每个存储块的长度。I/O 系统从文件系统接收命令,根据命令指定的逻辑块号把磁盘块的内容读入命令指定的内存区域,或者把命令指定的内存区域内容写入磁盘块。 我设计的文件系统拥有三个用户。 二.具体说明 1.文件系统的组织:磁盘的前k 个块是保留区,其中包含如下信息:位图和文件描述符。位图用来描述磁盘块的分配情况。位图中的每一位对应一个逻辑块。创建或者删除文件,以及文件的长度发生变化时,文件系统都需要进行位图操作。前k 个块的剩余部分包含一组文件描述符。每个文件描述符包含如下信息: ?文件长度,单位字节 ?文件分配到的磁盘块号数组。该数组的长度是一个系统参数。在实验中我们可以把它设置为一个比较小的数,例如3。 2.目录:我们的文件系统中仅设置一个目录,该目录包含文件系统中的所有文件。除了不需要显示地创建和删除之外,目录在很多方面和普通文件相像。目录对应0 号文件描述符。初始状态下,目录中没有文件,所有,目录对应的描述符中记录的长度应为0,而且也没有分配磁盘块。每创建一个文件,目录文件的长度便增加一分。目录文件的内容由一系列的目录项组成,其中每个目录项由如下内容组成: ?文件名 ?文件描述符序号 3.对文件的操作: 文件系统需提供如下函数;create, destroy, open, read, write。 ?create(filename): 根据指定的文件名创建新文件。 ?destroy(filename): 删除指定文件。 ?open(filename): 打开文件。该函数返回的索引号可用于后续的read, write, lseek, 或close 操作。 ?close(index): 关闭制定文件。 ?read(index, mem_area, count): 从指定文件顺序读入count 个字节mem_area 指定的内存位

(最新整理)交通仿真实验报告

(完整)交通仿真实验报告 编辑整理: 尊敬的读者朋友们: 这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)交通仿真实验报告)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。 本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)交通仿真实验报告的全部内容。

土木工程与力学学院交通运输工程系 实 验 报 告 课程名称:交通仿真实验 实验名称:基于VISSIM的城市交通仿真实验 专业:交通工程 班级: 1002班 学号: U201014990 姓名:李波

指导教师: 刘有军 实验时间: 2013。09 -——- 2013.10 实验报告目录 实验报告一: 无控交叉口冲突区设置与运行效益仿真分析 实验报告二: 控制方式对十字交叉口运行效益影响的仿真分析 实验报告三: 信号交叉口全方式交通建模与仿真分析 实验报告四: 信号协调控制对城市干道交通运行效益的比较分析 实验报告五: 公交站点设置对交叉口运行效益的影响的仿真分析 实验报告六: 城市互通式立交交通建模与仿真分析 实验报告七: 基于VISSIM的城市环形交叉口信号控制研究 实验报告成绩

实验报告一: 无控交叉口冲突区设置与运行效益仿真分析 一、实验目的 熟悉交通仿真系统VISSIM软件的基本操作,掌握其基本功能的使用。 二、实验内容 1。认识VISSIM的界面; 2.实现基本路段仿真; 3.设置行程时间检测器; 4.设置路径的连接和决策; 5。设置冲突区 三、实验步骤 1、界面认识: 2、(1)更改语言环境—(2)新建文件—(3)编辑基本路段-(4)添加车流量 3、(1)设置检测器—(2)运行仿真并输出评价结果 4、(1)添加出口匝道—(2)连接匝道-(3)添加路径决策-(4)运行仿真 5、(1)添加相交道路—(2)添加车流量-(3)设置冲突域—(4)仿真查看 四、实验结果与分析

物流系统flexsim仿真实验报告

广东外语外贸大学 物流系统仿真实验 通达企业立体仓库实验报告 指导教师:翟晓燕教授专业:物流管理1101 姓名:李春立 20110402088 吴可为 201104020117 陈诗涵 201104020119 丘汇峰 201104020115

目录 一、企业简介 (2) 二、通达企业立体仓库模型仿真 (2) 1................................ 模型描述:2 2................................ 模型数据:3 3.............................. 模型实体设计4 4.................................. 概念模型4 三、仿真模型内容——Flexsim模型 (4) 1.................................. 建模步骤4 2.............................. 定义对象参数5 四、模型运行状态及结果分析 (7) 1.................................. 模型运行7 2................................ 结果分析:7 五、报告收获 (9) 一、企业简介 二、通达企业立体仓库模型仿真 1. 模型描述: 仓储的整个模型分为入库和出库两部分,按作业性质将整个模型划分为暂存区、分拣区、

储存区以及发货区。 入库部分的操作流程是: ①.(1)四种产品A,B,C,D首先到达暂存区,然后被运输到分类输 送机上,根据设定的分拣系统将A,B,C,D分拣到1,2,3,4,端口; ②.在1,2,3,4,端口都有各自的分拣道到达处理器,处理器检验合格 的产品被放在暂存区,不合格的产品则直接吸收掉;每个操作工则将暂存 区的那些合格产品搬运到货架上;其中,A,C产品将被送到同一货架上, 而B,D则被送往另一货架; ③.再由两辆叉车从这两个货架上将A/B,C/D运输到两个暂存区上; 此时,在另一传送带上送来包装材料,当产品和包装材料都到达时,就可 以在合成器上进行对产品进行包装。 出库部分的操作流程是:包装完成后的产品将等待被发货。 2. 模型数据: ①.四种货物A,B,C,D各自独立到达高层的传送带入口端: A: normal(400,50) B: normal(400,50) C: uniform(500,100) D: uniform(500,100) ②.四种不同的货物沿一条传送带,根据品种的不同由分拣装置将其推 入到四个不同的分拣道口,经各自的分拣道到达操作台。 ③.每检验一件货物占用时间为60,20s。 ④.每种货物都可能有不合格产品。检验合格的产品放入检验器旁的暂 存区;不合格的吸收器直接吸收;A的合格率为95%,B为96%,C的合格 率为97%,D的合格率为98%。 ⑤.每个检验操作台需操作工一名,货物经检验合格后,将货物送至货 架。 ⑥.传送带叉车的传送速度采用默认速度(包装物生成时间为返回60 的常值),储存货物的容器容积各为1000单位,暂存区17,18,21容量为 10;

实验四 文件系统实验报告

实验四文件系统实验 一 . 目的要求 1、用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。 2、要求设计一个 n个用户的文件系统,每次用户可保存m个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有Create、delete、open、close、read、write等命令。 二 . 例题: 1、设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。 2、程序采用二级文件目录(即设置主目录[MFD])和用户文件目录(UED)。另外,为打开文件设置了运行文件目录(AFD)。 3、为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。 4、算法与框图: ①因系统小,文件目录的检索使用了简单的线性搜索。 ②文件保护简单使用了三位保护码:允许读写执行、对应位为 1,对应位为0,则表示不允许读写、执行。 ③程序中使用的主要设计结构如下: 主文件目录和用户文件目录( MFD、UFD) 打开文件目录( AFD)(即运行文件目录)

文件系统算法的流程图如下: 三 . 实验题: 1、增加 2~3个文件操作命令,并加以实现。(如移动读写指针,改变文件属性,更换文件名,改变文件保护级别)。 #include #include #include #include #define MAXSIZE 100 #define ADDSIZE 50 #define PT elem+l-> length #define N 4 typedef struct term{/*班级和学期的结构体*/ char class1[10]; char term1[10]; }term; typedef struct student{/*学生成绩信息的结构体*/ term st;/*班级和学期结构体放于此结构体中*/ char num[10]; char name[12]; float course[4]; float total; float average; int bit; }lnode,*stu; typedef struct{ lnode *elem;/*指向上个结构体的指针*/ int size;/*最大能放lnode结构体成员的个数*/ int length;/*当前长度*/ }sqack,*sq; sqack *l; void init(void)/*动态分配存储空间*/ { l-> elem=(stu)malloc(MAXSIZE*sizeof(lnode)); l-> length =0; l-> size=MAXSIZE; } void input(void)/*输入学生的信息*/ { lnode *newbase,*p; char cla[10],ter[10],ch; int n,i; if(l-> length> =l-> size){ newbase=(stu)realloc(l-> elem,(l-> size +ADDSIZE)*sizeof(lnode));/*追加存储空间*/ l-> elem =newbase; l-> size +=ADDSIZE; } p=l-> elem; do { printf( "输入班级和学期(学期用这种格式,如2005年上学期2005 1,2005年下学期2005 2;先输入班级,回车后再输入学期)\n "); gets(cla); gets(ter); printf( "要输入多少个名单?"); scanf( "%d ",&n); printf( "输入学生的成绩\n学号\t姓名\t科目1\t科目2\t科目3\t科目4\n "); for(i=0;i num ,p-> name,p-> course[0],p-> course[1],p-> course[2],p-> course[3]); strcpy(p-> st.class1,cla); strcpy(p-> st.term1,ter); ++l-> length ; } printf( "要继续吗?(y/n) ");

物流系统flexsim仿真实验报告

物流系统f l e x s i m仿真 实验报告 文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

广东外语外贸大学 物流系统仿真实验 通达企业立体仓库实验报告 指导教师:翟晓燕教授专业:物流管理1101

目录

一、企业简介 二、通达企业立体仓库模型仿真 1.模型描述: 仓储的整个模型分为入库和出库两部分,按作业性质将整个模型划分为暂存区、分拣区、储存区以及发货区。 入库部分的操作流程是: ①.(1)四种产品A,B,C,D首先到达暂存区,然后被运 输到分类输送机上,根据设定的分拣系统将A,B,C,D分拣到 1,2,3,4,端口; ②.在1,2,3,4,端口都有各自的分拣道到达处理器,处理 器检验合格的产品被放在暂存区,不合格的产品则直接吸收掉; 每个操作工则将暂存区的那些合格产品搬运到货架上;其中,A, C产品将被送到同一货架上,而B,D则被送往另一货架; ③.再由两辆叉车从这两个货架上将A/B,C/D运输到两个 暂存区上;此时,在另一传送带上送来包装材料,当产品和包装 材料都到达时,就可以在合成器上进行对产品进行包装。 出库部分的操作流程是:包装完成后的产品将等待被发货。 2.模型数据: ①.四种货物A,B,C,D各自独立到达高层的传送带入口端:

A:normal(400,50)B:normal(400,50)C:uniform(500,100)D:uniform(500,100) ②.四种不同的货物沿一条传送带,根据品种的不同由分拣 装置将其推入到四个不同的分拣道口,经各自的分拣道到达操作 台。 ③.每检验一件货物占用时间为60,20s。 ④.每种货物都可能有不合格产品。检验合格的产品放入检 验器旁的暂存区;不合格的吸收器直接吸收;A的合格率为95%, B为96%,C的合格率为97%,D的合格率为98%。 ⑤.每个检验操作台需操作工一名,货物经检验合格后,将 货物送至货架。 ⑥.传送带叉车的传送速度采用默认速度(包装物生成时间 为返回60的常值),储存货物的容器容积各为1000单位,暂存 区17,18,21容量为10; ⑦.分拣后A、C存放在同一货架,B、D同一货架,之后由 叉车送往合成器。合成器比例A/C : B/D : 包装物 = 1: 1 :4 整个流程图如下: 3.模型实体设计

停车场管理系统实验报告汇总

华北水利水电学院数据结构实验报告 2011~2012学年第二学期2011级计算机专业 班级:**** 学号:***** 姓名:**** - 实验二栈和队列及其应用 一、实验目的: 1.掌握栈的特点(先进后出FILO)及基本操作,如入栈、出栈等,栈的顺序存储结构和链式存储结构,以便在实际问题背景下灵活应用。 2.掌握队列的特点(先进先出FIFO)及基本操作,如入队、出队等,队列顺序存储结构、链式存储结构和循环队列的实现,以便在实际问题背景下灵活运用。 二、实验内容: 1.链栈的建立、入栈、出栈操作。 2.环形队列的建立、入队、出队操作。 3.停车场管理。设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 实现提示:以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表(带头结点)实现。 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。 设n=2,输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25),(‘A’,5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,其中,‘A’表示到达;‘D’表示离去,‘E’表示输入结束。 三、实验要求: 1.C/ C++完成算法设计和程序设计并上机调试通过。 2.撰写实验报告,提供实验结果和数据。 3.写出算法设计小结和心得。 四、程序源代码: 1.#include #include typedef struct stnode { int data; stnode *next;

生产系统仿真实验报告

实验一:工艺原则布置 实验项目名称:工艺原则布置( ) 实验项目性质:综合性实验 所属课程名称:《设施规划与物流分析》 实验计划学时:学时 一、实验目的 通过本实验,掌握四种布置设计方法中最常用的工艺原则布置。 二、实验内容和要求 对于常用的工艺原则布置设计,最常用的设计方法为新建法()和改建法(),最常用的工具是从至表()。 本试验要求学生在熟练掌握工艺原则布置方法的基础上,使用物流仿真软件实现布置设计。 要求: . 认真学习教材第章第节 . 复习运筹学的二次分配问题 . 预先查阅遗传算法相关基本概念 三、实验主要仪器设备和材料 电脑,软件 四、实验方法、步骤及结果测试 见附录一 五、实验报告要求 实验报告要求:任选思考题中的一题 . 教材方法求解,确定你的最佳布置并计算物流量大小。 . 进行建模,可以仿照附录的步骤进行,相关的图、表、文字说明全过程体现在试验报告内。 . 请考虑并回答问题:如果只知道搬运量的从至表和作业单位设施的面积,以及总面积大小,具体位置不能确定,这时我们一般采用的是方法来进行布置设计,如何在实现?不需要你在里面建模,但是希望你考虑实现的方法和一些设想,请把这些思考内容体现在你的实验报告最后,这是体现综合性和设计性的关键点,也是决定你的成绩的评判标准之一。 这里我们统一:假设有台设备要布置到个工作地 .作业单位到作业单位之间如果有物料交换,则二者间的搬运量为。(,…) (,…) .工作地到工作地之间搬运距离为。(,…) (,…) .总的物流量:,而工艺原则布置优劣评判的其中一个标准是。 问题回答: 、通过作业单位搬运量从至表和作业单位距离从至表运行程序得出物流相关表。

ERP系统模拟实验报告

一、实验目的 通过本次实验使学生学会理论联系实际,让同学们了解企业的运营流程,了解各个角色在企业中的工作责任,学会根据市场预测去规划企业未来的发展,制定自己的运营策略。 二、实验地点 三、实验时间 2014年6月23日—2014年7月4日 四、实习组成员 CEO及助理 财务总监及助理 营销总监及助理 生产总监及助理 采购总监及助理 间谍 五、我的职责 我在我们企业中担任的是采购总监这个角色,负责根据生产产能和市场需求情况决定什么时候下原材料订单,要下多少订单,保证生产顺利进行的同时也不能积压原材料库存。 六、实验步骤 第一天,老师给我们介绍了一下沙盘模拟的操作规则,企业的初始状况、股东期望以及企业的财务状况,然后给我们进行了分组,每组大概12人,我们是U4组。 我们组的发展一直都采取的是主动进攻的策略,不管是在新产品研发还是市场开拓上,第一年为了成为P1产品的市场老大投放了9个广告,虽然广告费用并不是最多但由于另一个企业决策失误最终成功取得了P1产品的市场老大的地位,同时我们开始开拓区域、国内、亚洲三个市场,考虑到国际市场的产品利润空间并不是很大并且市场需求也不是很多就主动放弃了国际市场的开拓,并开始研发P2产品。为了保证足够的产能,我们在第二个季度开始筹建两条全自动生产线。由于投入较多,资金周转不开,所以我们在这一年贷了一桶短贷,虽然第二年有沉

重的还贷负担,但也正是这一桶短贷使我们在第一第二年的现金流始终没有中断,使企业能够持续经营下去。筹集资金在整个六年运作中至为重要。 第二年,我们P2产品研发成功,区域市场开拓完成,并在投放广告、选取订单时又取得了P2产品的本地市场老大,我们开始考虑要不要再研发P3产品,我们企业首次出现了意见不一的情况,由于近几年P3市场价格并不是很大,需求也不是很大,又需要很大的投资,并且已经有其他的企业开始在研发P3产品了,所以最终由CEO拍板决定只做P2,以产能优势取胜,虽然我们又贷了贷款,但这一年我们已经开始盈利了。 第三年,国内市场开拓完成,两条全自动生产线也开始投入生产,由于我们的主打产品已经转移到了P2,并且国内市场的P2价格与需求都良好,所以我们投入了较多的广告费来取得P2产品的国内市场老大以求获得足够的订单。第二季度,我们开始租赁小厂房,筹建三条全自动生产线,扩大产能。这一年,我们两条手工线和一条半自动线用于生产P1产品,另一条手工线和两条全自动生产线都用于生产我们的主打产品P2,虽然我们一直在贷款还款,但企业的发展态势良好,正一步步走上正轨。 第四年,由于资金问题,小产房的三条全自动生产线在第三年第四个季度暂停了一个季度筹建,所以到第四年的第二季度才可以投入生产,但这并没有影响到我们的生产进度。在这一年,我们又继续投入广告成为了P2产品的亚洲市场的老大,保证了我们企业能够获得足够的订单。 由于另一个企业U6小组的发展迅猛,让我们意识到我们企业之后发展的后劲不足,但要研发P3产品,获得利润的周期又太长,所以我们只能依靠获取更多的订单生产足够的P2产品来维持企业的发展。 第五年,最后一条全自动生产线也开始投入生产,此时生产产量已经达到最大化,但由于市场需求不足,导致最后剩余4个产品,所以在第六年我们企业选择了与其他的企业U3小组进行合作,互相帮助拿到自己所需要的订单,这是一个思维的突破。最终我们企业成功拿到了第一的好成绩。 最后,老师给了我们一个下午的时间进行每个组的总结报告,由每个组的代表依次进行上台发言,总结自己企业的具体操作步骤,以及财务状况。 七、实验感悟 在这为期两个周的ERP沙盘模拟实验里,我在游戏的氛围中学到了很多课本上没有的知识,体验了一个制造型企业管理的完整流程,包括物流、资金流和信

相关文档
最新文档