地图着色课程设计

地图着色课程设计
地图着色课程设计

算法分析与设计课程设计说明书

地图着色

学院:计算机与控制工程学院

专业:计算机科学与技术

学生姓名:xxxxx学号:成绩

学生姓名:xxxxx 学号:成绩

指导教师:

内容提要

此题为地图着色问题,由地图着色问题很容易想到图的着色问题,因此可以把地图抽象为无向图来解决地图的着色问题。对地图的抽象相当于对图的抽象,即以邻接矩阵来实现地图的区域相邻的描绘,而对地图的区域数即以图的顶点数来描绘。设计说明书的内容包括需求分析,概要设计,详细设计,代码实现,后期测试等内容,需求分析是对此问题所需要实现的功能的介绍,概要设计是对所需要实现功能的模块划分,以及初步的实现思想,详细设计通过编写大致的代码来实现功能,代码实现则是具体的解决问题,解决此问题设计了两个算法,贪心,回溯,在程序的测试阶段,回溯算法对同一个问题的解决速率高于贪心算法,但是结果都是以最少的颜色数来染色。

课题实现的环境是在window环境下的eclipse中,通过在其中输入地图的区域数,图的连接情况,来选择相应的算法来实现染色,本次课题所采用的数据结构主要是二维数组来抽象图的邻接矩阵。

目录

1引言(或绪论) (1)

2需求分析 (2)

2.1 问题分析 (2)

2.3问题解决 (2)

2.3 运行环境及开发工具 (3)

2.4功能需求 (3)

2.4.1 地图的抽象及输入 (3)

2.4.2 地图着色的算法设计 (3)

2.4.3 界面设计 (3)

2.4.4 输出设计 (3)

2.5任务分配 (4)

3概要设计 (4)

3.1 数据定义 (4)

3.2 功能模块定义 (4)

3.2.1 地图的抽象输入模块 (4)

3.2.2 输出模块 (4)

3.2.3 地图染色模块 (4)

3.2.4 界面设计模块 (5)

3.2.5 主模块 (5)

3.3 程序流程图 (6)

4 详细设计 (7)

4.1 地图输入模块 (7)

4.1.1 数据类型 (7)

4.1.2 具体实现 (7)

4.2 界面设计模块 (7)

4.2.1 数据类型 (7)

4.2.2 具体实现 (7)

4.3 算法设计模块 (9)

4.3.1 回溯法过程 (9)

4.3.2 贪心法过程 (10)

5 程序设计模块 (11)

5.1 界面设计代码 (11)

5.2 染色实现模块 (15)

6 程序测试 (19)

6.1 运行结果 (19)

6.2 贪心、回溯着色结果及分析 (19)

7 算法时间、空间复杂度分析 (22)

7.1 递归回溯 (22)

7.2 贪心算法 (22)

8 课设总结…………………………………………………………………………

2 2 8.1 已实现功能及不足 (22)

8.2 心得体会 (22)

参考文献 (24)

1引言(或绪论)

此次课程设计的要求是已知某地图(如中国地图),对各区域进行着色,要求相邻省所使用的颜色不同,并保证使用的颜色总数最少。此问题就是经典的地图着色问题,地图着色问题与四色定理是紧密相关的。

地图着色问题与著名四色定理:

那么可以用四种颜色来给这些区域染色,使得每两个邻接区域染的颜色都不一

不会有两个邻接的区域颜色相同。这就是著名的四色定理,

由四色定理可以想到只需要四种颜色就可以为一个区域的地图着上颜色,而且相邻区域的颜色不相同。

2 需求分析

2.1 问题分析:

地图着色问题是一个抽象的图形学问题,用程序实现对各个区域进行着色,并且相邻省所用的颜色不同,同时保证颜色的总数最少,那么就是如何将这些抽象的进行数据化。如何将程序所需要的功能模拟着色在计算机中编程实现。

2.2 问题解决:

计算机中,图主要可以用两种方法表示:邻接矩阵和邻接链表。N个顶点的邻接矩阵是一个N*N的布尔矩阵,图中的每一个顶点都由一行或者一列来表示,如果从第i个顶点和第j个顶点之间有边连接,则矩阵第i行,第j列的元素等于1,如果没有边连接,则等于0.这就是图的邻接矩阵表示

那么地图也可以抽象为一个图,其可以用邻接矩阵来进行模拟:对于每一个地图,我们可以把每一个区〔区域或国家) 看作一个点,而区与区之间的邻接关系看作点与点之间的连线。从而将地图抽象为一个图,然后就可以用邻接矩阵抽象。如下图:

其邻接矩阵为:

A B C D E

A 0 1 1 0 0

B 1 0 1 1 1

C 1 1 0 0 1

D 0 1 0 0 1

E 0 1 1 1 1

2.3运行环境及开发工具:

运行环境:windows系统

开发工具:eclipse编程工具

2.4 功能需求:

2.4.1:地图的抽象及输入:

给定一个地图,要求画出绘制出其图的形式,并在计算机上用邻接矩阵实现。相应的顶点为0,则表示两点邻接,否则,就不邻接,为1.

2.4.2:地图着色的算法设计:

回溯法:本题可采用回溯法进行着色。当t=1时,对当前第t个顶点开始着色:若t>n,则已求得一个解,输出着色方案即可。否则,依次对顶点t着色1-m,若t与所有其它相邻顶点无颜色冲突,则继续为下一顶点着色;否则,回溯,测试上一颜色。回溯法的主要就是选择各种颜色,直到把此点着完色为止。

贪心法:选择一种颜色,以任意顶点作为开始顶点,依次考察图中的未被着色的每个顶点,如果一个顶点可以用颜色1着色,换言之,该顶点的邻接点都还未被着色,则用颜色1为该顶点着色,当没有顶点能以这种颜色着色时,选择颜色2和一个未被着色的顶点作为开始顶点,用第二种颜色为尽可能多的顶点着色,如果还有未着色的顶点,则选取颜色3并为尽可能多的顶点着色,依此类推,直到所有顶点都着上颜色。贪心法就是选择一种颜色,最大化的将图中的各点都用这种颜色着上。

2.4.3:界面设计:

地图着色的软件界面设计,选择何种算法,以及选择几种颜色来为相应的地图桌上颜色。

2.4.4:输出设计

按要求输出动态的着色过程以及最终的染色结果,同时输出最终的着色结果,以及最少颜色数,在输出框里面输出。

2.5 任务分配:

xxx:贪心法算法设计,界面设计

xxx:回溯法算法设计

3概要设计

3.1 数据定义:

int c[n+1][n+1]:邻接矩阵的中的数据只为0.1

int color [n+1]:存取对对应的点的颜色,颜色用1,2,3,4表示

int n:定义对应的点数

int N 着色的颜色数

3.2功能模块定义:

3.2.1 地图的抽象输入模块:

按操作者要求输入相应地图对应图的点数,以及相应点与其他点的连接

情况,此输入在界面输入,其中点数表示某个区域的地区数,而连接情

况表示各区域的相邻情况,用此来抽象地图。

3.2.2 输出模块:

按操作者输入的数据,执行相应的算法,并且在界面上显示出来最终的结果,输出的有图的邻接矩阵,着色方案,还有图的着色的最少颜色数。

3.2.3 地图的染色模块:

利用贪心算法以及回溯算法来为地图进行着色,即判断相应的点应该着那种颜色。

回溯法算法过程:

设数组color[n+1]表示各顶点的着色情况,其中n表示相应的点数,

回溯法:

1.将数组color[n]初始化为0;

2.s=1;

3.while (s<=n)

3.1 依次考察每一种颜色,若顶点s的着色与其他顶点的着色不发生冲突,

则转步骤3.2;否则,搜索下一个颜色;

3.2 若顶点已全部着色,则输出数组color[n+1],以及数组color[n+1]返

回;

3.3 否则,

3.3.1 若顶点s是一个合法着色,则s=s+1,转步骤3处理下一个顶点;

3.3.2 否则,重置顶点k的着色情况,换第二种颜色给顶点k着色,转步骤3。

主要函数:hscolor()

贪心法算法过程:

设数组color[n+1]表示各顶点的着色情况,算法如下:

1.m=0,sum=0; //m着色的最少颜色数,sum已经着色的顶点数顶点1

