C语言电影院售票系统

支持复制编译无错

#include "myHead.h"
/*

电影院售票系统。要求完成:
包括票的预订功能,
退票功能,
可显示剩余票数,

  结构体 函数 分支 宏 循环
*/


int main(void)
{
	int userScan;

	initMovie();
	UI();
	timeTable();

	while (1)
	{
		printf("> ");
		scanf("%d", &userScan);
		checkScanf(userScan);
	}

	system("pause:");
	return 0;
}

头文件

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

typedef struct _user
{
	char name[128];
	int  myMovie[4];
}UserType;

typedef struct _movie
{
	int price;
	int location;  // 剩余座位
	char name[128];
	char Timer[8];
}MovieType;


#define  TICKET1  1
#define  TICKET2  2
#define  TICKET3  3


MovieType movie1;
MovieType movie2;
MovieType movie3;

void initMovie();
void UI();
void timeTable();
void subscribe(int use);
void checkScanf(int scan);

c

#include "myHead.h"

void initMovie()
{
	strcpy(movie1.name, "美人鱼");
	movie1.price = 32;
	movie1.location = 30;
	strcpy(movie1.Timer, "12:00");

	strcpy(movie2.name, "老九门");
	movie2.price = 20;
	movie2.location = 30;
	strcpy(movie2.Timer, "13:40");

	strcpy(movie3.name, "狙击手");
	movie3.price = 10;
	movie3.location = 30;
	strcpy(movie3.Timer, "16:00");
}

void UI()
{
	printf("\t\t\t\t\t**********电影院售票系统**********\n");
	printf("1.预定电影票\n2.退票\n3.刷新时间表\n");
}

void timeTable()
{
	printf("\n");
	printf("电影名		放映时间		剩余座次		票价\n");
	printf("%s	        %s			  %d			 %d\n", movie1.name, movie1.Timer, movie1.location, movie1.price);
	printf("%s	        %s			  %d			 %d\n", movie2.name, movie2.Timer, movie2.location, movie2.price);
	printf("%s	        %s			  %d			 %d\n", movie3.name, movie3.Timer, movie3.location, movie3.price);

	printf("\n");
}

void subscribe(int use)
{
	switch (use)
	{
	case 1:
		printf("扫码支付 ▓\n");
		movie1.location--;
		printf("预约 美人鱼 成功!\n");
		printf("\a");

		break;
	case 2:
		printf("扫码支付 ▓\n");
		movie2.location--;
		printf("预约老九门成功!\n");
		printf("\a");
		break;
	case 3:
		printf("扫码支付 ▓\n");
		movie3.location--;
		printf("预约狙击手成功!\n");
		printf("\a");
		break;
	default:
		printf("暂时无法识别该序列号...\n");
		printf("\a");
	}
	_sleep(2000);
	system("cls");
	UI();
}

void checkScanf(int scan)
{
	switch (scan)
	{
	case 1:
		system("cls");
		printf("\t\t\t\t\t**********电影票预约**********\n\n");
		printf("电影名		放映时间		剩余座次		票价\n");
		printf("%s	        %s			  %d			 %d\n", movie1.name, movie1.Timer, movie1.location, movie1.price);
		printf("%s	        %s			  %d			 %d\n", movie2.name, movie2.Timer, movie2.location, movie2.price);
		printf("%s	        %s			  %d			 %d\n", movie3.name, movie3.Timer, movie3.location, movie3.price);
		int use;
		printf("> ");
		scanf("%d", &use);
		subscribe(use);
		break;
	case 2:
		system("cls");
		printf("\t\t\t\t\t**********电影票退订**********\n\n");
		printf("退订序号:");
		int src;
		scanf("%d", &src);
		if (src == TICKET1) {
			printf("退订 美人鱼成功!\a\n");
			movie1.location++;
			_sleep(2000);
			system("cls");
			UI();
			break;
		}
		else if (src == TICKET2) {
			printf("退订 老九门成功!\a\n");
			movie2.location++;
			_sleep(2000);
			system("cls");
			UI();
			break;
		}
		else if (src == TICKET3) {
			printf("退订 狙击手成功\a\n");  // define
			movie3.location++;
			_sleep(2000);
			system("cls");
			UI();
			break;
		}
	case 3:
		timeTable();
		break;
	default:
		printf("无效输入");
	}


}

猜你喜欢

转载自blog.csdn.net/qq_46530073/article/details/124848727