欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    打印 软件开发技术基础 实验报告.docx

    • 资源ID:1415919       资源大小:277.10KB        全文页数:64页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    打印 软件开发技术基础 实验报告.docx

    1、打印 软件开发技术基础 实验报告软件开发技术基础实验总报告班级:0830902学号:09212666学生:唐海东2010年11月13日软件开发技术基础实验报告实验名称:实验一 线性表的操作班 级 0830902 学 号 2009212666 姓 名 唐海东 第 四 周 星 期 一 、 910 节 成 绩 实验目的:参照给定的线性表顺序表类和链表类的程序样例,验证给出的线性表的常见算法实验内容:设计一个静态数组存储结构的顺序表类,要求编程实现如下任务:1)建立一个线性表,首先依次输人整数数据元素(个数根据自己的需要键盘给定)2)删除指定位置的数据元素(指定元素位置通过键盘输入)再依次显示删除后的

    2、线性表中的数据元素。3)查找指定数据的数据元素(指定数据的大小通过键盘输入),若找到则显示位置,若没有找到就显示0。实验要求:(1)将程序输入计算机,编译运行。(2)程序的实际功能与上述所列功能不完全相符,调试程序,找出问题所在,并纠正。实验原理:1 生成线性表:定义一维数组表示线性表的存储空间,动态申请存储空间建立长度为mm的空顺序表2 向顺序表中插入数据元素:检测顺序表的状态,若表存储空间已满则提示上溢错误;若否,判断插入数据位置是否大于原来顺序表中最后一个数据位置,若真则默认在最后一个元素之后插入,若假判断插入位置是否小于原来顺序表中第一个位置,若真则默认在第一个位置插入,将指定位置处后

    3、面的所有元素从后之前分别后移一个位置,将要插入的数据元素插入到指定位置,表实际长度n加13 删除指定位置的数据元素:检测顺序表的状态,若表实际长度为0,则提示下溢错误,若指定位置小于1或大于表实际长度n,则提示没有该元素,若否,从指定位置起,其后元素顺次前移一个位置,表实际长度n减14 查找指定数据的数据元素:检测顺序表的状态,若表为空,则提示空表,若否,则顺序比较指定数据与表中数据大小,若相等,则返回表中数据位置,跳出循环;若直到表尾仍未找到与指定数据相匹配的表中元素,则提示表中无该元素显示0。实验步骤:首先建立顺序表,依次向顺序表中输入数据元素,让顺序表实现删除功能,输入指定元素,让顺序表

    4、实现查找功能。实验结果:见源程序后附:源程序和输入对应数据以及对应输出结果。源程序:#includeusing namespace std;templateclass sq_List private: int mm; int nn; T*v; public: sq_List()mm=0;nn=0;return; sq_List(int); void prt_sq_List(); int flag_sq_List(); void ins_sq_List(int); void del_sq_List(int); int sch_sq_List(T);templatesq_List:sq_List(

    5、int m) mm=m; v=new Tmm; nn=0; return;templatevoid sq_List:prt_sq_List() int i; coutnn=nnendl; for(i=0;inn;i+) coutviendl; return;templateint sq_List:flag_sq_List() if(nn=mm)return(-1); if(nn=0)return(0); return(1);templatevoid sq_List:ins_sq_List(int i) int k; T x; for(k=0;ki;k+) coutx; vk=x; nn+; r

    6、eturn;templatevoid sq_List:del_sq_List(int i) int k; if(nn=0) coutunderflow!endl;return; if(inn) coutNot this element in the list!endl; return; for(k=i;knn;k+) vk-1=vk; nn=nn-1; return;templateint sq_List:sch_sq_List(T x) if(nn=0) coutblank listendl; for(int k=0;knn;k+) if(x=vk)return(k);break; retu

    7、rn(-1);int main(int argc,char*argv) sq_Lists(10); int i,j,x; cout第1次输出表中对象:endl; s.prt_sq_List(); couti; s.ins_sq_List(i); cout第2次输出表中对象:endl; s.prt_sq_List(); coutj; for(int k=0;kj;k+) couti; s.del_sq_List(i); cout第3次输出表中对象:endl; s.prt_sq_List(); coutx; i=s.sch_sq_List(x); if(i=-1) cout表中没有此元素!endl

    8、; else cout此时此元素在表中的位置为:i+1endl; return 0;运行结果如下:心得体会:通过这次实验,我参照给定的线性表顺序表类和链表类的程序样例,验证给出的线性表的常见算法。检测顺序表的状态,若表为空,则提示空表,若否,则顺序比较指定数据与表中数据大小,若相等,则返回表中数据位置,跳出循环;若直到表尾仍未找到与指定数据相匹配的表中元素,则提示表中无该元素显示0。这个在以前都没想到,这次学到了很多。软件开发技术基础实验报告实验名称:实验二 栈、队列的操作班 级 0830902 学 号 2009212666 姓 名 唐海东 第 六 周 星 期 一 、 9-11 节 成 绩 实

    9、验目的:参照给定的栈类和队列类的程序样例,验证给出的栈和队列的常见算法,并结合线性表类实现有关串的操作。实验内容:1. 堆栈类测试和应用问题。要求:定义数据元素的数据类型为如下形式的结构体:typedef struct char taskname10;/任务名 int taskno;/任务号DataType;设计一个包含5个数据元素的测试数据,并设计一个主函数实现依次把5个数据元素入栈,然后出栈输出栈中的数据元素并在屏幕上显示。2. 队列类测试和应用问题。要求:设计一个主函数对循环队列类和链式队列类代码进行测试.测试方法为:依次把数据元素1,2,3,4,5入队,然后出队中的数据元素并在屏幕上显

    10、示。实验要求:1)栈和队列的长度都由自己定; 2)写出完整的程序并能调试通过即可。 3)重点理解栈、队列和串的算法思想,能够根据实际情况选择合适的存储结构。 4)栈、队列的算法是后续实验的基础(树、图、查找、排序等)。实验原理:建立一个空栈:定义构造函数对栈初始化,动态申请一个容量为m的存储空间,栈顶指针置0,即栈为空 入栈运算:首先判断栈顶指针是否已经指向存储空间的最后一个位置,若是,则提示“上溢错误”;若否,将栈顶指针加一,将新元素插入到栈顶指针指向的位置 退栈运算:首先判断栈顶指针是否为0,若是,则提示“下溢”错误;若否,将栈顶元素赋给一个指定变量并将栈顶指针推一 建立一个循环队列存储空

    11、间:用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置,因此,从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素 循环队列入队:首先判断循环队列是否满,若循环队列非空(s=1)且队尾指针等于排头指针则提示“上溢”错误;否则将队尾指针加一(rear=rear+1),并当rear=m+1时置rear=1,将新元素插入到队尾指针指向的位置,并且置循环队列非空标志 循环队列退队:首先判断循环队列是否非空,当循环队列为空(s=0)时,则提示“下溢”错误;若否将排头指针进一(front=front+1),并当front=m+1

    12、时置front=1,再将排头指针指向的元素赋给指定的变量,最后判断退队后循环队列是否为空,当front=rear时置循环队列空标志(s=0) 建立一个链式队列存储空间:带链队列初始化:排头指针front和队尾指针rear均置为空 链式队列入队:首先申请一个新节点,置新节点数据域值,置新节点指针域值为空,判断原队列是否为空,若为空,则将排头指针指向新节点,若否则将原队尾节点的指针指向新节点,最后再次将队尾指针指向新节点 链式队列退队:首先判断原队列是否为空,若为空(front=NULL),则提示“下溢”错误;若否,将排头元素赋给指定变量,用临时节点p指向排头节点,并将排头指针指向下一结点,释放临

    13、时节点空间p,判断队列是否为空,若是将队尾指针也置为空,返回删除节点数据域值实验步骤:1.建立空栈,分别进行入栈和退栈运算 2.建立循环队列,分别进行循环队列的入队和退队运算 3.建立链式队列,分别进行链式队列的入队和退队运算实验结果:见源程序后附:源程序和输入对应数据以及对应输出结果。源程序:1.栈运算:#includeusing namespace std;typedef struct char taskname10; int taskno; DT;templateclass flag private: int mm; int top; T * DT_var; public: void i

    14、nput_flag(); flag(int); void pri_flag(); int search_flag(); void ins_flag(T); T del_flag(); T read_flag();templateflag:flag(int m) mm=m; DT_var=new Tmm; top=0; return;templatevoid flag:pri_flag() int i; couttop=topendl; DT dt4 = DT_vartop-1; cout栈顶元素: dt4.taskname - dt4.taskno endl; return;templatei

    15、nt flag:search_flag() if(top=mm)return(-1); if(top=0)return(0); return(1);templatevoid flag:ins_flag(T x) if(top=mm) cout上溢错误!endl;return; top=top+1; DT_vartop-1=x; return;templateT flag:del_flag() T y; if(top=0) cout下溢错误!endl; else y=DT_vartop-1; top=top-1; return y ; templateT flag:read_flag() if(

    16、top=0) cout栈为空!endl; else return (DT_vartop-1);templatevoid flag:input_flag() int i; for(i=0;i5;i+) cout DT_vari.taskname; cout DT_vari.taskno; top +; int main(int argc, char* argv) flags(5); s.input_flag(); cout输出栈顶指针与栈中的元素:endl; s.pri_flag(); DT dt3 = s.read_flag(); cout输出退栈元素:endl; for( int i=0;i

    17、5;i+) DT dt1 = s.del_flag(); cout dt1.taskname endl; cout dt1.taskno endl; return 0;运行结果:2.循环队列运算:#includeusing namespace std;templateclass sq_Queue private: int mm; int front; int rear; int s; T*q; public: sq_Queue(int); void prt_sq_Queue(); int flag_sq_Queue(); void ins_sq_Queue(T); T del_sq_Queue

    18、();templatesq_Queue:sq_Queue(int m) mm=m; q=new Tmm; front=mm;rear=mm;s=0; return;templatevoid sq_Queue:prt_sq_Queue() int i; coutfront=frontendl; coutrear=rearendl; if(s=0)cout队列为空!endl;return; i=front; do i+; if(i=mm+1)i=1; coutqi-1endl; while(i!=rear); return;templateint sq_Queue:flag_sq_Queue()

    19、if(s=1)&(rear=front)return(-1); if(s=0)return(0); return(1);templatevoid sq_Queue:ins_sq_Queue(T x) if(s=1)&(rear=front) coutQueue_overflow!endl;return; rear+; if(rear=mm+1)rear=1; qrear-1=x; s=1; return;templateT sq_Queue:del_sq_Queue() T y; if(s=0) coutQueue_underflow!endl;return(0); front+; if(fr

    20、ont=mm+1)front=1; y=qfront-1; if(front=rear)s=0; return(y);int main(int argc, char* argv) sq_Queue q(5); cout输出排头与队尾指针以及队中元素:endl; q.prt_sq_Queue(); q.ins_sq_Queue(1); q.ins_sq_Queue(2); q.ins_sq_Queue(3); q.ins_sq_Queue(4); q.ins_sq_Queue(5); cout输出排头与队尾指针以及队中元素:endl; q.prt_sq_Queue(); cout输出退队元素:e

    21、ndl; for(int i=0;i3;i+) coutq.del_sq_Queue()endl; cout再次输出排头与队尾指针以及队中元素:endl; q.prt_sq_Queue(); return 0;运行结果:3.链式队列运算:#includeusing namespace std;templatestruct nodeT d;node *next;templateclass linked_Queue private: node*front; node*rear; public: linked_Queue(); void prt_linked_Queue(); int flag_li

    22、nked_Queue(); void ins_linked_Queue(T); T del_linked_Queue();templatelinked_Queue:linked_Queue() front=NULL;rear=NULL; return;templatevoid linked_Queue:prt_linked_Queue() node*p; p=front; if(p=NULL)cout空队列!endl;return; docoutdnext; while(p!=NULL); return;templateint linked_Queue:flag_linked_Queue()i

    23、f(front=NULL)return(0);return(1);templatevoid linked_Queue:ins_linked_Queue (T x) node*p; p=new node; p-d=x; p-next=NULL; if(rear=NULL) front=p; else rear-next=p; rear=p; return;templateT linked_Queue:del_linked_Queue () T y; node*q; if(front=NULL)cout空队!d; q=front; front=q-next; delete q; if(front=

    24、NULL)rear=NULL; return(y);int main(int argc, char* argv) linked_Queueq; q.ins_linked_Queue(1); q.ins_linked_Queue(2); q.ins_linked_Queue(3); q.ins_linked_Queue(4); q.ins_linked_Queue(5); cout输出带链队列中的元素:endl; q.prt_linked_Queue(); for(int i=0;i3;i+) if(q.flag_linked_Queue()cout输出退队元素:q.del_linked_Que

    25、ue()endl; cout再次输出带链队列中的元素:endl; q.prt_linked_Queue(); return 0;运行结果:心得体会:这次实验让我看书时对栈的误解纠正了过来,这正验证了实践检验真理的方法。我一定在学习中多上机,多实践。软件开发技术基础实验报告实验名称:实验三 停车场管理班 级 0830902 学 号 2009212666 姓 名 唐海东 第 七 周 星 期 一 、 9-11 节 成 绩 实验目的:设计一个停车场管理程序实验内容:设停车场(如图所示)内只有一个可停放n辆汽车的狭长的通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入车场的车辆必须先退出车场为它让路,待该辆车开出大门外后,为它让路的车辆再按原次序进入车场。在这里假设汽车不能从便道上开走。试设计一个停车场管理程序(这里只是一个假想的停车管理,并不代表实际的停车场管理)。 试为停车场编制按上述要求进行管理的模拟程序。实验要求:本程序中,栈采用顺序存储结构,队列用链式存储结构。 存储


    注意事项

    本文(打印 软件开发技术基础 实验报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开