旅游资讯管理系统

2024-06-02 21:38
文章标签 管理系统 资讯 旅游

本文主要是介绍旅游资讯管理系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

#include<stdio.h>
#include<stdlib.h>
#include<string.h>struct lvyoujilu
{int id;//编号char anpai[20];//日程安排float price;//费用int dianzan;//点赞数
};char caidan()
{char xuanze;system("cls");printf("a:添加咨讯记录\n");printf("b:查询咨讯记录\n");printf("c:修改咨讯记录\n");printf("d:删除咨讯记录\n");printf("e:点赞咨讯记录\n");printf("q:退出\n");printf("请输入选择:");scanf("%c",&xuanze);return xuanze;
}int tianjia(struct lvyoujilu ly[],int n)
{system("cls");printf("请输入编号:");scanf("%d",&ly[n].id);printf("请输入日程安排:");scanf("%s",ly[n].anpai);printf("请输入费用:");scanf("%f",&ly[n].price);printf("请输入点赞数:");scanf("%d",&ly[n].dianzan);printf("添加成功!\n");system("pause");return n+1;
}void bianhaopaixu(struct lvyoujilu ly[],int n)
{int i,j;struct lvyoujilu temp;for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(ly[i].id>ly[j].id){temp=ly[i];ly[i]=ly[j];ly[j]=temp;}}}
}void dianzanpaixu(struct lvyoujilu ly[],int n)
{int i,j;struct lvyoujilu temp;for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(ly[i].dianzan<ly[j].dianzan){temp=ly[i];ly[i]=ly[j];ly[j]=temp;}}}
}void Print(struct lvyoujilu ly[],int n)
{int i;system("cls");printf("%-10s%-20s%-10s%-10s\n","编号","日程安排","费用","点赞数");for(i=0;i<n;i++){printf("%-10d%-20s%-10.2f%-10d\n",ly[i].id,ly[i].anpai,ly[i].price,ly[i].dianzan);}system("pause");
}void chaxun(struct lvyoujilu ly[],int n)
{int i;int x;system("cls");printf("请输入要查询的编号:");scanf("%d",&x);for(i=0;i<n;i++){if(ly[i].id==x){printf("%-10s%-20s%-10s%-10s\n","编号","日程安排","费用","点赞数");printf("%-10d%-20s%-10.2f%-10d\n",ly[i].id,ly[i].anpai,ly[i].price,ly[i].dianzan);system("pause");return;}}printf("无该编号信息!\n");system("pause");
}void Printmenu(struct lvyoujilu ly[],int n)
{int xuanze;do{system("cls");printf("1:按编号显示\n");printf("2:按点赞数显示\n");printf("3:按编号查询\n");printf("0:返回\n");printf("请输入选择:");scanf("%d",&xuanze);switch(xuanze){case 1:bianhaopaixu(ly,n);Print(ly,n);break;case 2:dianzanpaixu(ly,n);Print(ly,n);break;case 3:chaxun(ly,n);break;}}while(xuanze!=0);
}void xiugai(struct lvyoujilu ly[],int n)
{int i;int x;system("cls");printf("请输入要修改的编号:");scanf("%d",&x);for(i=0;i<n;i++){if(ly[i].id==x){printf("%-10s%-20s%-10s%-10s\n","编号","日程安排","费用","点赞数");printf("%-10d%-20s%-10.2f%-10d\n",ly[i].id,ly[i].anpai,ly[i].price,ly[i].dianzan);printf("请输入编号:");scanf("%d",&ly[i].id);printf("请输入日程安排:");scanf("%s",ly[i].anpai);printf("请输入费用:");scanf("%f",&ly[i].price);printf("请输入点赞数:");scanf("%d",&ly[i].dianzan);printf("修改成功!\n");system("pause");return;}}printf("无该编号信息!\n");system("pause");
}int shanchu(struct lvyoujilu ly[],int n)
{int i,j;int x;system("cls");printf("请输入要删除的编号:");scanf("%d",&x);for(i=0;i<n;i++){if(ly[i].id==x){printf("%-10s%-20s%-10s%-10s\n","编号","日程安排","费用","点赞数");printf("%-10d%-20s%-10.2f%-10d\n",ly[i].id,ly[i].anpai,ly[i].price,ly[i].dianzan);for(j=i;j<n;j++){ly[j]=ly[j+1];}printf("删除成功!\n");system("pause");return n-1;}}printf("无该编号信息!\n");system("pause");return n;
}void dianzan(struct lvyoujilu ly[],int n)
{int i;int x;char name[100];system("cls");printf("请输入要点赞的编号:");scanf("%d",&x);for(i=0;i<n;i++){if(ly[i].id==x){printf("%-10s%-20s%-10s%-10s\n","编号","日程安排","费用","点赞数");printf("%-10d%-20s%-10.2f%-10d\n",ly[i].id,ly[i].anpai,ly[i].price,ly[i].dianzan);printf("请输入点赞人姓名:");scanf("%s",name);ly[i].dianzan++;printf("点赞成功!\n");system("pause");return;}}printf("无该编号信息!\n");system("pause");
}int main()
{char xuanze;struct lvyoujilu ly[100];int n=0;do{xuanze = caidan();switch(xuanze){case 'a':n=tianjia(ly,n);break;case 'b':Printmenu(ly,n);break;case 'c':xiugai(ly,n);break;case 'd':n=shanchu(ly,n);break;case 'e':dianzan(ly,n);break;}}while(xuanze!='q');return 0;
}

