旅游资讯管理系统

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

相关文章

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、

STL经典案例(四)——实验室预约综合管理系统(项目涉及知识点很全面,内容有点多,耐心看完会有收获的!)

项目干货满满,内容有点过多,看起来可能会有点卡。系统提示读完超过俩小时,建议分多篇发布,我觉得分篇就不完整了,失去了这个项目的灵魂 一、需求分析 高校实验室预约管理系统包括三种不同身份:管理员、实验室教师、学生 管理员:给学生和实验室教师创建账号并分发 实验室教师:审核学生的预约申请 学生:申请使用实验室 高校实验室包括:超景深实验室(可容纳10人)、大数据实验室(可容纳20人)、物联网实验

使用Spring Boot集成Spring Data JPA和单例模式构建库存管理系统

引言 在企业级应用开发中,数据库操作是非常重要的一环。Spring Data JPA提供了一种简化的方式来进行数据库交互,它使得开发者无需编写复杂的JPA代码就可以完成常见的CRUD操作。此外,设计模式如单例模式可以帮助我们更好地管理和控制对象的创建过程,从而提高系统的性能和可维护性。本文将展示如何结合Spring Boot、Spring Data JPA以及单例模式来构建一个基本的库存管理系统

【干货分享】基于SSM的体育场管理系统的开题报告(附源码下载地址)

中秋送好礼 中秋佳节将至,祝福大家中秋快乐,阖家幸福。本期免费分享毕业设计作品:《基于SSM的体育场管理系统》。 基于SSM的体育场管理系统的开题报告 一、课题背景与意义 随着全民健身理念的深入人心,体育场已成为广大师生和社区居民进行体育锻炼的重要场所。然而,传统的体育场管理方式存在诸多问题,如资源分配不均、预约流程繁琐、数据统计不准确等,严重影响了体育场的使用效率和用户体验。

基于SSM+Vue+MySQL的可视化高校公寓管理系统

系统展示 管理员界面 宿管界面 学生界面 系统背景   当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的大环境让那些止步不前,不接受信息改革带来的信息技术的企业随时面临被淘汰,被取代的风险。所以当今,各个行业领域,不管是传统的教育行业

图书管理系统系统分享

分享一个图书管理系统,Java、SpringBoot、Vue和MySQL开发的图书馆管理系统 gitee项目地址:https://gitee.com/yuanmomoya/open-source-project/tree/master/books-management-system GitHub项目地址:https://github.com/yuanmomoya/open-source-pro

基于springboot+vue+uniapp的“共享书角”图书借还管理系统小程序

开发语言:Java框架:springboot+uniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9 系统展示 后台登录界面 管理员功能界面 出借者管理 图书信息管理 图书归还管理 出租收入管理

2025届计算机毕业设计:如何构建Java SpringBoot+Vue个人健康档案管理系统?

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 | SpringBoot/SSM Python实战项目 | Django 微信小程序/安卓实战项目 大数据实战项目 ⚡⚡文末获取源码 文章目录

基于JSP的实验室管理系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:JSP技术 + Spring Boot框架 工具:IDEA/Eclipse、Navicat、Tomcat 系统展示 首页 用户个人中心 实验室管理 设备报备管理 摘要 随着社会的发展和科学技术的进步,互联网技术越来越受欢迎。网络计算机