2.while(sum

3.m=m+1

4. for (i=1; i<=n; i++)

5.寻找可以着颜色1的第一个点,找到就终止此循环

6.for (i=2; i<=n; i++)

7.循环用颜色m为尽量多的未着色顶点着色,

7.1 如果判断的点能着颜色m,则color[i]=m,sum++

7.2 如果判断的点不能着此颜色,则找寻下一个能着此颜色得点

8.跳回第三步,直到sum>=n

5.输出color[n],已经最少的颜色数

主要函数:txcolor

3.2.4 界面设计模块:

按题目要求在界面上输入地图的区域数,各区域的连接情况以及选择何种算法来进行着色。结果输出在结果框。

3.2.5 主模块:

利用以上设计的各个模块来进行调用,其中要选择相应的算法(回溯,贪心)来实现着色,从而完成地图着色,并且直观的结果在屏幕上显示出来。

3.3 程序流程图

4 详细设计

4.1 地图输入模块

4.1.1数据类型:

int n;顶点数

int c[n+1][n+1]; 邻接矩阵

String[] data;地图中各点的邻接连接情况,用0.1表示

4.1.2 具体实现:

n = textField.getText();//将定义的textField中的数据给n

String[] data = textArea1.getText().split(" ");

//将textArea1中的0.1数组给data

for (int i = 1; i < n+1; i++)

for (int j = 1; j < n+1; j++)

Array_1.c[i][j] = data[(i-1)*Array_1.n+j-1] //将data一维数组赋值给c二维数组

4.2 界面设计模块

4.2.1 数据类型

public JTextField textField = new JTextField();

public JTextArea textArea1 = new JTextArea();//设置文本域

public Jbutton button;//设置按钮

public static JTextArea textArea3 = new JTextArea();//文本域

private JLabel label_1;//输入文本标签

private JPanel contentPane;//整个界面

4.2.2 具体实现

*******************************设计主面板

**************************

setTitle("图的着色");//设置名字

setBounds(100, 100, 604, 380); //设置大小

contentPane = new JPanel();

setContentPane(contentPane);

contentPane.setBackground(Color.GREEN); //设置颜色

*******************************设计结束**************************

*******************************文本域1************************** JLabel label = new JLabel("请输入地图的区域数");

label.setFont(new Font("微软雅黑", Font.BOLD, 15));

label.setBounds(23, 10, 166, 34);

contentPane.add(label);

textField.setBounds(23, 42, 192, 34);

textField.setText("5");//设置初始值

contentPane.add(textField);

textField.setColumns(10);

*******************************设计结束**************************

*******************************文本域2**************************

label_1 = new JLabel("请输入各区域连接情况");

label_1.setFont(new Font("微软雅黑", Font.BOLD, 13));

label_1.setBounds(23, 86, 166, 30);

contentPane.add(label_1);

JScrollPane scrollPane = new JScrollPane();

scrollPane.setBounds(23, 125, 192, 147);

contentPane.add(scrollPane);

textArea1.setText("0 1 1 0 0 1 0 1 1 1 1 1 0 0 1 0 1 0 0 1 0 1 1 1 1");//设置文本域二的初始值

scrollPane.setViewportView(textArea1);

*******************************设计结束**************************

*******************************按钮设计************************** JButton button = new JButton("贪心法");

button.setFont(new Font("微软雅黑", Font.BOLD, 14));

button.setBounds(23, 282, 92, 34);

button.addActionListener(new MyEvent());

contentPane.add(button);

JButton button = new JButton("回溯法");//设置按钮名字

button.addActionListener(new MyEvent());

button.setFont(new Font("微软雅黑", Font.BOLD, 14));

button.setBounds(140, 282, 92, 34);

contentPane.add(button);

*******************************设计结束**************************

*******************************结果文本域************************** JLabel label = new JLabel("染色结果");

label.setFont(new Font("微软雅黑", Font.BOLD, 15));

label.setBounds(369, 20, 84, 15);

contentPane.add(label);

JScrollPane scrollPane = new JScrollPane();

scrollPane.setBounds(248, 42, 321, 273);

contentPane.add(scrollPane);

scrollPane.setViewportView(textArea3);

*******************************设计结束************************** 4.3 算法设计模块

4.3.1 回溯法主要代码

int i;

int N=4;//设计颜色数为4,但是并不是用这么多颜色,程序最终的结果是最优的,即输出来的颜色数肯定最少,因为四色定理 if(s>n)//递归出口,递归的最终出口

{

output();//输出结果

}

else

{

for(i=1;i<=N;i++)//对每一种色彩逐个测试

{

color[s]=i;

if(colorsame(s)==0){//当测试这个颜色i=1为某个点着色不合格时,用第二种颜色着色,i=2进行判断,合格进行递归调

用,不合格就使用第三种颜色,即i=3

trycolor(s+1);//进行下一块的着色

break;//停止回溯,因为已经着色成功

}

}

}

4.3.2 贪心法主要代码

while(sum< n){//最终的判定条件,即将所有点着色完毕 m++;//第一次循环,m=1,m即为颜色数

for(int i=1;i<=n;i++){//此循环用来查找第一个为着色的并且可以着色m的点

if(color[i]==0){

j=i;//j=1

color[j]=m;

sum++;

break;//结束当前循环

}

}

for(int i=j+1;i<=n;i++){//i=2

if(color[i]!=0) continue;//color[i]的起始值为零,false,不执行continue,表示没有着色,因此执行下一步,否则起始值不为0,则表示已经成功着上颜色。

if (ok(i,m)){

continue;//ok(i,m),如果返回值为ture,表明有颜色与此点将要着的颜色相同,则执行continue,即不将i着色为m,结束本次循环,此点在之后着色。

}

else {//点i可以着色为m,记录color[i]=m

color[i]=m;

sum++;

}

}

}

5 程序设计模块

5.1 界面设计代码(Graph.java)

import https://www.360docs.net/doc/3a15050952.html,ng.System;

import java.awt.Color;

import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JLabel;

import javax.swing.JTextField;

import javax.swing.JTextArea;

import javax.swing.JButton;

import java.awt.Font;

import javax.swing.JScrollPane;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

//*******************************类Graph**************************

public class Graph extends JFrame {

private static final long serialVersionUID = 1L;

public static long startTime = 0;

public static long estimatedTime = 0;

private JPanel contentPane;

public JTextField textField = new JTextField();

public JTextArea textArea1 = new JTextArea();

public static JTextArea textArea3 = new JTextArea();

private JLabel label_1;

//*******************************主函数************************** public static void main(String[] args) {

EventQueue.invokeLater(new Runnable()

{

public void run() {

try {

Graph frame = new Graph();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

//*******************************主函数结束************************** //*******************************鼠标事件**************************

class MyEvent implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

Array_1.n = Integer.parseInt(textField.getText());

System.out.println(Array_1.n);

String[] data = textArea1.getText().split(" ");

System.out.println(textArea1.getText());

Array_1.c = new int[(Array_1.n)+1][(Array_1.n)+1];

for (int i = 1; i < (Array_1.n)+1; i++)

for (int j = 1; j < (Array_1.n)+1; j++)

{

Array_1.c[i][j] = Integer.parseInt(data[(i-1)*Array_1.n+j-1]); }

Array_1.color=new int[Array_1.n+1];

for(int i=0;i<=Array_1.n;i++)

Array_1.color[i]=0;//初始化

if (e.getActionCommand().equals("贪心法"))

{

Array_1.text_temp = Array_1.text_temp+"贪心详细的着色过程:";

Array_1.text_temp = Array_1.text_temp+"\n";

startTime = System.nanoTime();

Array_1.graphcolor();

}

if (e.getActionCommand().equals("回溯法"))

{

Array_1.text_temp = Array_1.text_temp+"回溯详细的着色过程:";

Array_1.text_temp = Array_1.text_temp+"\n";

startTime = System.nanoTime();

Array_1.trycolor(1);

}

}

}

//*******************************事件结束************************** //*******************************界面设计************************** public Graph() {

setTitle("图的着色");

setBounds(100, 100, 604, 380);

contentPane = new JPanel();

setContentPane(contentPane);

contentPane.setLayout(null);

contentPane.setBackground(Color.GREEN);

{

JLabel label = new JLabel("请输入地图的区域数");

label.setFont(new Font("微软雅黑", Font.BOLD, 15));

label.setBounds(23, 10, 166, 34);

contentPane.add(label);

}

{

textField.setBounds(23, 42, 192, 34);

textField.setText("5");

contentPane.add(textField);

textField.setColumns(10);

}

{

label_1 = new JLabel("请输入各区域连接情况");

label_1.setFont(new Font("微软雅黑", Font.BOLD, 13));

label_1.setBounds(23, 86, 166, 30);

contentPane.add(label_1);

}

{

JButton button = new JButton("贪心法");

button.setFont(new Font("微软雅黑", Font.BOLD, 14));

button.setBounds(23, 282, 92, 34);

button.addActionListener(new MyEvent());

contentPane.add(button);

}

{

JScrollPane scrollPane = new JScrollPane();

scrollPane.setBounds(23, 125, 192, 147);

contentPane.add(scrollPane);

textArea1.setText("0 1 1 0 0 1 0 1 1 1 1 1 0 0 1 0 1 0 0 1 0 1 1 1 1");

scrollPane.setViewportView(textArea1);

}

{

JButton button = new JButton("回溯法");

button.addActionListener(new MyEvent());

button.setFont(new Font("微软雅黑", Font.BOLD, 14));

button.setBounds(140, 282, 92, 34);

contentPane.add(button);

}

{

JLabel label = new JLabel("染色结果");

label.setFont(new Font("微软雅黑", Font.BOLD, 15));

label.setBounds(369, 20, 84, 15);

contentPane.add(label);

}

{

JScrollPane scrollPane = new JScrollPane();

scrollPane.setBounds(248, 42, 321, 273);

contentPane.add(scrollPane);

scrollPane.setViewportView(textArea3);

}

}

}

//*******************************设计完毕************************** //*******************************类Graph结束

**************************

5.2 染色实现模块(Array_1.java)

//*******************************Array_1类************************* public class Array_1 {

public static int n ;

public static int[] []c ;

public static int []color ;

public static String text_temp=new String("");

//*******************************回溯求解************************* public static int colorsame(int s)

{

int j,flag=0;

for(j=1;j

if(c[j][s]==1&&color[j]==color[s])

{

flag=1;

break;

}

return flag;

}

public static void output()

{

text_temp = text_temp +"\n";

System.out.printf("区域的邻接矩阵为:\n");

text_temp = text_temp +"区域的邻接矩阵为:"+"\n";

for(int k=1;k

{

for(int m=1;m

System.out.print(c[k][m]+" ");

text_temp = text_temp + Integer.toString(c[k][m])+ " ";

}

System.out.print("\n");

text_temp = text_temp +"\n";

}

text_temp = text_temp +"\n";

System.out.printf("着色方案:\n");

text_temp = text_temp +"着色方案:"+"\n";

for(int i=1;i<=n;i++){

System.out.print(color[i]+" ");

text_temp = text_temp +"第"+Integer.toString(i)+"个区域着色:"+ Integer.toString(color[i]) + " "+"\n";

}

int j=color[1];

for(int k=2;k<=n;k++)

{

if(j<=color[k])

{

j=color[k];

}

}

System.out.print("\n");

text_temp = text_temp+"\n";

System.out.println("能着的最少颜色数为:");

text_temp = text_temp + "能着的最少颜色数为:"+"\n";

System.out.println(j);

text_temp = text_temp + Integer.toString(j)+"\n" ;

text_temp = text_temp +"运行时间:" + Graph.estimatedTime+"毫微秒(ns)";

text_temp = text_temp +"\n";

Graph.textArea3.setText(text_temp);

}

public static void trycolor(int s)

{

int i;

int N=4;

if(s>n)

{

Graph.estimatedTime = System.nanoTime() - Graph.startTime; output();

}

else

{

for(i=1;i<=N;i++)

{

color[s]=i;

if(colorsame(s)==0){

System.out.println("颜色"+i+"能为区域"+s+"着色");

text_temp = text_temp +"颜色"+Integer.toString(i)+"能为区域"+Integer.toString(s)+"着色";

text_temp=text_temp+"\n";

trycolor(s+1);

break;

}

else{

System.out.println("颜色"+i+"不能为第"+s+"点着色");

text_temp = text_temp +"颜色"+Integer.toString(i)+"不能为区域"+Integer.toString(s)+"着色";

text_temp=text_temp+"\n";

}

}

}

}

//*******************************回溯完毕*************************

//*******************************贪心求解************************* public static boolean same(int k,int r)//判断顶点k的着色是否发生冲突{

for(int i=1;i< n;i++){

if(color[i]!=r) continue;

if(c[k][i]==1&&color[i]==r )

return true;

}

return false;

}

public static void graphcolor()

地图学课程设计说明书

佛山科学技术学院 《地图学课程设计》 说明书 专业自然地理与资源环境姓名薛春惠成绩 班级 13自然地理与资源环境学号2013804142 日期 2015/6/27

目录 一、地图内容 二、设计步骤 收集资料 绘制地图 三、城市状况 四、南海旅游景点 六、存在的不足 七、专题图 一、地图内容

二、设计步骤 1 收集资料 收集各种地图、影像、数据和文字资料,分析汇总资料,选取有效部分加工使用,分别用到《中国自然地理地图集》、《广东省交通地图》、《佛山市旅游地图》、《佛山市南海区地图》、1:10万佛山市地形图、佛山市卫星影像等。 2、绘制地图 (1)投影网格与比例尺:依据地图内容、用途选用等比例尺底图,注意 图廓的配准、注记与经纬网密度删减。 (2)水系:选用河流、湖泊、水库、海岸线等,适当概括。 (3)居民点:居民点分级、概括,地名分级注记。 (4)边界线:视专题地图需要选取(国、省、市、县、镇边界),线性符 号选用与设计。 (5)交通线:铁路(车站)、国道、高速公路和水运航线(码头) 三、城市状况 3.1 地理位置

3.2 地形地貌 3.3 行政规划 3.4 人口概况 3.5 矿产资源 3.6 水资源和水文情况 3.7 商业广场情况 四、南海旅游景点 西樵山 西樵山风景名胜区位于广东省南海市西南部,面积约十四平方公里,西樵山有七十二峰,以山青,水奇著称,享有“岭南佳境”之盛名。1988年被定为国家重点风景名胜区。 西樵山是七八千万年前由海底火山喷发岩浆,岩状,火山灰后形成的死火山,山体外陡内平,状若莲衣复合,大秤峰居群峰之首,九龙岩,冬菇石,石燕石等峰岩形态万千。西樵山岩石节理发育,裂隙纵横,富有潜水,形成多处水景,有232口泉眼,28处瀑布。“欲览西樵胜,应先访白云”。位于西樵山西北部的白云洞为——马蹄形山谷,它兼收岩泉飞瀑之美,有“胜甲西樵”之称。三峰之间有两飞泉左右迂回而下,称“大云泉”、“小云泉”。泉水折叠汇成了三个湖,即所谓“白云飞下过三湖”:上为“应潮湖”,中为“鉴湖”,下为“会龙湖”。现在其下又增辟“白云”、“人工”两湖,形成五湖飞瀑交辉,亭台山水相映的奇泉。洞山腰的云泉仙馆原是明代的玉楼书院,云泉仙馆西的“三湖书院”门额为林则徐所题,康有为青年时代曾在此面壁苦读三年,山西南部有西天湖和左垂虹瀑,右垂虹瀑等景;山东南部有清暑岩,云岩飞瀑等景,山东北部有全山最大的瀑布玉岩飞瀑,以及玉岩,仙人石,东天湖等景。 早在新、旧石器时代,西樵山就有人类活动,留下许多历史遗迹,史学界称为“西樵山文化”。明代中叶成为南国理学名山,至今还保存着白云古寺,以及大量摩崖石刻等文物古迹。 西樵山碧玉洞 碧玉洞为峰间峡谷,两边怪石嶙峋、谷底狭径崎岖、洞中有玉岩珠瀑,听玉石室、遇仙桥,垂云石、东天湖等景点。其中,玉岩珠瀑为西樵山最大瀑布。 其中“西樵云瀑”在清朝已列为“羊城八景”之一,君行西樵,宛若画中游历,秀甲西樵的白云洞景区,融二十四景于一体,而其间古代建筑掩映,错落有致,碧玉洞,

新编地图学教程复习资料

地图的基本特征是:地理信息的载体,数学法则的结构,有目的的图形概括和符号系统的运用。地图的功能:地图信息的载负功能,地图的传递功能,地图的模拟功能,地图的认知功能(图形认知和空间认知)。 地图:是遵循相应的数学法则,将地球上的地理信息,通过科学的概括,并运用符号系统表示在一定载体上的图形,以传递他们的数量和质量在空间和时间上的分布规律和发展变化。 .国家基本比例尺1:100万、1:50万、1:25万、1:10万、1:5万、1:2.5万、1:1万、1:5千这八种。 地图类型:按尺度划分、按区域范围划分、按地图图形划分、按地图维数划分、 虚地图:存在于人脑中或电脑中的地图。实地图例如:纸质地图,屏幕地图、地球仪。 地图的应用:经济建设、科学研究、国防建设、政治文化、教育及日常生活。 现代地图的生产,可以分为实测成图和编绘成图两种,后者包括:常规编图、遥感制图、数字制图。 第二章 法线是测量地球的基准线。 地理坐标是用经线、纬线、经度、纬度表示地面点位的球面坐标。经纬度有三种提法:天文经纬度、大地经纬度,地心经纬度 在地图学中,认为大地经纬度来定义地理坐标更好、因为大地经纬度定义的地理坐标,是在规整的椭球面上构建的,每条经纬线投影到平面皆呈直线或平滑曲线,便于地图投影的研究与应用。 大地控制网简称大地网,由平面控制网和高成控制网组成。平面控制网一般可由三角测量或导线测量完成,高程控制网:一种称绝对高程,另一种称:相对高程。 投影,数学上的含义是两个面(平面或曲面)上的点与点(或线与线)的对应关系。地图投影的变形具体变现为以下三个方面:长度(距离)变形、角度(形状)变形和面积变形 地图投影的分类:(1按地图投影的构成方法分类:几何投影(方位投影、圆柱投影、圆锥投影)根据球面与投影面的位置不同可分为正轴方位投影、横轴方位投影、斜轴方位投影。2)按投影变形性质分类(等角投影、等积投影、任意投影) 等角航线与大圆航线 投影选择依据:制图区域的地理位置、形状和范围,比例尺,地图的内容,出版方式、 方位投影适用于区域轮廓大致为圆形的地图正方位投影适用于两极地区图,圆锥投影适用于编制出于中纬地区沿线方向东西延伸地域的地图 地图比例尺的含义:我们把地图上所表示的空间尺度。比例尺的几种表现形式:数字比例尺、文字比例尺(又称说明比例尺)、图解比例尺 第三、四章 数据分布的量表的量表法可分为:定名、顺序、间距、和比率四种,它们各自适用于一种或多种数学的处理方法。数据处理的三种方法:量表法、两种现象的相关分析、回归残差制图 地图学概括的实质,是在制图过程中对地图数据和图解形式经过科学化处理,使其能表现制图区域的基本特征和制图现象的基本的、典型的面貌和主要特点 影响地图学概括的因素:地图的用途与主题对地图概括的影响,地图比例尺对地图概括的影响、制图区域的地理特征对地图概括的影响,制图数据质量对地图概括的影响,制图图解限制对地图概括的影响。 地图概括的内容:选取和简化:资格法、定额法、区域指标法。简化就是显示空间数据的重要特征,删除不重要的细部。数量特征简化:其目的将是空间数据按数量排序进行分级,以等差分级,等比分级或任意分级处理。分级的等级愈多,概括程度愈低。数量特征的简化主要表现为减少数量分级,增大各等级间的数值间距。夸张包括:不以比例尺的放大和移位。符号化,数据的符号化,其实质是空间数据的可视化,是地图概括的最终结果的体现。 第五章 基本视觉变量包括:形状变量尺寸变量、方向变量、颜色变量、网纹变量。

C语言地图着色

课程设计 地图着色 课程设计名称:课程设计 专业班级: 学生姓名: 学号: 指导教师: 课程设计时间:

计算机专业课程设计任务书 学生姓名专业班级学号题目地图着色 课题性质课题来源 指导教师同组姓名 主要内容学习掌握并熟练运用C语言进行程序设计; 针对具体应用问题,选择、设计和实现合适的抽象数据类型;进行简单的需求分析,给出设计方案。 任务要求综合运用和融化所学理论知识,提高分析和解决实际问题的能力,达到培养良好程序设计能力和习惯的目的,为开发满足问题要求的小型应用软件奠定基础,达到软件工程的综合性基础训练的目的。 完成需求分析报告,报告中对关键部分给出图表说明。要求格式规范,工作量饱满。 参考文献《数据结构(C语言版)》严蔚敏清华大学出版社《C语言程序设计》(第三版)谭浩强清华大学出版社

指导教师签字: 审查意见 教研室主任签字: 2014年6月15 日

目录 1 需求分析 (4) 2 概要设计 (4) 3详细设计 (5) 4 运行环境 (6) 5开发环境 (6) 6 程序设计.............................................................................................6~9 7 调试分析........................................................................................9~10 8 测试结果 (10) 9参考文献 (11) 10心得体会 (11) 11成绩评价表 (12)

地图学课程设计报告

地图学课程设计报告 学生姓名 序号 班级地信 指导老师 日期 2013 .6 .25

目录 一、前言 (1) 二、基于ArcMap的全国人口分布、构成及演变分析 (1) (一)ArcMap中专题现象的表示方法 (1) (二)反映全国人口分布、构成及演变的专题图表示方法的选择 (1) (三)1990年全国的人口分布与构成分析 (1) (四)从1982年到1990年全国人口的演变趋势分析 (5) 三、武汉市电子地图设计与编绘 (8) (一)总体方案 (8) (二)地图分层 (8) (三)地图数字化与图形编辑 (9) (四)表属性辑 (10) (五)图面配置 (10) (六)图幅关联及媒体链接........................................................................................ (10) (七)制作完成后截图 (11) 四、收获与建议 (13) 附件

一、前言 本次课程设计是在学完《地图学》课程后开展的实践教学。目的是通过课程 设计,巩固课堂所学书本知识,进一步理解和掌握各类电子地图的编绘方法,学会运用常用GIS软件开展机助制图的方法与步骤,并能根据具体的任务独立开展地图的设计与编绘,对专题地图进行专题分析,为GIS软件开发中的地理信息可视化打下基础。 通过对1982和1990年全国人口状况专题地图的制作,熟悉专题地图的制作与表示方法;通过武汉市电子地图的制作,进一步熟悉纸质地图的矢量化与地图的多媒体化即制作电子地图。 二、基于ArcGIS的全国人口分布、构成及演变分析 (一)MapInfo中专题现象的表示方法 1、点值法——用点状符号表示数量的分布。 2、等值线法——用线状符号表示定量的分布,用于表示连续分布的事物的数量变化特征。 3、范围法——用于用面状符号表示不连续分布的面状事物。 4、质底法——用于用面状符号表示连续分布的事物的定性特征。 5、量底法(分级统计图法)——用于用面状符号表示连续分布的事物的数量特征。 6、定域统计图法(分区统计图法)——用点状符号表示面状分布事物的数量特征。着重表示不同区域单元同一事物的数量对比,也可以兼顾同一区域内组成某一事物的各组分间的数量对比。 7、定位统计图法——用点状符号表示面状分布事物的数量特征。着重表示同一区域单元内某一事物的各组分间的数量对比,也可以兼顾不同区域单元同一事物的数量对比。 (二)反映全国人口分布、构成及演变的专题图表示方法的选择在反映全国人口分布时,用了点值法表示,反映出了各省的人口密度分布,用柱状图表示了全国各年龄段的人口比例,用饼状图表示了男女比例,从82年 到90年人口的增长趋势用了柱状图表示。 (三)1990年全国的人口分布与构成分析

图着色

算法设计课程设计 题目图着色问题 姓名学号 专业年级 指导教师职称 2014年 12月 4日

图的m着色问题 1 摘要 (3) 2 图的着色问题 (4) 2.1 图的着色问题的来源 (4) 2.2 图的着色问题的描述 (4) 3算法的基本思想 (4) 3.1 求极小覆盖法----布尔代数法 (4) 3.2 穷举法-Welch Powell着色法 (4) 3.3 回溯法 (4) 3.4 贪心法 (4) 3.5 蚁群算法 (5) 4算法步骤 (5) 4.1 求极小覆盖法----布尔代数法 (4) 4.2 穷举法-Welch Powell着色法 (4) 4.3 回溯法 (4) 4.4 贪心法 (4) 4.5 蚁群法 (4) 5 理论分析(复杂度比较)、实验性能比较 (7) 5.1 复杂度分析 (4) 5.2 实验性能比较 (4) 6 心得体会 (8) 7参考文献 (8) 8 附录 (8)

摘要 图论是近年来发展迅速而又应用广泛的一门新兴学科,已广泛应用于运筹学、网络理论、信息论、控制论、博奕论以及计算机科学等各个领域。一般说来,图的着色问题最早起源于著名的“四色问题”,染色问题不但有着重要的理论价值,而且,它和很多实际问题有着密切联系,例如通讯系统的频道分配问题,更有着广泛的应用背景. 本文首先讨论了人工智能的状态搜索方法在图着色中的具体应用,并用可视化方法展示了低维的着色空间和约束的具体意义。 关键词:图着色 c++代码 2、图的着色问题 2.1图的着色问题的来源 1852年,毕业于伦敦大学的弗南西斯·格思里(Francis Guthrie)在一家科研单位从事地图着色工作时,发现“任何一张地图似乎只用四种颜色就能使具有共同边界的国家着上不同的颜色。” 用数学语言来表示,即“将平面任意地细分为不相重迭的区域,每一个区域总可以用1,2,3,4这四个数字之一来标记,而不会使相邻的两个区域得到相同的数字。”这就是源于地图着色的四色猜想问题。这里所指的相邻区域,是指有一整段边界是公共边界。如果两个区域只相遇于一点或有限多点,就不叫相邻。因为用相同的颜色给它们着色不会引起混淆。 用四种颜色着色的世界地图: 采用四种颜色着色的美国地图: 2.2图的着色问题的描述 (一)图的着色问题是由地图的着色问题引申而来的:用m种颜色为地图着色,使得地图上的每一个区域着一种颜色,且相邻区域颜色不同。 (二)通常所说的着色问题是指下述两类问题:

地图着色问题

一、需求分析 1、问题描述 现在有一张地图,为了便于区别各个地图上的板块,地图上相 邻的颜色块应该是不同的颜色。现在的任务是给定一张地图,要对其进行着色,相邻的板块之间的颜色不能相同,输出最后 的着色的方案。 2、基本分析 功能一:为了程序的灵活性,可以让程序自由建立图 功能二:为建好的图进行着色。 3、输入输出 输入一张图的信息,正确输入边数和顶点数,输入边的关系(两 个顶点之间的),颜色只要四种,分别用数字1到4表示。 输出时根据每个顶点不同的标号输出着色的结果。 二、概要设计 1、设计思路 给定四种颜色,从选定的第一个顶点开始着色,先是第一种颜 色,如果这个颜色与这个顶点的其他邻接顶点颜色不重复,则 这个顶点可以使用此颜色,程序开始对下一个顶点着色;如果 着色重复,则使用下一种颜色重复上述过程。着色过程就是一 个递归的过程,直到所有的顶点都有着色后结束着色过程

结束

2、数据结构设计: 因为这个程序是对图的操作,所以程序采用的逻辑结构是图状,存储结构是邻接矩阵,考虑用邻接表是因为一般的地图的某一 个顶点并不会与很多的顶点邻接,如果用邻接矩阵就能符合实 际的需求,虽然占用稍大的空间,但是增强了程序的实际使用 性。 抽象数据类型定义如下: 数据对象是点和边(vex&adj) 数据关系是颜色分布以及边的相邻的两个顶点 基本操作: CreatGrouph(&G); 创建一张需要操作的无向图G Destroy(Graph &G); 初始条件:无向图G存在 操作结果:销毁图G LocateVex(&G,i) 初始条件:无向图G存在 操作结果:若在图G中存在顶点i,则返回该顶点在图中的位置,否则返回其他信息 Trycolor(current &G,store[]) 初始条件:无向图G存在,在图中有第current个顶点

地图学考试总结

1.珠穆朗玛05年高度8844.43米 2.高程控制点起算面:1985年国家高程基准大地坐标:1980西安坐标系 3.椭球体三要素:长轴a(赤道半径),短轴b(极半径),椭球的扁率f。 地面点位用地理坐标表示为:经度纬度。 4.1杰出的西晋地图学家裴秀提出:制图六体——分率、准望、道里、高下、方邪、迂直,倡导计里画方的方法。 北宋沈括(公元1031~1095)编制了“二寸折百里”的《天下州县图》20 幅,是当时最好的全国地图。制作地形立体模型,并在长期实践中发现了磁针偏角现象。 2托勒密世界地图:他在前人科学成就基础上完成的巨著《地理学指南》,事实上就是一部关于数学制图方法和测绘资料的汇编,是世界上最早的地图集雏形。她采用了新的经纬线网,创造了两种新的世界地图投影,并绘制了世界地图。托勒密的地图是西方古代地图史上划时代的作品 3墨卡托世界地图:于1538年绘制了第一张世界地图,这是从北极的角度俯视绘制而成。用地图集的形式,分别总结了16世纪以前东西地图发展成就。用等角圆柱投影编制世界地图,在航海方面起了巨大作用,一直延续至今,他的地图集是当时欧洲发展的里程碑。 4沈括:编制了天下州县图 5裴秀奠定了中国古代地形图编绘的理论基础,托勒密成为西方古代地形图编绘的代表 5.地图的数学要素:地图投影,坐标系统,比例尺,控制点。 6.主比例尺;在投影面上没有变形的点或线上的比例尺 局部比例尺:在投影面上有变形处的比例尺 地图比例尺的表现形式:数字比例尺,文字比例尺,图解比例尺。 数字式比例尺:如1:10000 文字式比例尺:如百万分之一 图解比例尺:直线比例尺,斜分比例尺,复式比例尺。 假如:实地直线长度2千米,在1:2.5万的地图上相当于直线8厘米 7.地球仪上经纬网的特性:1经线都是等长的大圆线,收敛于两极点,纬差相等的经线长度相等;2纬线都是垂直于经线的圆,周长以赤道最大,向高纬逐渐缩小,至两极缩为一点。纬圈相互平行,同一纬圈上,经差相等的纬线长度相等;3经纬线相互正交。每两条纬线间等经差的球面梯形,形状相同,面积相等。每两条经线间等纬差的球面梯形,由低纬向高纬缩小。 8.地图投影变形:长度变形,面积变形,角度变形。 按地图投影的变形性质分类:1等角投影,投影面上某点的任意两方向线夹角与椭球面上相应两线段夹角相等(无角度变形,ω=0,a=b,θ=90°,m=n,p=ab=mn,面积变形大) 适用于对方向精度要求高的交通图、洋流图、风向图等 2等积投影:无面积变形,Vp=0,P=1,ab=1 3任意投影:在主方向之一上没有长度变形的任意投影,投影图上,长度、面积和角度都有变形,它既不等角又不等积 角度变形小于等积投影,面积变形小于等角投影 在任何投影图上,均存在着长度变形,长度变形是影响面积变形和角度变形的因素 在等积投影上不能保持等角特性,在等角投影上不能保持等积特性,在任意投影上不能保持等积和等角的特性。 等积投影的形状变化比其它投影大,等角投影的面积变形比其它投影大。 按地图投影的构成方法分类:方位投影,圆柱投影,圆锥投影. 9.角度变形:投影面上任意两方向线所夹之角与球面上相应的两方向线夹角之差,称为角度变

新编地图学教程(试题及答案数套)嘉园

地图学复习 练习一: 《新编地图学教程》(第二版)毛赞猷等编 复习指导 第一章导论 一、填空: 1、地图的基本特征:遵循特定的数学法则、具有完整的符号系统、经过地图概括、地理信息的载体。 2、地图和文字一样有着4000多年的历史。 3、地图至少有四方面的功能:地图信息的载负功能、地图信息的传递功能、地图的模拟功能、地图的认知功能。 4、地图能够存贮数量巨大的地理信息,以表达它的空间结构和时间序列变化,以及各现象间的相互联系。空间结构指地理信息的空间分布规律,包括它的数量、质量特性;时间序列变化反映制图对象的动态变化,也即制图对象的历史进程、现代发展和未来趋势。 5、地图投影、坐标系统、比例尺构成地图的数学法则。 6、经过分类、简化、夸张和符号化,从地理信息形成地图信息的过程,称为地图概括。 7、地图信息由直接信息和间接信息组成。直接信息是地图上用图形符号直接表示的地理信息,如水系、居民点等;间接信息是经过解译、分析而获得的有关现象或实体规律的信息,如通过对等高线的量测而获得有关坡度、切割密度的数据和图形。 8、地图按图型划分为普通地图与专题地图。 9、虚地图是指存在于人脑中或以数字形式记录存储在电脑中的地图。前者例如心像地图,后者如数字地图。 10、实地图是地理信息可视化了的地图。例如纸质地图、屏幕地图、地球仪等。 11、地图是伴随着文字出现的,是随着人类经济活动的需要产生的。古尼罗河、黄河流域的农田水利和城郭的发展带动了天文测量、平面测量和地图制作技术。古希腊手工业作坊比较发达,地中海贸易和战争使测绘用于航海成为当时的迫切任务,他们着重于测量经纬度、研究地图投影、编绘航行地图,因而将地图测绘建立在天文——大地测量的基础上。 12、古希腊毕达哥拉斯提出大地是圆球的观念,埃拉托色尼估算出地球的一段经线弧长,以此推算出地球的大小。托勒密是西方重要的天文学家、地图学家,他的名著是《地理学指南》。 13、1978年河北省平山县出土了一块公元前310年以前铜版的“兆域图”,是我国现存最古老的平面图实物。 14、1986年甘肃天水放马滩出土了秦王嬴政八年(公元前239年)绘在四块松木板上的地图七幅,以水系构成地图框架,水系、居民点、交通线和地形等地图的要素和比例概念基本形成,是我国现存最早的地理图。 15、1974年,长沙马王堆汉墓中出土了三幅绘在帛上的彩色地图,这些图距今已有2200年。其中一幅属于地形图、一幅属于驻军图、一幅属于城邑图。其年代之早、地理位置之精,显示我国地图制作在当时世界上的领先地位。 16、裴秀(公元223——271年)是我国古代魏晋时期杰出的地图学家。在他主持编绘的《禹贡地域图十八篇·序》中,他总结出编纂地图的六项规则,即地图史上文明的“制图六体”。 17、裴秀总结的“制图六体”是:分率、准望、道里、高下、方邪、迂直。其中“高下、

地理信息系统课程设计详细过程

课程设计说明书(地图编绘与课程设计)

年月日

地图学课程设计教学大纲 一、课程设计题目 基于的专题地图设计与编制。 二、课程设计目的 本设计是在完成地图学的课堂教学后进行的,旨在加深学生对专题地图的认识和理解,包括专题地图的概念、特征、类型、编辑设计、表现方法以及图例的设计和图面配置,巩固课堂教学的内容。 是中地数码集团推出的专业矢量绘图软件,是中国具有完全自主知识版权的地理信息系统软件,是全球唯一的搭建式数据中心集成开发平台,实现遥感处理与完全融合,支持空中、地上、地表、地下全空间真三维一体化的开发平台。在绘图、设计制作、编辑合成、输入输出和网页制作等方面功能强大,包括海量无缝图库管理、空间数据库管理、空间分析工具、网络分析功能、多源图像分析与处理等。学生应了解绘图环境,熟练掌握矢量成图步骤方法,会用进行符号设计。 是开发,本次设计主要应用信息编辑与分析功能,利用的桌面功能来完成设计,完成矢量数据的属性字段添加,并对其进行分析与编辑。是一个集成了众多高级应用的软件套件,它包含了一套带有用户界面组件的桌面应用(例如,,,以及)。具有三种功能级别――,,和)。 三、课程设计要求 通过上机操作,要求学生在和软件的基础上根据底图进行矢量化、地理数据的输入、编辑、存储和输出方法。具体要求学生做到: 1 专题地图的编制按照专题地图的表现方法进行,利用相应的符号表示各种自然或人文现象;专题地图的相关基础资料见附件; 2 编辑的图件将就美观、大方,可以适度张扬个性; 3 学会编写课程设计报告。课程设计报告要求格式规范,图文并茂,5000字左右; 课程设计报告内容包括: (1)课程设计的目的和意义; (2)专题地图的背景资料(包括自然地理、地质、社会经济等); (3)专题地图的编制过程; (4)专题地图的设计与优化过程;

地图着色课程设计

算法分析与设计课程设计说明书 地图着色 学院:计算机与控制工程学院 专业:计算机科学与技术 学生姓名:xxxxx学号:成绩 学生姓名:xxxxx 学号:成绩 指导教师:

内容提要 此题为地图着色问题,由地图着色问题很容易想到图的着色问题,因此可以把地图抽象为无向图来解决地图的着色问题。对地图的抽象相当于对图的抽象,即以邻接矩阵来实现地图的区域相邻的描绘,而对地图的区域数即以图的顶点数来描绘。设计说明书的内容包括需求分析,概要设计,详细设计,代码实现,后期测试等内容,需求分析是对此问题所需要实现的功能的介绍,概要设计是对所需要实现功能的模块划分,以及初步的实现思想,详细设计通过编写大致的代码来实现功能,代码实现则是具体的解决问题,解决此问题设计了两个算法,贪心,回溯,在程序的测试阶段,回溯算法对同一个问题的解决速率高于贪心算法,但是结果都是以最少的颜色数来染色。 课题实现的环境是在window环境下的eclipse中,通过在其中输入地图的区域数,图的连接情况,来选择相应的算法来实现染色,本次课题所采用的数据结构主要是二维数组来抽象图的邻接矩阵。

目录 1引言(或绪论) (1) 2需求分析 (2) 2.1 问题分析 (2) 2.3问题解决 (2) 2.3 运行环境及开发工具 (3) 2.4功能需求 (3) 2.4.1 地图的抽象及输入 (3) 2.4.2 地图着色的算法设计 (3) 2.4.3 界面设计 (3) 2.4.4 输出设计 (3) 2.5任务分配 (4) 3概要设计 (4) 3.1 数据定义 (4) 3.2 功能模块定义 (4) 3.2.1 地图的抽象输入模块 (4) 3.2.2 输出模块 (4) 3.2.3 地图染色模块 (4) 3.2.4 界面设计模块 (5) 3.2.5 主模块 (5) 3.3 程序流程图 (6) 4 详细设计 (7) 4.1 地图输入模块 (7) 4.1.1 数据类型 (7) 4.1.2 具体实现 (7) 4.2 界面设计模块 (7) 4.2.1 数据类型 (7) 4.2.2 具体实现 (7) 4.3 算法设计模块 (9) 4.3.1 回溯法过程 (9)

地图学课程设计心得体会

地图学课程设计心得体会 通过此次课程设计,使我更加扎实的掌握了有关地图制作的基本知识,而且掌握普通地图和专题地图的编制方法与过程、制图综合的理论与技术熟使用悉用MapGIS、ArcGIS等制图软件以及结合运用 Photoshop进行地图编制的全过程及基本方法,了解MapGIS、ArcGIS在制图领域中的应用。巩固课堂上所学的地图编绘的基本原理、综合理论和方法,从而提高我们的专业水平和动手能力。 本次课程设计在制图过程中然遇到了不少的问题,但经过一次又一次的思考,一次又一次的实践,并通过同学间互相帮助以及向各师兄的询问,最终完成了省市普通地图和专题地图的制作。在制图过程中也暴露出了自己在这方面的知识欠缺和对软件不不熟悉。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。 过而能改,善莫大焉。在课程设计过程中,我们不断发现错误和不足,不断改正,不断领悟,不断获取。在制图过程中,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中学习到了曾经不知道不懂的东西。所以在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的去探究,然后一一进行解决,只有这样,才能很好的完成想做的事,才能在今后的道路上劈荆斩棘,收获喜悦,收获成功! 课程设计诚然是一门专业课,使我很多专业知识以及专业技能上的提升,同时又是一门辩思课,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了专业软件件的运用;掌握了地图矢量化的不同方法,地图匹配,属性编辑,以及如何提高地图质量,地图美观,也掌握了制图方法和技术,通过查询和收集资料,也懂得了很多的专业术语和知识。 我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这也是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。 回顾起此课程设计,感慨颇多,从理论到实践,在这几天的时间里,可以说得是苦多于甜,累,但是可以学到很多很多的东西,不仅巩固了以前所学过的知识,也学到了很多在书本上所没有学到过的知识。在设计的过程中遇到问题也颇多,但可喜的是最终都得到了解决。 此次课程设计给自己最大的感触是,不管什么样的软件,懂的也好不懂的也好,都要动手去用,只有自己操作了,才会真正明白其中的用处,其次是,在遇到困难的时候,不要总是一个人在那捣鼓,同学间应该互相的帮助,有时候向别人学习,会比自己一个人在哪儿毫无头绪的摸索更好。 此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。

数据结构课程设计报告地图着色问题

课程设计报告 课程设计题目:地图着色问题 专业:xxxxxxxxx 班级:xxxxxxxxx 姓名:xxxxxxxxx

一:需求分析: 1)已知中国地图,对各省进行着色,要求相邻省所使用的颜色不同,并保证使 用的颜色总数最少; 2)将各省进行编号,然后利用无向图个顶点之间的边来表示各省的相邻关系; 3)演示程序以用户和计算机的对话方式进行; 4)最后对结果做出简单分析。 二:概要设计 一:设计思路 把34个省看成34个顶点,从选定的第一个顶点开始着色,先试第一种颜色,如果这个颜色与这个顶点的其他邻接顶点的颜色不重复,则这个顶点就是用这种颜色,程序开始对下一个顶点着色;如果着色重复,则使用下一种颜色重复上面的操作。着色过程就是一个递归的过程,直到所有的顶点都处理完后结束着色。 二:数据结构设计 因为这个程序是对图的操作,所以程序采用的逻辑结构是图状,存储结构选用邻接表,考虑用邻接表是因为一般的地图的某一个顶点并不会与很多的顶点相邻接,如果用邻接矩阵会浪费很多的存储空间,所以我选择的邻接表来存储。 其中: typedef struct ArcNode { int x; (表示与当前顶点所表示省份相邻的省份的位置信息) struct ArcNode *next; (指向下一个弧结点) }ArcNode; (表示省份之间相邻关系的弧结点) typedef struct { char *name; (顶点所表示的省份的名称) int color; (省份的颜色,用数字表示不同的颜色) ArcNode *firstnext; (指向第一个弧) }shengfen[35];

