华中科技大学计算机科学与技术学院
《C语言程序设计》课程设计
实验报告
题目: 景点查询系统
专业: 信息安全 班级: 1002班
学号: u201014646
完成日期: 2011年 10月3日
姓名: 熊涛 成绩:
指导教师: 周时阳
一、 题目
景点查询系统 二、 系统功能模块结构
该系统主要由文件保存以及读入、数据修改,数据删除、数据增加、数据搜索、数据统计模块组成。
景点查询系统增加数据修改数据删除数据数据搜索数据统计文件保存及读入
各模块下分别有子模块:
增加数据模块具体分类如下:
增加数据增加一个省份增加某省份下的城市增加某城市下的景点
删除模块,修改模块和增加模块的结构一样,不再赘述。
搜索模块:
搜索模块由景点编号精确查询景点由景点包含的某些关键词查询景点由景点所在的省份(城市)查询景点任意组合多个关键词、所在地点进行景点查询
数据统计:
数据统计某省份下的城市数目统计某省份下的景点数目统计某城市下的景点数目统计
文件保存以及读取:
数据保存及读取启动程序是自动读取数据
三、 数据结构设计以及说明
关闭程序时自动保存数据
结构链表: head 省份1 省份2 省份m
城市1 景点1 .….
…..
城市k 景点1 ……
景点n …….
省份结构:
typedef struct province {
int num;/*省份编号*/
char name[MAXNAME];/*省份名字*/ int numofcity;/*省份下的城市数目*/ int numofsce;/*省份下的景点数目*/
char briefintro[TEXTLEN];/*省份简介*/ ptr_city p;/*指向下一个城市子链的指针*/
struct province*next;/*指向下一个省份的指针*/
}province;
城市结构:
typedef struct city {
int num;/*城市编号*/
char name[MAXNAME];/*城市名字*/ char describe[TEXTLEN];/*城市描述*/ int numofsce;/*下级景点数目*/
struct city* next;/*指向下个城市的指针*/ ptr_sce p;/*指向子链的指针*/ }city; 景点结构:
typedef struct sce {
int num;/*景点编号*/
char name[MAXNAME];/*景点名字*/ int price;/*景点门票价格*/
char phone[PHONELEN];/*景点电话*/ char position[TEXTLEN];/*景点位置*/
char timeforvisit[TIMELEN];/*景点最佳参观时间*/ char character[TEXTLEN];/*景点特点*/ struct sce*next;/*指向下一个节点*/ }sce; 四、 各模块的功能解释、部分流程图和程序结构
1. 主函数流程图及程序结构
在主函数中,定义了2个int变量,state和prestate分别记录当前的状态和前一个状态,同时,定义了3个全局变量,p1,p2,p3指针来记录当前选择的结构体在链表中的位置,本系统首先进入时,显示省份的列表,按方向键可以移动选择具体的省份,同时p1指向被选择的省份,按下回车后进入该省份下所有城市的列表,同理,在城市列表状态下,再按回车键可以进入选择城市的景点列表,p2指向当前选择的城市,再按下回车,可查看具体的景点信息,p3也实时 指向当前选择的景点。