您的位置:首页 > 其它

火车票订票系统(简化版)

2014-04-07 23:30 197 查看
#include "train简化.h"

int main()
{
	usage();
	return 0;
}

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct train{
	int id;
	char name[50];
	int remainTickets;
	struct train * next;
};

struct train * addTailNode(){
	struct train * L;
	L = (struct train *)malloc(sizeof(struct train));
	struct train * p,* last;
	last=L;
	int id;
	char name[50];
	int remainTickets;
	printf("请分别输入列车的id号,名称,剩余票数!输入终止id==-1\n");
	scanf("%d%s%d",&id,&name,&remainTickets);
	while(id!=-1){
		p = (struct train *)malloc(sizeof(struct train));
		p->id=id;
		strcpy(p->name,name);
		p->remainTickets=remainTickets;
		last->next=p;
		last=p;
		p->next=NULL;
		scanf("%d%s%d",&id,&name,&remainTickets);
	}
	return L;
}

struct train * searchTrain(struct train * L,int id){
	struct train * p;
	p = L;
	while(p!=NULL){
		if(p->id==id){
			break;
		}
		p=p->next;
	}
	return p;
}

int printNode(struct train * p){//打印节点信息
	printf("列车id: %d\n",p->id);
	printf("列车名称:%s\n",p->name);
	printf("剩余票数:%d\n",p->remainTickets);
	return 0;
}

int bookTrain(struct train * L,int id){//订票
	int count=0;
	struct train * p;
	p = L;
	while(p!=NULL){
		if(p->id==id){
			p->remainTickets--;
			break;
		}
		p=p->next;
	}
	return 0;
}

int returnTrain(struct train * L,int id){//订票
	struct train * p;
	p = L;
	while(p!=NULL){
		if(p->id==id){
			p->remainTickets++;
			break;
		}
		p=p->next;
	}
	return 0;
}

int menu(){//具体实现usage
	printf("请输入列车原始信息!\n");
	struct train * L;
	L = addTailNode();
	int x,id;
	int k=1;
	while(k){
		printf("请输入序列号:");
		scanf("%d",&x);
		switch(x){
		case 1:
			printf("输入所要查询列车的id号:");
			scanf("%d",&id);
			printNode(searchTrain(L,id));
			break;
		case 2:
			printf("输入所要订票列车的id号:");
			scanf("%d",&id);
			bookTrain(L,id);
			printNode(searchTrain(L,id));
			break;
		case 3:
			printf("输入所要订票列车的id号:");
			scanf("%d",&id);
			returnTrain(L,id);
			printNode(searchTrain(L,id));
			break;
		case 4:k=0;
		default:return 0;
		}
	}
	return 0;
}

int usage(void){//打印提示界面
	printf("请按提示输入完成操作!\n");
	printf("1.查询车次信息\n");
	printf("2.订票\n");
	printf("3.退票\n");
	printf("4.退出系统\n\n");
	menu();
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: