搜档网
当前位置:搜档网 › 数据结构课程设计报告格式及要求

数据结构课程设计报告格式及要求

数据结构课程设计报告格式及要求
数据结构课程设计报告格式及要求

数据结构课程设计报告

题目航空客运订票系统

专业班级

学号

姓名

指导教师

成绩

一、设计任务

航空客运订票的业务包括查询(航线和客票预订的)信息、客票预订和办理退票等。基本要求有:

(1)系统必须存储的数据信息

i.航班信息:飞机抵达城市、航班号、飞机号、起降时间、航班票价、票价折扣、

总位置和剩余位置、已订票的客户名单。

ii.客户信息:客户姓名、证件号、座位号。

(2)系统能实现的功能

i.承办订票业务:根据客户提出的要求(飞机低达城市、起降时间、订票数量)

查询该航班信息(包括票价、折扣和剩余位置),若满足要求,则为客户办

理订票手续,输出座位号。

ii.承办退票业务:根据客户提供的情况(航班号、订票数量),为客户办理退票手续。

(3)查询功能

i.查询航线信息:根据飞机降落地点,输出下列信息:航班号、飞机号、起降时

间、航班票价、票价折扣和剩余位置。

ii.查询客户预订信息:根据客户证件号,输出下列信息:航班号、飞机号和座位号。

提供的参考程序已经基本实现以上功能,但有很多不足之处,要求进行程序改进和完善。具体任务有:

(1)分析参考程序实现了哪些功能?指出存在的缺陷。

(2)从以下几方面完善程序:

i.功能上的完善

ii.程序结构上的完善

iii.程序控制上的完善

二、设计要点

1、改变了订票系统主界面格式及背景颜色;

2、增加了清屏功能,避免语句过多的结果;

3、实现了订票与否;

4、实现了只能输入正确航班;

5、实现了选择性别只能选择男女;

6、订票成功余票减少

三、算法实现

#include

#include

#include

#include

#define OK 1

#define ERROR 0

typedef struct airline{ /* 飞机航班的结构定义*/ char air_num[8]; //航班号

char plane_num[8];//飞机号

char end_place[20];//抵达城市

int total; //总位置

int left; //剩余位置

struct airline *next;

}airline;

/*顾客信息的结构定义*/

typedef struct customer{

char name[8]; //姓名

char sex[8]; //性别

char id[20]; //身份证

char air_num[8]; //航班号

int seat_num; //座位号

struct customer *next; //指向下一个旅客

}customer;

/*创建航班链表*/

airline *start_air()

{

airline *a;

a=(airline*) malloc(sizeof(airline));

if(a==NULL) printf("空间不足");

return a;

}

/*创建顾客链表*/

customer *start_cus()

{

customer *c;

c=(customer*)malloc(sizeof(customer));

if(c==NULL) printf("空间不足");

return c;

}

/* 修改航班的空余座位信息*/

airline *modefy_airline(airline *l,char *air_num)

{

airline *p;

p=l->next;

for(;p!=NULL;p=p->next)

{

if(strcmp(air_num,p->air_num)==0)

{

p->left++;

return l;

}

printf("NO the airline!");

return 0;

}

}

/* 增加航班信息*/

int insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left) {

airline *q;

q=(airline*)malloc(sizeof(airline));

strcpy(q->air_num,air_num);

strcpy(q->plane_num,plane_num);

strcpy(q->end_place,end_place);

q->total=total;

q->left=left;

q->next=NULL;

(*p)->next=q;

(*p)=(*p)->next;

return OK;

}

/*增加某航班的顾客信息*/

int insert_cus(customer **p,char *name,char *sex,char *id,char *air_num,int seat_num) {

customer *q;

q=(customer*)malloc(sizeof(customer));

strcpy(q->name,name);

strcpy(q->sex,sex);

strcpy(q->id,id);

strcpy(q->air_num,air_num);

q->seat_num=seat_num;

q->next=NULL;

(*p)->next=q;

(*p)=(*p)->next;

return OK;

}

/*订票操作*/

int book(airline *a,char *air_num,customer *c,char *name,char *sex,char *id)

{

airline *p=a;

customer *q=c->next;

p=a->next;

for(;p->next!=NULL;p=p->next)

{

if(strcmp(p->air_num,air_num)==0)

break;

}

while(q->next!=NULL)

{

q=q->next;

}

{

if(p->left>0)

{

printf("您的座位号是%d",(p->total-p->left+1));

printf("\n");

insert_cus(&q,name,sex,id,air_num,p->total-p->left+1);

--p->left;

p=p->next;

return OK;

}

else

{

printf("没您的座啦!");

return 0;

}

}

}

/*取消订票信息操作*/

int del_cus(customer *c,airline *l,char *name)

{

customer *p,*pr;

char air_num[8];

pr=c;

p=pr->next;

while(p!=NULL)

{

if(strcmp(p->name,name)==0||strcmp(p->air_num,air_num)==0)

{

strcpy(air_num,p->air_num);

l=modefy_airline(l,air_num);

pr->next=p->next;

p=pr->next;

printf("取消订票成功!\n");

return OK;

}

pr=pr->next;

p=pr->next;

}

printf("没有这个人儿啊\n");

return ERROR;

}

/*查找航班信息操作*/

int search_air(airline *head)

{

airline *p=head->next;

printf("air_num plane_num end_place total left\n");

for(;p!=NULL;p=p->next)

{

printf("%s %-10s %-8s %-8d%-8d\n", p->air_num, p->plane_num,p->end_place,p->total,p->left);

}

return OK;

}

/*查找顾客信息操作*/

int search_cus(customer *head)

{

struct customer *q=head->next;

printf(" name sex id air_num seat_num\n");

for(;q!=NULL;q=q->next)

{

printf("%-8s%-8s%-8s%-12s%-d\n",q->name,q->sex,q->id,q->air_num,q->seat_num);

}

return OK;

}

/*预先设置航班信息*/

int creat_air(airline **l)

