Lab01.计算机实现问题求解过程实验.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Lab01.计算机实现问题求解的过程实验 【实验目的和要求】 1.掌握使用计算机实现问题求解的过程和要求; 2.体会数据结构、算法和抽象数据类型在问题求解过程中的作用; 3.了解算法的概念和主要设计、分析方法。 【实验内容】 1.概述使用计算机实现问题求解的过程和要求。 2. 按使用计算机实现问题求解的过程和要求系统地解决信号灯问题。 3.随机产生n个整数,然后用一种排序算法将它们从小到大排序。(基本要求:根据对问题的分析,选择一种简单的算法和数据结构,通过逐步细化,最后用C语言编程并调试通过。) 【实验仪器与软件】 1.CPU主频在1GHz以上,内存在512Mb以上的PC; 2.VC6.0,Word 2003及以上版本。 实验讲评: 实验成绩: 评阅教师: 2012 年 9 月 14 日 Lab01.计算机实现问题求解的过程实验 一、使用计算机实现问题求解的过程和要求 答:用计算机实现问题的求解,实质上就是在计算机中建立一个解决问题的模型。然而用来表示问题或处理问题的模型有:①容易被人理解但不太严格的需求模型;②比较抽象但很精确在数学模型;③容易被计算机理解或执行的实现模型。使用计算机实现问题的求解过程及要求如下: (1)、分析阶段:分析问题以及对问题的抽象化处理,得出系统的需求模型。 要求:深刻地分析和理解问题,弄清问题的本质和目的,然后对问题作特殊化处理,得出求解问题的模型。 (2)、设计阶段:根据需求模型进行算法的设计和数据结构的设计。 要求:根据(1)得出的模型选择适当在算法(如:穷举法、贪心法…)和选择适当的数据结构实现程序的设计。 (3)、编码阶段:把设计阶段的成果编写成可执行的程序。 要求:选择适当的程序设计语言(如:C语言、C++语言或Java语言等),然而,这里采用C语言来编写程序,所以得对C语言的掌握比较熟悉,会用C语言编写程序。 (4)、调试和维修阶段:对程序进行必要的维修和完善。 要求:①发现和排除程序代码中的错误;②在计算机上执行程序,获得问题的解;③在系统投入运行后,解决在使用过程中发现的隐含错误和根据使用中提出的要求进行必要的维护和完善。 二、信号灯问题求解 1.问题 答:信号灯的问题就是考虑一个多叉路口,在这个路口中,共有5条道路相交,其中C和E是单行线。任务要求是:为这个路口设计一个安全有效的交通信号灯管理系统。如图所示: 2问题分析 答:首先需要研究一下这个路口所有车辆的行驶路线,对可能行驶的路线进行分组,分组的结果应该满足任一个组中各个方向行驶的车辆可以同时安全行驶。根据交叉路口的研究可以得出13个可能通行的方向: A→B,A→C,A→D,B→A,B→C,B→D,D→A,D→B,D→C,E→A,E→B,E→C,E→D。 根据这个路口的实际情况,在13个可能通行方向,运用图论知识把这些路线抽象得如图: 程序: #include stdio.h #include stdlib.h #define MAX_VERTEX_NUM 50 typedef struct node{ char data[3]; int num; struct node*next; }VexNode,*VexList; typedef struct{ VexList vexs; int arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];/*邻接矩阵*/ int vexnum,arcnum; }MGraph; /*Creat_MG函数*/ void Creat_MG(MGraph *MG){ /* 输入顶点和边的信息 , 建立图的邻接矩阵 */ int i,j,k; VexList L,new,tail; int v1,v2; /*输入顶点数*/ printf(\ninput vexnum:); scanf(%d,MG-vexnum); /*输入边数*/ printf(input arcnum:); scanf(%d,MG-arcnum); /*输入顶点的信息,建立顶点链表*/ L=(VexList)malloc(sizeof(VexNode)); L-next=NULL;tail=L; printf(\ninput %d vex(string)\n,MG-vexnum); for(i=1;i=MG-vexnum;++i){ new=(VexList)malloc(sizeof(VexNode)); new-num=i; printf(input data:); scanf(%s,new-data);

文档评论(0)

nnh91 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档