《地图学课程设计》大纲

《地图学课程设计》大纲 一、目的、内容和要求 1、目的 通过本项课程设计,掌握地理底图和专题地图编制的基本原理与方法,能够熟练运用制图软件编绘地图,提高数据资料收集、图形化设计和信息综合表达的能力。 2、内容 具体内容包括: 2.1地理底图的编制: (1)投影网格与比例尺:依据地图内容、用途选用等比例尺底图,注意图廓的配准、 注记与经纬网密度删减。 (2)水系:选用河流、湖泊、水库、海岸线等,适当概括。 (3)居民点:居民点分级、概括,地名分级注记。 (4)边界线:视专题地图需要选取(国、省、市、县、镇边界),线性符号选用与 设计。 (5)交通线:铁路(车站)、国道、高速公路和水运航线(码头) (6)地貌信息:根据专题需要,选取少量等高线。 2.2专题地图设计 (7)收集专题信息相关的图件、文本、数据和参考资料。 (8)资料加工处理,数据统计分析,图象资料运用。 (9)专题内容表示:符号设计与表现形式,图例系统设计。 (10)地图概括:地图内容的选择,点、线、面要素的分类、简化、夸张与合并。 (11)图面内容设计:地图幅面上图名、图例、主图、附图、图表、比例尺、文字等 位置安排;图廓、色彩、网纹配置、版权说明等。 2.3 编写专题地图说明书 (12)资料与数据来源,分析方法与成图过程。 (13)专题信息导读:专业信息时空分布规律、成因与对策分析。 (14)存在问题分析。 2.4 地图专题内容 赣州市地理地图(行政分区地图)基础上(网上搜索),编绘旅游专题、经济专题、人口专题、交通专题、城市专题、环境专题等。 3、要求 学生地图课程设计时按地图出版设计要求进行,每人按时上交一份装订成册的专题地图(二分之一开本787*960,彩色打印)及其说明书,并备份存档电子文本和图象、图形格式文件一套。