{

airline *p=*l;

int i=0;

char *air_num[3]={"007af","008af","009af"};

char *plane_num[3]={"航班1","航班2","航班3"};

char *end_place[3]={"美国","德国","法国"};

int total[3]={100,100,100};

int left[3]={52,54,76};

for(i=0;i<3;i++)

insert_air(&p,air_num[i], plane_num[i], end_place[i],total[i], left[i]);

return OK;

}

/*预先设置已订票的顾客信息*/

int creat_cus(customer **l)

{

customer *p=*l;

int i=0;

char *name[3]={"张三","李四","王五"};

char *sex[8]={"nan","nan","nan"};

char *id[20]={"123456","654321","741852"};

char *air_num[3]={"007af","008af","009af"};

int seat_num[3]={2,5,7};

for(i=0;i<3;i++)

insert_cus(&p,name[i],sex[i],id[i],air_num[i],seat_num[i]);

return OK;

}

void main()

{

system("color 8E");

int t=1;

customer *cus=start_cus();

airline *air=start_air();

char name[8],air_num[8],ch,m;

char sex[8],id[20];

creat_air(&air);

creat_cus(&cus);search_air(air);

while(t==1)

{

printf("\n\n\n");

printf("

*********************************\n");

printf(" * 欢迎来订票哦,亲!*\n");

printf(" * 订票----------1 *\n");

printf(" * 退票----------2 *\n");

printf(" * 查询----------3 *\n");

printf(" * 退出----------4 *\n");

printf("

*********************************\n");

scanf("%s",&ch);

if(ch=='1')

{

system("cls");

printf("亲,想乘坐哪辆航班嘞:");

scanf("%s",air_num);

if(strcmp(air_num,"007af")==0||strcmp(air_num,"008af")==0||strcmp(air_num,"009af")==0)

{

printf("亲叫啥嘞:");

scanf("%s",name);

y1: printf("您的性别(nan or nv):");

scanf("%s",sex);

if(strcmp(sex,"nan")==0||strcmp(sex,"nv")==0)

{

printf("您的id:");

scanf("%s",id);

}

else {goto y1;}

printf("*确认请输入Y否则输入N:");

scanf("%s",&m);

if(m=='Y'||m=='y')

{

printf("订票成功!");book(air,air_num,cus,name,sex,id);

}

else if(m=='n'||m=='N')

printf("取消航班成功!\n");

else

{

printf("您的输入有误\n");

}

} else

printf("对不起,没有你要找的航班:\n\n");

system("pause");}

else

if(ch=='2')

{

system("cls");

printf("您不想座哪个航班号啦:");

scanf("%s",air);

printf("您的姓名是啥来着:");

scanf("%s",name);

del_cus(cus,air,name);

}

else

if(ch=='3')

{

system("cls");

search_air(air);

printf("\n");

search_cus(cus);

}

else

if(ch=='4')

{

t=0;

}

}

}

四、运行结果分析

1.订票系统主界面

2、订票成功操作

3、订票航班输入错误操作

4、选择男女操作

5、选择订票是与否操作

6、订票成功余票减少

五、设计总结

这次课程设计使用了C语言来编写程序,使我们的基础知识和数据结构的链表等知识得到了巩固,使我们在实践中得到了锻炼。这次的课程设计,使我更加认识了数据结构,对调试掌握的也更加熟练了一些,对调试也有了新的认识,理解了调试的目的和意义,认识到了编程时要耐心,要严谨,同时在写程序时多多加些注释,既增加了程序的可读性,也可以使自己在读程序时更容易,更清楚。

通过这次课程设计,激发了我对数据结构的兴趣,提高了我对数据结构的学习动力,还让我在知识上得到了提高。相信我会在以后的学习中会得到更多的收货。

注意事项

1.封面“指导教师”一栏的填写:

学号1-24:邓曦辉

学号25以后:常文萃

2.设计报告中如果需要二级标题,可采用“1. 2.

3.”格式。

3.全文应有页码,正文字体全部采用宋体5号,不加粗,页码位

置在右下角,格式是“1,2,3…”

4.课程设计报告纸质版和电子版统一交学习委员。电子版文件夹

名是:“学号+姓名”

数据结构课程设计报告模板

《数据结构I》三级项目报告 大连东软信息学院 电子工程系 ××××年××月

三级项目报告注意事项 1. 按照项目要求书写项目报告,条理清晰,数据准确; 2. 项目报告严禁抄袭,如发现抄袭的情况,则抄袭者与被抄袭者均 以0分计; 3. 课程结束后报告上交教师,并进行考核与存档。 三级项目报告格式规范 1. 正文:宋体,小四号,首行缩进2字符,1.5倍行距,段前段后 各0行; 2. 图表:居中,图名用五号字,中文用宋体,英文用“Times New Roman”,位于图表下方,须全文统一。

目录 一项目设计方案 (3) 二项目设计分析 (4) 三项目设计成果 (4) 四项目创新创业 (5) 五项目展望 (6) 附录一:项目成员 (6) 附录二:相关代码、电路图等 (6)

一项目设计方案 1、项目名称: 垃圾回收 2、项目要求及系统基本功能: 1)利用数据结构的知识独立完成一个应用系统设计 2)程序正常运行,能够实现基本的数据增加、删除、修改、查询等功能3)体现程序实现算法复杂度优化 4)体现程序的健壮性 二项目设计分析 1、系统预期实现基本功能: (结合本系统预期具体实现,描述出对应基本要求(增、删、改、查等)的具体功能) 1. 2. 3. 4. 5. 6. 7. 2、项目模块功能描述 (基本分为组织实施组织、程序功能模块编写、系统说明撰写等。其中程序功能子模块实现) 模块一: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块二: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块n: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

摄影作品课程设计报告书

专题摄影职业装与色彩作品 设计制作说明书 设计制作人:胡雯 班级 15媒体2 学号 2015145216 2016.9

