首页 > 其他分享 >第八周

第八周

时间:2024-08-24 20:17:57浏览次数:3  
标签:hour int car void 第八 tm ticket

本周在学校进行c++训练;
练习车票管理系统以及银行个人账户管理系统
以下为一些代码:

点击查看代码
#ifndef PERSON_H
#define PERSON_H
#include <string>
using namespace std;

class Car {
public:
	int  hour;//发车时间
	int minute;//发车时间
	string start_station;//起始站
	string end_station;//终点站
	double runtime;//行驶时间
	int busload;//载客量
	int ys;//售票数
};
class Sys {
private:
	Car car;
public:
	void input();//录入
	void output();//浏览
	void search_train();//按车次查询
	void search_station();//按终点站查询
	void sp();//售票
	void tp();//退票
	void display(int a);//显示a车次信息
	friend void save();//保存数据
	friend void read();//读取文件数据
};
#endif
点击查看代码
#include "CarSys.h"
#include <iostream>
#include<fstream>
#include<iomanip>
#include<ctime>
using namespace std;
time_t nowtime;//获取当前时间秒数
static int n = 0;
Sys ticket[100];
//存储车次信息到.txt中
void save() {
	ofstream file("数据.txt", ios_base::out);
	int i;
	for (i = 0; i < n; i++) {
		file << i + 1 << " ";
		file << ticket[i].car.hour << " ";
		file << ticket[i].car.minute << " ";
		file << ticket[i].car.start_station << " ";
		file << ticket[i].car.end_station << " ";
		file << ticket[i].car.runtime << " ";
		file << ticket[i].car.busload << " ";
		file << ticket[i].car.ys << endl;
	}
	file.close();
	cout << "信息存入文件中" << endl;
}
//录入
void Sys::input() {
	cin >> ticket[n].car.hour >> ticket[n].car.minute;
	cin >> ticket[n].car.start_station >> ticket[n].car.end_station;
	cin >> ticket[n].car.runtime >> ticket[n].car.busload >> ticket[n].car.ys;
	n++;
	//存入文件
	save();
}
//浏览车次信息
void Sys::output() {
	time(&nowtime);
	tm p;//转化为本地时间的tm结构
	localtime_s(&p, &nowtime);
	cout << "当前时间:" << p.tm_hour << ":" << p.tm_min << endl;
	cout << "车次信息:" << endl;
	cout << "班次号\t" << "发车时间  " << "起始站  " << "终点站  " << "行车时间  " << "载客量  " << "售票数  " << "状态"<<endl;
	for (int j = 0; j < n; j++) {
		ticket[j].display(j + 1);
		cout << "   ";
		//判断是否发车
		if (ticket[j].car.hour < p.tm_hour) {
			cout << "此班已出发" << endl;
		}
		else {
			if (ticket[j].car.minute <= p.tm_min && ticket[j].car.hour == p.tm_hour) {
				cout << "此班已出发" << endl;
			}
			else {
				cout << "此班未出发" << endl;
			}
		}

	}
}
//显示a车次信息
void Sys::display(int a) {
	cout << a << "\t" << car.hour << ":";
	if (car.minute == 0) {
		cout << "00";
	}
	else {
		cout << car.minute;
	}
	cout << "\t" << " " << car.start_station  << "  " << car.end_station << "     " << car.runtime <<"\t" << "    " << car.busload << "    " << car.ys;
}
//按车次查询
void Sys::search_train() {
	int s;
	cout << "输入要查询的车次:";
	cin >> s;
	cout << " 班次号\t" << "发车时间  " << "起始站  " << "终点站  " << "行车时间  " << "载客量  " << "售票数  " << endl;
	cout << s << "\t" << ticket[s - 1].car.hour << ":" << ticket[s - 1].car.minute << "\t" << ticket[s - 1].car.start_station << "\t" << ticket[s - 1].car.end_station << "\t" << ticket[s - 1].car.runtime << "\t" << ticket[s - 1].car.busload << "\t" << ticket[s - 1].car.ys << endl;
}
//按终点查询
void Sys::search_station() {
	string s;
	cout << "输入要查询的终点站:";
	cin >> s;
	cout << " 班次号\t" << "发车时间  " << "起始站  " << "终点站  " << "行车时间  " << "载客量  " << "售票数  " << endl;
	for (int j = 0; j < n; j++) {
		if (s==ticket[j].car.end_station) {
			cout << j+1 << "\t" << ticket[j].car.hour << ":" << ticket[j].car.minute << "\t" << ticket[j].car.start_station << "\t" << ticket[j].car.end_station << "\t" << ticket[j].car.runtime << "\t" << ticket[j].car.busload << "\t" << ticket[j].car.ys << endl;
		}
	}
}
//读取存储数据
void read() {
	ifstream file("数据.txt", ios_base::in);
	while (!file.eof()) {
		file >> ticket[n].car.hour;
		file >> ticket[n].car.minute;
		file >> ticket[n].car.start_station;
		file >> ticket[n].car.end_station;
		file >> ticket[n].car.runtime;
		file >> ticket[n].car.busload;
		file >> ticket[n].car.ys;
		n++;
	}
	file.close();
}
//售票
void Sys::sp() {
	int a;
	cout << "输入售票班次号:";
	cin >> a;
	time(&nowtime);
	tm p;//转化为本地时间的tm结构
	localtime_s(&p, &nowtime);
	int flag = 0;
	if (ticket[a - 1].car.ys < ticket[a - 1].car.busload) {
		if (ticket[a - 1].car.hour > p.tm_hour) {
			flag = 1;
		}
	}
	else {
		if (ticket[a - 1].car.hour == p.tm_hour && ticket[a - 1].car.minute > p.tm_min) {
			flag = 1;
		}
	}
	if (flag == 1) {
		cout << "售票成功" << endl;
		ticket[a - 1].car.ys++;
	}
	else {
		cout << "票已售完" << endl;
	}
}
//退票
void Sys::tp() {
	int a;
	cout << "退票车次:";
	cin >> a;
	time(&nowtime);
	tm p;//转化为本地时间的tm结构
	localtime_s(&p, &nowtime);
	int flag = 0;
	if (ticket[a - 1].car.hour > p.tm_hour) {
		flag = 1;
	}
	else {
		if (ticket[a - 1].car.hour == p.tm_hour && ticket[a - 1].car.minute > p.tm_min) {
			flag = 1;
		}
	}
	if (flag == 1) {
		cout << "退票成功" << endl;
		ticket[a - 1].car.ys--;
	}
	else {
		cout << "退票失败" << endl;
	}
}
点击查看代码
#include "CarSys.h"
#include <iostream>
#include <ctime>
void menu() {
	cout << "~~~~~~~~~~~~~~~~欢迎使用车票管理系统!~~~~~~~~~~~~~~~~" << endl;
	cout << "              =========================" << endl;
	cout << "                  1.录入车票信息        " << endl;
	cout << "                  2.浏览车票信息        " << endl;
	cout << "                  3.查询车票信息        " << endl;
	cout << "                  4.售票                " << endl;
	cout << "                  5.退票                " << endl;
	cout << "                  6.退出系统            " << endl;
}
int main() {
	menu();
	Sys p;
	int m;
	int f;
	int flag = 1;
	while (flag) {
		cout << "\n请选择:";
		cin >> m;
		switch (m)
		{
		case 1:p.input(); break;//录入车票信息
		case 2:p.output(); break;//浏览车票信息
		case 4:p.sp(); break;//售票
		case 5:p.tp(); break;//退票
		case 6:flag=0; break;
		case 3:
			cout << "查询方式(按车次查询输入1,按终点站查询输入2:";
			cin >> f;
			if (f == 1) {
				p.search_train();
			}
			if (f == 2) {
				p.search_station();
			}
		}
	}

	return 0;
}

