数据库的链接网上一大堆,在这里就不细讲了,注意的是include文件夹和lib文件夹要放到,程序的目录里。

实验内容如下:

按照软件工程的规范,设计并实现一个民航票务管理系统。要求该系统具有票务管

理(录入、修改、删除各航班机票信息)的功能和查询各航班信息的功能,其中票务管理

功能只能由管理员进行。需录入的信息包括(不限于):航班号、起点、终点、日期、

起飞时刻、到达时刻、票价、折扣票数、剩余座位数、航班所属航空公司。系统界面

要求美观、简捷,操作结果要准确。

我们需要在mysql里准备2个表格和内容

create table flight_information(

id int primary key,

f_id varchar(10),      -- 航班号

f_start varchar(10),     -- 起点

f_end varchar(10),       -- 终点

f_date date,            -- 日期

f_off_time time,       -- 起飞时刻

f_reach_time time,         -- 到达时刻

f_price double,          -- 票价

f_discount_num int,        -- 折扣票数

f_remaining_seat int,     -- 剩余座位数

f_name varchar(10)        -- 航班所属航空公司

);

create table admin(

user varchar(10),

password varchar(10)

);

数据表格建议准备2个其中一个进行测试,另一个进行最后的测试

基于android网上机票管理系统源码 机票管理系统数据库_c++

 

基于android网上机票管理系统源码 机票管理系统数据库_sql_02

#include <stdio.h>
#include <iostream>
#include "mysql.h"
#include<string>
using namespace std;

class mysql_f
{
public:
	MYSQL mysql;
	MYSQL_RES* res;
	MYSQL_ROW row;
	int id, f_discount_num, f_remaining_seat;
	string f_id, f_start, f_end, f_date, f_off_time, f_reach_time, f_name, sql;
	double f_price;

	/*
	id int primary key,
	f_id varchar(20),      -- 航班号
	f_start varchar(10),     -- 起点
	f_end varchar(10),       -- 终点
	f_date date,            -- 日期
	f_off_time time,       -- 起飞时刻
	f_reach_time time,         -- 到达时刻
	f_price double,          -- 票价
	f_discount_num int,        -- 折扣票数
	f_remaining_seat int,     -- 剩余座位数
	f_name varchar(10)        -- 航班所属航空公司
	*/
	void join_mysql()//链接数据库
	{
		mysql_init(&mysql);
		mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");
		//第二个参数为主机地址localhost,第三个参数为用户名
		//第四个参数为用户密码,第五个参数为连接的数据库
		//第六个参数为MySQL的端口号3306
		if (mysql_real_connect(&mysql, "localhost", "root", "568301","test_03", 3306, NULL, 0) == NULL)
		{
			cout << (mysql_error(&mysql));
		}		
	}

	void date_init()
	{
		cout << "请输入主键id" << endl;
		cin >> id;
		cout << "请输入航班号" << endl;
		cin >> f_id;
		cout << "请输入起点" << endl;
		cin >> f_start;
		cout << "请输入终点" << endl;
		cin >> f_end;
		cout << "请输入起飞日期" << endl;
		cin >> f_date;
		cout << "请输入起飞时刻" << endl;
		cin >> f_off_time;
		cout << "请输入到达时刻" << endl;
		cin >> f_reach_time;
		cout << "请输入票价" << endl;
		cin >> f_price;
		cout << "请输入折扣票数" << endl;
		cin >> f_discount_num;
		cout << "请输入剩余座位" << endl;
		cin >> f_remaining_seat;
		cout << "请输入所属航空公司" << endl;
		cin >> f_name;	
		
	}

	void sql_init()
	{
		sql = "";
		sql += "("; 
		sql += to_string(id);
		sql += ",";
		sql += f_id;
		sql += ",";
		sql += f_start;
		sql += ",";
		sql += f_end;
		sql += ",";
		sql += f_date;
		sql += ",";
		sql += f_off_time;
		sql += ",";
		sql += f_reach_time;
		sql += ",";
		sql += to_string(f_price);
		sql += ",";
		sql += to_string(f_discount_num);
		sql += ",";
		sql += to_string(f_remaining_seat);
		sql += ",";
		sql += f_name;
		sql += ");";
	}

	//查询数据库
	void inquire_mysql()
	{		
		mysql_query(&mysql, "select * from test_03.flight_information");
		res = mysql_store_result(&mysql);
		//显示数据
		//给ROW赋值,判断ROW是否为空,不为空就打印数据。
		cout << "id\t" << "f_id\t" << "f_start\t" << "f_end\t\t" << "f_date\t\t" << "f_off_time\t" << "f_reach_time\t" << "f_price\t" << "f_remaining_seat\t" << "f_name\t" << endl;
		while (row = mysql_fetch_row(res))
		{
			printf("%s\t", row[0]);
			printf("%s\t", row[1]);
			printf("%s\t", row[2]);
			printf("%s\t", row[4]);
			printf("%s\t", row[5]);
			printf("%s\t", row[6]);
			printf("%s\t\t", row[7]);
			printf("%s\t\t", row[8]);
			printf("%s\t\t", row[9]);
			printf("%s\t", row[10]);
			cout << endl;
		}
	}