一、本设计的目的和任务 通过本设计主要达到以下目的: 1、使学生进一步增强“摄影的具像特征和象征性特征”的感性认识,加深对摄影曝光、感光度、镜头景深、光圈快门等技术理论和方法的全面理解和掌握。 2、使学生全面掌握以数码照相机为主要器材手段进行摄影创作的流程和方法。尝试创作一组具有个性视角、和独特技术方法的“专题摄影作品”,并自我点评,作出恰当“命名”和“寓意说明”以备推荐到“相应级别摄影赛事”上参展。 通过本设计主要完成的任务: 使学生在课内20学时+课外20学时内(一周时间)完成一组具有个性视角、和独特技术方法的“摄影作品至少6幅”,并自我点评和作出恰当的“命名”和“寓意说明”,以备推荐参展。 二、完成本设计的“创意”准备和技术准备 (一)、选题说明和“创意”简介 1.选题说明 我的选题是“职业装与色彩”,例如我们看到橘色不难想到环卫工人,看到绿色不难想到军人,看到蓝色不难想到警察……所以我想以有代表色的职业装的为出发点,来表现不同职业的劳动人民的工作状态,以表达对劳动者的尊敬与感激之情。 2.“创意”简介 偶然在微博上看见了一段记录清朝长安街头的黑白影像,对比如今的生活,我觉得其中很大的一个变化就是我们现在的职业划分更加的明确并且管理的更加规范,不同种类,色彩各异的职业装的出现便能够说明这点,所以我选取了几种大众已经非常熟悉且有代表性的制服作为代表,来表现劳动者的工作状态。 3.附:选题创意策划分析报告表(最下) (二)、拍摄技术准备和计划 1.创作“摄影作品”的技术手段简述 1)摄影镜头的光学特性和景深原理的应用 景深是指镜头所能对应拍摄到的景物的清晰范围。景深原理可以从下图中得到分析。 影响景深的两个主要因素是光圈和焦距。 (1)光圈口径愈大,在感光片上的弥散圆愈大,所以得到的景深越小。

课程设计论文格式要求

课程设计(论文)书写规范与打印要求 (一)论文书写 论文(设计说明书)要求统一使用Microsoft Word软件进行文字处理,统一采用A4页面(210×297㎜)复印纸,单面打印。其中上边距30㎜、下边距30㎜、左边距30㎜、右边距20㎜、页眉15㎜、页脚15㎜。字间距为标准,行间距为固定值22磅。 页眉内容统一为“沈阳理工大学学士学位论文”,采用宋体五号字居中排写。 页码在下边线下居中放置,Times New Roman小五号字体。摘要、关键词、目录等文前部分的页码用罗马数字(Ⅰ、Ⅱ……)编排,正文以后的页码用阿拉伯数字(1、2……)编排。字体和字号要求 论文题目:二号黑体 章标题:三号黑体(1□□×××××) 节标题:四号黑体(1.1□□××××) 条标题:小四号黑体(1.1.1□□×××) 正文:小四号宋体 页码:小五号宋体 数字和字母:Times New Roman体 注:论文装订方式统一规定为左装订。 (二)论文前置部分 包括:封面、答辩成绩评定页、评阅意见页、任务书、设计档案页均按学校统一内容和格式填写。 (三)摘要 摘要是学位论文内容的不加注释和评论的简短陈述,说明研究工作的目的、实验方法、实验结果和最终结论等。应是一篇完整的短文,可以独立使用和引用,摘要中一般不用图表、化学结构式和非公知公用的符号和术语。 1、中文摘要(300字左右) “摘要”字样(三号黑体),字间空一个字符,“摘要”二字下空一行打印摘要正文(小四号宋体)。 摘要正文后下空一行打印“关键词”三字(小四号黑体),其后为关键词(小四号宋体),关键词是为了便于文献标引从该学位论文中选取出来用以表示全文主题内容信息款目的单词或术语,关键词一般为3~5个,每一关键词之间用分号“;”隔开,最后一个关键词后不打标点符号。 2、英文摘要(250个实词左右) 英文摘要另起一页,其内容及关键词应与中文摘要一致,并要符合英语语法,语句通顺,文字流畅。 英文和汉语拼音一律为Times New Roman体,字号与中文摘要相同。 (四)目次页 目次页由学位论文的章、条、款、致谢、参考文献、附录等的序号、名称和页码组成,目次页置于外文摘要后,由另页开始。 目录题头用三号黑体字居中排写,隔行书写目录内容。 目录采用三级标题,按(1 ……、1.1 ……、1.1.1 ……)的格式编写,目录中各章题序的阿拉伯数字用Times New Roman体,第一级标题用小四号黑体,其余用小四号宋体。(五)论文的主要部分 1、引言(或绪论) 引言(或绪论)简要说明研究工作的目的、范围、前人的工作和知识空白、理论基础和分析、

数据结构课程设计题目2010

一、数据结构课程设计要求 1.学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。有问题及时主动通过各种方式与教师联系沟通。 2.学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。 3.课程设计按照教学要求需要两周时间完成,两周中每天(按每周5天)至少要上2小时的上机来调试C 或C++语言设计的程序,总共至少要上机调试程序20小时。属教师安排上机时间学生不得缺席。 二、数据结构课程设计题目 1. 运动会分数统计(限1 人完成) 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 功能要求: 1) 可以输入各个项目的前三名或前五名的成绩; 2) 能统计各学校总分, 3) 可以按学校编号或名称、学校总分、男女团体总分排序输出; 4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 5) 数据存入文件并能随时查询 6) 规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称 输出形式:有中文提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构; 测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明; 2. 飞机订票系统(限1 人完成) 任务:通过此系统可以实现如下功能: 录入: 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)

课程设计报告(模板)

《地震勘探课程设计》 报告 院系 班级 学生 学号 指导教师 完成日期2014年3月12日 长江大学工程技术学院

目录 一、课程设计目的 (3) 二、课程设计的容 (3) 三、课程设计原理 (3) 四、工区数据 (4) 五、课程设计步骤 (5) 1、建立工区 (5) 2、资料加载 (8) 3、层位标定和层位追踪 (10) 4、断层解释 (13) 5、构造图绘制 (14) 六、心得体会 (15)

