亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? b06020422.cpp

?? 火車售票系統 適合課程設計 應對 學校 一般軟件設計
?? CPP
字號:
#include<iostream.h>
#include<fstream.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>

class train             //定義關于班次信息的類
{
private:

    int num;	
    int  hour,minute;
	char *start;
	char *destination;
	float totaltime;
	int load;
    int surplus;
	char *state;



public:

	train(int n,int h,int m,char *sh,char *zh,float r,int z,int y=30)
		//構造函數
	{

		hour=h;
		minute=m;
		num=n;
		start=new char[strlen(sh)+1];
		strcpy(start,sh);
		destination=new char[strlen(zh)+1];
		strcpy(destination,zh);
		totaltime=r;
		load=z;
		surplus=y;
    	state=new char[10];
		state="可售";

	}

    void copy(int n,int h,int m,char *sh,char *zh,float r,int z,int y=30)
//函數功能:將變量賦值于對象
	{
		hour=h;
		minute=m;
		num=n;
		start=new char[strlen(sh)+1];
		strcpy(start,sh);
		destination=new char[strlen(zh)+1];
		strcpy(destination,zh);
		totaltime=r;
		load=z;
		surplus=y;
        state=new char[10];
        state="可售";

		struct tm *now;   //獲取系統時間
		time_t t;
		t=time(NULL);
		now=localtime(&t);
		if(now->tm_hour>h)    //將系統時間與班次信息時間比較,確定列車狀態
		{
			state="已發出";
		    if((now->tm_hour=h)&&(now->tm_min>m))
	           state="已發出";
			
		}

	}

	train()       //重載無參構造函數
	{}


	~train()     //析構函數
	{

		delete []start;
		delete []destination;
	}

	int getnum()    //獲得私有成員num
	{
		return num;   
	}

	char *getdestination()     //獲得私有成員destination
	{    return destination;
	}

	void print()    //函數功能:輸出班次信息
	{

		cout<<endl;
		cout<<"班次"<<'\t'<<"出發時間"<<"  "<<"始發站"<<"  "<<"終點站"<<"  "<<"行車時間(小時)"<<"  "<<"載客量"<<"  "<<"剩余票數"<<"  "<<"車票現狀";

		cout<<endl;
		cout<<endl;
		cout<<num<<'\t'<<hour<<"時"<<minute<<"分"<<"  "<<start<<"  "<<destination<<"  "<<totaltime<<'\t'<<'\t'<<"  "<<load<<"      "<<surplus<<"        "<<state<<endl;
		cout<<endl;

		cout<<"按任意鍵,擊回車繼續"<<endl;
		char ch;
		cin>>ch;

		cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;


	}
	void record()     //函數功能:將班次信息寫入二進制文件
	{
		ofstream fout("test.dat",ios::app);

		if(!fout)    //確認打開文件成功 
		{
			cout<<"文件打開失敗!"<<endl;
		}
		else
		{
    	fout.write((char *)&num,sizeof(int));
		fout.write((char *)&hour,sizeof(int));
		fout.write((char *)&minute,sizeof(int));
		fout.write(start,10);
		fout.write(destination,10);
    	fout.write((char *)&totaltime,5);
		fout.write((char *)&load,sizeof(int));
		fout.write((char *)&surplus,sizeof(int));
		fout.close();
		}
	}

};

//函數功能:顯示菜單,選擇
//函數返回值:從輸入設備獲得的一個字符

char menu()
{

	cout<<'\t'<<'\t'<<"******** 歡迎使用票務信息系統 V1.0********"<<endl; 

	cout<<endl;
	cout<<endl;

	cout<<'\t'<<'\t'<<'\t'<<"* 1.  錄入班次信息 "<<endl;
	cout<<endl;
	cout<<'\t'<<'\t'<<'\t'<<"* 2.  瀏覽班次信息"<<endl;
	cout<<endl;
	cout<<'\t'<<'\t'<<'\t'<<"* 3.  購票 "<<endl;
	cout<<endl;
	cout<<'\t'<<'\t'<<'\t'<<"* 4.  退票 "<<endl;
	cout<<endl;
	cout<<'\t'<<'\t'<<'\t'<<"* 5.  查詢班次信息 "<<endl;
	cout<<endl;

	cout<<'\t'<<'\t'<<'\t'<<"* 6.  版本信息"<<endl;
	cout<<endl;
	cout<<'\t'<<'\t'<<'\t'<<"* 7.  使用說明"<<endl;
	cout<<endl;
	cout<<'\t'<<'\t'<<'\t'<<"* 8.  退出 "<<endl;

	char c;
	cout<<"請選擇 :"<<endl;
	cin>>c;

	cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
	return c;
}
//函數功能:將從輸入設備獲得的信息,賦值于對象,并寫入文件

