Create GUI Branch

This commit is contained in:
jackfiled 2022-06-10 19:52:43 +08:00
parent 1dad2ed57a
commit 2eb368ddfa
349 changed files with 297 additions and 107159 deletions

14
.gitignore vendored
View File

@ -1,14 +1,2 @@
# 项目的构建文件夹
build/
# VSCode的配置文件夹
.vscode/
# CLion的配置文件夹
.idea/
# draw.io的缓存文件
*.bkp
# 合成的全部代码文件
all.c
cmake-build-debug-visual-studio/

View File

@ -1,21 +1,57 @@
cmake_minimum_required(VERSION 3.10) # cmakecmake
cmake_minimum_required(VERSION 3.10)
project(auto_bus_gui)
add_subdirectory(test)
add_subdirectory(all_test)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
project(auto_pilot_bus) #
set(CMAKE_PREFIX_PATH "C:/Users/ricardo.DESKTOP-N6OVBK5/Programs/Qt/6.1.3/msvc2019_64")
set(CMAKE_C_STANDARD 11) # C
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
find_package(Qt6 COMPONENTS
Core
Gui
Widgets
REQUIRED)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build) #
#
include_directories(
${PROJECT_SOURCE_DIR}/include/
${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/src/header
)
aux_source_directory(${PROJECT_SOURCE_DIR}/src SRCS)
add_executable(auto_bus_gui main.cpp ${SRCS})
target_link_libraries(auto_bus_gui
Qt::Core
Qt::Gui
Qt::Widgets
)
aux_source_directory(./src SRC)
#
add_executable(bus main.c ${SRC})
if (WIN32)
set(DEBUG_SUFFIX)
if (MSVC AND CMAKE_BUILD_TYPE MATCHES "Debug")
set(DEBUG_SUFFIX "d")
endif ()
set(QT_INSTALL_PATH "${CMAKE_PREFIX_PATH}")
if (NOT EXISTS "${QT_INSTALL_PATH}/bin")
set(QT_INSTALL_PATH "${QT_INSTALL_PATH}/..")
if (NOT EXISTS "${QT_INSTALL_PATH}/bin")
set(QT_INSTALL_PATH "${QT_INSTALL_PATH}/..")
endif ()
endif ()
if (EXISTS "${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll")
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory
"$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/platforms/")
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
"${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll"
"$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/platforms/")
endif ()
foreach (QT_LIB Core)
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
"${QT_INSTALL_PATH}/bin/Qt6${QT_LIB}${DEBUG_SUFFIX}.dll"
"$<TARGET_FILE_DIR:${PROJECT_NAME}>")
endforeach (QT_LIB)
endif ()

View File