一、课程设计目的 地震勘探解释课程设计是我们勘查技术与工程专业和资源勘查工程专业教学中的一个重要的实践性训练环节,通过上机实际操作,训练我们对地震资料进行常规构造解释的实际能力,最终使我们达到:学会利用地震解释软件来进行地震数据的加载,地震层位的标定,地震层位的追踪对比,在地震资料上分析和解释各种断层,以及地震构造图的编制方法。同时,还要学会综合地震地质资料对构造解释结果进行分析,进而对含油气有利地带进行评价和预测,最终编制成果报告。 二、课程设计的容 本次课程设计是理论联系实际的具体表现,是培养学生分析问题、解决问题能力的一个必不可少的环节,主要分为两部分:一、通过对地震资料解释软件Discovery的使用,追踪解释层位数据;二、通过surfer软件学习成图。使学生对地震常用的解释软件有一个初步的认识,能为毕业后从事地震勘探工作奠定良好的基础。地震解释课程设计是勘查技术与工程专业教学中的一个重要的实践性训练环节。通过实验主要训练学生对地震资料进行常规构造解释的实际能力,具体要使学生达到: 1.了解人机联作的基本知识; 2.初步学会地震解释软件的操作流程(工区建立、资料加载、合成记录制作、层位标定、层位追踪、断层解释、断点组合); 3. 进一步巩固和掌握地震资料解释的基本功; 4.初步学会地震成果的地质分析; 5.初步学会编写地震资料解释文字报告;

课程设计报告【模板】

模拟电子技术课程设计报告设计题目:直流稳压电源设计 专业电子信息科学与技术 班级电信092 学号 200916022230 学生姓名夏惜 指导教师王瑞 设计时间2010-2011学年上学期 教师评分 2010年月日

昆明理工大学津桥学院模拟电子技术课程设计 目录 1.概述 (2) 1.1直流稳压电源设计目的 (2) 1.2课程设计的组成部分 (2) 2.直流稳压电源设计的内容 (4) 2.1变压电路设计 (4) 2.2整流电路设计 (4) 2.3滤波电路设计 (8) 2.4稳压电路设计 (9) 2.5总电路设计 (10) 3.总结 (12) 3.1所遇到的问题,你是怎样解决这些问题的12 3.3体会收获及建议 (12) 3.4参考资料(书、论文、网络资料) (13) 4.教师评语 (13) 5.成绩 (13)

昆明理工大学津桥学院模拟电子技术课程设计 1.概述 电源是各种电子、电器设备工作的动力,是自动化不可或缺的组成部分,直流稳压电源是应用极为广泛的一种电源。直流稳压电源是常用的电子设备,它能保证在电网电压波动或负载发生变化时,输出稳定的电压。一个低纹波、高精度的稳压源在仪器仪表、工业控制及测量领域中有着重要的实际应用价值。 直流稳压电源通常由变压器、整流电路、滤波电路、稳压控制电路所组成,具有体积小,重量轻,性能稳定可等优点,电压从零起连续可调,可串联或关联使用,直流输出纹波小,稳定度高,稳压稳流自动转换、限流式过短路保护和自动恢复功能,是大专院校、工业企业、科研单位及电子维修人员理想的直流稳压电源。适用于电子仪器设备、电器维修、实验室、电解电镀、测试、测量设备、工厂电器设备配套使用。几乎所有的电子设备都需要有稳压的电压供给,才能使其处于良好的工作状态。家用电器中的电视机、音响、电脑尤其是这样。电网电压时高时低,电子设备本身耗供电造成不稳定因家。解决这个不稳定因素的办法是在电子设备的前端进行稳压。 直流稳压电源广泛应用于国防、科研、大专院校、实验室、工矿企业、电解、电镀、充电设备等的直流供电。 1.1直流稳压电源设计目的 (1)、学习直流稳压电源的设计方法; (2)、研究直流稳压电源的设计方案; (3)、掌握直流稳压电源的稳压系数和内阻测试方法。 1.2课程设计的组成部分 1.2.1 设计原理

数据结构课程设计报告

《数据结构与算法》课程设计报告 学号: 班级序号: 姓名: 指导教师: 成绩: 中国地质大学信息工程学院地理信息系统系 2011年12 月

1.需求规格说明 【问题描述】 利用哈夫曼编码进行对已有文件进行重新编码可以大大提高减小文件大小,减少存储空间。但是,这要求在首先对一个现有文件进行编码行成新的文件,也就是压缩。在文件使用时,再对压缩文件进行解压缩,也就是译码,复原原有文件。试为完成此功能,写一个压缩/解压缩软件。 【基本要求】 一个完整的系统应具有以下功能: (1)压缩准备。读取指定被压缩文件,对文件进行分析,建立哈夫曼树,并给出分析结果(包括数据集大小,每个数据的权值,压缩前后文件的大小),在屏幕上输出。 (2)压缩。利用已建好的哈夫曼树,对文件进行编码,并将哈夫曼编码及文件编码后的数据一起写入文件中,形成压缩文件(*.Haf)。 (3)解压缩。打开已有压缩文件(*.Haf),读取其中的哈夫曼编码,构建哈夫曼树,读取其中的数据,进行译码后,写入文件,完成解压缩。 (4)程序使用命令行方式运行 压缩命令:SZip A Test.Haf 1.doc 解压缩命令:SZip X Test.Haf 2.doc或SZip X Test.Haf 用户输入的命令不正确时,给出提示。 (5)使用面向对象的思想编程,压缩/解压缩、哈夫曼构建功能分别构建类实现。 2.总体分析与设计 (1)设计思想: 1、压缩准备:1> 读文件,逐个读取字符,统计频率 2> 建立哈夫曼树 3> 获得哈弗曼编码 2、压缩过程: 1> 建立一个新文件,将储存权值和字符的对象数组取存储在文件头

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

摘要 本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步 该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。 关键词:黑白棋;编程;设计

数字图像处理课程设计报告

课程设计报告书课程名称:数字图像处理 题目:数字图像处理的傅里叶变换 学生姓名: 专业:计算机科学与技术 班别:计科本101班 学号: 指导老师: 日期: 2013 年 06 月 20 日