报告:
概述或引言:
当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这证实计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理旅游资讯信息而设计的。旅游资讯作为一种信息资源,用户和导游需要经常查看寻找,包含很多的信息数据的管理。现今,有很多地方的旅游业都是初步开始使用,甚至尚未使用计算机进行信息管理。由于数据繁多,容易丢失,且不易查找,总的来说,缺乏系统,规范的信息管理手段。数据处理手工操作,工作量大,出错率高,出错后不易更改。必要建立一个旅游资讯管理系统,使工作规范化,系统化,程序化,避免随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改旅游资讯情况。
本系统基于windows 10操作系统使用Visual c++ 6.0开发。完全采用C语言,且符合C89标准,能够在任何支持C语言的平台编译运行,具有良好的可移植性。
本系统已经实现的功能有:
a.添加旅游资讯记录
b.查询旅游资讯记录
c.修改旅游资讯记录
d.删除旅游资讯记录
e.点赞旅游资讯记录
本系统尚未实现的功能有:
a.将已有的旅游资讯记录保存到文件
b.重新打开程序能够导入之前的记录
c.每人只能点赞一次
运行中,当需要获取用户输入信息时,如果用户输入很长的一段信息,可能会造成数据的溢出,从而导致整个系统的奔溃。也有可能在输入时不符合类型要求,造成程序读取错误,输入缓冲区无法刷新,死循环读取错误的数据。

程序概要设计:
软件概要设计是软件开发期的第一个阶段,也是关系到软件开发成败的关键步骤。准确、完整和规范化的软件需求是软件开发成功的关键。它的重要性在于让用户完全清楚对软件系统的确切要求,它不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作。也就是对目标系统提出完整、准确、清晰、具体的要求。反复的调查和研究,了解数据库的组织的详细情况,了解管理的业务流程等系统需求,它对于设计好概念模型是至关重要的。一个好的管理系统可以将我们的管理员从繁重的工作中解脱出来,使工作更轻松。而需求分析的好坏直接影响到系统设计的好坏。
首先旅游资讯应该包含的项有:该资讯的编号,该资讯的日程安排,所需的费用以及被用户点赞的数量。
在大致确定了数据项之后,可以进行整体流程分析。程序应该能够给用户提供一个菜单,供用户选择需要使用的功能。且菜单应该能够返回用户的选择,以确定进入用户选择的功能。主程序流程图如下图1所示:

图 1 主函数流程图

程序中主要有如下几个函数:
主函数:
控制整个程序的运行流程,是图1的具体实现。
主菜单函数:
供用户选择需要使用的功能。且菜单应该能够返回用户的选择,以确定进入用户选择的功能。
添加旅游资讯记录:
为数据的录入提供了接口,依次获取该资讯的编号,该资讯的日程安排,所需的费用以及被用户点赞的数量。由于记录增加了,所以应该返回一个新的总记录数。
查询旅游资讯记录
查询分为3种不同的查询:
1:按编号大小升序排列
2:按点赞数量降序排列
3:根据记录编号,单独显示
由于记录的数据量庞大,用户想要选择自己需要的记录,所以提供了这三种不同的接口。分别满足用户不同的需求。
修改旅游资讯记录:
由于操作失误或者信息更迭的原因,系统中某些记录的数据失去了准确性,需要进行修改。所以提供了修改函数接口,使用户能够及时的修改记录。
删除旅游资讯记录:
当某些数据被废弃后,应该从系统中舍去。如去年的旅游讯息,放在今年已经过时,失去了时效性,需要从系统中删除。所以提供了删除函数,使得用户能够将不需要的记录从系统中舍去。
点赞旅游资讯记录:
用户根据自己的喜好,可以为某条或者多条旅游信息进行点赞。其他用户可以借此,比较出更受大众喜爱的旅游资讯。

