车厢调度程序主函数:系统入口,监控程序运行。 建立调度站 车厢调度进站 车厢调度出站(一个) 车厢调度出站(多个)

本文介绍了一个基于C语言的车厢调度系统,系统入口监控程序运行,包括建立调度站、车厢进站和出站(单个及多个)等关键操作,采用链表和栈的数据结构进行管理。
摘要由CSDN通过智能技术生成
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
#include<string.h>
#define MAXSIZE 100

//定义车厢信息为结构体类型
typedef struct carriage
{
   
	char NO[10];//序号
	char year[10];//使用日期
	//char state[20];//状态
}elemtype;//定义车厢记录信息的结构类型为elemtype列表 
//定义火车栈 
struct  train
{
   
	elemtype data[MAXSIZE];//定义一维数组 
	int top;//定义栈顶 
}train;//栈类型为train 

//定义轨道 
struct Pathway
{
   
	elemtype data1[MAXSIZE];//轨道
	int top1;//定义栈顶 
}Pathway;//栈类型为Pathway
//定义用户信息 
typedef struct _Account
{
   
	char szUsername[12];//用户名
	char szAccountNum[20];//注册的账号
	char szPassword[9];//密码,字符串终止字符\0
}Account;//定义记录用户信息的结构类型为Account列表 
//链表来实现
typedef struct _Node
{
   
	Account account;//数据域
	struct _Node *next;//下一个节点指针域
}Node;//定义记录用户信息的结构类型为Node列表 

Node *g_pHead = NULL;//g_pHead是指向Node类型的指针变量并初始化 

//创建链表查找修改信息 
typedef struct node
{
   
	elemtype data2;//节点数据域 
	struct node *next;//节点指针域 
}Trainnode; //定义记录用户信息的结构类型为Trainnode列表 
Trainnode *head=NULL;//Trainnode 指向head  并初始化 
//定义所以输出序列 
struct node1
{
        
    int sdata[MAXSIZE]; //定义一维数组 sdata    
    int stop; //定义栈顶 
}node1;//定义栈结构类型    
int n;//定义输入序列总个数  输出所有可能序列 

/*函数声明*/
void console();//车厢调度站。

void outboundone();//车厢调度出站(一个)

void outbound();//车厢调度出站(多辆)

void inbound();//车厢调度进站

int chageinformation();//输出所以可能出现的序列 

void Init_node();//初始化车厢信息

void Init_train();//初始化火车

void Init_Pathway();//初始化轨道
void exit1();//退出系统

int  CreateAccount();//注册
int Login();//登录

int Menu(Node *pNode);//功能菜单

int carinformation();//打印所有存在车厢信息

int train1();//显示调度完成的列车车厢序列

int push_Pathway(elemtype *x);//车厢入轨道 

int push_train(elemtype* x);//车厢接火车 (入栈)

int push_trainnode(elemtype *x);//车厢信息入栈 

int pop_Pathway(elemtype* x);//车厢出栈

int pop_train(elemtype* x);//火车序列 (出栈)

int pop_trainnode(elemtype* x);//显示车厢所有信息出栈

int binarysearch();//查找位置函数

int m = 0;//初始化m,为车厢出站数目

//注册信息  链表 
int CreateAccount()
{
   
	system("cls");
	Node *pNewNode = (Node *)malloc(sizeof(Node));//生成头结点并赋给Node的指针域pNewNode结点 
	pNewNode->next = NULL;//下一个节点初始化 
	printf("\t\t\t\t请输入手机号码:\n");
	scanf("%s", pNewNode->account.szUsername);
	char szPassword[9];//定义密码 
	while (1)
	{
   
		while (1)
		{
   

			printf("\t\t\t\t请设置你的密码(长度为6):\n");
			scanf("\t\t\t\t%s", szPassword);
			int length1 = strlen(szPassword);//获取输入密码的长度
			if (length1 == 6)
			{
   
				printf("\t\t\t\t请输入确认密码:\n");
				scanf("\t\t\t\t%s", pNewNode->account.szPassword);
				break;//退出if循环 进入比较if 
			}
			else
			{
   
				printf("\t\t\t\t输入密码有误!长度为6\n");
				continue;//返回上一级 输入密码 
			}
		}
		if (0 != strcmp(szPassword, pNewNode->account.szPassword))//比较密码长度和是否相同 
		{
   
			printf("\t\t\t\t你两次输入的密码不一致,请重新设置:\n");
			continue;//返回输入密码 
		}
		break;
	}
	srand((unsigned int)time(NULL));//获取随机数账号 
	sprintf(pNewNode->account.szAccountNum, "%d", rand() %
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫名sign

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值