Java学习第八周

include

include

include

include

include

using namespace std;
time_t t=time(NULL);//设置当前时间
static int n=0;//总车次
void menu();
class bus //车票车次类
{
public:
int hour; //发车时间(时)
int minute; //发车时间(分)
char start_station[20]; //起始站
char end_station[20]; //终点站
double runtime; //行车时间
int busload; //载客量
int ys; //已售票
};
class sy //管理系统类
{
private:
bus bs;
public:
void input();//录入车次信息
void browse();//浏览车次信息
void search_train();//按车次查询
void search_station();//按终点站查询
void sp();//售票
void tp();//退票
void display(int a);//显示各车次信息
friend void save();//保存数据
friend void read();//初始化函数,读取"数据.txt"的数据
};
sy ticket[1000];
/* 将车次信息存储在文本文件数据.txt中 /
void save()
{
ofstream file("数据.txt",ios_base::out);
int i;
for(i=0;i<n;i++)
{
file<<i+1<<" ";
file<<ticket[i].bs.hour<<" ";
file<<ticket[i].bs.minute<<" ";
file<<ticket[i].bs.start_station<<" ";
file<<ticket[i].bs.end_station<<" ";
file<<ticket[i].bs.runtime<<" ";
file<<ticket[i].bs.busload<<" ";
file<<ticket[i].bs.ys<<endl;
}
file.close();
cout<<"信息已存入文件"<<endl;
}
/
录入车次信息/
void sy::input()
{
cin>>ticket[n].bs.hour>>ticket[n].bs.minute;
cin>>ticket[n].bs.start_station>>ticket[n].bs.end_station;
cin>>ticket[n].bs.runtime>>ticket[n].bs.busload>>ticket[n].bs.ys;
n++;
save();
}
/
浏览车次信息 /
void sy::browse()
{
tm
pt=localtime(&t);
cout<<"当前时间: "<<setw(2)<tm_hour<<":";
cout<tm_min<<endl;
cout<<"车次信息:"<<endl;
cout<<"班次号\t"<<"发车时间 "<<"起始站 "<<"终点站 "<<"行车时间 "<<"载客量 "<<"已售票 "<<"状态"<<endl;
int j;
for(j=0;j<n;j++)
{
ticket[j].display(j+1);
cout<<" ";
if(ticket[j].bs.hour< pt->tm_hour){
cout<<"此班已发出"<<endl;
}else{
if (ticket[j].bs.minute<=pt->tm_min&&ticket[j].bs.hourpt->tm_hour){
cout<<"此班已发出"<<endl;
}else{
cout<<"此班未发出"<<endl;
}
}
}
}
/* 显示 */
void sy::display(int a){
cout<<a<<"\t"<<bs.hour<<":";
if(bs.minute
0){
cout<<"00";
}else{
cout<<bs.minute;
}
cout<<"\t "<<" "<<bs.start_station<<"\t"<<" "<<bs.end_station<<" "<<bs.runtime<< " "<<bs.busload<<" "<< bs.ys;
}
/* 按车次查询 /
void sy::search_train(){
int s;
cout<<"输入要查询的车次: ";
cin>>s;
cout<<"班次号\t"<<"发车时间 "<<"起始站 "<<"终点站 "<<"行车时间 "<<"载客量 "<<"已售票"<<endl;
cout<<s<<"\t"<<ticket[s - 1].bs.hour << ":"<<ticket[s - 1].bs.minute<<"\t"<<ticket[s - 1].bs.start_station<<"\t"<<ticket[s - 1].bs.end_station<<"\t"<<ticket[s-1].bs.runtime<<"\t"<<ticket[s-1].bs.busload<<"\t"<<ticket[s-1].bs.ys<<endl;
}
/
按终点站查询 /
void sy::search_station(){
char s[20];
int flag=0;
cout<<"要查询的终点站: ";
cin>>s;
int j;
cout<<"查询结果:" << endl;
cout<<"班次号\t"<<"发车时间 "<<"起始站 "<<"终点站 "<<"行车时间 "<<"载客量 "<<"已售票"<<endl;
for (j=0;j<n;j++){
if(strcmp(s,ticket[j].bs.end_station)==0){
cout<<j+1<<"\t"<<ticket[j].bs.hour<<":"<<ticket[j].bs.minute<<"\t"<<ticket[j].bs.start_station<<"\t"<<ticket[j].bs.end_station<<"\t"<<ticket[j].bs.runtime<<"\t"<<ticket[j].bs.busload<<"\t"<<ticket[j].bs.ys<<endl;
}
}
}
/
初始化函数,从数据.txt中读出信息 /
void read(){
ifstream file("数据.txt",ios_base::in);
while(!file.eof()){
file>>ticket[n].bs.hour;
file>>ticket[n].bs.minute;
file>>ticket[n].bs.start_station;
file>>ticket[n].bs.end_station;
file>>ticket[n].bs.runtime;
file>>ticket[n].bs.busload;
file>>ticket[n].bs.ys;
n++;
}
file.close();
}
/
售票 /
void sy::sp(){
int flag=0;
int a;
cout<<"输入售票班次号: ";
cin>>a;
tm
pt=localtime(&t);
if(ticket[a - 1].bs.ys<ticket[a - 1].bs.busload){
if (ticket[a - 1].bs.hour>pt->tm_hour){
flag=1;
}else{
if(ticket[a-1].bs.hourpt->tm_hour&&ticket[a-1].bs.minute>pt->tm_min){
flag = 1;
}
}
}
if (flag == 1){
cout<<"售票成功"<<endl;
ticket[a-1].bs.ys++;
}else{
cout<<"票已售完"<<endl;
}
}
/* 退票 /
void sy::tp(){
int a;
cout<<"退票的车次: ";
cin>>a;
tm
pt=localtime(&t);
int flag=0;
if(ticket[a-1].bs.hour>pt->tm_hour){
flag = 1;
}else{
if(ticket[a-1].bs.hour
pt->tm_hour&&ticket[a-1].bs.minute>pt->tm_min){
flag=1;
}
}
if (flag==1){
cout<<"退票成功"<<endl;
ticket[a-1].bs.ys--;
}else{
cout<<"退票失败"<<endl;
}
}
/主菜单/
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();
int m;
int f;
int z=1;
sy p;
while(z1){
cout<<"\n请选择: ";
cin>>m;
switch(m){
case 1:p.input();
break;//录入车票信息
case 2:p.browse();
break;//浏览车票信息
case 4:p.sp();
break;//售票
case 5:p.tp();
break;//退票
case 6:z = 0;
break;//退出系统
case 3:
cout<<"查询方式(按车次查询输入1,按终点站查询输入2):";
cin>>f;
if(f
1){
p.search_train();
}
if(f==2){
p.search_station();
}
}
}
return 0;
}
(1)录入车次信息(文本文件保存),可随机地增加班次数据。
(2)浏览车次信息,可显示出所有车次当前状态(如果当前时间
超过了某车次的发车时间,则显示“此班已发出”的信息)。
(3)查询路线:可按车次号查询,可按终点站查询
(4)售票和退票功能:情况A:当查询出已售票数小于额定载量且
当前系统时间小于发车时间时才能售票,自动更新已售票人数;情
况B:退票时,输入退票的车次,当本班车未发出时才能退票,自
动更新已售票人数。
程序要求:
(1)车票的总车次n(n<1000,使用静态数组实现),
(2)定义两个类:管理系统类和车票车次类。
程序所显示的菜单基本内容如下:

 =====================
 1.录入车票信息
2.浏览车票信息
3.查询车票信息
4.售票
5.退票
6.退出系统
请选择
package com.sxt;

public class User {
	int id;
	String name;
	String pwd;
	public User() {
	}
	public User(int id) {
		this.id=id;
	}
	public User(int id,String name) {
		this.id=id;
		this.name=name;
	}
	public User(int id,String name,String pwd) {
		this.id=id;
		this.name=name;
		this.pwd=pwd;
	}
	public static void main(String[] args) {
		User u=new User();
		User u1=new User(1001,"李");
		User u2=new User(1002,"王","123456");
	}
}
posted @   muyuxiaxing  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示