新编地图学教程总结

中国大地坐标系:1954北京坐标系、1980西安坐标系 高程系统:1956年黄海高程系,水准原点高程H=72.289m、1985青岛国家高程基准水准原点高程H=72.2604m 平均海平面:黄海平均海平面 第一章导论 地图的基本特征:地理信息的载体、数学法则的结构、有目的的图形概括和符号系统的运用。 地图的定义:地图是遵循相应的数学法则,将地球(也包括其他星体)上的地理信息,通过科学的概括,并运用符号系统表示在一定载体上的图形,以传递它们的数量和质量在空间和时间上的分布规律和发展变化。 构成要素:图形要素、数学要素、辅助要素、补充说明。 地图的功能:①地图信息的载负功能;②地图的传递功能;③地图的模拟功能;④地图的认知功能。 地图学是以地理信息可视化为核心,探讨地图的理论实质、制作技术和使用方法的综合性科学。 地图的类型:①按尺度划分,大比例尺、中比例尺、小比例尺;②按区域范围划分,星球图和地球图;世界图、半球图、大洲图和大洋图;国家图、下属行政区地图;局部区域图;③按地图的图型划分,普通地图(分为地形图和地理图,前者较详细,后者较概略)和专题地图;④按地图维数划分,二维平面地图和三维立体地图;⑤按其他指标的分类,用途、语言种类、历史年代、出版和使用方式。 国家8种基本比例尺地形图:1:100万、1:50万、1:25万、1:10万、1:5万、1:2.5万、1:1万、1:5千。 裴秀,“一分为十里、一寸为百里”,一里=500m,十里=5000m,一寸=3.33…cm。(P13) 地图的成图方法:①实测成图(在现场或记录载体上,利用各种测量设备、采用不同方法进行测量作业,将成果缩小绘制在介质上的过程),分为野外地形测图和摄影测量成图(我国国家基本比例尺地形图都采用摄影测量方法进行);②编绘成图(根据各种制图资料,以室内作业为主制作地图的过程,属于地图编制)分为常规编图、遥感制图(利用航空和卫星数据进行各种地图编制的过程)、数字制图(应用计算机和图像输入、显示和输出设备,在制图软件的支持下,模拟手工作业各阶段进行地图设计和原图编绘的成图方法)。 1.野外地形测图过程: 大地控制测量→加密控制网→展绘控制点→碎步测量→符号化→清绘→地图复制。 2.常规编图过程: 资料收集、分类与区域特点分析→地图设计→原图编绘→出版前准备→地图制印。 3.遥感制图过程: ①地图数据→地图制作→ ②遥感数据→图像增强、几何纠正、图像解译→专题编辑、矢量化→