数字图像处理的傅里叶变换 1.课程设计目的和意义 (1)了解图像变换的意义和手段 (2)熟悉傅里叶变换的基本性质 (3)热练掌握FFT的方法反应用 (4)通过本实验掌握利用MATLAB编程实现数字图像的傅里叶变换 通过本次课程设计,掌握如何学习一门语言,如何进行资料查阅搜集,如何自己解决问题等方法,养成良好的学习习惯。扩展理论知识,培养综合设计能力。 2.课程设计内容 (1)熟悉并掌握傅立叶变换 (2)了解傅立叶变换在图像处理中的应用 (3)通过实验了解二维频谱的分布特点 (4)用MATLAB实现傅立叶变换仿真 3.课程设计背景与基本原理 傅里叶变换是可分离和正交变换中的一个特例,对图像的傅里叶变换将图像从图像空间变换到频率空间,从而可利用傅里叶频谱特性进行图像处理。从20世纪60年代傅里叶变换的快速算法提出来以后,傅里叶变换在信号处理和图像处理中都得到了广泛的使用。 3.1课程设计背景 数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。 3.2 傅里叶变换 (1)应用傅里叶变换进行数字图像处理 数字图像处理(digital image processing)是用计算机对图像信息进行处理的一门技术,使利用计算机对图像进行各种处理的技术和方法。 20世纪20年代,图像处理首次得到应用。20世纪60年代中期,随电子计算机的发展得到普遍应用。60年代末,图像处理技术不断完善,逐渐成为一个新兴的学科。利用数字图像处理主要是为了修改图形,改善图像质量,或是从图像中提起有效信息,还有利用数字图像处理可以对图像进行体积压缩,便于传输和保存。数字图像处理主要研究以下内容:傅立叶变换、小波变换等各种图像变换;对图像进行编码和压缩;采用各种方法对图像进行复原和增强;对图像进行分割、描述和识别等。随着技术的发展,数字图像处理主要应用于通讯技术、宇宙探索遥感技术和生物工程等领域。

数据结构课程设计报告范本

数据结构课程设计 报告

