#include <stdio.h>
#include <stdlib.h>
#include "RSignal.h"
#include "GetInput.h"
extern int amount;
extern struct Signal *Head;
void insert(struct Signal *p_front, struct Signal *p_next)
{
struct Signal *p1;
char flag; //记录是否继续添加信号机
p1=(struct Signal *)malloc(sizeof(struct Signal));
InputElement(p1,5); //输入信号机信息
p1->front=p_front; //建立新一项的前驱指针
p1->next=p_next; //建立新一项的后继指针
if(p_front!=NULL)
{
p_front->next=p1; //修改前一项的后继指针
}
else
{
Head=p1;
}
if(p_next!=NULL)
{
p_next->front=p1; //修改后一项的前驱指针
}
amount++; //信号机计数器
flag=InputYN("是否要在其后继续添加信号机?");
if(flag=='Y')
{
insert(p1,p_next);
}
}
void MainMenu();
void removeall();
int amount; //记录信号机数量
struct Signal *Head; //链表头指针
int main(void)
{
system("title 信号机管理系统"); //修改程序窗口标题
MainMenu(); //主菜单
save();
removeall();
printf("信号机数据已保存至"Signal.txt",即将退出程序\n");
system("pause");
return 0;
}
#ifndef RSignal_H
#define RSignal_H
struct Signal
{
char Name[10]; //信号机名称
int KB; //开放表示 0不开放 1开放
float Pos; //位置根据平面图位置拟定
int Type; //信号机性质,列车信号机取1,调车信号机取0
struct Signal *next,*front; //后一架信号机指针,前一架信号机指针
};
void create(); //创建链表 人工录入信号机信息
void load(); //创建链表 从文件导入信号机信息
void save(); //导出信号机数据
#endif
#ifndef InfoEdit_H
#define_InfoEdit_H_ void insert(struct Signal *, struct Signal *); //在相邻信号机间插入一台新信号机
#endif
#ifndef_GetInput_H_
#define_GetInput_H_
char InputOption(char L, char R); //输入选项,获取一个在给定L、R之间的字符
char InputYN(char *warning); //输出给定提示,要求输入Y或N void InputElement(struct Signal *p,int opt); //用于修改指定信号机的某一项信息 opt为5时输入所有信息
#endif
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,目前超出我们的服务范围,暂时无法为您解答。
首次提问人员可免费体验一次有问必答服务。目前首次提问的问题服务范围为:编程语言、Java开发、python、数据库、前端开发 领域专业技术问题,为您提供问题的解决思路和指导。不提供源码代写、项目文档代写、论文代写、作业代写、安装包资源发送或安装、软件使用指导等服务。
我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。