(2020年7月整理)《新编地图学教程》复习提纲.doc

《地图学》复习提纲 练习一: 《新编地图学教程》(第二版)毛赞猷等编 复习指导 第一章导论 一、填空: 1、地图的基本特征:遵循特定的数学法则、具有完整的符号系统、经过地图概括、地理信息的载体。 2、地图和文字一样有着4000多年的历史。 3、地图至少有四方面的功能:地图信息的载负功能、地图信息的传递功能、地图的模拟功能、地图的认知功能。 4、地图能够存贮数量巨大的地理信息,以表达它的空间结构和时间序列变化,以及各现象间的相互联系。空间结构指地理信息的空间分布规律,包括它的数量、质量特性;时间序列变化反映制图对象的动态变化,也即制图对象的历史进程、现代发展和未来趋势。 5、地图投影、坐标系统、比例尺构成地图的数学法则。 6、经过分类、简化、夸张和符号化,从地理信息形成地图信息的过程,称为地图概括。 7、地图信息由直接信息和间接信息组成。直接信息是地图上用图形符号直接表示的地理信息,如水系、居民点等;间接信息是经过解译、分析而获得的有关现象或实体规律的信息,如通过对等高线的量测而获得有关坡度、切割密度的数据和图形。 8、地图按图型划分为普通地图与专题地图。 9、虚地图是指存在于人脑中或以数字形式记录存储在电脑中的地图。前者例如心像地图,后者如数字地图。 10、实地图是地理信息可视化了的地图。例如纸质地图、屏幕地图、地球仪等。 11、地图是伴随着文字出现的,是随着人类经济活动的需要产生的。古尼罗河、黄河流域的农田水利和城郭的发展带动了天文测量、平面测量和地图制作技术。古希腊手工业作坊比较发达,地中海贸易和战争使测绘用于航海成为当时的迫切任务,他们着重于测量经纬度、研究地图投影、编绘航行地图,因而将地图测绘建立在天文——大地测量的基础上。 12、古希腊毕达哥拉斯提出大地是圆球的观念,埃拉托色尼估算出地球的一段经线弧长,以此推算出地球的大小。托勒密是西方重要的天文学家、地图学家,他的名著是《地理学指南》。 13、1978年河北省平山县出土了一块公元前310年以前铜版的“兆域图”,是我国现存最古老的平面图实物。 14、1986年甘肃天水放马滩出土了秦王嬴政八年(公元前239年)绘在四块松木板上的地图七幅,以水系构成地图框架,水系、居民点、交通线和地形等地图的要素和比例概念基本形成,是我国现存最早的地理图。 15、1974年,长沙马王堆汉墓中出土了三幅绘在帛上的彩色地图,这些图距今已有2200年。其中一幅属于地形图、一幅属于驻军图、一幅属于城邑图。其年代之早、地理位置之精,显示我国地图制作在当时世界上的领先地位。 16、裴秀(公元223——271年)是我国古代魏晋时期杰出的地图学家。在他主持编绘的《禹贡地域图十八篇·序》中,他总结出编纂地图的六项规则,即地图史上文明的“制图六体”。 17、裴秀总结的“制图六体”是:分率、准望、道里、高下、方邪、迂直。其中“高下、

