C语言作业旅游线路管理Word格式.docx
- 文档编号:22198132
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:53
- 大小:578.11KB
C语言作业旅游线路管理Word格式.docx
《C语言作业旅游线路管理Word格式.docx》由会员分享,可在线阅读,更多相关《C语言作业旅游线路管理Word格式.docx(53页珍藏版)》请在冰豆网上搜索。
调用结构体,有三个功能,业务登记是将需要输入的信息写入结构体并写入文件,线路匹配是根据选择每条线路的用户的人数乘该线路的价格在进行选择,选择出一个收入最高的方案输出,业务结算时将输入的信息进行初步处理。
(4)信息查询:
通过调用函数对结构体信息进行处理,输出相应数据。
(5)统计分析:
输出相应的表格。
(6)密码函数:
将输入的字符转化为“*”。
(7)输入函数:
将数据输入结构体。
(8)分析函数:
分析那些游客选择了什么服务。
(9)输出函数:
将处理好的数据以表格形式输出。
(10)保存函数,将数据保存为文件。
(11)满意度函数:
调查用户满意度,并将调查结果进行反馈。
三、概要设计
1主要存储结构
typedefstructXL//线路结构体
{
intnum;
//线路号
charmdd[LEN1];
//目的地
intpay;
//费用
charms[LEN2];
//描述
floatmyd;
//满意度
}XL;
typedefstructDate//时间结构体
intyear;
//年
intmonth;
//月
intday;
//日
}Date;
typedefstructRY//人员结构体
charname[LEN1];
//姓名
//人数
intxl;
//出行线路
chartel[11];
//联系方式
intack;
//确认出游
Datetime;
//结算时间
intmy;
}RY;
typedefstructJS
//收入
intrenshu;
chartel[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
Y
(4)线路需求状况函数:
i为线路号,j为用户,遍历所有线路,再遍历所有用户,如果用户j选择i号线路,选择该线路的人数(num)加一,最后输出每条线路有多少人选,如图5所示。
图5线路需求状况
四、源程序代码
#include<
stdio.h>
stdlib.h>
conio.h>
ctype.h>
string.h>
windows.h>
#defineLEN120//姓名、性别、ID、电话号码和密码最大字符数
#defineLEN22000//路线描述最大字符数
#defineN150//路线种数最大值
#defineN21000//业务总数最大值
#defineSsystem("
pause"
)
#defineQsystem("
cls"
voidwelcome();
//欢迎界面
voidDL();
//登录函数
voidmenu();
//主菜单
voidBase_inf();
//基本信息菜单
voidManage();
//业务管理菜单
voidSearch();
//信息查询菜单
voidStatis();
//统计分析菜单
voidMyd();
//满意度菜单
voidover();
//退出界面
voidfind_LXS();
//旅行社信息
voidfind_XL();
//线路信息
voidfind_YG();
//员工信息
voidmanage_deng();
//业务登记
voidmanage_pi();
//线路匹配
voidmanage_jie();
//业务结算
voidline_in();
//线路信息录入
voidsearch_xl();
//线路信息查询
voidsearch_ry();
//人员信息查询
voidsearch_ack();
//确认出游查询
voidsearch_xq();
//各类线路需求状况
voidsearch_yw();
voidstatis_den();
//业务登记汇总表
voidstatis_chu();
//确认出游汇总表
voidstatis_jie();
//业务结算汇总表
voidstatis_qi();
//阶段结算统计
voidfankui();
//满意度调查
voidfkjg();
//满意度反馈
voidscanf_ry();
//人员信息录入
voidback();
//返回
//voidIn();
intk=1,m=1,b=1,luxianshu,yewushu,rynum;
//定义全局变量
intp=0,q=0;
intrynum;
//用户组数
rynum=10;
//用户组数文件中的信息
XLline[LEN1];
//线路结构体数组
RYry[LEN1];
//人员结构体数组
Datesj[LEN1];
//时间结构体数组
JSjies[LEN1];
//结算信息结构体数组
intmain()//主函数
welcome();
system("
color07"
);
//设置颜色
line_in();
DL();
menu();
return0;
}
voidwelcome()//欢迎界面
printf("
\n\n\n\n\n\n"
【】**************************************【】\n"
******************************************\n"
****\n"
**欢迎进入**\n"
**旅行管理系统**\n"
N2);
voidback()//返回函数
\n\n按任意键返回!
"
getch();
voidline_in()//线路信息录入函数
FILE*fp;
inti;
Q;
fp=fopen("
线路信息查询.txt"
"
r"
if(!
fp)
{
printf("
线路信息打开失败"
S;
exit
(1);
}
for(i=0;
i<
3;
i++)//从事先写好的文件读入线路信息
fscanf(fp,"
%d%s%d%s"
&
line[i].num,&
line[i].mdd,&
line[i].pay,&
line[i].ms);
fclose(fp);
线路信息录入完毕\n"
voidDL()//登录函数
while(m)
charpassword[LEN1];
unsignedcharc;
intz=0;
请输入6位密码:
while((c=getch())!
='
\r'
)//getch:
从键盘读入一个字符,不回显在显示器上#include<
{
if(z<
LEN1&
&
isprint(c))//isprint如果c为可打印字符,将返回非0值,否则返回0,头文件#include<
{
password[z++]=c;
putchar('
*'
//显示*号
}
}
putchar('
\n'
password[z]='
\0'
;
m=strcmp(password,"
123456"
//密码
if(m==0)
printf("
登录成功!
\n"
else//密码错误
密码错误!
putchar('
1--------重新输入\n"
2--------退出系统\n"
flushall();
//清空缓存
scanf("
%d"
b);
if(m==0||b==2)
break;
if(b==2)
k=0;
//k=0不执行menu函数,不显示主菜单
voidmenu()//主菜单函数
while(k)
system("
旅游管理系统\n\n"
**************系统主菜单**************\n"
***********----1-基础信息----***********\n"
************----2-业务管理----************\n"
*************----3-信息查询----*************\n"
************----4-统计分析----************\n"
***********---5-客户满意度---***********\n"
**********----6-退出程序----**********\n"
************************************\n"
请输入选项编号(1-6):
scanf("
num);
switch(num)
case1:
Base_inf();
break;
case2:
Manage();
case3:
Search();
case4:
Statis();
case5:
Myd();
case6:
k=0;
over();
case7:
default:
printf("
请在1-6之间选择!
system("
}break;
voidBase_inf()//基础信息菜单函数
intx=0,y=1;
while(y)
基础信息\n"
---------------------------------------------\n"
1-----旅行社信息\n"
2-----线路信息\n"
3-----员工信息\n"
4-----返回上一层\n"
请输入选项编号(1~4):
x);
switch(x)
find_LXS();
find_XL();
find_YG();
y=0;
{
请在1-4之间选择!
voidfind_LXS()//基本信息旅行社信息
char*p="
旅行社信息.txt"
charch;
fp=fopen(p,"
旅行社信息打开失败"
while((ch=fgetc(fp))!
=EOF)//打开文件输出旅行社信息
putchar(ch);
putchar('
back();
voidfind_XL()//基本线路信息
线路信息.txt"
=EOF)//打开文件输出线路信息
voidfind_YG()//基本员工信息
员工信息.txt"
员工信息打开失败"
=EOF)//打开文件输出员工信息
voidManage()//业务管理菜单函数
业务管理\n"
1-----业务登记\n"
2-----线路匹配\n"
3-----业务结算\n"
请输入选项编号(1-4):
manage_deng();
manage_pi();
manage_jie();
voidscanf_ry()//从文件读出登记人员信息(省的一个个输入,麻烦)
intt;
登记业务.txt"
fileeror\n"
for(t=0;
t<
10;
t++)//打开文件录入人员信息
%s%d%d%s%d%d-%d-%d\n"
ry[t].name,&
ry[t].num,&
ry[t].xl,&
ry[t].tel,&
ry[t].ack,&
ry[t].time.year,&
ry[t].time.month,&
ry[t].time.day);
OK"
voidmanage_deng()//业务登记函数
//inta,r;
scanf_ry();
//system("
业务登记.txt"
w"
fileerror\n"
/*printf("
请输入登记组数:
scanf("
r);
rynum=r;
//全局变量登记组数赋值
\n请输入客户的各项信息:
姓名出行人数线路号电话是否确认出游结算时间\n"
(是填1,否填0;
结算时间格式:
2018-6-5(各部分以空格相连)\n"
r;
i++)//录入用户登记信息
a=1;
while(a)
%s%d%d%s%d%d-%d-%d"
ry[i].name,&
ry[i].num,&
ry[i].xl,&
ry[i].tel,&
ry[i].ack,&
ry[i].time.year,&
ry[i].time.month,&
ry[i].time.day);
if(strlen(ry[i].tel)==11&
ry[i].tel[0]=='
1'
ry[i].xl>
=1&
ry[i].xl<
=3)//判断用户输入信息正误(电话、线路号)
a=0;
else
请检查并输入正确的登录信息\n"
}*/
rynum;
t++)//将用户登记的信息写入文件
fprintf(fp,"
ry[t].name,ry[t].num,ry[t].xl,ry[t].tel,ry[t].ack,ry[t].time.year,ry[t].time.month,ry[t].time.day);
录入成功\n"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 作业 旅游 线路 管理