已结贴√

问题点数:20 回复次数:4

程序转化成逻辑图

有一个程序,想转成逻辑图,就是有箭头和方框的那种。请大侠们辛苦帮忙一下。先谢谢了!

程序如下:

#include

#include

#define        TIME_MAX        8

#define        NUMBER_MAX        35

#define        BUS_NUMBER_MAX    5

#define        MAX_BUS_PEOPLE        35

#define        AAA                    1    //等待时间权值

#define        BBB                    1    //拥挤权值

char bus_table[NUMBER_MAX][TIME_MAX+1] = {

"ALBLCLLS","SALBLCLL","ALSBLCLL","ALBLSCLL","CLLDLLAL","ALBLSSSS","ALSSSSBL","SSSSALBL","SSSALSBL","SALSSSBL",

"ALSSSBLS","ALSBLSSS","SSSALBLS","SALBLSSS","SSCLLDLL","CLLSSDLL","CLLDLLSS","SCLLDLLS","SCLLSDLL","CLLSDLLS",

"ALELLLSS","ALSSELLL","SSALELLL","SALSELLL","SALELLLS","ALSELLLS","CLLFLLLS","CLLSFLLL","SCLLFLLL","SSALBLSS",

"SSALSSBL","ALSSBLSS","SSALSBLS","SALSSBLS","SALSBLSS"

};

