struct info
{
int stNo //编号
string stName //景点名称
string stSpot //旅游地名
float stExpenses//所需费用
}
info stInfo[2]
string spotTemp[2]
void insertInfo(){
cout<<"请输入两个景点编号、名称、地名、所需费用。"<<endl
for(int i=0i<3i++){
cout<<"第"<<i <<"个"
cin>>stInfo[i].stNo
cin>>stInfo[i].stName
cin>>stInfo[i].stSpot
cin>>stInfo[i].stExpenses
spotTemp[i] = stInfo[i].stSpot
}
}
void infoShow(){
for(int j=0j<3j++){
cout<<stInfo[j].stNo
cout<<stInfo[j].stName
cout<<stInfo[j].stSpot
cout<<stInfo[j].stExpenses
}
}
void infoQuery(){
string temp
for(int k =0k<3k++){
cout<<"请输入要查询景点地名: "
cin>>temp
if(temp != spotTemp[k]){
cout<<"没有查询到你想要的信息!"<<endl
}else{
cout<<stInfo[k].stSpot
}
}
}
}
通过设计和建立database空间数据库,掌握空间数据库设计和建设流程,学会利用所学GIS知识独立分析和解决问题的能力,对所学建库知识进行一个完整的串接。3、需求分析
旅游业是一个综合性很强的信息依赖型产业,旅游信息的获取、加工、传播和利用对旅游业的发展起着举足轻重的作用。从旅游者和旅游规划管理部门的需求出发建立旅游信息数据库,不仅可以使旅游者和旅游规划管理部门能够快速、准确地查找和检索自己所需要的旅游信息,而且能够促进旅游信息规范化和标准化,促进旅游信息的共享,打破对旅游信息的封锁;旅游信息数据库的建立有利于从整体上对旅游业进行宏观的调控和管理,有利于旅游业协调、健康有序的发展。
四川省旅游空间数据库的建立以arcgis为平台,以database为载体,内涵四川主要景点的各种信息(属性和空间),可以为使用者提供一定的信息服务。
4、功能分析与数据组织
4.1 数据组织
本实验的数据组织为:矢量数据采用简单数据格式shapefile存储,具体文件如下表所示:
文件名称
用途
主要景点
记录四川省的主要旅游景点信息,并进行分类
交通要道_国道
存储四川省的交通要道国道的走向,便于分析路径
交通要道_高速路
存储四川省的交通要道高速路的走向,便于分析路径
交通要道_铁路
存储四川省的交通要道铁路的走向,便于分析路径
主要城市
记录四川省的主要城市信息,便于查询信息
主要河流
记录四川省的主要河流信息
4.2 功能分析
本数据库主要的功能设计为:
1、可以通过地图空间信息查询到景点的属性信息,如景点的类型、票价、主要的景点以及景点的具体位置信息等;
2、可以通过属性的查询方式找到具体景点的位置,并可以通过提供的信息找到到该景点的路径。
5、数据库建设流程
5.1 环境配置
5.1.1 硬件配置
计算机一台(windowxp *** 作系统)
5.1.2 软件配置
专业软件:PCI8.2,ArcGIS9.2 desktop
其它软件:Office Access 2003、抓图软件等
#include<iostream>#include<string>
#include<conio.h>
#include<fstream>
#define filepath "JDInfo.txt"
#define max 1000
using namespace std
typedef struct JDInfo
{
string jdid
string jdname
string cityname
float money
}JDInfo
static int count
static JDInfo jdinfo[max]
int load_info()
{
count = 0
ifstream ifs(filepath, ios::in)
if(ifs.good())
{
while(!ifs.eof())
{
ifs >> jdinfo[count].jdid
ifs >> jdinfo[count].jdname
ifs >> jdinfo[count].cityname
ifs >> jdinfo[count++].money
}
ifs.close()
return count
}
else
return 0
}
bool write_info()
{
cout << "请输入景点编号:"
cin >> jdinfo[count].jdid
cout << "\n请输入景点名称:"
cin >> jdinfo[count].jdname
cout << "\n请输入旅游地名称:"
cin >> jdinfo[count].cityname
cout << "\n请输入所需费用:"
cin >> jdinfo[count].money
ofstream ofs(filepath, ios::app)
if(ofs.good())
{
ofs << jdinfo[count].jdid << endl
ofs << jdinfo[count].jdname << endl
ofs << jdinfo[count].cityname << endl
ofs << jdinfo[count++].money << endl
cout << "输入记录成功!请按任意键继续..." << endl
getch()
ofs.close()
return true
}
else
return false
}
void read_info()
{
int i = 0
system("cls")
for( i < count i++)
{
cout << "第" << i + 1 << "个景点数据:" << endl
cout << "景点编号:" << jdinfo[i].jdid << endl
cout << "景点名称:" << jdinfo[i].jdname << endl
cout << "旅游地名称:" << jdinfo[i].cityname << endl
cout << "所需费用:" << jdinfo[i].money << endl
}
system("pause")
}
float calc_money(string n)
{
float smoney = 0.0
int i = 0
for( i < count i++)
{
if(jdinfo[i].cityname == n)
smoney += jdinfo[i].money
}
return smoney
}
int main()
{
load_info()
string tempname
while(true)
{
cout << "请选择所需功能:" << endl
cout << "1.输入数据" << endl
cout << "2.显示所有信息" << endl
cout << "3.输入旅游地查询并计算总所需费用" << endl
cout << "4.退出系统" << endl
i: switch(getch())
{
case '1': write_info() break
case '2': read_info() break
case '3':
cout << "请输入旅游地名称:"
cin >> tempname
cout << "\r去 " << tempname << " 旅游,所需要总费用为:" << calc_money(tempname) << endl
break
case '4': return 0 break
default: cout << "\r输入选择错误,请重新输入:"goto i
}
}
}
给你写了一个,你去运行看下,有什么不懂的再问我吧。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)