数据结构课程设计地图着色问题

课程设计报告 课程设计题目:地图着色问题专业:xxxxxxxxx 班级:xxxxxxxxx 姓名:xxxxxxxxx

一:需求分析: 1)已知中国地图,对各省进行着色,要求相邻省所使用的颜色不同,并保证使 用的颜色总数最少; 2)将各省进行编号,然后利用无向图个顶点之间的边来表示各省的相邻关系; 3)演示程序以用户和计算机的对话方式进行; 4)最后对结果做出简单分析。 二:概要设计 一:设计思路 把34个省看成34个顶点,从选定的第一个顶点开始着色,先试第一种颜色,如果这个颜色与这个顶点的其他邻接顶点的颜色不重复,则这个顶点就是用这种颜色,程序开始对下一个顶点着色;如果着色重复,则使用下一种颜色重复上面的操作。着色过程就是一个递归的过程,直到所有的顶点都处理完后结束着色。 二:数据结构设计 因为这个程序是对图的操作,所以程序采用的逻辑结构是图状,存储结构选用邻接表,考虑用邻接表是因为一般的地图的某一个顶点并不会与很多的顶点相邻接,如果用邻接矩阵会浪费很多的存储空间,所以我选择的邻接表来存储。 其中: typedef struct ArcNode { int x; (表示与当前顶点所表示省份相邻的省份的位置信息) struct ArcNode *next; (指向下一个弧结点) }ArcNode; (表示省份之间相邻关系的弧结点) typedef struct { char *name; (顶点所表示的省份的名称) int color; (省份的颜色,用数字表示不同的颜色) ArcNode *firstnext; (指向第一个弧) }shengfen[35]; 2 三:详细设计 该程序一共包含三个模版:分别为初始化模版、着色模版和输出模版。 1.初始化模块