double    people[6][192] = {

{0,3.55,6.05,8.55,11.05,13.55,16.05,2.84,4.88,6.92,8.96,11,21.2,16.28,11.36,6.44,1.52,11.18,10.02,8.88,7.72,6.58,5.43,8.87,8.53,8.2,7.87,7.53,12.33,22.27,32.2,29.8,21.84,13.88,5.92,-2.04,-10,5.2,5.2,5.2,5.2,5.2,5.2,0.62,1.69,2.77,3.84,4.91,5.97,7.05,8.11,9.19,10.26,32.8,37.8,42.8,24.4,22.8,21.2,19.6,18,24.38,21.87,19.36,16.85,14.34,11.83,9.32,6.81,4.29,1.78,-0.73,-3.24,-5.75,-8.26,-10.77,-13.28,0.93,4.01,7.09,10.18,13.26,16.34,22.8,20.6,18.4,16.2,14,11.8,25.78,20.22,14.65,9.08,3.52,-2.05,11.61,9.99,8.38,6.76,5.14,3.53,13.15,11.85,10.55,9.25,7.95,6.65,15.69,16.31,16.93,17.54,18.16,18.77,31.85,28.15,24.45,20.75,17.05,13.35,13.98,13.22,12.48,11.72,10.97,10.22,18,17.6,17.2,22.43,18.38,14.33,10.28,17.2,16.96,16.72,16.48,16.24,23.13,21.47,19.8,18.13,16.47,14.8,21.3,18.9,16.5,14.11,11.71,9.31,6.91,4.52,2.12,-0.28,-2.68,-5.08,-7.47,-9.87,-1.16,0.06,1.29,2.51,3.74,4.96,6.19,7.41,8.64,9.86,11.09,12.31,13.54,14.76,15.99,17.21,6.69,6.43,6.18,5.92,5.67,5.41,5.16,4.9,4.65,4.39,4.14,3.88,3.63,3.37,3.12,2.86},

{0,0,0,0,0,0,73.2,15.44,12.96,10.48,7.99,5.51,3.02,16.2,15,4.3,5.1,5.9,6.7,7.5,8.3,2.8,7.07,11.33,15.6,19.87,24.13,19.07,21.73,24.4,27.07,29.73,21.6,8,6.52,6.14,5.76,5.38,5,4.62,4.24,3.86,3.48,6.86,6.34,5.83,5.31,4.79,4.27,3.76,3.24,10.18,13.02,15.88,18.72,21.58,24.42,18.2,13.6,9,12.03,11.13,10.24,9.35,8.45,0.55,1.01,1.47,1.93,2.38,2.84,3.3,3.76,4.22,4.67,5.13,5.59,6.05,6.51,6.96,7.42,7.88,8.34,17.25,20.75,24.25,27.75,28.25,25.35,22.45,19.55,16.65,13.75,3.08,5.66,8.24,10.83,13.41,15.99,6.45,7.35,8.25,9.15,10.05,10.95,-1,6.07,13.13,20.2,27.27,34.33,26.05,26.75,27.45,28.15,28.85,29.55,10.25,12.48,14.72,16.95,19.18,21.42,12.38,13.82,15.28,16.72,18.17,19.62,14.6,15.2,15.8,16.13,19.67,23.2,13.8,14.6,15.4,16.2,17,17.8,8.8,10.33,11.87,13.4,14.93,16.47,1.83,2.01,2.2,2.38,2.57,2.76,2.94,3.13,3.32,3.5,3.69,3.87,4.06,4.25,4.43,4.62,4.81,4.99,5.18,5.36,5.55,5.74,5.92,6.11,6.3,6.48,19.6,16.92,14.24,11.55,8.87,6.19,3.51,0.83,-1.85,-4.54,-7.22,-9.9},

{0,0,0,0,0,5,1.39,1.41,1.44,1.47,1.49,6.24,5.87,5.51,5.15,4.79,4.43,4.07,3.71,3.35,2.99,2.63,2.26,2.61,3.37,4.12,4.88,5.63,6.39,7.14,7.9,8.66,9.41,10.17,10.92,3.89,3.95,4.01,4.06,4.12,4.17,4.23,4.28,4.34,4.39,4.45,4.51,-1.47,1.35,4.16,6.97,9.79,12.6,15.41,18.23,21.04,23.85,26.67,40.4,35.4,30.4,25.4,15.2,13.47,11.73,10,8.26,6.53,4.8,3.06,1.33,-0.41,-2.14,-3.88,-5.61,-7.34,3.25,3.55,3.85,4.15,4.45,4.75,5.7,5.35,5,4.66,4.31,3.96,3.62,3.27,2.92,2.57,2.23,1.88,1.53,4.7,4.53,4.35,4.18,4.01,3.84,3.66,3.49,3.32,3.15,2.98,2.8,9.54,9.7,9.86,10.01,10.17,10.32,10.48,10.63,10.79,10.94,11.1,11.26,4.53,7.07,9.6,12.13,14.67,17.2,19.73,22.27,24.8,25.33,25.87,26.4,16.14,17.66,19.17,20.69,22.21,23.72,12.12,11.13,10.13,9.14,8.14,7.15,6.15,5.16,4.16,3.17,2.17,1.18,-0.69,-0.16,0.37,0.9,1.44,1.97,2.5,3.03,3.56,4.09,4.63,5.16,5.69,6.22,6.75,7.28,7.81,8.35,8.88,9.41,9.94,10.47,11,11.53,12.07,12.6},

{145,23.43,21.88,20.32,18.78,17.22,15.68,14.13,12.57,14.2,24,33.8,43.6,7.64,8.47,9.31,10.15,10.99,11.83,12.67,13.51,14.35,15.19,16.02,16.86,4.53,4.33,4.13,3.93,3.73,3.53,3.33,3.13,2.93,2.73,2.53,2.33,2.9,2.97,3.03,3.1,3.17,3.23,3.3,3.37,3.43,3.5,3.57,3.63,4.47,4.35,4.23,4.1,3.98,3.86,3.74,3.61,3.49,3.36,2.26,2.14,2.02,1.91,1.79,1.67,1.56,1.44,-5.69,-3.74,-1.8,0.14,2.09,4.03,5.97,7.91,9.86,11.8,13.74,15.69,17.63,19.57,17.38,23.02,28.68,34.33,15.03,13.79,12.55,11.31,10.07,8.84,7.6,6.36,5.12,3.88,2.64,1.4,2.49,3.15,3.81,4.46,5.12,5.77,6.43,7.08,7.74,8.39,9.05,9.71,14.2,13.11,12.01,10.92,9.82,8.73,7.64,6.54,5.45,4.35,3.26,2.16,9.73,9.09,8.45,7.82,7.18,6.54,5.91,5.27,4.63,4,11.51,10.29,9.07,7.86,6.64,5.42,4.21,2.99,4.65,4.26,3.86,3.47,3.08,2.68,2.29,1.89,1.5,1.1,0.71,0.31,0.61,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.58,0.58,0.58,0.58,0.58,0.58},

{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21.4},

{0,0,0,0,0,62.8,0,0,33.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38.6}

};

//next:返回-1代表已经完成一个循环

int next(char bus_action[],const int bus_number)