数据结构课程设计报告 压缩软件 一·问题描述 利用哈夫曼编码设计一个压缩软件,能对任何类型的文件进行哈夫曼编码,产生编码后的文件——压缩文件;也能对输入的压缩文件进行译码,生成压缩前的文件——解压文件。 二·基本要求 要求编码和译码的效率尽可能地高。 三·工具/准备工作 已学内容:哈夫曼树,哈夫曼树构造算法,哈夫曼编码,Huffman压缩算法。 需要的硬件设施与开发软件:一台计算机,并安装了Visual C++. 四·分析与实现 Huffman树中,叶子结点包含字符以及对应的字符频度(权值) struct HTNode{ //压缩用Huffman树结点 unsigned long weight; //字符频度(权值) unsigned int parent,lchild,rchild; };

使用哈夫曼编码能够对文件进行压缩,由于字符的哈夫曼编码以比特为单位,而当将哈夫曼编码以压缩文件进行存储时,压缩文件最少以字节为单位进行存储,因此需要定义字节缓冲器,以便自动将比特转换为字节,定义如下: struct Buffer{ //字节缓冲压缩用Huffman树 char ch; //字节 unsigned int bits; //实际比特数 }; 定义哈夫曼树的抽象基类模板,实现建树,压缩,解压等功能 class HuffmanTree{ //Huffman树 public: void Code(); //编码 void UnCode(); //译码 private: HTNode HT[m+1]; //树结点表(HT[1]到HT[m]) char Leaf[n+1]; //叶结点对应字符(leaf[1]到leaf[n]) char *HuffmanCode[n+1]; //叶结点对应

CAD课程设计报告书

目录 一、课程设计任务书 (1) 二、项目说明 (2) 三、配电工程图的绘制 (3) 1、图层、线型、文字等基本绘图环境的设置及绘图模板的绘制 2、主要结构尺寸及尺寸配合的确定。 3、问题及讨论。 四、心得体会 (4) 五、配电工程图 (5) 六、参考文献附 (6)

一、设计任务书 设计目的: 熟悉Auto CAD设计软件通过本课程的学习,使学生掌握CAD绘图软件的使用方法和技巧,在时间学习中逐步提高应用水平,并能应用CAD绘图软件进行供配电系统断路器设计。通过绘制供配电系统断路器设计巩固并能综合运用已学过的CAD绘图软件的有关知识,增强计算机辅助绘图的能力,使学生掌握电气设计的基本原则和方法,掌握查阅文献、收集资料、分析计算、综合论证、设计制图、数据处理等多方面的基本技能。掌握优化设计的方法、步骤。掌握变电站设计性能参数及结构掌握AutoCAD2010的常用绘图工具的使用掌握AutoCAD2010的常用编辑工具的使用 设计内容要求: 变电站是电力系统的重要组成部分,是联系发电厂和用户的中间环节。它起着变换和分配电能的作用。变电站的设计必须从全局利益出发,正确处理安全与经济基本建设与生产运行。近期需要与今后发展等方面的联系,从实际出发,结合国情采用中等适用水平的建设标准,有步骤的推广国内外先进技术并采用经验鉴定合格的新设备、新材料、新结构。根据需要与可能逐步提高自动化水平。变电站电气主接线指变电站的变压器、输电线路怎样与电力系统相连接,从而完成输配电任务,变电所的主接线是电力系统接线组成中的一个重要组成部分。一次主接线的设计将直接影响各个不同电压侧电气设备的总体布局,并影响各进出线的安装间隔分配,同时还对变电所的供电可靠性和电气设备运行、维护的方便性产生很大的影响。主接线方案一旦确定,各进出线间和电气设备的相对位置便固定下来,所以变电所的一次主接线是电气设计的首要部分 1、辉县北郊变电站施工图10kv进线柜二次进线图 2、辉县北郊变电站主变保护柜端子排图 3、辉县北郊变电站主变保护柜电气布置图 4、辉县北郊变电站主变保护原理图

软件测试课程设计报告(模板)

课程设计 课程名称软件测试技术题目名称图书系统软件测试专业班级软件工程 学生姓名 学号 指导教师褚伟 二○一六年五月二十四日

目录 1.测试需求分析 (3) 1.1系统概述 (4) 1.2测试需求 (4) 2. 测试概要 (5) 3.测试计划 (5) 3.1测试方案的选择 (5) 3.2测试方案: (7) 3.3测试项目 (7) 3.4测试准备 (7) 3.5 测试覆盖率要求 (7) 4.测试项目说明 (8) 4.1测试项目名称及测试内容 (8) 4.2测试用例 (9) 5.对软件功能的结论 (24) 5.1功能1(系统登录) (24) 5.2功能2(图书管理测试) (24) 5.3功能3(图书查询测试) (24) 5.4功能4(系统管理测试) (24) 5.5功能5(借书测试) (24) 5.6功能6(还书测试) (25) 6.测试评价与结论 (25) 6.1能力 (25) 6.2缺陷和限制 (25) 6.3建议 (25) 7.总结 (26) 8.参考资料 (27)

摘要(中英文)

1.测试需求分析 1.1系统概述 本图书管理系统是一款功能非常强大的图书管理软件,本系统在继承了以往系统版本优点的基础上做了进一步优化;在功能上,本系统不仅包含图书管理的常用功能(如书籍管理、期刊管理、物品管理、读者管理、借、还、预借、续借和统计分析等等功能),而且还增加了条码的生成和打印功能(不仅为使用者省去了购买价格昂贵的条码专用打印机的费用,而且条码产生更方便,与系统结合更紧密)。 考虑到很多单位和学校有现成的身份IC卡(校园卡、会员卡等),为了有效的利用这些已有资源,让使用者使用更方便,我们特在系统中加入了会员卡管理功能,这样,图书管理员不仅可以通过读者编号进行借阅操作,也可以通过已有的身份卡(配合刷卡机或者条码扫描抢使用)来完成操作;在系统的办卡管理中有新办卡、换卡和注销卡等功能,彻底解决丢卡后的安全隐患问题(向制卡公司定制卡时,一般会要求每张卡的ID号都不同,所以一旦换卡了,原来的会员卡就作废了,即使丢失卡被别人捡到也不能进行正常的借阅操作)。 本系统具有操作简单,易学易用的特点。在开发过程中,我们总结了多年使用电脑管理图书馆业务的经验,注意到工作人员在使用电脑时容易发生的人为错误,因而使系统具有较强的容错和排错功能,而且本系统自带了一些常用的资料库(如中图分类库,出版社库等,系统会自动根据图书的标准ISBN码检索出当前图书的出版社名称和出版地点等,从而实现图书的自动录入的功能),使得用户在录入图书资料时更轻松;系统也自带了通用数据导入功能,可以非常简单地把用户以前的已有资料或者通过采集器采集到的数据资料导入到本系统中,避免了大量的重复劳动。经过长时间的不断测试和完善,系统的安全性和稳定性得到保证。 本系统完全可以配合条码扫描枪使用,操作会更流畅,更简单。 技术简介:本系统采用Adaptive Server Anywhere数据库、C/S结构,完全支持多用户操作;可运行于 Windows9x/WindowsNT/2000/Xp/2003平台,有良好的兼容性、先进性与扩充性;可在线升级。 系统特点:操作简单、界面清晰、功能强大、运行稳定快速、系统资源占用少。 1.2测试需求 本次测试针对开发的图书馆管理系统进行,包括功能测试,界面测试,图书

数据结构课程设计报告

编号 课程设计 题目 1、一元稀疏多项式计算器 2、模拟浏览器操作程序 3、背包问题的求解 4、八皇后问题 二级学院计算机科学与工程学院 专业计算机科学与技术 班级 2011级 37-3班 学生姓名 XX 学号 XXXXXXXXXX 指导教师 XXXXX 评阅教师 时间 1、一元稀疏多项式计算器 【实验内容】 一元稀疏多项式计算器。

【问题描述】 设计一个一元稀疏多项式简单计算器。 【需求分析】 其基本功能包括: (1)输入并建立多项式; (2)输出多项式,输出形式为整数序列为:n,c1,e1,c2,e2,……,cn,en,其中n 是多项式的项数,ci,ei分别是第i项的系数和指数,序列按指数降序排序;(3)多项式a和b相减,建立多项a+b; (4)多项式a和b相减,建立多项式a-b; (5)计算多项式在x处的值; (6)计算器的仿真界面(选做); 【概要设计】 -=ADT=- { void input(Jd *ha,Jd *hb); void sort(dnode *h)

dnode *operate(dnode *a,dnode *b) float qiuzhi(int x,dnode *h) f",sum); printf("\n"); } 【运行结果及分析】 (1)输入多项式:

(2)输出多项式(多项式格式为:c1x^e1+c2x^e2+…+cnx^en): (3)实现多项式a和b相加: (4)实现多项式a和b相减: (5)计算多项式在x处的值:

2、模拟浏览器操作程序 【实验内容】 模拟浏览器操作程序 【问题描述】 标准Web浏览器具有在最近访问的网页间后退和前进的功能。实现这些功能的一个方法是:使用两个栈,追踪可以后退和前进而能够到达的网页。在本题中,要求模拟实现这一功能。 【需求分析】 需要支持以下指令: BACK:将当前页推到“前进栈”的顶部。取出“后退栈”中顶端的页面,使它成为当前页。若“后退栈”是空的,忽略该命令。 FORWARD:将当前页推到“后退栈”的顶部。取出“前进栈”中顶部的页面,使它成为当前页。如果“前进栈”是空的,忽略该命令。 VISIT:将当前页推到“后退栈”的顶部。使URL特指当前页。清空“前进栈”。 QUIT:退出浏览器。 假设浏览器首先加载的网页URL是:http:

数据结构课程设计报告

《数据结构课程设计》报告 题目:课程设计题目2教学计划编制 班级:700 学号:09070026 姓名:尹煜 完成日期:2011年11月7日

一.需求分析 本课设的任务是根据课程之间的先后的顺序,利用拓扑排序算法,设计出教学计划,在七个学期中合理安排所需修的所有课程。 (一)输入形式:文件 文件中存储课程信息,包括课程名称、课程属性、课程学分以及课程之间先修关系。 格式:第一行给出课程数量。大于等于0的整形,无上限。 之后每行按如下格式“高等数学公共基础必修6.0”将每门课程的具体信息存入文件。 课程基本信息存储完毕后,接着给出各门课程之间的关系,把每门课程看成顶点,则关系即为边。 先给出边的数量。大于等于0的整形。 默认课程编号从0开始依次增加。之后每行按如下格式“1 3”存储。此例即为编号为1的课程与编号为3的课程之间有一条边,而1为3的前驱,即修完1课程才能修3课程。 例: (二)输出形式:1.以图形方式显示有向无环图

2.以文本文件形式存储课程安排 (三)课设的功能 1.根据文本文件中存储的课程信息(课程名称、课程属性、课程学分、课程之间关系) 以图形方式输出课程的有向无环图。 拓展:其显示的有向无环图可进行拖拽、拉伸、修改课程名称等操作。 2.对课程进行拓扑排序。 3.根据拓扑排序结果以及课程的学分安排七个学期的课程。 4.安排好的教学计划可以按图形方式显示也可存储在文本文件里供用户查看。 5.点击信息菜单项可显示本人的学好及姓名“09070026 尹煜” (四)测试数据(见六测设结果)

二.概要设计 数据类型的定义: 1.Class Graph即图类采用邻接矩阵的存储结构。类中定义两个二维数组int[][] matrix 和Object[][] adjMat。第一个用来标记两个顶点之间是否有边,为画图服务。第二个 是为了实现核心算法拓扑排序。 2.ArrayList list用来存储课程信息。DrawInfo类是一个辅助画图的类,其中 包括成员变量num、name、shuxing、xuefen分别代表课程的编号、名称、属性、 学分。ArrayList是一个DrawInfo类型的数组,主要用来在ReadFile、DrawG、DrawC、SaveFile、Window这些类之间辅助参数传递,传递课程信息。 3.Class DrawInfo, 包括int num;String name;String shuxing;float xuefen;四个成员变量。 4.Class Edge包括int from;int to;double weight;三个成员变量。 5.Class Vertex包括int value一个成员变量。 主要程序的流程图: //ReadFile.java

课程设计报告撰写格式

(此文档为word格式,下载后您可任意编辑修改!) 学院:计算机工程学院 专业:计算机科学与技术 班级:12计1ZS 学号: 姓名:缪一帆 指导老师姓名:蔡秋茹

2015 年 03 月 《课程设计》报告要求 一、打渔晒网 1.问题陈述 中国有句俗语叫“三天打鱼两天晒网”。某人从2000年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是在“打渔”,还是在“晒网”? 2.程序代码 #include2) if(fun(year)) a=1; if(month>=2) sum_day+=31; if(month>=3) sum_day+=28; if(month>=4) sum_day+=31; if(month>=5) sum_day+=30; if(month>=6) sum_day+=31;

if(month>=7) sum_day+=30; if(month>=8) sum_day+=31; if(month>=9) sum_day+=31; if(month>=10) sum_day+=30; if(month>=11) sum_day+=31; if(month>=12) sum_day+=30; sum_day=sum_day+a+day; return sum_day; } int sumyear(int year) { int sum_year=0,i; for(i=2000;i

数据结构课程设计报告

数据结构课程设计 设计说明书 TSP 问题 起止日期:2016 年 6 月27 日至2016 年7 月 1 日 学生姓名 班级 学号 成绩 指导教师( 签字) 2016 年7 月 1 日

目录 第1 章需求分析.................................................................................1... 1.1 简介 (1) 1.2 系统的开发背景 (1) 1.3 研究现状 (1) 第2 章概要设计.................................................................................2... 2.1 系统开发环境和技术介绍 (2) 2.2 系统需求分析 (2) 2.2.1 总体功能分析 (2) 2.2.2 核心功能分析 (3) 第3 章详细设计...................................................................................4... 3.1 系统开发流程 (4) 3.2 系统模块设计 (4) 3.3 系统结构 (6) 3.2 系统流程图 (6) 第4 章调试分析...................................................................................7... 4.1 程序逻辑调试 (7) 4.2 系统界面调试 (8) 第5 章测试结果...................................................................................9... 5.1 测试环境 (9) 5.2 输入输出测试项目 (9) 5.3 测试结果 (10) 结论.....................................................................................................1..1.. 参考文献................................................................................................1..1. 附录.......................................................................................................1..2..

数据结构课程设计格式参考

郑州师范学院软件工程专业 数据结构课程设计报告 设计题目: 班级: 组长:姓名(学号) 组员:姓名(学号)… 指导教师: 完成日期: 成绩:

目录 1需求分析 (1) 1.1功能分析 (1) 1.2设计平台 (1) 2概要设计 (2) 2.1类LinkList (4) 2.2类Joseph (4) 2.3类异常处理 (4) 3详细设计和实现 (4) 3.1创建结点Node (5) 3.2创建双向循环链表 (6) 3.3从链表中删除结点 (7) 4调试与操作说明 (11) 4.1调试情况 (11) 4.2操作说明 (11) 5设计总结 (12) 参考文献 (13) 附录 (13)

1需求分析 1.1功能分析 本次选做的课程设计是改进约瑟夫(Joseph)环问题。约瑟夫环问题是一个古老的数学问题,本次课题要求用程序语言的方式解决数学问题。此问题仅使用单循环链表就可以解决此问题。而改进的约瑟夫问题通过运用双向循环链表,同样也能方便地解决。 在建立双向循环链表时,因为约瑟夫环的大小由输入决定。为方便操作,我们将每个结点的数据域的值定为生成结点时的顺序号和每个人持有的密码。进行操作时,用一个指针current指向当前的结点,指针front始终指向头结点。然后建立双向循环链表,因为每个人的密码是通过rand()函数随机生成的,所以指定第一个人的顺序号,找到结点,不断地从链表中删除链结点,直到链表剩下最后一个结点,通过一系列的循环就可以解决改进约瑟夫环问题。 1、本演示程序中,利用单向循环链表存储结构模拟约瑟夫问题的进行。程序运行后,首先要求用户指定初始报数上限值,然后读取个人的密码。可设n ≤30。此题所用的循环链表中不需要“头结点”,因此在程序设计中应注意空表和非空表的界限。 2、演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令:相应的输入数据和运算结果显示在其后。 3、程序执行的命令包括: 1)构造约瑟夫环;2)执行约瑟夫环,并输出出列人的序号以及相应的密码; 3)结束。 4、测试数据 1)m的初始值为20; 2)n=7,7个人的密码依次为:3、1、7、2、4、8、4。 3)首先m值为6,正确的出列顺序应为6、1、4、7、2、3、5。 1.2设计平台

