《程序设计旅游管理目标系统.doc》由会员分享,可在线阅读,更多相关《程序设计旅游管理目标系统.doc(51页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、/程序设计报告(2015/2016 学年 第 二 学期)题 目:旅游管理系统旅游管理系统 旅游管理系统旅游管理系统一、一、课题内容和要求课题内容和要求旅游管理系统是某旅行社的旅游管理系统,具有排序,查找,计算,显示等功能。通过此课题,熟练账务文件,数组,指针的各种操作,以及一些算法思想的应用。功能要求:旅游管理系统信息应包括:(其中房源和客户的信息应该根据日常情况进行合理设 置) 基础信息:旅行社信息,线路信息,员工信息等 业务管理:业务登记,确认出游,业务结算等 信息查询:线路信息查询、人员信息查询、业务登记查询、确认出游查询、业务结算查 询等统计分析:登记业务汇总表、确认出游汇总表、业务结
2、算汇总表、期间结算统计等。需要实现的功能:1) 用户需要输入口令进入旅游管理系统 2) 实现所有相关信息的建立 3) 计算系统的业务数量,查询各类线路的需求状况 4) 按照线路或者出行人数进行排序,显示相关信息 5) 统计某时间段内的销售业绩,统计收入。 6) 将本系统的所有相关信息内容存为文件。/界面友好,费用的收取应该符合常规。二、二、需求分析需求分析旅游管理系统的功能框架图如图 1 所示。旅游管理系统基础信息业务管理统计分析信息查询旅行社信息员工信息线路信息业务登记业务结算确认出游线路信息查询业务结算查询确认出游查询业务登记查询人员信息查询登记业务总汇表期间结算统计业务结算总汇表确认出游
3、总汇表增加记录删除记录修改记录图 1 功能框架图/(1)提供可操作的主菜单:输出个菜单,用于显示以从文件中加载的总客户信息和若干个可选的功能选项。根据客户输入的选项来运行不同的功能,运行不同的函数。(2)基础信息查询:通过调用文件,查询旅行社的基本信息。(3)业务管理:调用结构体,有三个功能,业务登记是将需要输入的信息写入结构体,确认出游是为确认出游赋值(1 或 0) ,业务结算时将输入的信息进行初步处理。(4)信息查询:通过调用函数对结构体信息进行处理,输出相应数据。(5)统计分析:输出相应的表格。(6)密码函数:将输入的字符转化为“*” 。(7)输入函数:将数据输入结构体。(8)分析函数:
4、分析那些游客选择了什么服务。(9)输出函数:将处理好的数据以表格形式输出。(10)保存函数,将数据保存为文件。(11)处理函数:对结构体的数据进行插入,修改,删除等处理。三、概要设计三、概要设计1 主要结构体struct tourist /定义结构体char name10; /游客姓名int rout; /路线选择char PNum11; /联系方式int acc; /是否住宿int ack; /确认出游;2 主要函数流程图(1) 写入函数:开始输入游客数量 jj20 ?N输入第 i 个游客数据ijYYN输入完成,结束/图 2 写入函数定义 i,j,j 为输入的游客总量,利用 do-while
5、 语句保证输入的值在 0-20 之间,然后通过 for 循环一个个输入每一个游客的信息。(2) 输出登记函数:定义整型 i,字符型 ac,ak,通过 for 循环一个个判断每个游客输出的信息该为 Y(Yes)还是 N(No) 。如果 si.acc=1 即,这个游客的.acc 项为“真”,给这一个字符型 ac 赋值为 Y,如果 si.acc=0,这个游客的.acc 项为“假”,给这个字符型 ac 赋值为 N,字符型 ak 同理,然后在一个循环内利用 printf 函数输出这一个游客的信息,然后跳入下一个循环。总共有 len 个游客。NYi=0Ilen?ac=Yac=Nak=Yak=N开始,调用
6、siSi.acc=1?Si.ack=1?输出第 i 个游客的信息i+结束YYNN/图 3 输出函数(3) 查找游客信息定义字符串 str_a 20,定义整型 i=0,用 scanf 函数输入姓名信息,通过strcmp 函数比较 str_a 20和原结构体中储存的 si.name 的内容,如果相同则输出游客的信息,此时游客的确认出游和是否住宿可以参照上一个函数示例输出为 Y(Yes)和 N(No) ,如果不同则通过 for 循环使 i+,对比下一个 si.name,直到查找到游客的信息。开始,调用 si信息输入姓名输入的字符串和 si.name 相等i+输出改游客的信息。 注:.ack 和.ac
7、c 由 Y/N 输出完成i=0NY/图 4 查找功能(4) 输出路线选择:该函数分为两个部分,一个是统计每条路线有多少人,一个是谁选了这条路线。定义整型 i,j,sum1,sum2,sum3,由 i #include #include #include #include #include #include #include #define MAX_PASSWD_LEN 16 #define NUM 20 #define sizes sizeof (tourist) struct tourist /定义结构体 char name10; int rout; char PNum11; int acc
8、; int ack; ; typedef struct tourist tourist; /结构体名称为 touristvoid insert (tourist s,int i) /插入游客 system(“cls“); printf (“输入增加的游客:n“); scanf(“%s%d%s%d%d“, void change (tourist s,int j) /修改游客 system (“cls“); int i,num=j; char str_a20; printf (“输入需要修改游客的名字:n“); scanf (“%s“,str_a); for (i=0;i20); system(
9、“cls“);printf (“输入登记信息(格式:姓名,路线,联系方式,是否住宿,确认出游.):n“);printf (“路线输入代码 1:50,2:75,3:60.住宿选 1,不住宿选 0n“); for (i=0;ix) printf (“路线一和三收入同样是最高的n“); if (z=x if (x=c if (zx if (xc if (cz void ackput (tourist s,int j) /输出确认出游的游客 int i,num=j; for (i=0;i=1)/打开正常,写入数据for (i=0;i=sizes)memcpy(elsebreak; _lclose(hF
10、ile2);*n=i; return 1 ; int BasicInformation () printf(“ -n“); printf(“ + - +n“); printf(“ + +n“); printf(“ + - +n“); printf(“ + 旅行社信息 +n“); printf(“ + +n“); printf(“ + 请输入1 +n“); printf(“ + +n“); printf(“ + 线路信息 +n“); printf(“ + +n“); printf(“ + 请输入2 +n“); printf(“ + +n“);/printf(“ + 员工信息 +n“); prin
11、tf(“ + +n“); printf(“ + 请输入3 +n“); printf(“ -n“); return 0; int Busisnessmanagement () printf(“ -n“); printf(“ + - +n“); printf(“ + +n“); printf(“ + - +n“); printf(“ + 业务登记 插入记录 +n“); printf(“ + +n“); printf(“ + 请输入1 请输入2 +n“); printf(“ + +n“); printf(“ + +n“); printf(“ + 修改记录 删除记录 +n“); printf(“ +
12、+n“); printf(“ + 请输入3 请输入4 +n“); printf(“ + +n“); printf(“ + +n“); printf(“ + 确定出游 业务结算 +n“); printf(“ + +n“); printf(“ + 请输入5 请输入6 +n“); printf(“ + +n“); printf(“ + +n“); printf(“ -n“); return 0; int Informationconsultation () printf(“ -n“); printf(“ + - +n“); printf(“ + +n“); printf(“ + - +n“); pr
13、intf(“ + 线路信息查询 +n“); printf(“ + +n“); printf(“ + 请输入1 确认出游查讯 +n“); printf(“ + +n“); printf(“ + 人员信息查询 请输入4 +n“); printf(“ + +n“); printf(“ + 请输入2 业务结算查询 +n“); printf(“ + +n“); printf(“ + 业务登记查讯 请输入5 +n“);/printf(“ + +n“); printf(“ + 请输入3 +n“); printf(“ -n“); return 0; int statisticalanalysis () pri
14、ntf(“ -n“); printf(“ + - +n“); printf(“ + +n“); printf(“ + - +n“); printf(“ + 登记业务汇总表 业务结算汇总表 +n“); printf(“ + +n“); printf(“ + 请输入1 请输入3 +n“); printf(“ + +n“); printf(“ + +n“); printf(“ + 确认出游汇总表 期间结算汇总表 +n“); printf(“ + +n“); printf(“ + 请输入2 请输入4 +n“); printf(“ + +n“); printf(“ + +n“); printf(“ +
15、+n“); printf(“ -n“); return 0; void show_welcome(void) printf(“ -n“);printf(“ + +n“); printf(“ +, +n“); printf(“ + +n“);printf(“ + +n“); printf(“ + 田田 田 这里是南邮旅游管理系统 +n“); printf(“ + +n“);printf(“ + 请输入口令(身份证后六位) +n“); printf(“ + /-/- +n“); printf(“ + +n“); printf(“ + - +n“); printf(“ + 基础信息 业务管理 +n“
16、); printf(“ + +n“); printf(“ + 请输入1 请输入2 +n“); printf(“ + +n“); printf(“ + +n“); printf(“ + 信息咨询 统计分析 +n“); printf(“ + +n“); printf(“ + 请输入3 请输入4 +n“); printf(“ + +n“); printf(“ + +n“); printf(“ + 9085 7990 53 +n“); printf(“ -n“); int main () FILE *fp; char ch;/char nh6; tourist sNUM; int m,nn,mm; i
17、nt i=0; int n; char* DataFileName=“D:atourist.dat“; int num_of_tourist; if (0=ReadFromFile(DataFileName, /所有数据区清 0 show_welcome();kaishi:/函数返回位置一 for(i=0;i20); system(“cls“);/printf (“输入登记信息(格式:姓名,路线,联系方式,是否住宿,确认出游.):n“);printf (“路线输入代码 1:50,2:75,3:60.住宿选 1,不住宿选 0n“); for (i=0;ij;i+) printf (“输入第%d 个游客:n“, i+1);scanf(“%s%d%d%d%d“,printf(“%s ,%d ,%d ,%d ,%drn“, printf(“Input is finished.rn“); return j; 而整型明显不能显示 11 位的电话号码,因此后来我们将联系方式定义为字符串,有效地解决了这个问题,如下:struct tourist /定义结构体 char name10; int rout; char PNum11; int acc; int ack; ;scanf(“%s%d%s%d%d“,printf(“%s ,%d ,%s ,%d ,%drn“,
限制150内