int write()
{   
	cout<<"錄入班次信息"<<endl;
	cout<<endl;
	cout<<" 始發站 :"<<endl;
	char *sh;
	sh=new char[10];
	cin>>sh;
	cout<<"終點站 :"<<endl;
	char *zh;
    zh=new char[10];
    cin>>zh;
    cout<<"班次 :"<<endl;
	int n;
	cin>>n;
	cout<<"行車時間 :"<<endl;
	float r;
	cin>>r;
	cout<<"載客量 :"<<endl;
	int z;
	cin>>z;
	cout<<"發車時間 (小時):"<<endl;
	int h;
	cin>>h;
	cout<<"發車時間 (分鐘):"<<endl;
	int m;
	cin>>m;
	train A(n,h,m,sh,zh,r,z);

	A.print();

	cout<<"確認輸入(Y)?"<<endl;    //核實并確認輸入
	char a;
	cin>>a;
	if(a=='Y'||a=='y')
	{
	    A.record();
        return 0;
	}
	else
		return 0;

}
//函數功能:從二進制文件中獲取班次信息,存入對象數組 

int read()
{   ifstream fin("test.dat");

    train C[9];    //定義對象數組
    int num,hour,minute,load,surplus;
	float totaltime;
    char *start;
    start=new char[10];
	char *destination;
    destination=new char[10];

	for(int i=0;i<9;i++)
	{
		fin.read((char *)&num,sizeof(int));
		fin.read((char *)&hour,sizeof(int));
		fin.read((char *)&minute,sizeof(int));
		fin.read(start,10);
		fin.read(destination,10);
		fin.read((char *)&totaltime,5);
		fin.read((char *)&load,sizeof(int));
    	fin.read((char *)&surplus,sizeof(int));
		C[i].copy(num,hour,minute,start,destination,totaltime,load,surplus);
		C[i].print();
	}
	
	fin.close();	
	return 0;
}

int scan()
{    read();
     return 0;
}
//函數功能:介紹版本信息

void information()

{
	cout<<"車票信息管理系統"<<endl;
	cout<<"版本:V1.0 "<<endl;
	cout<<"作者:陳守寧"<<endl;
	cout<<"6.1"<<endl;
}
//函數功能:從輸入設備獲得所選班次和所需票數,從文件中讀出相關信息,
//進行操作,再寫入文件

void buy()

