配送管理实验报告

配送管理实验报告

一、    实验名称

配送中心业务流程实验(供应商)

二、    实验时间

20##年5月8日上午一、二节课

三、    参加人员(第六大组)

组长:  康道均(10492030)

成员: 陆  斌(10492060)     余建科(10492058)

肖如斌(10502046)     巢斯伊(10501032) 

四、    实验目的

1、通过配送业务流程模拟,让大家明确在一个企业中从事销售、采购、库存、配送、财务的基本业务流程,将以前所学的物流知识、财务管理知识联系起来,明确配送业务在整个企业业务流程中的定位,与配送业务相关联的其他各个业务环节。

2、通过实验了解配送分拣的方法。

五、实验内容

1、实验模拟背景

模拟业务为商业企业的零售配送业务,模拟商场可以向任何一个模拟配送中心发订单。配送中心在模拟的时间里完成配送任务。模拟商场在收到货物后立即付款。

配送中心的货物按成本价购进和存放,按批发价配送给商场,商场得到货物后按零售价售出。

2、模拟实验内容

本实验有三类企业:商场、配送中心、供应商。商场向配送中心订货,配送中心完成分拣并进行配送的业务流程。供应商负责向配送中心供货和贷款。

3、道具

10副扑克牌,配送中心2副,供应商3副。

六、业务流程图

七、实验数据和结果

1、货物价格表

2、实验过程和数据

(1)第一次订单

(2)第二次订货

(3)成本计算与分析

◆第一次订单:(方块1张,梅花1张)

基本成本=8*1+13*1=21(元)

◆第二次订单

基本成本=10*21+27*8+6*26+13*28=946(元)

退货成本=1*10+2*8+3*13=65(元)

缺货成本=6*6=36(元)

计算分析得到:

总计本费用=21+946=967(元)

退货成本=1*10+2*8+3*13=65(元)

缺货成本=6*6=36(元)

八、实验总结

通过配送中心业务流程实验让我们大家了解了一个企业管理的销售、采购、库存、配送、财务的基本业务流程,了解配送分配的方法,锻炼了成员之间的合作和交流。但在实验过程中也存在很多不足,例如成员之间没有合理分工,实验过程中出现手忙脚乱的现象;另外成员之间的合作协调能力不够,导致部分配送中心的要货没有记好,记录数据不全。总之,这个实验还是蛮有趣的。

 

第二篇:页式存储管理实验报告

页式存储管理

一、实验目的:

掌握分页式存储管理的基本概念和实现方法。要求编写一个模拟的分页式管理程序,并能对分页式存储的页面置换算法进行编写和计算各个算法的缺页率。

二、程序设计:

首先创建页面链指针数据结构,并设计页面映像表,采用数组的方法给定页面映像。

申请缓冲区,将一个进程的逻辑地址空间划分成若干个大小相等的部分,每一部分称做页面或页。每页都有一个编号,叫做页号,页号从0开始依次编排,如0,1,2……。设置等大小的内存块。初始状态:将数据文件的第一个页面装入到该缓冲区的第0块。

设计页面置换算法,这里分别采用最佳页面置换算法OPT和最近最久未使用置换算法LRU,并分别计算它们的缺页率,以比较它们的优劣。

三、算法说明:

执行程序时,当主存没有可用页面时,为了选择淘汰主存中的哪一页面,腾出1个空闲块以便存放新调入的页面。淘汰哪个页面的首要问题是选择何种置换算法。该程序采用人工的方法选择,依置换策略选择一个可置换的页,并计算它们的缺页率以便比较。

/*分页式管理实验-源程序*/

#include"stdio.h"

#define N 16

#define num 5  /*进程分配物理块数目*/

int A[N]={1,2,3,4,5,6,7,8,5,2,3,2,7,8,1,4};  /*页表映像*/

typedef struct page   

{  int address;           /*页面地址*/

  struct page *next;     

  }page;