	bool authentication()//验证身份
	{
		string user, password, user1, password1;
		cout << "输入管理员账号:" << endl;
		cin >> user;
		cout << "输入密码:" << endl;
		cin >> password;
		mysql_query(&mysql, "select * from test_03.admin");
		res = mysql_store_result(&mysql);		
		row = mysql_fetch_row(res);
		user1 = row[0];
		password1 = row[1];
		if (user1 == user && password == password1)
		{
			cout << "验证通过" << endl;
		}
		else
		{
			cout << "验证失败" << endl;
			return false;
		}
		return true;
	}

	void entering_f()//录入航班
	{
		if (authentication())
		{
			date_init();
			sql_init();
			sql = "insert into test_03.flight_information values" + sql;
			const char* char_sql = sql.data();
			if (mysql_query(&mysql, char_sql)) // 执行SQL语句
			{
				cout << "插入失败:" << mysql_error(&mysql) << endl;
			}
			else
			{
				cout << "插入成功..." << endl;
			}
			cout << "录入新航班之后的航班信息" << endl;
			inquire_mysql();
		}
		
	}

	void alter_f()//修改航班
	{
		if (authentication())
		{

			cout << "输入主键id" << endl;
			cin >> id;
			cout << "请输入起飞日期" << endl;
			cin >> f_date;
			cout << "请输入起飞时刻" << endl;
			cin >> f_off_time;
			cout << "请输入到达时刻" << endl;
			cin >> f_reach_time;
			cout << "请输入票价" << endl;
			cin >> f_price;
			cout << "请输入折扣票数" << endl;
			cin >> f_discount_num;
			cout << "请输入剩余座位" << endl;
			cin >> f_remaining_seat;

			sql += "f_date = ";
			sql += f_date;
			sql += ", f_off_time = ";
			sql += f_off_time;
			sql += ", f_reach_time = ";
			sql += f_reach_time;
			sql += ", f_price = ";
			sql += to_string(f_price);
			sql += ", f_discount_num = ";
			sql += to_string(f_discount_num);
			sql += ", f_remaining_seat = ";
			sql += to_string(f_remaining_seat);
			sql = "update flight_information set " + sql + " where id = " + to_string(id) + ";";
			const char* char_sql = sql.data();
			if (mysql_query(&mysql, char_sql)) // 执行SQL语句
			{
				cout << "修改失败:" << mysql_error(&mysql) << endl;
			}
			else
			{
				cout << "修改成功..." << endl;
			}
			cout << "修改之后的航班信息" << endl;
			inquire_mysql();
		}
		
	}
	
	void delete_f()//删除航班
	{
		if (authentication())
		{
			cout << "输入需要删除的主键id" << endl;
			cin >> id;
			sql += "delete from flight_information where id = " + to_string(id) + ";";
			const char* char_sql = sql.data();
			if (mysql_query(&mysql, char_sql)) // 执行SQL语句
			{
				cout << "删除失败:" << mysql_error(&mysql) << endl;
			}
			else
			{
				cout << "删除成功..." << endl;

			}	
			cout << "删除之后的航班信息" << endl;
			inquire_mysql();
		}
		
	}

	void delete_mysql()//释放资源
	{
		//释放结果集
		mysql_free_result(res);
		//关闭数据库
		mysql_close(&mysql);
	}

	void menu()
	{		
		cout << "无需登陆" << endl;
		cout << "1.查询航班信息" << endl;
		cout << "需要登陆" << endl;
		cout << "2.录入航班信息" << endl;
		cout << "3.修改航班信息" << endl;
		cout << "4.删除航班信息" << endl;
		cout << "0.退出" << endl;
	}

};

int main()
{
	mysql_f ms;
	ms.join_mysql();

	int select = 0;
	cout << "请输入你要进行的操作" << endl;
	while (1)
	{
		ms.menu();
		cin >> select;
		switch (select)
		{
		case 1:
			ms.inquire_mysql();
			system("pause");
			system("cls");
			cout << "请输入你要进行的操作" << endl;
			break;
		case 2:
			ms.entering_f();
			system("pause");
			system("cls");
			cout << "请输入你要进行的操作" << endl;
			break;
		case 3:
			ms.alter_f();
			system("pause");
			system("cls");
			cout << "请输入你要进行的操作" << endl;
			break;
		case 4:
			ms.delete_f();
			system("pause");
			system("cls");
			cout << "请输入你要进行的操作" << endl;
			break;
		case 0:
			exit(0);
			break;
		default:
			break;
		}		
	}
	ms.delete_mysql();
	system("pause");
	return 0;
}

基于android网上机票管理系统源码 机票管理系统数据库_sql_03

 

基于android网上机票管理系统源码 机票管理系统数据库_数据库_04

 

基于android网上机票管理系统源码 机票管理系统数据库_c++_05

 

基于android网上机票管理系统源码 机票管理系统数据库_sql_06

 

基于android网上机票管理系统源码 机票管理系统数据库_mysql_07

基于android网上机票管理系统源码 机票管理系统数据库_mysql_08

 本次实验仍有需要不足的地方,还望读者,有自己的想法。