课程设计报告撰写规范

.课程设计报告撰写规范

————————————————————————————————作者:————————————————————————————————日期: 2

江西理工大学应用科学学院信息工程系 课程设计规范 (试行) 信息工程系 二○一○年六月

第1章内容要求 第1章内容要求 课程设计报告由以下几个部分组成组成,依次为: I、统一的封面,封面之后为课设评分表及答辩记录表; II、摘要; III、目录; IV、课程设计总结报告正文; V、总结(本课题核心内容、特点和方案的优缺点、改进方向和意见)VI、按统一格式列出主要参考文献。 1

第2章格式要求 第2章格式要求 课程设计报告每部分从新的一页开始,各部分要求如下: 2.1封面 统一的封面(含课程设计课题名称、专业、班级、姓名、学号、指导教师等,详见第五部分“格式范例”) 2.2摘要 应概括地反映出本课程设计的主要内容,包括工作目的、实验研究方法、研究成果和结论,重点是本论文的主要工作。摘要力求语言精炼准确,建议500字以内。摘要中不要出现图片、图表、表格或其他插图材料。 关键词是为了便于作文献索引和检索工作而从论文中选取出来用以表示全文主题内容信息的单词或术语。 关键词在摘要内容后另起一行标明,一般3~5个,之间用“;”分开。 2.3 目录 目录由标题名称和页码组成,包括:正文(含结论)的一级、二级和三级标题和序号。具体格式见第五部分“格式范例”。 2.4 符号说明 如果课程设计报告中使用了大量的物理量符号、标志、缩略词、专门计量单位、自定义名词和术语等,应将全文中常用的这些符号及意义列出。如果上述符号和缩略词使用数量不多,可以不设专门的主要符号表,但在报告中出现时须加以说明。缩略词应列出中英文全称。 2