地图学课程论文

地图学学习概括 一.地图学 地图学是研究地图的理论、编制技术与应用方法的科学,是一门研究以地图图形反映与揭示各种自然和社会现象空间分布、相互联系及动态变化的科学、技术与艺术相结合的科学。现阶段对地图学的定义是:研究地图信息的表达、处理和传输的理论和方法,以地理信息可视化为核心,探讨地图的制作技术和使用方法的学科。 地图学的内容非常丰富,要想研究透彻不是易事,在这里我们就地图学的研究对象、研究内容、研究分支进行相关介绍。 1.地图学的研究对象是:地球表层各种自然与社会现象的结构与特性的空间信息,包括宏观与微观、具体与抽象、现实与历史的所有空间信息。涉及地球科学、生物科学、环境科学的许多领域,而且随着人类认识范围的扩大,地图学的研究对象正向外层空间和地壳深部延伸。研究内容。 2.地图学的研究内容是:探讨以地图作为空间信息的载体与传输工具,依据数学法则,按照比例建立空间模型,运用符号系统和最佳感受效果表达人类对地理环境的科学认识;综合分析自然与社会现象的空间分布、内在联系及其时间变化;研究地图编制与应用原理、方法与工艺、技术。 3.地图学的结构及学科分支,地图学由地图理论、制图技术和地图应用三个分支学科组成。