{
	cout<<"請輸入所選班次:"<<endl;
	int i;
	cin>>i;
	cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`"<<endl;

	fstream fs;
	fs.open("test.dat",ios::in|ios::out);  //以讀寫方式打開文件
	if(!fs)   //確認打開文件成功
	{
		cout<<"文件打開失敗!"<<endl;
	}
	else
	{
		fs.seekg((((i-1)*(5*sizeof(int)+25))+sizeof(int)),ios::beg);
			//設置讀指針
		int h;
		fs.read((char *)&h,sizeof(int));

        fs.seekg((((i-1)*(5*sizeof(int)+25))+2*sizeof(int)),ios::beg);
		//設置讀指針
		int f;
		fs.read((char *)&f,sizeof(int));

		struct tm *now;     //獲取系統時間
		time_t t;
		t=time(NULL);
		now=localtime(&t);
		if(now->tm_hour>h)   //將系統時間與班次信息時間進行比較
		{
			cout<<"列車已發出 !"<<endl;
			if((now->tm_hour=h)&&(now->tm_min>f))
			cout<<"列車已發出!"<<endl;
		}
		else
		{
			int m;
			fs.seekg(((i-1)*(5*sizeof(int)+25)+4*sizeof(int)+25),ios::beg);
			//設置讀指針
    		fs.read((char *)&m,sizeof(int));
			int n;
			cout<<"需購多少張?"<<endl;
			cin>>n;
			m=m-n;
			if(m<0)
			{
			cout<<"余票不足 !"<<endl;
			}
			else
			{
    		fs.seekp(((i-1)*(5*sizeof(int)+25)+4*sizeof(int)+25),ios::beg);
			//設置寫指針
			fs.write((char *)&m,sizeof(int));
			}
		}
		fs.close();
	}

	cout<<"購票結束 !"<<endl;

}

//函數功能:從輸入設備獲得所選班次,從文件中獲得相關信息,
//進行操作,再寫入文件


void reback()
{
	cout<<"請輸入所選班次:"<<endl;
	int i;
	cin>>i;
	cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`"<<endl;

	fstream fs;
	fs.open("test.dat",ios::in|ios::out);

    if(!fs)
	{
		cout<<"文件打開失敗!"<<endl;
	}
	else
	{

		fs.seekg((((i-1)*(5*sizeof(int)+25))+sizeof(int)),ios::beg);
	    int h;
	    fs.read((char *)&h,sizeof(int));

	    fs.seekg((((i-1)*(5*sizeof(int)+25))+2*sizeof(int)),ios::beg);
		int f;
	    fs.read((char *)&f,sizeof(int));

	    struct tm *now;
		time_t t;
		t=time(NULL);
		now=localtime(&t);
		if(now->tm_hour>h)
		{
			cout<<"列車已發出!退票失敗!"<<endl;
			if((now->tm_hour=h)&&(now->tm_min>f))
				cout<<"列車已發出!退票失敗!"<<endl;
		}
		else
		{
			int m;
			fs.seekg(((i-1)*(5*sizeof(int)+25)+4*sizeof(int)+25),ios::beg);
			fs.read((char *)&m,sizeof(int));
			m++;
			fs.seekp(((i-1)*(5*sizeof(int)+25)+4*sizeof(int)+25),ios::beg);
			fs.write((char *)&m,sizeof(int));
		}
		fs.close();
	}
	cout<<"退票結束! "<<endl;
}

//函數功能:介紹使用信息
void explanation()
{
	cout<<"歡迎使用 ****車票信息管理系統 Version1.0 ****"<<endl;
	cout<<endl;
	cout<<"由于作者技術水平淺陋,給您帶來使用上的不便之處,還請海涵。"<<endl;
	cout<<endl;
	cout<<"錄入班次信息需獲得管理員權限!"<<endl;
	cout<<endl;
	cout<<"具體操作請嚴遵屏幕提示信息要求。"<<endl;
	cout<<endl;
	cout<<"輸入信息還請慎重。"<<endl;
	cout<<endl;
	cout<<"感謝您的使用 !"<<endl;
	cout<<endl;
}


//函數功能:查詢相關信息的班次,可按班次或終點站查詢

void search()
{
	train C[9];
	int num,hour,minute,load,surplus;
	float totaltime;
    char *start;
	start=new char[10];
	char *destination;
	destination=new char[10];

	int i;
    ifstream fin("test.dat");
	if(!fin)
	{
		cout<<"文件打開失敗!"<<endl;
	}
	else
	{
	
		for(i=0;i<9;i++)
		{
			fin.read((char *)&num,sizeof(int));
			fin.read((char *)&hour,sizeof(int));
			fin.read((char *)&minute,sizeof(int));
			fin.read(start,10);
			fin.read(destination,10);
			fin.read((char *)&totaltime,5);
			fin.read((char *)&load,sizeof(int));
	    	fin.read((char *)&surplus,sizeof(int));
			C[i].copy(num,hour,minute,start,destination,totaltime,load,surplus);
	
		}

		fin.close();
	}

	cout<<endl;
	cout<<endl;
	//查詢子菜單
	cout<<'\t'<<'\t'<<'\t'<<"****車票查詢****"<<endl;
	cout<<'\t'<<'\t'<<'\t'<<"1 .按班次查詢"<<endl;          
	cout<<'\t'<<'\t'<<'\t'<<"2 .按終點站查詢"<<endl;

	cout<<"您的選擇 :"<<endl;
	char ch;
	cin>>ch;

	switch(ch)
	{
	case'1':
		cout<<"輸入待查班次 :"<<endl;

     	int m;
        cin>>m;
		int flag;
		flag=15;  //標記變量
		
		for(i=0;i<9;i++)
		{
			if(C[i].getnum()==m)
			{
				flag=i;
			}
		}
		cout<<endl;
		if(flag==15)
			cout<<"抱歉,所輸班次不存在!"<<endl;
		else
			C[flag].print();
		break;
	case'2':
		cout<<"輸入待查終點站 :"<<endl;
		char *str;
		str=new char[10];
		cin>>str;
    	int q;   //標記變量
		q=15;

        for(i=0;i<9;i++)
		{
			if(strcmp(C[i].getdestination(),str)==0)
			{
				q=i;
			}
		}

		if(q==15)
			cout<<"抱歉,所輸終點站不存在"<<endl;
		else 
			C[q].print();
     	break;
	default:
		break;
	}

}