下周将继续进行c++相关练习

标签:hour,int,car,void,第八,tm,ticket
From: https://www.cnblogs.com/sbc11/p/18378190

相关文章

  • 暑假学习Java第八周
    这个周Java学习了选择循环结构在Java编程语言中,选择结构和循环结构是两种基本的控制结构,用于指导程序的执行流程。选择结构选择结构让程序根据特定条件选择执行不同的代码路径1。if语句:基本形式: if(condition){statements;} if条件成立,则执行花括号内的语句;不成立,则跳......
  • 第八周
    java已学到文件夹。《大道至简》读后感《大道至简》是一本由李尚龙所著的书籍,主要探讨了简约生活和简化思维的哲学。书中通过深入浅出的语言,阐述了简约不仅是一种生活方式,更是一种智慧和力量的体现。阅读此书后,我对简约的理解有了更深刻的认识,也对如何在复杂的世界中找到简单而......
  • 第八周学习报告
    又经过了一周的学习,今天对本周学习进行总结双列集合双列集合(也称为键值对集合或映射)是一种将键(Key)映射到值(Value)的对象,一个键最多只能映射到最多一个值。map接口Map接口是Java集合框架中的一个重要接口,它定义了将键映射到值的映射。一个映射不能包含重复的键;每个键最多只能映......
  • 第八周进度报告
    这周主要学习了常用API,SimpleDateFormat的应用,以及时间的表示常用APISimpleDateFormat格式化:把时间变成我们喜欢的格式解析:把字符串表示的时间变成Date对象importjava.text.SimpleDateFormat;importjava.util.Date;publicstaticvoidmain(String[]args)throw......
  • 学习Java的第八周
    随着24年暑假的结束,第八周的Java学习也结束了,本周主要学习了字符串,包括API简介(提供各种功能的可以直接使用的类),字符串的概述、构造实现(创建String对象的两种方式,它们的不同点)、内存分析(两种定义方式各自的内存原理)、字符串比较方法(equals和equalsIgnoreCase),以及一些简单的练习(用户......
  • 【IEEE出版】第八届电气、机械与计算机工程国际学术会议(ICEMCE 2024,10月25-27)
    由西京学院主办,AEIC学术交流中心协办,中国科学技术大学、深圳大学、浙江工业大学等校联合支持的第八届电气、机械与计算机工程国际学术会议(ICEMCE2024)将于2024年10月25日至27日在西安举办。本次会议主要围绕“电气”、"机械”和“计算机”三大工程领域展开研讨,为来自国内......
  • 集合及数据结构第八节(上)————栈(Stack)、栈的模拟实现和应用
    系列文章目录集合及数据结构第八节(上)————栈(Stack)、栈的模拟实现和应用栈(Stack)、栈的模拟实现和应用(上)栈的概念栈的使用栈的模拟实现栈的应用场景栈、虚拟机栈、栈帧的概念区分文章目录系列文章目录集合及数据结构第八节(上)————栈(Stack)、栈的模拟实现和应用......
  • 【现代通信技术】第八章 SDH技术
    一、传送网与SDH概述    准同步数字体系和同步数字体系是两种先后出现的两种通信传送技术。在通信早期,光纤通信技术出现之前,我们的传输系统主要采用的是电缆,电缆的带宽比较小,通信速率就比较低,与之对应的是准同步数字体系;后来随着光纤技术的发展,带宽得到了极大的扩展,......
  • java学习记录第八周
    在Java中,字符串是通过`String`类来表示的,`String`类是不可变的,这意味着一旦一个字符串被创建,它的值就不能被改变。字符串的创建字符串可以通过以下两种方式创建:使用字符串字面量:Stringstr1="Hello";使用new关键字:Stringstr2=newString("Hello");使用字符串字面量......
  • 学习Java第八周
    子类只能从被扩展的父类获得成员变量、方法和内部类(包括内部接口、枚举),不能获得构造器和初始化块。2.Java类只能有一个直接父类,实际上,Java类可以有无限多个间接父类。3.如果定义一个Java类时并未显式指定这个类的直接父类,则这个类默认扩展java.lang.Object类4.super限定public......