二.地图制作的理论基础 地球椭球面是不可展的曲面,用机械的方法将它展开呈平面,必然会使曲面产生褶皱、拉伸或断裂等无规律的变形,难以在这样的平面上绘制科学、准确的地图。在这里我们可以采取一种透视的方法将球面投射在平面上,即地图投影。地图投影的讨论对象就是研究将地球表面展开成平面的理论方法,实现由球面到平面的转换。采用不同的投影设计进过解析计算可以得出不同的经纬网格,从而构成新编地图的控制框架。这里主要介绍两种投影方法: 1. 墨卡托投影(横轴等角割圆柱投影) 1569年,墨卡托设计正轴等角圆柱投影,第一次把东、西半球已知范围展现在一幅地图上。这种投影的地图能为航海者进行直线导航,为航海图所普遍采用,被命名为“墨卡托投影”,以后还出版了以他名字命名的地图集。随着航空和航天的需要,多种横轴和斜轴的墨卡托投影相继出现。墨卡托的工作被誉为16世纪欧洲地图学的里程碑,他的地图集开创了世界全图的新投影,反映了当时欧洲地图发展的特点。 (1)等角航线:是地球表面上与经线相交成相同角度的曲线。在地球表面上除经线和纬线以外的等角航线,都是以极点为渐近点的螺旋曲线。等角航线在图上表现为直线。这一特性对航海具有很重要的意义。

地图学实习心得

《地图学》实习心得 学校:泉州师范学院 学院:资源与环境科学学院 班级:13地理科学 姓名:苏郑毅恒 学号:130904044

《地图学》实习心得 目录 1)实习目的 (3) 2)实习内容 (3) 3)实习中遇到的问题及解决 (3) 4)普通地图设计、制作内容 (5) 5)专题地图设计、制作内容 (6) 6)实习心得 (7)

一、实习目的: 《测量地图学》是地理科学专业的主干课程。地图学是以地图信息传递为中心的,探讨地图的理论实质、制作技术和使用方法的综合性科学,同时,地图学也是一门实践性很强的课程。因此,在教学安排上,我们集中一周的时间进行地图学实习。 通过实习,巩固和扩大加深学生在课堂上所学的地图学知识,全面地检测学生对知识的掌握程度和应用能力,加深对数字地图的理解、掌握基本数字地图制作的方法,锻炼地图设计能力,培养学生认真严谨、独立思考、理论与实践结合的能力。 二、实习内容: 本次实习的内容主要有: ①熟悉MapInfo系统; ②结合专业背景及课程要求,进行普通地图设计; ③应用MapInfo软件制作普通地图; ④进行专业内容的专题地图设计; ⑤应用MapInfo软件制作专题地图, ⑥写作实习报告。 三、实习中遇到的问题及解决: 问题1:电脑经常死机,打开word失败,连不上网上邻居。 解决方法:安装360杀下毒,打开网上邻居的时候要稍等一下 问题2:对Mapinfo软件有很多不懂的地方 解决方法:常常与同学讨论,向老师虚心请教。

问题3:画各县级市行政区域边界的时候不懂得如何画公共边界。 解决方法:通过询问老师或问其他会的同学,画公共边界应该要利用“S”,然后按住“shift”键画公共边界。在输入法为英文状态下按‘s’键,工作进入“s”状态,先点工具条中的多边形面状图标,然后点再公共边界的一个端点,按住“shift”键,点公共边界的另一个端点,这时候公共边界会变成灰色,放开“shift”,这样公共边界就完成了。 问题4:制作专题地图时候把文字类型选错了,本来要选整型和浮点型,我却选成了文字型。 解决方法:点MapInfo软件顶部的“表”然后点“表维护”,然后再表维护钟将所需要的类型改成浮点型和整型,点确定即可。 问题5:在做普通地图时,福建省各市的名称太大了,把其他的图层给覆盖。解决方法:利用工具条中的图层文件表,点击地级市修改状态栏,再把其他的图层隐藏。再用字体符号大小进行改正。 问题6:再制作专题地图时,2012福建省各地区三大产业生产总值饼状图及2008住宿和餐饮企业个数分布图图状态小了。 解决方法:再菜单栏中的工具-专题地图制作-比例大小选择。把原本的图形比例1改成3左右。 问题7:专题地图的地图颜色相邻地区重复了。 解决方法:再专题地图中的菜单栏-转图地图创建-样式中选择颜色不一样的,如果图层中没有的话,可以用自定义的配色。

相关文档
最新文档