程序详细设计:
确定数据结构:
本系统使用的是顺序表,由于考虑到旅游信息大多数是每天添加以及修改,删除工作并不多,所以使用顺序表,可以方便的查询以及修改添加操作。
旅游资讯记录的定义如下:
struct lvyoujilu
{
int id;//编号
char anpai[20];//日程安排
float price;//费用
int dianzan;//点赞数
};

添加旅游资讯记录:
添加旅游记录时,考虑到顺序表在末尾添加的时间复杂度是O(1),所以具体实现代码如下:
int tianjia(struct lvyoujilu ly[],int n)
{
system(“cls”);
printf(“请输入编号:”);
scanf("%d",&ly[n].id);
printf(“请输入日程安排:”);
scanf("%s",ly[n].anpai);
printf(“请输入费用:”);
scanf("%f",&ly[n].price);
printf(“请输入点赞数:”);
scanf("%d",&ly[n].dianzan);
printf(“添加成功!\n”);
system(“pause”);
return n+1;
}

查询旅游资讯记录:
查询分为3种不同的查询:
1:按编号大小升序排列
2:按点赞数量降序排列
1,2的输出都是全体数据,所不同的是输出的顺序不同,所以在输出之前按功能要求进行排序。分别对编号和点赞量排序后输出,排序使用的是简单选择排序法。具体输出即遍历顺序表输出,具体输出代码如下:
void Print(struct lvyoujilu ly[],int n)
{
int i;
system(“cls”);
printf("%-10s%-20s%-10s%-10s\n",“编号”,“日程安排”,“费用”,“点赞数”);
for(i=0;i<n;i++)
{
printf("%-10d%-20s%-10.2f%-10d\n",ly[i].id,ly[i].anpai,ly[i].price,ly[i].dianzan);
}
system(“pause”);
}
3:根据记录编号,单独显示
单独查询时,需要遍历顺序表,进行一一比较,满足条件则输出,其关键代码如下:
if(ly[i].id==x)
{
printf("%-10s%-20s%-10s%-10s\n",“编号”,“日程安排”,“费用”,“点赞数”); printf("%-10d%-20s%-10.2f%-10d\n",ly[i].id,ly[i].anpai,ly[i].price,ly[i].dianzan);
system(“pause”);
return;
}

修改旅游资讯记录:
修改时,需要遍历顺序表,进行一一比较,满足条件则输出并提示用户重新输入信息,其代码如下:
void xiugai(struct lvyoujilu ly[],int n)
{
int i;
int x;
system(“cls”);
printf(“请输入要修改的编号:”);
scanf("%d",&x);
for(i=0;i<n;i++)
{
if(ly[i].id==x)
{
printf("%-10s%-20s%-10s%-10s\n",“编号”,“日程安排”,“费用”,“点赞数”);
printf("%-10d%-20s%-10.2f%-10d\n",ly[i].id,ly[i].anpai,ly[i].price,ly[i].dianzan);
printf(“请输入编号:”);
scanf("%d",&ly[i].id);
printf(“请输入日程安排:”);
scanf("%s",ly[i].anpai);
printf(“请输入费用:”);
scanf("%f",&ly[i].price);
printf(“请输入点赞数:”);
scanf("%d",&ly[i].dianzan);
printf(“修改成功!\n”);
system(“pause”);
return;
}
}
printf(“无该编号信息!\n”);
system(“pause”);
}