@ -1,79 +0,0 @@
# Auto Pilot Bus
## 项目简介
北京邮电大学计算机学院2021级《计算导论与程序设计》实践大作业项目仓库。
在指定的公交车行驶模型下,实现指定的算法以实现对于公交车的自动调度。
## 项目使用
### 项目结构
```
auto_pilot_bus
|
+-all_test //本地测试文件夹
|
+-docs // 文档文件夹
|
+-include // 头文件文件夹
|
+-src // 源代码文件夹
|
+-test //单元测试文件夹
|
+-main.c // 程序入口
+-convert.py //产生测试集的Python脚本
+-main.py //将C代码合并到同一个文件的Python脚本
+-CMakeLists.txt // CMake文件
+-.gitignore //git的忽略文件名录
+-README.md // 项目介绍文件
```
### 编译环境
- 编译器 `MinGW-W64 gcc 8.1.0`
- 编译工具 `cmake 3.23.1`
### 项目使用
处在校园网环境在
> 参考信息化中心的这篇[文章](https://nic.bupt.edu.cn/info/1016/1301.htm)安装VPN客户端
使用
```bash
git clone http://10.3.255.244:8801/2021211180/2021211180.git
```
下载仓库,在下载过程中可能提示输入账号和密码认证,账号即为你的学号,密码就是你登录`GitLab`时输入的密码。
下载完成后文件夹`2021211180`即为项目的文件夹。
使用
```bash
cd 20212111180
mkdir build # 创建编译的文件夹
cd build
cmake .. -G "MinGW Makefiles" # 在第一次生成之后就不必再使用"-G"参数指定编译类型
cmake --build .
```
在编译执行完成之后,`build`文件下的`bus.exe`即为编译产生的程序。
## 项目测试
### 单元测试
在编译之后,`build/test`文件夹内即为`google test`框架生成的单元测试。
### 本地测试
在编译之后,`build/all_test`内的`bus_all_test.exe`就是全局本地测试程序。
运行这个程序,根据程序的提示选择适当的测试集,程序会自动读取选定的测试集中的配置文件和输入文件,并且将程序的输出和测试集中的输出文件进行对比,输出比对的结果。
程序现有的测试集存储在`all_test/test_cases`下面目前已有18个测试集对应测试集采用的调度策略可以查看测试集中的配置文件。

View File

@ -1,15 +0,0 @@
cmake_minimum_required(VERSION 3.0)
project(bus_all_test)
include_directories(../include)
include_directories(include)
aux_source_directory("../src/" SRCS)
aux_source_directory("${CMAKE_CURRENT_SOURCE_DIR}/src" ALL_TEST_SRCS)
add_executable(bus_all_test ${SRCS} ${ALL_TEST_SRCS} main.c)
add_custom_command(TARGET bus_all_test POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
"${CMAKE_CURRENT_SOURCE_DIR}/test_cases"
"$<TARGET_FILE_DIR:bus_all_test>/test_cases")

View File

@ -1,24 +0,0 @@
//
// Created by ricardo on 2022/5/20.
//
#ifndef AUTO_PILOT_BUS_TOOLS_H
#define AUTO_PILOT_BUS_TOOLS_H
#include "stdio.h"
#include "string.h"
#include "define.h"
#include "rail.h"
#include "controller.h"
void ChooseTestCaseInput(char *path, int index);
void ChooseTestCaseOutput(char *path, int index);
rail_node_t *ChooseConfigFile(int index);
void ReadOutputFile(char *result, FILE *f);
int CheckOutput(char *program_output, char *read_output);
rail_node_t *ReadChosenConfigFile(char *config_file_path);
#endif //AUTO_PILOT_BUS_TOOLS_H

View File

@ -1,258 +0,0 @@
//
// Created by ricardo on 2022/5/20.
//
#include "bus_io.h"
#include "tools.h"
int main()
{
/**
*
*/
char input[30];
/**
*
*/
char output[150];
/**
* the_bus指针的本体
*/
bus_t main_bus;
/**
*
*/
int direction;
/**
*
*/
bus_query_t *finished_query;
int index;
char path[50];
char read_output[150];
FILE *input_file = NULL;
FILE *output_file = NULL;
printf("Please choose which test case to use:");
scanf("%d", &index);
ChooseTestCaseInput(path, index);
input_file = fopen(path, "r");
ChooseTestCaseOutput(path, index);
output_file = fopen(path, "r");
// 读取配置文件
rails = ChooseConfigFile(index);
// 制造公交车
the_bus = &main_bus;
the_bus->distance = 0;
the_bus->rail_node_pos = FindNode(rails, 1);
// 开始时公交车应该是停下的
direction = BUS_STOP;
PrintStateInner(output);
ReadOutputFile(read_output, output_file);
if(CheckOutput(output, read_output) == BUS_FAlSE)
{
printf("Right:\n");
printf("%s", read_output);
printf("Wrong:\n");
printf("%s", output);
printf("\n"); // 打印一个空白作为分界线
}
else
{
printf("%d Ok\n", bus_time);
}
for(;;)
{
fgets(input, sizeof input, input_file);
int result = ReadInput(input);
if(result == IO_CLOCK)
{
// 时间流动
AddTime();
switch (chosen_strategy)
{
case BUS_FCFS:
// 如果到站,处理请求和
if(JudgeOnStation() == BUS_TRUE)
{
direction = FCFSDirection(); //在开始得判断一次方向
finished_query = FCFSQuery();
if(finished_query != NULL) // 有请求就处理请求
{
// 循环处理所有可以处理的请求,总共消耗一秒
while (finished_query != NULL)
{
DeleteQuery(finished_query);
finished_query = FCFSQuery();
}
// 请求处理完再进行方向的判断
direction = FCFSDirection();
}
else //如果没有请求就继续前进
{
RunBus(direction);
}
}
else
{
RunBus(direction);
}
break;
case BUS_SSTF:
if(JudgeOnStation() == BUS_TRUE)
{
// 在没有目标请求的时候,获取一个目标站点
if(target_query == NULL)
{
target_query = SSTFGetQuery();
direction = SSTFDirection(target_query);
// 处理下一个需要处理的请求就在脚底下的情况
if(target_query != NULL && direction == BUS_STOP && target_query->node == the_bus->rail_node_pos)
{
while (target_query != NULL && direction == BUS_STOP && target_query->node == the_bus->rail_node_pos)
{
DeleteQuery(target_query);
target_query = SSTFGetQuery();
direction = SSTFDirection(target_query);
}
}
RunBus(direction);
}
else
{
bus_query_t *btw_query = SSTFBTWQuery(direction);
// 如果到站了
if(target_query->node == the_bus->rail_node_pos)
{
// 如果刚好在站点上就有不少请求,处理一波
// 这里利用了&&运算符的短路特性,如果第一个判断为假,则不进行下一个判断,也就避免了段错误
while (target_query != NULL && target_query->node == the_bus->rail_node_pos)
{
DeleteQuery(target_query);
target_query = SSTFGetQuery();
direction = SSTFDirection(target_query);
}
}
else if(btw_query != NULL)
{
// 如果没有到站就看看能不能顺便服务
while (btw_query != NULL)
{
DeleteQuery(btw_query);
btw_query = SSTFBTWQuery(direction);
}
}
else
{
// 如果啥也不能做就走吧
RunBus(direction);
}
}
}
else
{
// 没到站的话那就走吧
RunBus(direction);
}
break;
case BUS_SCAN:
// 如果没有指定的请求就获得指定的请求
if(JudgeOnStation() == BUS_TRUE)
{
// 在没有目标请求的时候,获取一个目标站点
if(target_query == NULL)
{
target_query = SCANGetQuery(direction);
direction = SCANDirection(target_query, direction);
// 处理下一个需要处理的请求就在脚底下的情况
if(target_query != NULL && target_query->node == the_bus->rail_node_pos)
{
while (target_query != NULL && target_query->node == the_bus->rail_node_pos)
{
DeleteQuery(target_query);
target_query = SSTFGetQuery();
direction = SSTFDirection(target_query);
}
}
RunBus(direction);
}
else
{
bus_query_t *btw_query = SCANBTWQuery();
// 如果到站了
if(target_query->node == the_bus->rail_node_pos)
{
// 如果刚好在站点上就有不少请求,处理一波
// 这里利用了&&运算符的短路特性,如果第一个判断为假,则不进行下一个判断,也就避免了段错误
while (target_query != NULL && target_query->node == the_bus->rail_node_pos)
{
DeleteQuery(target_query);
target_query = SCANGetQuery(direction);
direction = SCANDirection(target_query, direction);
}
}
else if(btw_query != NULL)
{
// 如果没有到站就看看能不能顺便服务
while (btw_query != NULL)
{
DeleteQuery(btw_query);
btw_query = SCANBTWQuery();
}
}
else
{
// 如果啥也不能做就走吧
RunBus(direction);
}
}
}
else
{
// 没到站的话那就走吧
RunBus(direction);
}
break;
default:
// 这个分支只是为了符合代码规范而存在,理论上不会用到这个分支
break;
}
PrintStateInner(output);
ReadOutputFile(read_output, output_file);
if(CheckOutput(output, read_output) == BUS_FAlSE)
{
printf("Right:\n");
printf("%s", read_output);
printf("Wrong:\n");
printf("%s", output);
printf("\n"); // 打印一个空白行作为分界线
}
else
{
printf("%d Ok\n", bus_time);
}
}
else if(result == IO_END)
{
printf("end\n");
break;
}
else
{
//在读取到创建请求的情况下,不做任何事
}
}
}

View File

@ -1,194 +0,0 @@
//
// Created by ricardo on 2022/5/20.
//
#include "tools.h"
void ChooseTestCaseInput(char *path, int index)
{
memset(path, 0, 50);
char root_path[] = "./test_cases/";
char input_file[] = "/input.txt";
char case_path[3];
sprintf(case_path, "%d", index);
strcat(path, root_path);
strcat(path, case_path);
strcat(path, input_file);
}
void ChooseTestCaseOutput(char *path, int index)
{
memset(path, 0, 50);
char root_path[] = "./test_cases/";
char output_file[] = "/output.txt";
char case_path[3];
sprintf(case_path, "%d", index);
strcat(path, root_path);
strcat(path, case_path);
strcat(path, output_file);
}
void ReadOutputFile(char *result, FILE *f)
{
memset(result, 0, 150);
for(size_t i = 0; i < 7; i++)
{
char temp[50];
fgets(temp, 50, f);
strcat(result, temp);
}
}
int CheckOutput(char *program_output, char *read_output)
{
int result = strcmp(program_output, read_output);
if(result == 0)
{
return BUS_TRUE;
}
else
{
return BUS_FAlSE;
}
}
rail_node_t *ChooseConfigFile(int index)
{
char root_path[] = "./test_cases/";
char config_path[] = "/dict.dic";
char case_path[3];
sprintf(case_path, "%d", index);
char file_path[30] = {0};
strcat(file_path, root_path);
strcat(file_path, case_path);
strcat(file_path, config_path);
return ReadChosenConfigFile(file_path);
}
rail_node_t *ReadChosenConfigFile(char *config_file_path)
{
FILE *config_file = NULL;
char buffer[30];
int total_station = 0;
int distance = 0;
config_file = fopen(config_file_path, "r");
// 循环读取文件的每一行
while (fgets(buffer, sizeof buffer, config_file) != NULL)
{
char first_char = buffer[0];
char *p;
switch (first_char)
{
case '#':
// 如果读取到#什么都不做
break;
case 'T':
// TOTAL_STATION
p = buffer;
// 把数字前面的所有字符全部干掉
while (*p < '0' || *p > '9')
{
p++;
}
// 讲道理,应该只有两位数,所以就这样处理了
if (*(p + 1) == '\n' || *(p + 1) == '\0')
{
total_station = *p - 48;
}
else
{
total_station = (*p - 48) * 10 + *(p + 1) - 48;
}
break;
case 'S':
// STRATEGY
p = buffer;
// 将=前的字符全部略去
while (*p != '=')
{
p++;
}
// =也去掉
p++;
// =和策略之间的空格也去掉
while (*p == ' ')
{
p++;
}
if (*p == 'F' && *(p + 1) == 'C') //FCFS
{
chosen_strategy = BUS_FCFS;
}
else if (*p == 'S' && *(p + 1) == 'S') //SSTF
{
chosen_strategy = BUS_SSTF;
}
else if (*p == 'S' && *(p + 1) == 'C') //SCAN
{
chosen_strategy = BUS_SCAN;
}
else
{
// 读取失败
chosen_strategy = -1;
}
break;
case 'D':
// DISTANCE
p = buffer;
// 把数字前面的所有字符全部干掉
while (*p < '0' || *p > '9')
{
p++;
}
if (*(p + 1) == '\n' || *(p + 1) == '\0')
{
distance = *p - 48;
}
break;
default:
continue;
}
}
// 处理参数去缺省值的情况
if (distance == 0)
{
distance = 2;
}
if (total_station == 0)
{
total_station = 5;
}
if(chosen_strategy == -1)
{
chosen_strategy = BUS_FCFS;
}
all_distance = distance * total_station;
rail_node_t *head = CreateRails(distance, total_station);
return head;
}

View File

@ -1,3 +0,0 @@
TOTAL_STATION = 10
STRATEGY = FCFS
DISTANCE = 3

View File

@ -1,21 +0,0 @@
clock
counterclockwise 3
clock
clock
clock
clock
clock
clock
target 10
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
end

View File

@ -1,134 +0,0 @@
TIME:0
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:1
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:2
BUS:
position:1
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0010000000
TIME:3
BUS:
position:2
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0010000000
TIME:4
BUS:
position:3
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0010000000
TIME:5
BUS:
position:4
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0010000000
TIME:6
BUS:
position:5
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0010000000
TIME:7
BUS:
position:6
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0010000000
TIME:8
BUS:
position:6
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:9
BUS:
position:5
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:10
BUS:
position:4
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:11
BUS:
position:3
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:12
BUS:
position:2
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:13
BUS:
position:1
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:14
BUS:
position:0
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:15
BUS:
position:29
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:16
BUS:
position:28
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:17
BUS:
position:27
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:18
BUS:
position:27
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
end

View File

@ -1,3 +0,0 @@
TOTAL_STATION = 10
STRATEGY = SSTF
#end

View File

@ -1,11 +0,0 @@
clock
clockwise 8
clock
clockwise 8
clock
clock
clock
clock
clock
clock
end

View File

@ -1,64 +0,0 @@
TIME:0
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:1
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:2
BUS:
position:19
target:0000000000
STATION:
clockwise:0000000100
counterclockwise:0000000000
TIME:3
BUS:
position:18
target:0000000000
STATION:
clockwise:0000000100
counterclockwise:0000000000
TIME:4
BUS:
position:17
target:0000000000
STATION:
clockwise:0000000100
counterclockwise:0000000000
TIME:5
BUS:
position:16
target:0000000000
STATION:
clockwise:0000000100
counterclockwise:0000000000
TIME:6
BUS:
position:15
target:0000000000
STATION:
clockwise:0000000100
counterclockwise:0000000000
TIME:7
BUS:
position:14
target:0000000000
STATION:
clockwise:0000000100
counterclockwise:0000000000
TIME:8
BUS:
position:14
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
end

View File

@ -1,3 +0,0 @@
TOTAL_STATION = 10
STRATEGY = SSTF
#end

View File

@ -1,14 +0,0 @@
clock
clockwise 8
clock
clockwise 9
clock
clock
clock
clock
clock
clock
clock
clock
clock
end

View File

@ -1,85 +0,0 @@
TIME:0
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:1
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:2
BUS:
position:19
target:0000000000
STATION:
clockwise:0000000100
counterclockwise:0000000000
TIME:3
BUS:
position:18
target:0000000000
STATION:
clockwise:0000000110
counterclockwise:0000000000
TIME:4
BUS:
position:17
target:0000000000
STATION:
clockwise:0000000110
counterclockwise:0000000000
TIME:5
BUS:
position:16
target:0000000000
STATION:
clockwise:0000000110
counterclockwise:0000000000
TIME:6
BUS:
position:15
target:0000000000
STATION:
clockwise:0000000110
counterclockwise:0000000000
TIME:7
BUS:
position:14
target:0000000000
STATION:
clockwise:0000000110
counterclockwise:0000000000
TIME:8
BUS:
position:14
target:0000000000
STATION:
clockwise:0000000010
counterclockwise:0000000000
TIME:9
BUS:
position:15
target:0000000000
STATION:
clockwise:0000000010
counterclockwise:0000000000
TIME:10
BUS:
position:16
target:0000000000
STATION:
clockwise:0000000010
counterclockwise:0000000000
TIME:11
BUS:
position:16
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
end

View File

@ -1,3 +0,0 @@
TOTAL_STATION = 10
STRATEGY = SSTF
#end

View File

@ -1,14 +0,0 @@
clock
clockwise 4
clock
clock
clock
target 3
clock
clock
clock
clock
clock
clock
clock
end

View File

@ -1,85 +0,0 @@
TIME:0
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:1
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:2
BUS:
position:1
target:0000000000
STATION:
clockwise:0001000000
counterclockwise:0000000000
TIME:3
BUS:
position:2
target:0000000000
STATION:
clockwise:0001000000
counterclockwise:0000000000
TIME:4
BUS:
position:3
target:0000000000
STATION:
clockwise:0001000000
counterclockwise:0000000000
TIME:5
BUS:
position:4
target:0010000000
STATION:
clockwise:0001000000
counterclockwise:0000000000
TIME:6
BUS:
position:4
target:0000000000
STATION:
clockwise:0001000000
counterclockwise:0000000000
TIME:7
BUS:
position:5
target:0000000000
STATION:
clockwise:0001000000
counterclockwise:0000000000
TIME:8
BUS:
position:6
target:0000000000
STATION:
clockwise:0001000000
counterclockwise:0000000000
TIME:9
BUS:
position:6
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:10
BUS:
position:6
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:11
BUS:
position:6
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
end

View File

@ -1,3 +0,0 @@
TOTAL_STATION = 10
STRATEGY = SSTF
#end

View File

@ -1,16 +0,0 @@
clock
clockwise 4
clock
clockwise 5
clock
counterclockwise 4
clock
target 4
clock
clock
clock
clock
clock
clock
clock
end

View File

@ -1,85 +0,0 @@
TIME:0
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:1
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:2
BUS:
position:1
target:0000000000
STATION:
clockwise:0001000000
counterclockwise:0000000000
TIME:3
BUS:
position:2
target:0000000000
STATION:
clockwise:0001100000
counterclockwise:0000000000
TIME:4
BUS:
position:3
target:0000000000
STATION:
clockwise:0001100000
counterclockwise:0001000000
TIME:5
BUS:
position:4
target:0001000000
STATION:
clockwise:0001100000
counterclockwise:0001000000
TIME:6
BUS:
position:5
target:0001000000
STATION:
clockwise:0001100000
counterclockwise:0001000000
TIME:7
BUS:
position:6
target:0001000000
STATION:
clockwise:0001100000
counterclockwise:0001000000
TIME:8
BUS:
position:6
target:0000000000
STATION:
clockwise:0000100000
counterclockwise:0000000000
TIME:9
BUS:
position:7
target:0000000000
STATION:
clockwise:0000100000
counterclockwise:0000000000
TIME:10
BUS:
position:8
target:0000000000
STATION:
clockwise:0000100000
counterclockwise:0000000000
TIME:11
BUS:
position:8
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
end

View File

@ -1,3 +0,0 @@
TOTAL_STATION = 10
STRATEGY = SSTF
#end

View File

@ -1,12 +0,0 @@
clock
clockwise 2
counterclockwise 10
clock
clock
clock
clock
clock
clock
clock
clock
end

View File

@ -1,71 +0,0 @@
TIME:0
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:1
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:2
BUS:
position:1
target:0000000000
STATION:
clockwise:0100000000
counterclockwise:0000000001
TIME:3
BUS:
position:2
target:0000000000
STATION:
clockwise:0100000000
counterclockwise:0000000001
TIME:4
BUS:
position:2
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000001
TIME:5
BUS:
position:1
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000001
TIME:6
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000001
TIME:7
BUS:
position:19
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000001
TIME:8
BUS:
position:18
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000001
TIME:9
BUS:
position:18
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
end

View File

@ -1,3 +0,0 @@
TOTAL_STATION = 10
STRATEGY = SSTF
#end

View File

@ -1,48 +0,0 @@
clock
clockwise 6
clock
clockwise 5
clock
counterclockwise 9
clock
target 3
clock
clock
target 10
clockwise 7
clock
target 1
clock
counterclockwise 2
clock
target 4
clock
target 8
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
end

View File

@ -1,267 +0,0 @@
TIME:0
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:1
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:2
BUS:
position:1
target:0000000000
STATION:
clockwise:0000010000
counterclockwise:0000000000
TIME:3
BUS:
position:2
target:0000000000
STATION:
clockwise:0000110000
counterclockwise:0000000000
TIME:4
BUS:
position:3
target:0000000000
STATION:
clockwise:0000110000
counterclockwise:0000000010
TIME:5
BUS:
position:4
target:0010000000
STATION:
clockwise:0000110000
counterclockwise:0000000010
TIME:6
BUS:
position:4
target:0000000000
STATION:
clockwise:0000110000
counterclockwise:0000000010
TIME:7
BUS:
position:5
target:0000000001
STATION:
clockwise:0000111000
counterclockwise:0000000010
TIME:8
BUS:
position:6
target:1000000001
STATION:
clockwise:0000111000
counterclockwise:0000000010
TIME:9
BUS:
position:7
target:1000000001
STATION:
clockwise:0000111000
counterclockwise:0100000010
TIME:10
BUS:
position:8
target:1001000001
STATION:
clockwise:0000111000
counterclockwise:0100000010
TIME:11
BUS:
position:8
target:1001000101
STATION:
clockwise:0000011000
counterclockwise:0100000010
TIME:12
BUS:
position:9
target:1001000101
STATION:
clockwise:0000011000
counterclockwise:0100000010
TIME:13
BUS:
position:10
target:1001000101
STATION:
clockwise:0000011000
counterclockwise:0100000010
TIME:14
BUS:
position:10
target:1001000101
STATION:
clockwise:0000001000
counterclockwise:0100000010
TIME:15
BUS:
position:11
target:1001000101
STATION:
clockwise:0000001000
counterclockwise:0100000010
TIME:16
BUS:
position:12
target:1001000101
STATION:
clockwise:0000001000
counterclockwise:0100000010
TIME:17
BUS:
position:12
target:1001000101
STATION:
clockwise:0000000000
counterclockwise:0100000010
TIME:18
BUS:
position:13
target:1001000101
STATION:
clockwise:0000000000
counterclockwise:0100000010
TIME:19
BUS:
position:14
target:1001000101
STATION:
clockwise:0000000000
counterclockwise:0100000010
TIME:20
BUS:
position:14
target:1001000001
STATION:
clockwise:0000000000
counterclockwise:0100000010
TIME:21
BUS:
position:15
target:1001000001
STATION:
clockwise:0000000000
counterclockwise:0100000010
TIME:22
BUS:
position:16
target:1001000001
STATION:
clockwise:0000000000
counterclockwise:0100000010
TIME:23
BUS:
position:16
target:1001000001
STATION:
clockwise:0000000000
counterclockwise:0100000000
TIME:24
BUS:
position:17
target:1001000001
STATION:
clockwise:0000000000
counterclockwise:0100000000
TIME:25
BUS:
position:18
target:1001000001
STATION:
clockwise:0000000000
counterclockwise:0100000000
TIME:26
BUS:
position:18
target:1001000000
STATION:
clockwise:0000000000
counterclockwise:0100000000
TIME:27
BUS:
position:19
target:1001000000
STATION:
clockwise:0000000000
counterclockwise:0100000000
TIME:28
BUS:
position:0
target:1001000000
STATION:
clockwise:0000000000
counterclockwise:0100000000
TIME:29
BUS:
position:0
target:0001000000
STATION:
clockwise:0000000000
counterclockwise:0100000000
TIME:30
BUS:
position:1
target:0001000000
STATION:
clockwise:0000000000
counterclockwise:0100000000
TIME:31
BUS:
position:2
target:0001000000
STATION:
clockwise:0000000000
counterclockwise:0100000000
TIME:32
BUS:
position:2
target:0001000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:33
BUS:
position:3
target:0001000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:34
BUS:
position:4
target:0001000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:35
BUS:
position:5
target:0001000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:36
BUS:
position:6
target:0001000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:37
BUS:
position:6
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
end

View File

@ -1,3 +0,0 @@
TOTAL_STATION = 10
STRATEGY = SSTF
#end

View File

@ -1,24 +0,0 @@
clock
clockwise 8
clock
counterclockwise 9
clock
clock
clock
clock
clock
clock
clock
clock
clock
clockwise 6
clock
counterclockwise 7
clock
clock
clock
clock
clock
clock
clock
end

View File

@ -1,141 +0,0 @@
TIME:0
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:1
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:2
BUS:
position:19
target:0000000000
STATION:
clockwise:0000000100
counterclockwise:0000000000
TIME:3
BUS:
position:18
target:0000000000
STATION:
clockwise:0000000100
counterclockwise:0000000010
TIME:4
BUS:
position:17
target:0000000000
STATION:
clockwise:0000000100
counterclockwise:0000000010
TIME:5
BUS:
position:16
target:0000000000
STATION:
clockwise:0000000100
counterclockwise:0000000010
TIME:6
BUS:
position:16
target:0000000000
STATION:
clockwise:0000000100
counterclockwise:0000000000
TIME:7
BUS:
position:15
target:0000000000
STATION:
clockwise:0000000100
counterclockwise:0000000000
TIME:8
BUS:
position:14
target:0000000000
STATION:
clockwise:0000000100
counterclockwise:0000000000
TIME:9
BUS:
position:14
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:10
BUS:
position:14
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:11
BUS:
position:14
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:12
BUS:
position:13
target:0000000000
STATION:
clockwise:0000010000
counterclockwise:0000000000
TIME:13
BUS:
position:12
target:0000000000
STATION:
clockwise:0000010000
counterclockwise:0000001000
TIME:14
BUS:
position:12
target:0000000000
STATION:
clockwise:0000010000
counterclockwise:0000000000
TIME:15
BUS:
position:11
target:0000000000
STATION:
clockwise:0000010000
counterclockwise:0000000000
TIME:16
BUS:
position:10
target:0000000000
STATION:
clockwise:0000010000
counterclockwise:0000000000
TIME:17
BUS:
position:10
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:18
BUS:
position:10
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:19
BUS:
position:10
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
end

View File

@ -1,3 +0,0 @@
TOTAL_STATION = 10
STRATEGY = SSTF
#end

View File

@ -1,15 +0,0 @@
clock
counterclockwise 6
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
end

View File

@ -1,99 +0,0 @@
TIME:0
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:1
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:2
BUS:
position:1
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000010000
TIME:3
BUS:
position:2
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000010000
TIME:4
BUS:
position:3
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000010000
TIME:5
BUS:
position:4
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000010000
TIME:6
BUS:
position:5
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000010000
TIME:7
BUS:
position:6
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000010000
TIME:8
BUS:
position:7
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000010000
TIME:9
BUS:
position:8
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000010000
TIME:10
BUS:
position:9
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000010000
TIME:11
BUS:
position:10
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000010000
TIME:12
BUS:
position:10
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:13
BUS:
position:10
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
end

View File

@ -1,3 +0,0 @@
TOTAL_STATION = 10
DISTANCE = 3
STRATEGY = SCAN

View File

@ -1,57 +0,0 @@
clock
clockwise 7
clockwise 2
clock
clock
clock
target 7
clock
clock
counterclockwise 7
clockwise 2
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
target 2
target 3
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
target 1
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
end

View File

@ -1,344 +0,0 @@
TIME:0
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:1
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:2
BUS:
position:1
target:0000000000
STATION:
clockwise:0100001000
counterclockwise:0000000000
TIME:3
BUS:
position:2
target:0000000000
STATION:
clockwise:0100001000
counterclockwise:0000000000
TIME:4
BUS:
position:3
target:0000000000
STATION:
clockwise:0100001000
counterclockwise:0000000000
TIME:5
BUS:
position:3
target:0000001000
STATION:
clockwise:0000001000
counterclockwise:0000000000
TIME:6
BUS:
position:4
target:0000001000
STATION:
clockwise:0000001000
counterclockwise:0000000000
TIME:7
BUS:
position:5
target:0000001000
STATION:
clockwise:0100001000
counterclockwise:0000001000
TIME:8
BUS:
position:6
target:0000001000
STATION:
clockwise:0100001000
counterclockwise:0000001000
TIME:9
BUS:
position:7
target:0000001000
STATION:
clockwise:0100001000
counterclockwise:0000001000
TIME:10
BUS:
position:8
target:0000001000
STATION:
clockwise:0100001000
counterclockwise:0000001000
TIME:11
BUS:
position:9
target:0000001000
STATION:
clockwise:0100001000
counterclockwise:0000001000
TIME:12
BUS:
position:10
target:0000001000
STATION:
clockwise:0100001000
counterclockwise:0000001000
TIME:13
BUS:
position:11
target:0000001000
STATION:
clockwise:0100001000
counterclockwise:0000001000
TIME:14
BUS:
position:12
target:0000001000
STATION:
clockwise:0100001000
counterclockwise:0000001000
TIME:15
BUS:
position:13
target:0000001000
STATION:
clockwise:0100001000
counterclockwise:0000001000
TIME:16
BUS:
position:14
target:0000001000
STATION:
clockwise:0100001000
counterclockwise:0000001000
TIME:17
BUS:
position:15
target:0000001000
STATION:
clockwise:0100001000
counterclockwise:0000001000
TIME:18
BUS:
position:16
target:0000001000
STATION:
clockwise:0100001000
counterclockwise:0000001000
TIME:19
BUS:
position:17
target:0000001000
STATION:
clockwise:0100001000
counterclockwise:0000001000
TIME:20
BUS:
position:18
target:0000001000
STATION:
clockwise:0100001000
counterclockwise:0000001000
TIME:21
BUS:
position:18
target:0110000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:22
BUS:
position:19
target:0110000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:23
BUS:
position:20
target:0110000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:24
BUS:
position:21
target:0110000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:25
BUS:
position:22
target:0110000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:26
BUS:
position:23
target:0110000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:27
BUS:
position:24
target:0110000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:28
BUS:
position:25
target:0110000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:29
BUS:
position:26
target:0110000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:30
BUS:
position:27
target:0110000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:31
BUS:
position:28
target:0110000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:32
BUS:
position:29
target:0110000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:33
BUS:
position:0
target:0110000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:34
BUS:
position:1
target:0110000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:35
BUS:
position:2
target:0110000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:36
BUS:
position:3
target:0110000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:37
BUS:
position:3
target:1010000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:38
BUS:
position:4
target:1010000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:39
BUS:
position:5
target:1010000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:40
BUS:
position:6
target:1010000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:41
BUS:
position:6
target:1000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:42
BUS:
position:5
target:1000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:43
BUS:
position:4
target:1000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:44
BUS:
position:3
target:1000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:45
BUS:
position:2
target:1000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:46
BUS:
position:1
target:1000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:47
BUS:
position:0
target:1000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:48
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
end

View File

@ -1,4 +0,0 @@
# first come first serve
STRATEGY = FCFS
TOTAL_STATION = 10
DISTANCE = 2

View File

@ -1,30 +0,0 @@
clock
clockwise 2
clock
clockwise 4
clock
clock
clockwise 6
clock
target 8
clock
clock
clock
target 10
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
end

View File

@ -1,176 +0,0 @@
TIME:0
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:1
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:2
BUS:
position:1
target:0000000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:3
BUS:
position:2
target:0000000000
STATION:
clockwise:0101000000
counterclockwise:0000000000
TIME:4
BUS:
position:2
target:0000000000
STATION:
clockwise:0001000000
counterclockwise:0000000000
TIME:5
BUS:
position:3
target:0000000000
STATION:
clockwise:0001010000
counterclockwise:0000000000
TIME:6
BUS:
position:4
target:0000000100
STATION:
clockwise:0001010000
counterclockwise:0000000000
TIME:7
BUS:
position:5
target:0000000100
STATION:
clockwise:0001010000
counterclockwise:0000000000
TIME:8
BUS:
position:6
target:0000000100
STATION:
clockwise:0001010000
counterclockwise:0000000000
TIME:9
BUS:
position:6
target:0000000101
STATION:
clockwise:0000010000
counterclockwise:0000000000
TIME:10
BUS:
position:7
target:0000000101
STATION:
clockwise:0000010000
counterclockwise:0000000000
TIME:11
BUS:
position:8
target:0000000101
STATION:
clockwise:0000010000
counterclockwise:0000000000
TIME:12
BUS:
position:9
target:0000000101
STATION:
clockwise:0000010000
counterclockwise:0000000000
TIME:13
BUS:
position:10
target:0000000101
STATION:
clockwise:0000010000
counterclockwise:0000000000
TIME:14
BUS:
position:10
target:0000000101
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:15
BUS:
position:11
target:0000000101
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:16
BUS:
position:12
target:0000000101
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:17
BUS:
position:13
target:0000000101
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:18
BUS:
position:14
target:0000000101
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:19
BUS:
position:14
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:20
BUS:
position:15
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:21
BUS:
position:16
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:22
BUS:
position:17
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:23
BUS:
position:18
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:24
BUS:
position:18
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
end

View File

@ -1,4 +0,0 @@
# first come first serve
STRATEGY = FCFS
TOTAL_STATION = 10
DISTANCE = 2

View File

@ -1,30 +0,0 @@
clock
clockwise 2
clock
target 10
clock
clock
clock
clockwise 3
clock
clock
target 9
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
end

View File

@ -1,183 +0,0 @@
TIME:0
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:1
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:2
BUS:
position:1
target:0000000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:3
BUS:
position:2
target:0000000001
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:4
BUS:
position:2
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:5
BUS:
position:1
target:0000000001
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:6
BUS:
position:0
target:0000000001
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:7
BUS:
position:19
target:0000000001
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:8
BUS:
position:18
target:0000000011
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:9
BUS:
position:18
target:0000000010
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:10
BUS:
position:19
target:0000000010
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:11
BUS:
position:0
target:0000000010
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:12
BUS:
position:1
target:0000000010
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:13
BUS:
position:2
target:0000000010
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:14
BUS:
position:3
target:0000000010
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:15
BUS:
position:4
target:0000000010
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:16
BUS:
position:4
target:0000000010
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:17
BUS:
position:3
target:0000000010
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:18
BUS:
position:2
target:0000000010
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:19
BUS:
position:1
target:0000000010
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:20
BUS:
position:0
target:0000000010
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:21
BUS:
position:19
target:0000000010
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:22
BUS:
position:18
target:0000000010
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:23
BUS:
position:17
target:0000000010
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:24
BUS:
position:16
target:0000000010
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:25
BUS:
position:16
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
end

View File

@ -1,4 +0,0 @@
DISTANCE = 4
STRATEGY = SCAN
TOTAL_STATION = 6
# scan serve

View File

@ -1,34 +0,0 @@
clock
clockwise 2
clock
clock
counterclockwise 6
clock
clock
clock
clock
clock
clock
clock
clock
target 1
clock
clock
clock
clock
clock
clock
counterclockwise 5
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
end

View File

@ -1,211 +0,0 @@
TIME:0
BUS:
position:0
target:000000
STATION:
clockwise:000000
counterclockwise:000000
TIME:1
BUS:
position:0
target:000000
STATION:
clockwise:000000
counterclockwise:000000
TIME:2
BUS:
position:1
target:000000
STATION:
clockwise:010000
counterclockwise:000000
TIME:3
BUS:
position:2
target:000000
STATION:
clockwise:010000
counterclockwise:000000
TIME:4
BUS:
position:3
target:000000
STATION:
clockwise:010000
counterclockwise:000001
TIME:5
BUS:
position:4
target:000000
STATION:
clockwise:010000
counterclockwise:000001
TIME:6
BUS:
position:4
target:000000
STATION:
clockwise:000000
counterclockwise:000001
TIME:7
BUS:
position:3
target:000000
STATION:
clockwise:000000
counterclockwise:000001
TIME:8
BUS:
position:2
target:000000
STATION:
clockwise:000000
counterclockwise:000001
TIME:9
BUS:
position:1
target:000000
STATION:
clockwise:000000
counterclockwise:000001
TIME:10
BUS:
position:0
target:000000
STATION:
clockwise:000000
counterclockwise:000001
TIME:11
BUS:
position:23
target:000000
STATION:
clockwise:000000
counterclockwise:000001
TIME:12
BUS:
position:22
target:100000
STATION:
clockwise:000000
counterclockwise:000001
TIME:13
BUS:
position:21
target:100000
STATION:
clockwise:000000
counterclockwise:000001
TIME:14
BUS:
position:20
target:100000
STATION:
clockwise:000000
counterclockwise:000001
TIME:15
BUS:
position:20
target:100000
STATION:
clockwise:000000
counterclockwise:000000
TIME:16
BUS:
position:21
target:100000
STATION:
clockwise:000000
counterclockwise:000000
TIME:17
BUS:
position:22
target:100000
STATION:
clockwise:000000
counterclockwise:000000
TIME:18
BUS:
position:23
target:100000
STATION:
clockwise:000000
counterclockwise:000010
TIME:19
BUS:
position:0
target:100000
STATION:
clockwise:000000
counterclockwise:000010
TIME:20
BUS:
position:0
target:000000
STATION:
clockwise:000000
counterclockwise:000010
TIME:21
BUS:
position:23
target:000000
STATION:
clockwise:000000
counterclockwise:000010
TIME:22
BUS:
position:22
target:000000
STATION:
clockwise:000000
counterclockwise:000010
TIME:23
BUS:
position:21
target:000000
STATION:
clockwise:000000
counterclockwise:000010
TIME:24
BUS:
position:20
target:000000
STATION:
clockwise:000000
counterclockwise:000010
TIME:25
BUS:
position:19
target:000000
STATION:
clockwise:000000
counterclockwise:000010
TIME:26
BUS:
position:18
target:000000
STATION:
clockwise:000000
counterclockwise:000010
TIME:27
BUS:
position:17
target:000000
STATION:
clockwise:000000
counterclockwise:000010
TIME:28
BUS:
position:16
target:000000
STATION:
clockwise:000000
counterclockwise:000010
TIME:29
BUS:
position:16
target:000000
STATION:
clockwise:000000
counterclockwise:000000
end

View File

@ -1,4 +0,0 @@
DISTANCE = 4
STRATEGY = SCAN
TOTAL_STATION = 6
# scan serve

View File

@ -1,26 +0,0 @@
clock
clockwise 2
counterclockwise 3
clock
clock
clock
clock
clock
clock
target 4
clock
clock
clock
clock
clock
clock
clockwise 5
clock
clock
clock
clock
clock
clock
clock
clock
end

View File

@ -1,155 +0,0 @@
TIME:0
BUS:
position:0
target:000000
STATION:
clockwise:000000
counterclockwise:000000
TIME:1
BUS:
position:0
target:000000
STATION:
clockwise:000000
counterclockwise:000000
TIME:2
BUS:
position:1
target:000000
STATION:
clockwise:010000
counterclockwise:001000
TIME:3
BUS:
position:2
target:000000
STATION:
clockwise:010000
counterclockwise:001000
TIME:4
BUS:
position:3
target:000000
STATION:
clockwise:010000
counterclockwise:001000
TIME:5
BUS:
position:4
target:000000
STATION:
clockwise:010000
counterclockwise:001000
TIME:6
BUS:
position:4
target:000000
STATION:
clockwise:000000
counterclockwise:001000
TIME:7
BUS:
position:5
target:000000
STATION:
clockwise:000000
counterclockwise:001000
TIME:8
BUS:
position:6
target:000100
STATION:
clockwise:000000
counterclockwise:001000
TIME:9
BUS:
position:7
target:000100
STATION:
clockwise:000000
counterclockwise:001000
TIME:10
BUS:
position:8
target:000100
STATION:
clockwise:000000
counterclockwise:001000
TIME:11
BUS:
position:8
target:000100
STATION:
clockwise:000000
counterclockwise:000000
TIME:12
BUS:
position:9
target:000100
STATION:
clockwise:000000
counterclockwise:000000
TIME:13
BUS:
position:10
target:000100
STATION:
clockwise:000000
counterclockwise:000000
TIME:14
BUS:
position:11
target:000100
STATION:
clockwise:000010
counterclockwise:000000
TIME:15
BUS:
position:12
target:000100
STATION:
clockwise:000010
counterclockwise:000000
TIME:16
BUS:
position:12
target:000000
STATION:
clockwise:000010
counterclockwise:000000
TIME:17
BUS:
position:13
target:000000
STATION:
clockwise:000010
counterclockwise:000000
TIME:18
BUS:
position:14
target:000000
STATION:
clockwise:000010
counterclockwise:000000
TIME:19
BUS:
position:15
target:000000
STATION:
clockwise:000010
counterclockwise:000000
TIME:20
BUS:
position:16
target:000000
STATION:
clockwise:000010
counterclockwise:000000
TIME:21
BUS:
position:16
target:000000
STATION:
clockwise:000000
counterclockwise:000000
end

View File

@ -1,4 +0,0 @@
TOTAL_STATION = 5
DISTANCE = 3
# shortest seek time first
STRATEGY = SSTF

View File

@ -1,47 +0,0 @@
clock
clockwise 4
clockwise 2
counterclockwise 4
clock
clockwise 2
clock
clock
counterclockwise 1
clock
clock
clockwise 3
clock
clock
clock
clock
clock
clock
clock
target 5
clock
target 3
clock
clock
clock
clock
clock
clock
clock
clock
target 4
target 1
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
clock
end

View File

@ -1,260 +0,0 @@
TIME:0
BUS:
position:0
target:00000
STATION:
clockwise:00000
counterclockwise:00000
TIME:1
BUS:
position:0
target:00000
STATION:
clockwise:00000
counterclockwise:00000
TIME:2
BUS:
position:1
target:00000
STATION:
clockwise:01010
counterclockwise:00010
TIME:3
BUS:
position:2
target:00000
STATION:
clockwise:01010
counterclockwise:00010
TIME:4
BUS:
position:3
target:00000
STATION:
clockwise:01010
counterclockwise:00010
TIME:5
BUS:
position:3
target:00000
STATION:
clockwise:00010
counterclockwise:10010
TIME:6
BUS:
position:2
target:00000
STATION:
clockwise:00010
counterclockwise:10010
TIME:7
BUS:
position:1
target:00000
STATION:
clockwise:00110
counterclockwise:10010
TIME:8
BUS:
position:0
target:00000
STATION:
clockwise:00110
counterclockwise:10010
TIME:9
BUS:
position:0
target:00000
STATION:
clockwise:00110
counterclockwise:00010
TIME:10
BUS:
position:1
target:00000
STATION:
clockwise:00110
counterclockwise:00010
TIME:11
BUS:
position:2
target:00000
STATION:
clockwise:00110
counterclockwise:00010
TIME:12
BUS:
position:3
target:00000
STATION:
clockwise:00110
counterclockwise:00010
TIME:13
BUS:
position:4
target:00000
STATION:
clockwise:00110
counterclockwise:00010
TIME:14
BUS:
position:5
target:00001
STATION:
clockwise:00110
counterclockwise:00010
TIME:15
BUS:
position:6
target:00101
STATION:
clockwise:00110
counterclockwise:00010
TIME:16
BUS:
position:6
target:00001
STATION:
clockwise:00010
counterclockwise:00010
TIME:17
BUS:
position:7
target:00001
STATION:
clockwise:00010
counterclockwise:00010
TIME:18
BUS:
position:8
target:00001
STATION:
clockwise:00010
counterclockwise:00010
TIME:19
BUS:
position:9
target:00001
STATION:
clockwise:00010
counterclockwise:00010
TIME:20
BUS:
position:9
target:00001
STATION:
clockwise:00000
counterclockwise:00000
TIME:21
BUS:
position:10
target:00001
STATION:
clockwise:00000
counterclockwise:00000
TIME:22
BUS:
position:11
target:00001
STATION:
clockwise:00000
counterclockwise:00000
TIME:23
BUS:
position:12
target:10011
STATION:
clockwise:00000
counterclockwise:00000
TIME:24
BUS:
position:12
target:10010
STATION:
clockwise:00000
counterclockwise:00000
TIME:25
BUS:
position:13
target:10010
STATION:
clockwise:00000
counterclockwise:00000
TIME:26
BUS:
position:14
target:10010
STATION:
clockwise:00000
counterclockwise:00000
TIME:27
BUS:
position:0
target:10010
STATION:
clockwise:00000
counterclockwise:00000
TIME:28
BUS:
position:0
target:00010
STATION:
clockwise:00000
counterclockwise:00000
TIME:29
BUS:
position:14
target:00010
STATION:
clockwise:00000
counterclockwise:00000
TIME:30
BUS:
position:13
target:00010
STATION:
clockwise:00000
counterclockwise:00000
TIME:31
BUS:
position:12
target:00010
STATION:
clockwise:00000
counterclockwise:00000
TIME:32
BUS:
position:11
target:00010
STATION:
clockwise:00000
counterclockwise:00000
TIME:33
BUS:
position:10
target:00010
STATION:
clockwise:00000
counterclockwise:00000
TIME:34
BUS:
position:9
target:00010
STATION:
clockwise:00000
counterclockwise:00000
TIME:35
BUS:
position:9
target:00000
STATION:
clockwise:00000
counterclockwise:00000
TIME:36
BUS:
position:9
target:00000
STATION:
clockwise:00000
counterclockwise:00000
end

View File

@ -1,4 +0,0 @@
TOTAL_STATION = 5
DISTANCE = 3
# shortest seek time first
STRATEGY = SSTF

View File

@ -1,42 +0,0 @@
clock
clockwise 2
counterclockwise 4
clock
clock
clock
clock
clock
counterclockwise 3
clock
clock
clock
clock
target 5
clock
clock
clock
clock
clock
clock
counterclockwise 4
clock
clock
clock
clock
clock
target 1
clockwise 3
clock
clock
clock
clock
target 2
clock
clock
clock
clock
clock
clock
clock
clock
end

View File

@ -1,239 +0,0 @@
TIME:0
BUS:
position:0
target:00000
STATION:
clockwise:00000
counterclockwise:00000
TIME:1
BUS:
position:0
target:00000
STATION:
clockwise:00000
counterclockwise:00000
TIME:2
BUS:
position:1
target:00000
STATION:
clockwise:01000
counterclockwise:00010
TIME:3
BUS:
position:2
target:00000
STATION:
clockwise:01000
counterclockwise:00010
TIME:4
BUS:
position:3
target:00000
STATION:
clockwise:01000
counterclockwise:00010
TIME:5
BUS:
position:3
target:00000
STATION:
clockwise:00000
counterclockwise:00010
TIME:6
BUS:
position:4
target:00000
STATION:
clockwise:00000
counterclockwise:00010
TIME:7
BUS:
position:5
target:00000
STATION:
clockwise:00000
counterclockwise:00110
TIME:8
BUS:
position:6
target:00000
STATION:
clockwise:00000
counterclockwise:00110
TIME:9
BUS:
position:7
target:00000
STATION:
clockwise:00000
counterclockwise:00110
TIME:10
BUS:
position:8
target:00000
STATION:
clockwise:00000
counterclockwise:00110
TIME:11
BUS:
position:9
target:00001
STATION:
clockwise:00000
counterclockwise:00110
TIME:12
BUS:
position:9
target:00001
STATION:
clockwise:00000
counterclockwise:00100
TIME:13
BUS:
position:10
target:00001
STATION:
clockwise:00000
counterclockwise:00100
TIME:14
BUS:
position:11
target:00001
STATION:
clockwise:00000
counterclockwise:00100
TIME:15
BUS:
position:12
target:00001
STATION:
clockwise:00000
counterclockwise:00100
TIME:16
BUS:
position:12
target:00000
STATION:
clockwise:00000
counterclockwise:00100
TIME:17
BUS:
position:11
target:00000
STATION:
clockwise:00000
counterclockwise:00110
TIME:18
BUS:
position:10
target:00000
STATION:
clockwise:00000
counterclockwise:00110
TIME:19
BUS:
position:9
target:00000
STATION:
clockwise:00000
counterclockwise:00110
TIME:20
BUS:
position:9
target:00000
STATION:
clockwise:00000
counterclockwise:00100
TIME:21
BUS:
position:8
target:00000
STATION:
clockwise:00000
counterclockwise:00100
TIME:22
BUS:
position:7
target:10000
STATION:
clockwise:00100
counterclockwise:00100
TIME:23
BUS:
position:6
target:10000
STATION:
clockwise:00100
counterclockwise:00100
TIME:24
BUS:
position:6
target:10000
STATION:
clockwise:00000
counterclockwise:00000
TIME:25
BUS:
position:5
target:10000
STATION:
clockwise:00000
counterclockwise:00000
TIME:26
BUS:
position:4
target:11000
STATION:
clockwise:00000
counterclockwise:00000
TIME:27
BUS:
position:3
target:11000
STATION:
clockwise:00000
counterclockwise:00000
TIME:28
BUS:
position:3
target:10000
STATION:
clockwise:00000
counterclockwise:00000
TIME:29
BUS:
position:2
target:10000
STATION:
clockwise:00000
counterclockwise:00000
TIME:30
BUS:
position:1
target:10000
STATION:
clockwise:00000
counterclockwise:00000
TIME:31
BUS:
position:0
target:10000
STATION:
clockwise:00000
counterclockwise:00000
TIME:32
BUS:
position:0
target:00000
STATION:
clockwise:00000
counterclockwise:00000
TIME:33
BUS:
position:0
target:00000
STATION:
clockwise:00000
counterclockwise:00000
end

View File

@ -1,3 +0,0 @@
TOTAL_STATION = 10
STRATEGY = SSTF
#end

View File

@ -1,16 +0,0 @@
clock
clockwise 3
clockwise 10
clock
clock
clock
clock
clock
clockwise 2
clock
clock
clock
clock
clock
clock
end

View File

@ -1,92 +0,0 @@
TIME:0
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:1
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:2
BUS:
position:19
target:0000000000
STATION:
clockwise:0010000001
counterclockwise:0000000000
TIME:3
BUS:
position:18
target:0000000000
STATION:
clockwise:0010000001
counterclockwise:0000000000
TIME:4
BUS:
position:18
target:0000000000
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:5
BUS:
position:19
target:0000000000
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:6
BUS:
position:0
target:0000000000
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:7
BUS:
position:1
target:0000000000
STATION:
clockwise:0110000000
counterclockwise:0000000000
TIME:8
BUS:
position:2
target:0000000000
STATION:
clockwise:0110000000
counterclockwise:0000000000
TIME:9
BUS:
position:2
target:0000000000
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:10
BUS:
position:3
target:0000000000
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:11
BUS:
position:4
target:0000000000
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:12
BUS:
position:4
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
end

View File

@ -1,3 +0,0 @@
TOTAL_STATION = 10
STRATEGY = SSTF
#end

View File

@ -1,12 +0,0 @@
clock
clockwise 3
clock
clock
clockwise 2
clock
clock
clock
clock
clock
clock
end

View File

@ -1,71 +0,0 @@
TIME:0
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:1
BUS:
position:0
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
TIME:2
BUS:
position:1
target:0000000000
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:3
BUS:
position:2
target:0000000000
STATION:
clockwise:0010000000
counterclockwise:0000000000
TIME:4
BUS:
position:3
target:0000000000
STATION:
clockwise:0110000000
counterclockwise:0000000000
TIME:5
BUS:
position:4
target:0000000000
STATION:
clockwise:0110000000
counterclockwise:0000000000
TIME:6
BUS:
position:4
target:0000000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:7
BUS:
position:3
target:0000000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:8
BUS:
position:2
target:0000000000
STATION:
clockwise:0100000000
counterclockwise:0000000000
TIME:9
BUS:
position:2
target:0000000000
STATION:
clockwise:0000000000
counterclockwise:0000000000
end

View File

@ -1,37 +0,0 @@
import os
path = "SSTF/"
dict_path = path + "dict.dic"
in_path = path + "{}.in"
out_path = path + "{}.out"
dict_file = open(dict_path, "r", encoding="utf8")
dict_str = dict_file.read()
dict_file.close()
for i in range(1, 11):
dir_path = "{}/".format(i + 7)
input_path = dir_path + "input.txt"
output_path = dir_path + "output.txt"
dict_path = dir_path + "dict.dic"
os.mkdir("{}".format(i + 7))
in_file = open(in_path.format(i), "r", encoding="utf8")
out_file = open(out_path.format(i), "r", encoding="utf8")
input_file = open(input_path, "w", encoding="utf8")
output_file = open(output_path, "w", encoding="utf8")
dict_file = open(dict_path, "w", encoding="utf8")
input_file.write(in_file.read())
output_file.write(out_file.read())
dict_file.write(dict_str)
in_file.close()
out_file.close()
input_file.close()
output_file.close()
dict_file.close()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@ -1,159 +0,0 @@
# 代码规范
### 命名规则
#### 变量命名规则
**所有**的局部变量都使用小写的下划线命名法。
```C
int bus_position;
char* output_string
```
在变量命名时应注意尽可能简洁清晰,但在不能为了简洁而导致变量意义的不明。
错误示范:
```C
// DO NOT DO THIS:
lv_indev_drv_t indev_drv;
```
正确示范:
```C
lv_input_device_driver_t mouse_input;
```
> 本例子来自LVGL库。
>
> lv表示这个类型来自LVGL库input_device表示这个一个输入设备driver表示这是一个驱动后缀t表示这是一个类型。
#### 常量命名规则
采用`#define`定义的常量采用全大写下划线命名法
```C
#define MAX_STR_LENGTH 1000
```
#### 函数命名规则
**所有**函数采用驼峰命名法。
```C
int StrLength(char* str);
```
### 代码风格
#### 缩进
统一使用`tab`,四个空格的缩进。
```C
#include <stdio.h>
int main()
{
printf("缩进是四格。\n");
return 0;
}
```
> 这点一般不需要注意现在流行的IDE都是四格缩进。
#### 大括号
所有的大括号都需要提行书写。
```C
if()
{
}
for()
{
}
int main()
{
}
```
同时注意在代码中所有的代码块都需要用大括号包裹,即使是一行的情形。
```c
// DO NOT DO THIS
if(1)
printf("...");
// DO THIS
if(1)
{
printf("...");
}
```
### 注释
采用`Doxygen`风格的注释
> 在`VSCode`中安装`Doxygen Documentation Generator`这个扩展。
>
> ![](1.png)
>
> 方便使用下列的功能。
在函数,变量的**上一行**输入`/**`后回车来创建模板。
```C
/**
* @brief 在stdin打印一个字符串
*
* @param str 指向需要打印的字符串指针
*/
void print(char* str)
{
printf("%s", str);
}
```
```C
#include "example.h"
int main()
{
/**
* @brief 需要输出的字符串
*
*/
char* string = "Good morning!\n";
print(string);
return 0;
}
```
在`@brief`的后面输入函数的作用简述,在`@param`的输入每个参数的意义, 在`@return`的后面输入返回值的意义。
在`VSCode`中将指针悬停在函数上时就可以查看这个注释。
![](2.png)
其他的注释都应该放在需要注释行的上一行。
> 在`Doxygen`规范中,所有的注释都是注释下一行的代码。
在文件开头的注释**不做要求**,我感觉应该没有什么用。
> 这里推荐一个`VSCode`插件`GitLens`,可以方便的查看提交信息,~~便于在发现问题时锤人~~。
>
> ![](4.png)
### 杂项
- 函数中的局部变量不必在函数的头部统一命名,但是建议比较重要的变量在头部先声明,并且使用注释注明变量的作用
- 循环的变量一般情况下都在`for`语句中声明,不在循环以外的地方使用。但如果较为特殊的地方使用到,请使用注释表明。并且循环变量使用`i`,`j`,`k`。
- `switch`语句中必须要有`default`的部分。
- 每行代码不超过80个字符。

View File

@ -1,54 +0,0 @@
# 开发指北
> 遇到任何问题都可以问。
## 任务一
> 布置时间2022-4-29
### 终端(命令行)界面入门
#### 背景
我们在开发过程中需要用到的大部分工具都是以命令行交互为主,比如`cmake`, `gcc`,`git`;而且我们编译出来的应用也是在命令行界面中运行,所以掌握一些基本的命令是必要的。
#### 目标
掌握命令行界面的基础知识。
### Git入门
#### 背景
`git`是版本管理和团队合作的利器,掌握`git`的基本使用也是必要的。
#### 目标
克隆本次的大作业的项目仓库,并且进行**至少一次**提交。
> 可以在`main.c`文件中调用`printf`函数输出一些内容作为提交的内容。
### 模块入门
#### 背景
多模块编译是一个比较困难的部分,但是也是我们开发中十分有用的技能。
#### 目标
在项目中新建一个模块,包括头文件和源文件,在模块中设计实现一个简单的函数,并在`main.c`中调用。
### 概要设计
#### 背景
大作业有点难,不能只让我一个人抠脑壳,你们也得一起想。
#### 目标
设计完成函数原型,数据结构,全局常量。

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@ -1,274 +0,0 @@
# 概要设计
## main函数流程
![](main模块流程图.png)
## 轨道模块
> 轨道模块是比较基础的模块,许多模块都建立在这个模块的基础上
模块的主体是一个表示每个轨道节点的结构体。
### 创建结构体
```C
/**
* 创建轨道列表
* @param length 站点之间的距离
* @param node_num 站点的个数
* @return 指向首站的指针
*/
rail_node_t * CreateRails(int length, int node_num);
```
这个函数的难点应该是创建一个双向的循环链表。
### 寻找指定的站点
```C
/**
* 查找指定编号的站点指针
* @param rails 轨道的头节点地址
* @param id 需要查找的站点编号
* @return 需要查找站点指针
*/
rail_node_t *FindNode(rail_node_t rails, int id);
```
比较重要的工具函数,给定编号寻找对应的站点站点指针,不过没啥难度。
## 公交车模块
> 公交车模块就是比较复杂的模块了。
模块的主体是一个表示公交车的结构体。
### 运行公交车
```C
/**
* 每个时刻使公交车前进
* @param rails 轨道链表
* @param direction 公交车前进的方向
* @param bus 公交车
* @return 公交车是否到达站点
*/
int RunBus(rail_node_t* rails, bus_t bus, int direction);
```
这个函数不难,就是根据指定的方向让公交车前进,同时判断公交车是否到站。
## 请求模块
请求模块的核心是一个表示请求的结构体。
### 创建请求
```C
/**
* 创建请求
* @param query 请求链表队列
* @param type 请求的类型
* @param node 请求产生/指向的站点
*/
void CreateQuery(bus_query_t query, int type, rail_node_t node);
```
还是一个简单的链表创建函数,主要的关键点在于说明的第五点第四条:
> 如果在某个请求没有完成时再有相同的请求(请求类型和站点全部相同)发生,则该请求被抛弃
也就是在创建的时候要判断是否已存在相同的请求。
### 删除请求
> 删除请求其实就是处理请求的同义词
这个函数没啥意思,就是删除一个链表节点。
## 控制器模块
> 全程序最复杂的模块
### 时间计算
一个`int`类型的全局变量储存全局的时间。
```C
/**
* 时间增加
*/
void AddTime();
```
一个可有可无的函数,负责将时间加一。
> 可能后期删除,作用不明显。
### 策略简述
策略的相关函数会在公交车到站的时候调用。
策略一般包括两个函数,方向控制函数和请求处理函数。
### 先来先服务策略(FCFS)
> first come first serve
>
> 对于先来先服务策略车一次停站只完成一个请求即使在这个站点上即有乘车请求车内也有到该站的请求也只能按策略完成已经调度的那个请求。但是完成当前请求后如果发现时间序列上后续的一个或多个连续请求都恰好在同一站点即连续的同站点请求位置相同但请求类型不同则可以立即完成这些连续的同站点请求也就是说特殊情况下一次停车的1秒内可完成多个请求。
#### 方向
```C
/**
* 在先来先服务策略下应该前进的方向
* @param bus 公交车
* @param queries 请求队列链表
* @return 前进的方向
*/
int FCFSDirection(bus_t bus, bus_query_t queries);
```
直接给出最先的一个请求就可以了。
将给定的请求赋给全局变量。
#### 请求
```C
/**
* 在先来先服务策略下给出处理的请求
* @param bus 公交车
* @param queries 请求队列链表
* @return 需要处理的请求
*/
bus_query_t FCFSQuery(bus_t bus, bus_query_t queries);
```
按照指定的策略给出现在可以处理的请求。
在这里是当前所在站点和第一个请求指向站点相同是即可处理,而且连续处理。
### 最短寻找时间优先(SSTF)
> 对于最短寻找时间优先策略一次服务的目标请求一旦确定即使中途产生更优的请求也不可以更改。但如果新的请求恰好可以顺便服务同方向的站台请求或车内请求可以为新的请求停站。具体为程序计算离当前车的位置最近的请求如果没有请求则原地不动否则按最近的路线顺、逆时针去接。如果车途中遇到与车目前同方向的上车或下车请求可以停下一秒解决反方向的上车请求不停车。车服务完目标后反复此过程直到end。特别地当车到达目标站点时可以停一次车(1秒钟)完成该站点已接收的所有类型请求(区别于顺便站停靠)。
#### 方向
```C
/**
* 在最短寻找时间策略下应该前进的方向
* @param bus 公交车
* @param queries 请求队列链表
* @return 前进的方向
*/
int SSTFDirection(bus_t bus, bus_query_t queries);
```
这个函数比较难,求出最短前进的方向即可。
将处理的请求赋给全局变量。
#### 请求
```C
/**
* 在最短寻找时间策略给出处理的请求
* @param bus 公交车
* @param queries 请求队列链表
* @return 需要处理的请求
*/
bus_query_t SSTFQuery(bus_t bus, bus_query_t queries);
```
给出当前需要处理的请求。注意有些请求时可以处理的,有些请求时不能顺便处理的。
### 顺便服务策略(SCAN)
#### 方向
```C
/**
* 顺便服务的前进方向
* @param bus 公交车
* @param queries 请求队列链表
* @return 前进的方向
*/
int SCANDirection(bus_t bus, bus_query_t queries);
```
也是判断最短的前进方向,但是
## 输入输出模块
> 输入输出模块是比较基础的模块,主要作用就是调用其他模块实现的功能。
### 配置文件读取
```C
/**
* 读取配置文件,创建轨道链表,同时读取需要使用的策略
* @return 指向轨道链表的指针
*/
rail_node_t* ReadConfigFile();
```
这个函数需要完成三个任务:
- 解析配置文件。(重点)
- 调用函数创建轨道列表。
- 读取指定的策略。
### 打印当前状态
```C
/**
* 打印当前的状态
* @param rails 轨道链表
* @return 返回需输出的字符串
*/
char* PrintState();
```
输出的格式如下:
```
TIME:秒数
BUS:
position:0
target: 0000000000
STATION:
clockwise: 0000000000
counterclockwise: 0000000000
```
这个函数的实现应该不难,遍历几个链表就结束了。
> 返回一个字符串是为了便于测试,直接`printf`出来不好测试,也不符合解耦的设计策略。
### 读取输入
```C
/**
* 读取标准输入流中的输入
* @param inputString 输入的字符串
* @return 当前读取的状态
*/
int ReadInput(char* inputString);
```
这个函数的实现比较困难,在于读取对应的输入并调用相关的函数。
输出的`int`值是一系列定义的宏:
```C
#define IO_CLOCK 0 // 读取时钟指令
#define IO_READING 1 // 读取请求指令
#define IO_END 2 // 读取结束指令
```
便于main函数确定下一步的行为。

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 364 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Some files were not shown because too many files have changed in this diff Show More