struct page *head,*run,*rear;

void jccreat()   /*进程分配物理块*/

{ int i=1;

 page *p,*q;

 head=(page *)malloc(sizeof(page)); p=head;

 for(i=1;i<=num;i++) { q=(page *)malloc(sizeof(page));

                p->next=q;  q->address=0; q->next=NULL; p=q; }

            rear=p;}int search(int n){

  page *p;

  int i=0;

  p=head;

  while(p->next)

  {

   if(p->next->address==n)

   {

   printf("Get it at the page %d\n",i+1);

   run=p;

   return 1;}

   p=p->next;

   i++;

  }

   return 0;

}

void changeOPT(int n,int position)

{

  int i;

  int total=0;

  int flag=1;

  int distance[num];

  int MAX;

  int order=0;

  page *p,*q;

  p=head->next;

  q=head->next;

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

  distance[i]=100;

  i=0;

  while(p)

  {

   if(p->address==0)

   {flag=0;

    break;}

   p=p->next;

   i++;

  }

   if(!flag)

   {p->address=n;

    printf("Change the page %d\n",i+1);

   }

   else

   {

    while(q)

    {

     for(i=position;i<N;i++)

     {if(q->address==A[i])

     distance[total]=i-position;}

     total++;

     q=q->next;

    }

    MAX=distance[0];

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

    {

     if(distance[i]>MAX)

      {

        MAX=distance[i];

        order=i;

       }

    }

    printf("Change the page %d\n",order+1);

    i=0;

    while(p)

    {

     if(i==order)

     p->address=n;

     i++;

     p=p->next;

    }

   }

}

void changeLRU(int n)

{

  int i=0;

  int flag=1;

  page *p,*delect;

  p=head->next;

  while(p)

  {

   if(p->address==0)

   {flag=0;

    p->address=n;

    printf("Change the page %d\n",i+1);

    break;}

   p=p->next;

   i++;

  }

   if(flag)

   {

    delect=head->next;

    head->next=delect->next;

    printf("Delect from the head, and add new to the end.\n");

    delect->address=n;

    rear->next=delect;

    rear=delect;

    rear->next=NULL;

   }

}

float OPT()

{

 int i;

 int lose=0;

 float losef;

 float percent;

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

 {

  if(search(A[i])==0) 

  {

    lose++;

    changeOPT(A[i],i);

  }

 }

   losef=lose;

   percent=1-(losef/N);

   return percent;

}

float LRU()

{

 int i;

 int lose=0;

 float losef;

 float percent;

 page *p;

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

 {

  if(search(A[i])==0)

  {

    lose++;

    changeLRU(A[i]);

  }

  else

   {

    p=run->next;

    run->next=p->next;

    rear->next=p;

    rear=p;

    rear->next=NULL;

    printf("Move it to end of queue.\n");

   }

 }

   losef=lose;

   percent=1-(losef/N);

   return percent;

}

main()  /*主函数部分*/

{float percent;

  int choice;

  printf("Select the arithmetic:\n(1)OPT\n(2)LRU\nyour choice is:");

  scanf("%d",&choice);/*选择页面置换算法*/

  jccreat();               /*创建进程*/

  if(choice==1)           /*采用OPT算法置换*/

  {percent=OPT();        /*计算OPT时的缺页率*/

  printf("The percent of OPT is %f",percent);}

  else if(choice==2)      /*采用LRU算法置换*/

  {percent=LRU();       /*计算LRU时的缺页率*/

  printf("The percent of OPT is %f",percent);}

  else printf("Your choice is invalid.");

  getch();

}

四.运行结果:

最佳(Optimal)置换算法:

最近最久未使用(LRU)置换算法:

五、心得体会

掌握分页式存储管理的基本概念和实现方法。要求编写一个模拟的分页式管理程序,并能对分页式存储的页面置换算法进行编写和计算各个算法的缺页率

相关推荐