删除旅游资讯记录:
删除时,由于顺序表删除不像链表一样是释放空间,所以必须使用后一个元素,覆盖前一个元素,依次覆盖,最后长度减小1,达到删除的效果。其关键代码如下所示:
for(j=i;j<n;j++)
{
ly[j]=ly[j+1];
}
点赞旅游资讯记录:
遍历查询到要点赞的记录,将其点赞数量在原有的基础上进行加一。其关键代码如下:
if(ly[i].id==x)
{
printf("%-10s%-20s%-10s%-10s\n",“编号”,“日程安排”,“费用”,“点赞数”);
printf("%-10d%-20s%-10.2f%-10d\n",ly[i].id,ly[i].anpai,ly[i].price,ly[i].dianzan);
printf(“请输入点赞人姓名:”);
scanf("%s",name);
ly[i].dianzan++;
printf(“点赞成功!\n”);
system(“pause”);
return;
}

程序使用说明:
首先打开程序,展现给用户的是主菜单,用户根据需要选择相应的功能并进入。主菜单如图2所示:

图2 主菜单

随后选择a向系统中添加若干条旅游资讯记录,其中一条如图3所示:

图3 添加旅游资讯记录

添加旅游资讯记录后,系统已经存在旅游资讯记录,我们进入查询资讯记录选项进行查询刚刚录入的旅游资讯记录是否存在。若存在,则说明程序录入验证成功。选择b,进入查询主菜单,如图4所示:
图4 查询主菜单

查询分为三种情况我们对其一一验证。
1:按编号显示
按编号由小到大排序,然后依次输出,具体操作后的显示如图5:

图5 按编号显示
2:按点赞数显示
按点赞数由大到小排序,然后依次输出,具体操作后的显示如图6:

图6 按点赞数显示

3:按编号查询
可以通过编号单独显示需要的旅游资讯记录,去除其它记录的干扰,其具体操作显示如图7:

图7 按编号查询

修改旅游资讯记录:
通过用户输入的旅游资讯记录编号,定位到具体要修改的旅游资讯记录,并输出已有资讯记录,提示用户输入新数据修改。其具体操作结果如图8:

图8 修改旅游资讯记录

删除旅游资讯记录:
通过用户输入的旅游资讯记录编号,定位到具体要删除的旅游资讯记录,并输出已有资讯记录。系统根据设计中描述的覆盖流程,将记录覆盖达到删除的效果。其具体操作结果如图9:

图9 删除旅游资讯记录

点赞旅游资讯记录:
通过用户输入的旅游资讯记录编号,定位到具体要删除的旅游资讯记录,并输出已有资讯记录。根据找到的记录,对其点赞数量进行加一操作。其具体操作结果如图10:

图10 点赞旅游资讯记录
退出程序:
选择功能q退出,程序将执行退出步骤,界面关闭。

总结:
从系统的需求分析开始,到后来的每一步,都需要围绕着一个整体的思路,一个工程的概念进行,需要逐层的将系统一步步分解,细化。然后,分别实现每一个功能,每一个模块,最后将全部模块整合起来,系统便成型了。在这段时间的软件设计中,遇到了各种各样的问题, 特别是实现。 由于第一次接触相关的数据结构知识,所以使用起来相当的吃力,几乎每一步都可能发生错误。为了解决这样那样的问题,我翻阅了不同的书籍,在网上搜索了大量的资料,一个一个的将问题解决掉。在这期间,无形中锻炼了我分析问题,解决问题的能里,锻炼了我自主学习的能力。

参考文献:
【1】谭浩强, C 程序设计 . 第三版 . 北京:清华大学出版社,2005
【2】谭浩强,C语言程序设计题解与上机指导. 清华大学出版社,2000
【3】陈朔鹰,C语言程序设计基础教程,兵器工业出版社,1994
【4】严蔚敏,数据结构(C语言版),清华大学出版社,2012

这篇关于旅游资讯管理系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1025164

相关文章

在线装修管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,装修队管理,用户管理,装修管理,基础数据管理,论坛管理 前台账户功能包括:系统首页,个人中心,公告信息,论坛,装修,装修队 开发系统:Windows 架构模式:B/S JDK版本:Java JDK1.8 开发工具:IDEA(推荐) 数据库版本: mysql5.7 数据库可视化工具: navicat 服务器:SpringBoot自带 ap

基于Springboot + vue 的抗疫物质管理系统的设计与实现

目录 📚 前言 📑摘要 📑系统流程 📚 系统架构设计 📚 数据库设计 📚 系统功能的具体实现    💬 系统登录注册 系统登录 登录界面   用户添加  💬 抗疫列表展示模块     区域信息管理 添加物资详情 抗疫物资列表展示 抗疫物资申请 抗疫物资审核 ✒️ 源码实现 💖 源码获取 😁 联系方式 📚 前言 📑博客主页:

如何用外呼工具和CRM管理系统形成销售闭环

使用外呼工具和CRM管理系统形成销售闭环是一个系统性的过程,它涉及客户数据的整合、个性化的营销活动、销售与市场活动的协作、顾客行为的追踪与理解以及营销成效的评估与优化等多个环节。 以下是如何将外呼工具和CRM管理系统有效结合以形成销售闭环的步骤: 1. 客户数据的整合与分析    - 外呼工具在与客户进行初步沟通时,会收集到客户的基本信息和初步需求。    - 这些信息随后被输入到CRM管

HTML5文旅文化旅游网站模板源码

文章目录 1.设计来源文旅宣传1.1 登录界面演示1.2 注册界面演示1.3 首页界面演示1.4 文旅之行界面演示1.5 文旅之行文章内容界面演示1.6 关于我们界面演示1.7 文旅博客界面演示1.8 文旅博客文章内容界面演示1.9 联系我们界面演示 2.效果和源码2.1 动态效果2.2 源代码2.3 源码目录 源码下载万套模板,程序开发,在线开发,在线沟通 作者:xcLeigh

摄影约拍管理系统

摘 要 摄影约拍管理系统是一种基于SSM框架的系统,旨在为摄影师和用户提供便捷的约拍服务。本文通过对系统的设计与实现,解决了传统约拍方式中存在的信息不对称、预约流程繁琐等问题。本文介绍了系统的研究背景与意义,分析了国内外发展现状,并介绍了相关技术——Java、SSM框架、JavaScript等,明确了研究内容与创新点,且对设计结构进行了分析。此外,文章通过数据库设计和系统非功能设计,搭建了系统环

爱心商城管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,企业管理,用户管理,论坛管理,商品管理,公告管理,用户捐赠 企业账户功能包括:系统首页,个人中心,商品管理,论坛管理,公告管理,公益企业管理,轮播图信息 开发系统:Windows 架构模式:B/S JDK版本:Java JDK1.8 开发工具:IDEA(推荐) 数据库版本: mysql5.7 数据库可视化工具: navicat 服务器:

SpringBoot2+Vue3开发博客管理系统

项目介绍 博客管理系统,可以帮助使用者管理自己的经验文章、学习心得、知识文章、技术文章,以及对文章进行分类,打标签等功能。便于日后的复习和回忆。 架构介绍 博客管理系统采用前后端分离模式进行开发。前端主要使用技术:Vue3+ElementPlus。后端主要使用技术:SpringBoot2+MyBatisPlus+MySQL8+Redis,使用Minio服务做文件存储。 代码结构 后端代码

基于JSP的“塞纳河畔左岸”的咖啡馆管理系统

开头语: 塞纳河畔左岸的咖啡,我手一杯品尝的你美~ 哎哟,不错哦!我们今天来介绍一下咖啡馆管理系统! 你好呀,我是计算机学长猫哥!如果你对咖啡馆管理系统感兴趣或有相关需求,欢迎联系我,我的联系方式在文末。 开发语言: Java 数据库: MySQL 技术: JSP技术 + Java语言 工具: Eclipse、MySQL 系统展示 首页 管理员功能模块

学校报修管理系统

摘 要 随着社会的发展和技术的进步,学校报修管理系统在学校设备维修工作中扮演着至关重要的角色。该系统的设计和实现对于提高学校设备维修效率、优化资源管理、提升用户体验具有重要意义。本论文基于SpringBoot框架,设计并实现了一套学校报修管理系统。 该系统采用B/S架构,前端使用Vue框架,后端使用SpringBoot框架,数据库采用MySQL。系统实现了管理员、维修工和普通用户的不同功能模块,

springboot+vue+mybatis旅游管理+PPT+论文+讲解+售后

随着人民生活水平的提高,旅游业已经越来越大众化,而旅游业的核心是信息,不论是对旅游管理部门、对旅游企业,或是对旅游者而言,有效的获取旅游信息,都显得特别重要.旅游管理系统将使旅游相关信息管理工作规范化、信息化、程序化,提供旅游景点、旅游线路,旅游新闻等服务本文以jsp为开发技术,实现了一个旅游网站系统。旅游网站系统的主要使用者分为管理员和用户,管理员权限如下;主页、个人中心、景点分类管理、景点信息