攀枝花学院
Panzhihua University
学生课程设计(论文)
题
目:
地图着色问题求解
学生姓名: 葛肪瑜 学号:20101080108
所在院(系): 数学与计算机学院
专
班
业:
计算机科学与技术
级:
2010 级计本一班
指导教师: 吴婷婷 职称: 讲 师
2012 年 6 月 14 日
攀枝花学院教务处制
数据结构课程设计
任务书
攀枝花学院本科学生课程设计任务书
题 目
地图着色问题求解
1、课程设计的目的
1) 使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作
实现算法,以及它们在程序中的使用方法。
2) 使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。
3) 使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。
2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)
已知中国地图,对各省进行着色,要求相邻省所使用的颜色不同,并保证使用的颜色总数
最少。
3、主要参考文献
[1]《数据结构》(C 语言版),严蔚敏,清华大学出版社,2003.
[2]《数据结构题集》,严蔚敏,清华大学出版社,2005.
[3]《数据结构》(C 语言版),刘大有,高等教育出版社,2004.
[4]《Data Structure with C++》,William Ford.William Topp,清华大学出版社,2003.
4、课程设计工作进度计划
完成方案设计与程序框图
第 1 天
第 2、3 天 编写程序代码
第 4 天
第 5 天
程序调试分析和结果
课程设计报告和总结
指导教师(签字)
教研室意见:
日期
年
月
日
学生(签字):
注:任务书由指导教师填写。
年
月
日
接受任务时间:
年
月
日
数据结构课程设计
评定表
课程设计(论文)指导教师成绩评定表
题目名称
地图着色问题求解
评分项目
01 学习态度
02 科学实践、调研
03 课题工作量
04 综合运用知识的能力
05 应用文献的能力
06 设计(实验)能力,方案
的设计能力
07 计算及计算机应用能力
08
09
对计算或实验结果的分析
能力(综合分析能力、技
术经济分析能力)
插图(或图纸)质量、篇
幅、设计(论文)规范化
程度
分
值
得
分
评价内涵
6
7
7
10
5
5
5
10
5
遵守各项纪律,工作刻苦努力,具有良好的科学
工作态度。
通过实验、试验、查阅文献、深入生产实践等渠
道获取与课程设计有关的材料。
按期圆满完成规定的任务,工作量饱满。
能运用所学知识和技能去发现与解决实际问题,
能正确处理实验数据,能对课题进行理论分析,
得出有价值的结论。
能独立查阅相关文献和从事其他调研;能提出并
较好地论述课题的实施方案;有收集、加工各种
信息及获取新知识的能力。
能正确设计实验方案,独立进行装置安装、调试、
操作等实验工作,数据正确、可靠;研究思路清
晰、完整。
具有较强的数据运算与处理能力;能运用计算机
进行资料搜集、加工、处理和辅助设计等。
具有较强的数据收集、分析、处理、综合的能力。
符合本专业相关规范或规定要求;规范化符合本
文件第五条要求。
10 设计说明书(论文)质量 30
综述简练完整,有见解;立论正确,论述充分,
结论严谨合理;实验正确,分析处理科学。
11 创新
10
对前人工作有改进或突破,或有独特见解。
工
作
表
现
20%
能
力
水
平
35%
成
果
质
量
45%
成绩
指
导
教
师
评
语
指导教师签名:
年 月 日
数据结构课程设计
目录
目录
1、地图着色问题设计 .............................................................................................................- 2 -
1.1、需求分析 ..................................................................................................................... - 2 -
2、概要设计 ............................................................................................................................. - 4 -
2.1、设定地图的抽象数据类型 .........................................................................................- 4 -
2.2、本程序包括两个模块 ................................................................................................. - 4 -
3、详细设计 ............................................................................................................................. - 6 -
3.1、地图数据类型的操作设置 .........................................................................................- 6 -
3.2、两点是否邻接的伪码算法 .........................................................................................- 6 -
3.3、着色伪码算法 ............................................................................................................. - 6 -
3.4、将邻接矩阵存储伪码算法 .........................................................................................- 7 -
3.5、主程序和其他函数的伪码算法 .................................................................................- 7 -
3.6、函数调用关系图反映了演示程序的层次结构 .........................................................- 7 -
4、调试分析 ............................................................................................................................. - 8 -
5、课程设计总结 ................................................................................................................... - 12 -
6、附录 着色后的中国地图...............................................................................................- 13 -
7、参考文献 ........................................................................................................................... - 14 -
8、程序源代码 ....................................................................................................................... - 15 -
- 1 -
数据结构课程设计
地图着色问题设计
1、地图着色问题设计
1.1、需求分析
1.1、以二维数组 list[N+1][N+1]表示地图,N 表示区域数目,数组中以元素
值为 0 表示不邻接,1 表示邻接,限定区域数目 N<=50。
1.2、用户先输入区域数目 N,再输入邻接区域的代码,邻接可只写一次,区域
的代码为 0~N,N 个为区域,一个为外部区域,或输入 N-1,则可不包括外部区域,
N 个区域由用户定义。
1.3、输出时,采用一一对应的方法,一个区域对应一种颜色形式:区域代码
==》颜色代码(1~4)=》颜色。
1.4、本程序可为任意一张的地图染色,并且至多只染四种颜色。
1.5、测试数据:当区域数目 N=8,地图如下:
输出为 0=>1=>red
1=>2=>green
2=>3=>blue
3=>4=>yellow
4=>1=>red
5=>2=>green
6=>2=>green
- 2 -
数据结构课程设计
地图着色问题设计
7=>4=>yellow
8=>3=>blue
1.6、程序执行的命令为:
1)创建地图
2)存储地图
3)获取地图
4)地图着色
5)退出
- 3 -
数据结构课程设计
概要设计
2、概要设计
2.1、设定地图的抽象数据类型
ADT list{
数据对象:D={ai,j|ai,jε{’0’、‘1’},0 <=i<=N,0<=j<=N
数据关系:R={ROW,COL}
ROW={
|ai-1,j,ai,jεD,i=1,…N,j=0,…,N}
COL={|ai,j-1,ai,jεD,i=0,…N,j=1,…,N}
2.2、本程序包括两个模块
1)主程序模块:
void main()
{
初始化;
while
{
接受命令;
处理命令;
}
}
2)地图模块――实现地图抽象数据类型
各模块之间的调用关系如下:
主程序模块
地图模块
//定义图
3)数据结构的设计
typedef struct
{
vextype vexs[MAXedg];
adjtype arcs[MAXedg][MAXedg];
int vnum,arcnum;
}Graph;
//存放边的矩阵
4)功能模块的划分及模块间调用关系
//图的邻接矩阵
//图的顶点数和边数
- 4 -
数据结构课程设计
概要设计
- 5 -