{

int i = 0;

for(i=0; i

{

if(++bus_action[i] < NUMBER_MAX)

return 0;

bus_action[i] = 0;

if(i >= 2)

printf("已经完成%4.2f\n",(float)100*((float)bus_action[bus_number-1]*NUMBER_MAX+bus_action[bus_number-2])/(NUMBER_MAX*NUMBER_MAX));

}

return -1;

}

void change(int bus[TIME_MAX][6],char bus_action[],const int bus_number)

{

memset(bus,0,TIME_MAX*6 * sizeof(int));

int i = 0,j = 0;

for(i=0; i

for(j=0; j

{

switch( bus_table[bus_action[j]][i] )

{

case 'A':

++bus[i][0];

break;

case 'B':

++bus[i][1];

break;

case 'C':

++bus[i][2];

break;

case 'D':

++bus[i][3];

break;

case 'E':

++bus[i][4];

break;

case 'F':

++bus[i][5];

break;

}

}

}

//评估,返回评分,-1为漏人

long check(int bus[TIME_MAX][6],int begin_time)

{

int  time_pre[6] = {0}, bus_time[6] = {8,8,12,12,19,19}, wait_time[6] = {10,10,20,20,30,30};

double sum_wait_time = 0, sum_sat = 0, sum_bus_time = 0;

int time_now = 0, zone = 0, i = 0;

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

time_pre[i] = begin_time;

for(time_now = begin_time; time_now < begin_time+TIME_MAX; ++time_now)

{

for(zone=0; zone<6; ++zone)

{

for(i = time_pre[zone]; i <= time_now; ++i)

{

sum_wait_time += people[zone][i] * ((time_now - i)*5 + 2.5);

sum_bus_time += bus[time_now - begin_time][zone] * bus_time[zone];

}

time_pre[zone] = i;

}

}

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

time_pre[i] = begin_time;

for(time_now = begin_time; time_now < begin_time+TIME_MAX; ++time_now)

{

for(zone=0; zone<6; ++zone)

{

double people_all = 0;

for(i = time_pre[zone]; i <= time_now; ++i)

{

people_all += people[zone][i];

}

if(people_all >  MAX_BUS_PEOPLE * bus[time_now][zone])

sum_sat += (people_all - MAX_BUS_PEOPLE * bus[time_now - begin_time][zone]) * bus_time[zone];

time_pre[zone] = i;

}

}

return (long)(sum_wait_time*AAA + sum_sat*BBB);

}

void main()

{

char bus_action[BUS_NUMBER_MAX] = {0},bus_action_min[BUS_NUMBER_MAX];

int    bus_number = 5;

int bus[TIME_MAX][6] = {0};

long score = 0, score_min = 2147483647;

do

{

//        printf("%d  %d  %d  %d  %d        ",bus_action[0],bus_action[1],bus_action[2],bus_action[3],bus_action[4]);

change(bus,bus_action,bus_number);

score = check(bus,53);

if(score < score_min)

{

score_min = score;

memcpy(bus_action_min,bus_action,BUS_NUMBER_MAX * sizeof(char));

}

//        printf("%d\n",score);

}while(next(bus_action,bus_number) == 0);

printf("\n\n%d  %d  %d  %d  %d        ",bus_action_min[0],bus_action_min[1],bus_action_min[2],bus_action_min[3],bus_action_min[4]);

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

system("pause");

}

搜索更多相关主题的帖子:

逻辑

高中数学程序图转化为c语言,程序转化成逻辑图相关推荐

  1. bcs转10 c语言,小弟刚学习C语言,怎么把下段汇编代码转化为C语言程序,请高手指教!!!单片机89c52...

    已结贴√ 问题点数:20 回复次数:3 小弟刚学习C语言,怎么把下段汇编代码转化为C语言程序,请高手指教!!!单片机89c52 BIT_COUNT     DATA 07FH TIMER0       ...

  2. c语言程序设计编辑与调试环境实验报告,01程序设计基础实验报告_C语言程序设计基础.doc...

    01程序设计基础实验报告_C语言程序设计基础 程序设计基础 实验报告 题 目: C语言程序设计基础 院 (部): 管理工程学院 专 业: 信息管理与信息系统 班 级: 信管101 姓 名: 张三 学 ...

  3. 培训c语言程序,编程人员培训手册C语言程序设计基础.PPT

    编程人员培训手册C语言程序设计基础.PPT 第2章C语言程序设计基础,学习的意义,从本章开始我们正式进入C语言程序设计的学习,也许大家会问为什么我们要学习C语言呢 理由1因为C语言流行. 理由2因为C ...

  4. c语言void ds,ds1307怎么使用(ds1307引脚图及功能_c语言程序及典型应用电路)

    描述 实时时钟DS1307 介绍: DS1307是低功耗.两线制串行读写接口.日历和时钟数据按BCD码存取的时钟/日历芯片.它提供秒.分.小时.星期.日期.月和年等时钟日历数据.另外它还集成了如下几点 ...

  5. c语言 数组放空自己,DS1307 C语言程序 - ds1307怎么使用(ds1307引脚图及功能_c语言程序及典型应用电路)...

    DS1307 C语言程序 //******************************************************************** //************** ...

  6. c语言程序.cpp文件,[轉]C语言程序设计基础之文件

    所谓"文件"是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名. 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件.库文件 (头文件)等 ...

  7. 小型温控系统c语言程序,pid算法温度控制c语言程序 - 全文

    温度控制PID自整定原理介绍 整定PID(三模式)控制器 整定温度控制器涉及设置比例.积分和微分值,以得到对特定过 程的可能的最佳控制.如果控制器不包含自动整定算法,或者自 动整定算法未提供适合特定应 ...

  8. python程序设计基础考试重点_python语言程序设计基础 复习整理 第1-3章

    第一章 程序设计基本方法 1.1 计算机的概念 /计算机是根据指令操作数据的设备,具备功能性和可编程性两个基本特性. /摩尔定律:单位面积集成电路可容纳晶体管的数量约每两年翻一倍.翻倍翻倍翻倍翻倍.. ...

  9. 霸气C语言程序,霸气,C语言程序员犀利回应。又双叒一个工程师倒下了

    原标题:霸气,C语言程序员犀利回应.又双叒一个工程师倒下了 "程序员是如何被逼死的?改三次需求就可以了" 改一次可能总个框架都要变,前面做的就白做了.改三次需求自行了断了 先送你们 ...

最新文章

  1. java final关键字_终于明白 Java 为什么要加 final 关键字了!
  2. QT 5.9.8在ubuntu16.04下安装配置
  3. H5移动端页面设计心得分享
  4. ubuntu java8 java9_在Ubuntu/Debian系统上安装Java 9的方法
  5. CSDN×易观算法大赛火热进行中~
  6. JS 入门经典 第三章 判断、循环和函数
  7. 系统学习机器学习之模型选择
  8. 爱尔兰圣三一大学计算机专业硕士,爱尔兰圣三一学院研究生申请要求
  9. java处理生信数据,生信Java软件安装
  10. 服务器ssd硬盘格式化,ssd固态硬盘格式化教程
  11. (计算机组成原理)第七章输入和输出系统-第三节3:I/O方式之DMA方式
  12. SyncToy同步工具安装使用详解
  13. PhoneWindowManager().interceptKeyBeforeQueueing()中的interactive变量值的来源
  14. 【文字】文字消散效果
  15. 用python识别微信消息界面聊天输入框位置
  16. springboot项目搭建0051-通用mapper使用mapper.xml
  17. 读作工业4.0,唱作工业互联网,写作中国制造2025
  18. 使用Tornado+Redis维护ADSL拨号服务器代理池
  19. 毕业设计 基于Web停车场管理系统的设计与实现
  20. STM32CubeMX | 32-使用硬件FMC驱动TFT-LCD屏幕(MCU屏)

热门文章

  1. 线性代数【1】线性代数是什么【2】行列式计算【3】行列式性质【特殊行列计算】【4】克莱姆法则
  2. 项目管理随感-项目管理是什么?
  3. iis php 无法访问此网站_IIS 配置phpmanage
  4. 互联网和大数据是什么意思_大数据和互联网的区别是什么意思
  5. 变形监测期末复习_材料力学复习题
  6. linux 强制结束p进程的命令,Linux常用命令之性能命令
  7. java se 1335,1335.逼退法王
  8. 都说它是年度Android机皇,都说它是年度Android机皇,Galaxy Note20 Ultra到底怎么样?...
  9. tkinter中text属性_python tkinter基本属性详解
  10. python中为什么不支持char_python支持char吗