main()
{
	char ch,c;

    char password[10]="123";   //設置管理員密碼

	while(1)
	{   
		ch=menu();

		switch(ch)
		{
		case'1':

			cout<<"請輸入管理員口令:"<<endl;
			char  word[10];
			cin>>word;

			if(strcmp(word,password)==0)  //核對口令
				write();
			else
				cout<<"您沒有獲得管理員權限!"<<endl;
			break;
		case'2':scan();
			break;
		case'3':buy();
			break;
		case'4':reback();
			break;
		case'5':search();
			break;
		case'6':information();
			break;
		case'7':explanation();
			break;
		case'8':cout<<"謝謝使用"<<endl;
			exit(0);
			break;
		default:
			break;
		}
		cout<<"\n單擊任意鍵 ,然后擊回車 ,回主菜單 。"<<endl;
		cin>>c;
	}
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本网站在线观看一区二区三区| 欧美日韩国产综合视频在线观看| 日韩西西人体444www| 一区二区免费视频| 欧美三级日韩在线| 亚州成人在线电影| 日韩欧美一级二级三级| 久久国产福利国产秒拍| 久久久久久综合| 成人网男人的天堂| 亚洲久本草在线中文字幕| 欧洲在线/亚洲| 污片在线观看一区二区| 欧美成人a在线| 国产99久久久国产精品| 1024精品合集| 欧美日韩国产首页在线观看| 青青草成人在线观看| 2024国产精品视频| 99久久精品国产导航| 天天av天天翘天天综合网| 欧美电视剧在线观看完整版| 国内精品国产成人国产三级粉色| 国产精品久久久爽爽爽麻豆色哟哟 | 亚洲欧洲精品天堂一级| 色av成人天堂桃色av| 午夜成人免费电影| 久久精品视频一区二区三区| 色综合久久天天| 蜜臀av亚洲一区中文字幕| 中文字幕av免费专区久久| 欧美日韩一二区| 国产成人小视频| 日日摸夜夜添夜夜添国产精品| 日韩视频国产视频| 91污在线观看| 国内成人自拍视频| 一区二区三区日韩精品视频| 亚洲精品在线观| 在线中文字幕不卡| 国产精华液一区二区三区| 亚洲成人你懂的| 国产精品久久久久久户外露出 | 久久久噜噜噜久久人人看| 在线视频国内一区二区| 国产精品综合网| 无码av免费一区二区三区试看| 国产蜜臀av在线一区二区三区| 欧美精品免费视频| www.视频一区| 国产乱国产乱300精品| 丝袜美腿亚洲综合| 亚洲激情中文1区| 中文字幕国产一区二区| 日韩精品一区二区三区蜜臀| 欧美日韩中文字幕一区二区| 国产成人小视频| 国产一区二区福利视频| 日韩精品福利网| 亚洲v精品v日韩v欧美v专区| 亚洲欧美国产三级| 中文字幕av一区二区三区| 久久久精品天堂| 精品美女在线播放| 日韩视频免费观看高清完整版| 欧美色中文字幕| 一本一道波多野结衣一区二区| 粉嫩一区二区三区在线看| 精品一区二区三区视频在线观看| 天涯成人国产亚洲精品一区av| 综合久久久久久| 中文字幕欧美一区| 国产精品网曝门| 国产亚洲精品超碰| 久久午夜电影网| 精品美女一区二区| 亚洲精品一区二区三区99| 日韩免费高清电影| 日韩精品一区二区三区三区免费| 777奇米成人网| 欧美日韩另类一区| 欧美顶级少妇做爰| 欧美中文字幕不卡| 欧美视频中文字幕| 欧美性色综合网| 欧美另类z0zxhd电影| 欧美日韩在线免费视频| 欧美日韩一区二区在线观看视频| 欧美色手机在线观看| 欧美日韩亚洲高清一区二区| 在线精品视频一区二区三四 | 成人免费黄色在线| 不卡的看片网站| 欧美亚洲动漫制服丝袜| 欧美性感一区二区三区| 777欧美精品| 久久久美女艺术照精彩视频福利播放| 久久精品一区二区三区四区| 国产蜜臀97一区二区三区| 中文字幕一区三区| 亚洲成人av中文| 另类小说视频一区二区| 国产精品自在在线| 91在线视频官网| 欧美日本精品一区二区三区| 欧美xingq一区二区| 国产喷白浆一区二区三区| 亚洲精品久久久蜜桃| 日韩福利视频导航| 国产精品自在欧美一区| 欧美最猛性xxxxx直播| 91精品国产丝袜白色高跟鞋| 久久久久国产精品麻豆| 亚洲欧美一区二区三区久本道91| 亚洲福利视频三区| 看片的网站亚洲| 99国产精品视频免费观看| 欧美欧美欧美欧美| 中文字幕第一页久久| 亚洲一二三四在线观看| 国内精品国产三级国产a久久| 99精品国产视频| 欧美不卡一区二区三区| 亚洲色图都市小说| 麻豆精品一区二区av白丝在线| 成人av资源在线| 欧美久久久久中文字幕| 最新国产成人在线观看| 免费视频最近日韩| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 91在线观看成人| 日韩精品在线一区二区| 亚洲免费看黄网站| 国产精品一区三区| 欧美日韩久久久久久| 国产精品剧情在线亚洲| 免费成人av在线| 欧美优质美女网站| 国产精品欧美极品| 美女在线视频一区| 欧美日韩一区二区三区在线看| 国产精品素人一区二区| 久久国产婷婷国产香蕉| 欧美在线制服丝袜| 中文字幕在线视频一区| 韩国成人福利片在线播放| 欧美精品色一区二区三区| 亚洲美女区一区| 懂色av一区二区三区免费看| 日韩一级二级三级| 日韩主播视频在线| 色婷婷久久99综合精品jk白丝| 国产女主播视频一区二区| 青青草成人在线观看| 欧美肥妇毛茸茸| 亚洲午夜av在线| 日本高清不卡视频| 亚洲人成人一区二区在线观看 | 欧美国产激情二区三区| 国产乱码精品一区二区三区五月婷| 在线播放视频一区| 一区二区三区加勒比av| 一本色道a无线码一区v| 亚洲三级在线免费观看| www.99精品| 日韩一区中文字幕| 99久久综合国产精品| 国产精品水嫩水嫩| 成人黄色一级视频| 亚洲视频资源在线| 色综合天天综合给合国产| 一区二区三区精品| 色悠悠亚洲一区二区| 亚洲精品精品亚洲| 欧美日韩一二三区| 日本成人在线网站| 精品少妇一区二区三区在线视频| 男人操女人的视频在线观看欧美| 欧美一级精品在线| 精品一区二区av| 国产丝袜在线精品| 97久久人人超碰| 一区二区三区免费观看| 欧美日韩综合不卡| 久久国产剧场电影| 国产日韩影视精品| 91麻豆文化传媒在线观看| 一区二区久久久久| 秋霞电影网一区二区| 国产女人18毛片水真多成人如厕 | 香蕉乱码成人久久天堂爱免费| 日韩视频在线一区二区| 美女网站色91| 日韩中文字幕亚洲一区二区va在线| 欧美激情在线看| 亚洲精品一区二区三区蜜桃下载 | 久久亚洲精品小早川怜子| 国产成人av一区二区三区在线 | 青青草精品视频| 26uuu亚洲|