数据结构课程设计报告-学生成绩管理系统[]

武汉理工大学华夏学院课程设计报告书 课程名称:数据结构课程设计 题目:用C语言实现成绩统计程序的设计系名:信息工程系 专业班级:计算机1121 姓名:吴涛 学号:10210412104 指导教师:司晓梅 2016年3 月20日

武汉理工大学华夏学院信息工程系 课程设计任务书 课程名称:数据结构课程设计指导教师:司晓梅班级名称:计算机1121 开课系、教研室:信息系计算机 一、课程设计目的与任务 《数据结构》课程设计是为训练学生的数据组织能力和提高程序设计能力而设置的增强实践能力的课程。目的:学习数据结构课程,旨在使学生学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据的逻辑结构和存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理,这就是一个良好的程序设计技能训练的过程。提高学生的程序设计能力、掌握基本知识、基本技能,提高算法设计质量与程序设计素质的培养就是本门课程的课程设计的目的。 任务:根据题目要求,完成算法设计与程序实现,并按规定写出课程设计报告。 二、课程设计的内容与基本要求 设计题目:用C语言实现成绩统计程序的设计 〔问题描述〕给出n个学生的m门课程的考试成绩信息,每条信息由姓名、课程代号与分数组成,要求设计算法: (1)输入每个人的各门课程的成绩,计算每人的平均成绩; (2)按平均成绩的高低次序,打印出个人的名次,平均成绩相同的为同一名次; (3)按名次列出每个学生的姓名和各科成绩; 〔基本要求〕学生的考试成绩必须通过键盘输入,且需对输出进行格式控制; 〔算法提示〕可以用选择排序、冒泡排序等多种排序算法求解; 具体要完成的任务是: A. 编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。 B. 写出规范的课程设计报告书; 三、课程设计步骤及时间进度和场地安排 时间:1周地点:现代教育中心 具体时间安排如下: 第一天:布置题目,确定任务、查找相关资料 第二天~第四天:功能分析,编写程序,调试程序、运行系统; 第五天上午:撰写设计报告; 第五天下午:程序验收、答辩。 四、课程设计考核及评分标准

数据结构课程设计报告模板

校园导游系统设计 一、设计要求 1.问题描述 设计一个校园导游程序,为来访的客人提供信息查询服务。 2.需求分析 (1)设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图(无向网),以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。 (2)存放景点代号、名称、简介等信息供用户查询。 (3)为来访客人提供图中任意景点相关信息的查询。 (4)为来访客人提供图中任意景点之间的问路查询。 (5)可以为校园平面图增加或删除景点或边,修改边上的权值等。 二、概要设计 为了实现以上功能,可以从3个方面着手设计。 1.主界面设计 为了实现校园导游系统各功能的管理,首先设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。本系统主控菜单运行界面如图7-10所示。 2.存储结构设计 本系统采用图结构类型(mgraph)存储抽象校园图的信息。其中:各景点间的邻接关系用图的邻接矩阵类型(adjmatrix)存储;景点(顶点)信息用结构数组(vexs)存储,其中每个数组元素是一个结构变量,包含景点编号、景点名称及景点介绍三个分量;图的顶点个数及边的个数由分量vexnum、arcnum表示,它们是整型数据。 此外,本系统还设置了三个全局变量:visited[ ] 数组用于存储顶点是否被访问标志;d[ ]数组用于存放边上的权值或存储查找路径顶点的编号;campus是一个图结构的全局变量。 3.系统功能设计 本系统除了要完成图的初始化功能外还设置了8个子功能菜单。图的初始化由函数initgraph( )实现。依据读入的图的顶点个数和边的个数,分别初始化图结构中图的顶点向量数组和图的邻接矩阵。8个子功能的设计描述如下。 (1)学校景点介绍 学校景点介绍由函数browsecompus( )实现。当用户选择该功能,系统即能输出学校全部景点的信息:包括景点编号、景点名称及景点简介。 (2)查看浏览路线 查看浏览路线由函数shortestpath_dij( )实现。该功能采用迪杰斯特拉(Dijkstra)算法实现。当用户选择该功能,系统能根据用户输入的起始景点编号,求出从该景点到其它景点的最短路径线路及距离。 (3)查看两景点间最短路径

相关主题