一、课题内容和要求
旅游线路管理系统
问题描述西安壶口瀑布最佳旅游时间:
旅游越来越成为人们生活的重要组成部分,请你为某旅行社设计一款实用旅游线路管理软件,方便旅行社的业务管理和推广。该软件应具有客户登记、线路匹配、盈利统计等功能。
通过此课题,熟练掌握文件、数组、指针的各种操作,以及些算法思想的应用。
功能要求:
(1)旅游管理系统信息应包括基本信息(根据实际情况):旅行社信息,线路信息,员工信息等; (2)需要输入口令进入旅游管理系统;
(3)实现所有相关信息的录入和浏览;
(4)业务管理功能:业务登记,线路匹配,业务结算等;
(5)信息查询功能:线路信息查询、人员信息查询、业务登记查询、确认出游查询、业务结算查询、各类线路的需求状况等; (6)统计分析功能:登记业务汇总表、确认出游汇总表、业务结算汇总表、阶段结算统计等;
(7)用不同的排序算法,根据不同条件(线路、目的地、出行人数等)进行排序,显示相关信息:
(8)统计某时间段内的销售业绩,统计收入。
(9)将本系统的所有相关信息内容存为文件。
选做要求:
(1)销售情况统计与分析,产生报表并打印;
(2)客户满意度调查,并将调查结果进行反馈;
(3)如果有更好的、更合理功能,可自加。
其他要求:
(1)界面美观,交互方便,实用性强。
(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途:关键的语句段要求有注释解释。武汉国旅旅游网
(3)程序的层次清晰,可读性强。
(4)变量、函数命名符合规范。
(5)如有可能,可使用MFC 等开发工具,实现彩或图形操作界面。
二、需求分析
旅游线路管理系统的功能框架图如图1所示。
图1 功能框架图
(1)提供可操作的主菜单:输出各菜单,用于显示以从文件中加载的总客户信息和若干个可选的功能选项。根据客户输入的选项来运行不同的功能,运行不同的函数。
(2)基础信息查询:通过调用文件,查询旅行社的基本信息。
(3)业务管理:调用结构体,有三个功能,业务登记是将需要输入的信息写入结构体并写入文件,线路匹配是根据选择每条线路的用户的人数乘该线路的价格在进行选择,选择出一个收入最高的方案输出,业务结算时将输入的信息进行初步处理。
(4)信息查询:通过调用函数对结构体信息进行处理,输出相应数据。
(5)统计分析:输出相应的表格。
(6)密码函数:将输入的字符转化为“*”。
(7)输入函数:将数据输入结构体。
(8)分析函数:分析那些游客选择了什么服务。
(9)输出函数:将处理好的数据以表格形式输出。
(10)保存函数,将数据保存为文件。
(11)满意度函数:调查用户满意度,并将调查结果进行反馈。
三、概要设计
1 主要存储结构
typedef struct XL //线路结构体
{
int num; //线路号
char mdd[LEN1]; //目的地
int pay; //费用
char ms[LEN2]; //描述
float myd; //满意度
岳西人才网}XL;
typedef struct Date //时间结构体
{
int year; //年
int month; //月
int day; //日
}Date;
typedef struct RY //人员结构体
{
char name[LEN1];//姓名
int num; //人数
int xl; //出行线路
char tel[11]; //
int ack; //确认出游
Date time; //结算时间
int my; //满意度
}RY;
typedef struct JS
{
int num; //线路号
int pay; //收入
int renshu; //人数
char mdd[LEN1]; //目的地
Date time; //结算时间
char tel[LEN1]; //
char name[LEN1];//姓名最新疫情通报
}JS;
2 主要函数流程
(1)写入函数:j为用户组数,通过for循环控制输入游客组数,并将用户数据录入人员结构体数组同时将数据写入文件,如图2所示。
图2 写入函数
(2)线路查询函数:i为输入的查询线路号,要求1<= i <=线路总数,遍历所有线路,如果线路k的线路号为i,输出线路k的信息,如图3所示。
图3 线路查询函数
北京密云清凉谷风景区
(3)确认出游函数:i为用户,遍历所有用户,如果用户i的确认出游(ack)值为1,则确认出游人数num加一,同时输出用户i的信息,最后再输出共有多少人(num)确认出游,如图4所示。
图4 确认出游函数
N
N
Y
(4)线路需求状况函数:i为线路号,j为用户,遍历所有线路,再遍历所有用户,如果用户j选择i号线路,选择该线路的人数(num)加一,最后输出每条线路有多少人选,如图5所示。图5 线路需求状况
四、源程序代码
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>
#include <windows.h>
#define LEN1 20 //姓名、性别、ID、电话号码和密码最大字符数
#define LEN2 2000 //路线描述最大字符数
#define N1 50 //路线种数最大值
#define N2 1000 //业务总数最大值
#define S system("pause")
#define Q system("cls")
void welcome(); //欢迎界面
void DL(); //登录函数
void menu(); //主菜单
void Base_inf(); //基本信息菜单
void Manage(); //业务管理菜单
void Search(); //信息查询菜单
void Statis(); //统计分析菜单
void Myd(); //满意度菜单
void over(); //退出界面
void find_LXS(); //旅行社信息
void find_XL(); //线路信息
void find_YG(); //员工信息
void manage_deng();//业务登记
void manage_pi(); //线路匹配
void manage_jie(); //业务结算
void line_in(); //线路信息录入
void search_xl(); //线路信息查询
void search_ry(); //人员信息查询
void search_ack(); //确认出游查询
void search_xq(); //各类线路需求状况
void search_yw(); //业务结算
void statis_den(); //业务登记汇总表
void statis_chu(); //确认出游汇总表
void statis_jie(); //业务结算汇总表
void statis_qi(); //阶段结算统计
void fankui(); //满意度调查
void fkjg(); //满意度反馈
void scanf_ry(); //人员信息录入
void back(); //返回
//void In();
typedef struct XL //线路结构体
{
int num; //线路号
char mdd[LEN1]; //目的地
int pay; //费用
char ms[LEN2]; //描述
float myd; //满意度
}XL;
typedef struct Date //时间结构体
{
int year; //年
int month; //月
int day; //日
颐和园旅游攻略路线图}Date;
typedef struct RY //人员结构体
{
char name[LEN1];//姓名
int num; //人数
int xl; //出行线路
char tel[11]; //
int ack; //确认出游
Date time; //结算时间
int my; //满意度
}RY;
typedef struct JS
{
int num; //线路号
int pay; //收入
int renshu; //人数
char mdd[LEN1]; //目的地
Date time; //结算时间
char tel[LEN1]; //
char name[LEN1];//姓名
}JS;
int k=1,m=1,b=1,luxianshu,yewushu,rynum; //定义全局变量
int p=0,q=0;
int rynum; //用户组数
rynum=10; //用户组数文件中的信息
XL line[LEN1]; //线路结构体数组
RY ry[LEN1]; //人员结构体数组
Date sj[LEN1]; //时间结构体数组
JS jies[LEN1]; //结算信息结构体数组
int main() //主函数
{
welcome();
system("color 07"); //设置颜