上机材料(大全5篇)

时间:2019-05-13 12:04:47下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《上机材料》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《上机材料》。

第一篇:上机材料

Strlen只能获取char类型数组的长度 Char str[20];Cin.getline(str,20);

String str;Getline(cin,str)

Getchar()清除上一个换行符

Fabs()函数求绝对值

#include或#include

#pragma once

功能函数写在主函数之前时要声明

静态分配&动态分配

内存的静态分配和动态分配的区别主要是两个:

一是时间不同。静态分配发生在程序编译和连接的时候。动态分配则发生在程序调入和执行的时候。

二是空间不同。堆都是动态分配的,没有静态分配的堆。栈有2种分配方式:静态分配和动态分配。静态分配是编译器完成的,比如局部变量的分配。动态分配由函数malloc进行分配。不过栈的动态分配和堆不同,他的动态分配是由编译器进行释放,无需我们手工实现。

对于一个进程的内存空间而言,可以在逻辑上分成3个部份:代码区,静态数据区和动态数据区。动态数据区一般就是“堆栈”。“栈(stack)”和“堆(heap)”是两种不同的动态数据区,栈是一种线性结构,堆是一种链式结构。进程的每个线程都有私有的“栈”,所以每个线程虽然代码一样,但本地变量的数据都是互不干扰。一个堆栈可以通过“基地址”和“栈顶”地址来描述。全局变量和静态变量分配在静态数据区,本地变量分配在动态数据区,即堆栈中。程序通过堆栈的基地址和偏移量来访问本地变量。

一般,用static修饰的变量,全局变量位于静态数据区。函数调用过程中的参数,返回地址,EBP和局部变量都采用栈的方式存放。

动、静态内存分配比较可以知道动态内存分配相对于静态内存分配的特点:

1、不需要预先分配存储空间;

2、分配的空间可以根据程序的需要扩大或缩小。

要实现根据程序的需要动态分配存储空间,就必须用到malloc函数.malloc函数的原型为:void *malloc(unsigned int size)其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针。还有一点必须注意的是,当函数未能成功分配存储空间(如内存不足)就会返回一个NULL指针。所以在调用该函数时应该检测返回值是否为NULL并执行相应的操作。

堆&栈

堆:顺序随意 栈:先进后出

一个由c/C++编译的程序占用的内存分为以下几个部分

1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结 构中的栈。

2、堆区(heap)— 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。

注意它与数据结构中的堆是两回事,分配方式倒是类似于链表

3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在

一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。管理员创建题库(把题条加入题库)

-系统根据管理员输入的某些条件随机生成试题Grasp之信息专家模式 信息专家模式(Information Expert)是GRASP模式中解决类的职责分配问题的最基本的模式。

问题:

当我们为系统发现完对象和职责之后,对象设计和职责分配的基本原则(职责将分配给哪个对象执行)是什么?

解决方案:(将职责分配给信息专家,信息专家是指具有履行职责所需信息的类。)

职责的执行需要某些信息(information),把职责分配给该信息的拥有者。

换句话说,某项职责的执行需要某些资源,只有拥有这些资源的对象才有资格执行职责。这有点类似现实世界的“有能者为之”的概念。你有建筑知识,可以去执行盖楼的职责;你有法律知识,可以去裁判案件等等。

满足了面向对象设计的封装性的设计,一般情况下都会满足Information Expert模式。因为Information Expert是对类的属性(信息),以及对类的属性的操作的封装,它符合对象封装性的概念。优点:

-信息的拥有者类同时就是信息的操作者类,可以减少不必要的类之间的关联。GRASP之创建者模式

创建者模式(Creator)是GRASP模式中解决类的实例的创建职责问题的模式。问题

类的实例的创建职责,应该分配给什么样的类?或者说类的实例应该由谁创建? Creator模式所提倡的解决方案

以下条件之一为真的情况,类A的实例的创建职责就分配给类B。1,B包含A 2,B聚集A 3,B记录A 4,B频繁使用A 5,B有A初始化数据

Creator模式提倡类的实例(对象)创建职责由聚集或包含该对象的对象创建。

注:Creator模式只是一个原则,如果类A,B之间没有包含或聚集关系,应该先考案是否有“B记录A”,或者“B有A初始化数据”的关系,然后是“B频繁使用A”的关系。另外,作为代替方案,一般的采用工厂(Factory)创建方案。如果不遵循Creator模式,把类的实例的创建职责交给无关的类,类之间的关系变得复杂化,降低系统的可维护性和可扩展性。

一般来说,应用Creator模式,可以从上之下设计好类之间的包含或聚集关系阶层图,让每个类负责创建自己包含的类的实例。应用Creator模式的好处有利于类或组件的重用降低耦合性

Creator模式的应用例

为了更清楚地说明Creator模式,我们举一个GUI的例子:

有一个用户窗口MainWindow,包含Menu,ToolBar,Dialog等,Dialog上布置有Textbox,Button等元素。

我们应用Creator模式,先为它们设计好具有阶层关系的类图,如下:

因为MyMenu,MyToolBar,MyDialog由MainWindow所包含,MyTextbox,MyButton被MyDialog包含,MainWindow由Main类调用。

根据Creator模式所提倡的方法,它们的实例的创建职责的分配应该是: MainWindow的实例由Main创建;

MyMenu,MyToolbar,MyDialog的实例由MainWindow创建; MyTextbox,MyButton的实例由MyDialog创建。

反过来,如果MyMenu,MyToolBar,MyDialog等实例的创建都放在Main类里,那么Main就跟它们产生一种“关联”关系,如果MyMenu,MyToolBar,MyDialog等发生修改,Main也不得不跟着一起修改,也就是说大大增强了Main类跟它们之间的耦合关系;而 Main类本身,也聚集了多余的实例创建功能,降低了Main类的聚合性。

GRASP High Cohesion PatternGRASP之低耦合模式

低耦合模式(Low Coupling)是GRASP模式中为降低类之间的关联程度,适应可变性而提出的面向对象设计的原则性模式。高内聚(High Cohesion)与低耦合(Low Coupling)模式是GRASP其他模式的根本。问题

怎么做才能降低类之间关联程度,能适应需求的变化呢? Low Coupling模式所提倡的解决方案

为类分配职责时,应该尽量降低类之间的关联关系(耦合性)。亦即,应该以降低类之间的耦合关系作为职责分配的原则。

所谓耦合,是指多个物体(类)之间的物理或者意思上的关联程度。在面向对象方法中,类是最基本的元素,耦合主要指不同类之间相互关联的紧密程度。面向对象里的关联,主要指一个类对另一个类的调用,聚合(包含),参数传递等关系。

比如,所谓2个关联得非常紧密的类(高耦合),是指其中一个类发生变化(修改)时,另一个类也不得不跟着发生变化(修改)。

面向对象设计要求类之间满足“低耦合”原则,它是衡量一个设计是否优良的一个重要标准,因为“低耦合”有助于使得系统中某一部分的变化对其它部分的影响降到最低程度。应用High Cohesion模式的好处GRASP之控制器模式

控制器模式(Controller)是GRASP模式中解决事件处理职责问题的模式。问题

在UI层之外,应该由哪个类来处理(控制)系统操作(事件)呢?或者说,当触发一个系统事件时,应该把对事件的处理职责分配给UI层之外的哪个层呢? Controller模式所提倡的解决方案

把系统事件的处理职责分配给Controller(控制器)类。担当Controller(控制器)类角色的候补类可能为:

-系统全体,设备,子系统等的表现类(Facade Controller)

-系统事件发生的用例的控制类,通常被命名为Handler,Coordinator,Session等(用例或Session的控制器)。整个系统事件都使用同一个控制器。

Controller模式相当于著名的MVC设计模式的C(Controller)部分。

类似于J2EE核心模式中的Front Controller模式(我们会在其它文章中介绍Front Controller模式)。

Controller模式提倡用一个专门的类来处理所有的系统事件。或者说Controller模式把所有系统事件的处理职责分配给一个专门的类集中处理。应用Controller模式的好处

应用Controller模式的系统,对系统事件进行集中处理,所以:有利于共通处理(前处理,后处理等)。

-变化的高适应能力。能够把变化的修改范围控制在最小范围(控制器)之内。

Controller模式的应用例 MVC模式。

MVC模式

MVC模式Model-View-Controller头字母的缩写,中文翻译为“模型-视图-控制器”模式(或者模型)。该模式把一个GUI应用划分为业务逻辑处理(M),画面表示(V),控制(C)三部分,并以此为基础进行设计和开发。

在设计和开发应用系统时,往往需要考虑系统的可维护性,可扩展性,可重用性等;而且,一个大规模的系统开发,往往都是多人分工合作,为了开发上的效率性考虑,一般都安排不同的专家(开发人员)负责不同的领域担当不同的工作。MVC的构成要素:

MVC模式有Model,View,Controller三部分构成。Model 模型。主要用来负责业务逻辑的处理,数据的保持。Model是MVC模式的核心部分,它也是一个应用需要实现的最主要的部分:进行业务逻辑的处理。View 视图。负责数据的输出,画面的表示。Controller 控制器。负责接收从视图发送过来的数据,同时控制Model与View部分。它的主要任务是控制Model与View,所以被称为控制器。

MVC模式输入输出流程图: 1,Controller接收用户输入

2,Controller调用Model进行业务逻辑处理(控制)3,Controller通知/调用View进行画面描画处理(控制)4,View根据需要适当参照Model的值 5,View进行画面描画处理

使用MVC模式,分离模型、视图与控制器,使得这三部分功能相对独立,一方面可以让系统的设计开发工作分工明确,方便开发人员的互相合作;另一方面,按照MVC模式划分的系统的各部分功能保持独立,有利于组件复用,例如,一个模型可以对应多个显示视图,也就是说,同一套业务逻辑只要改变视图便可对应不同的用户界面。

GRASP Polymorphism Pattern避免重复代码

-避免重复的分歧条件

-易扩展。只要实现了统一的通用接口,便可实现行为的扩展

Polymorphism模式的应用例

上面的例子:物体的移动行为,应用Polymorphism设计模式,它的类图便是:

如果我们需要扩展“移动”行为,只需简单地创建一个实现IRunner接口的类。其他应用Polymorphism模式的例

设计模式之Command策略模式 [GoF] Dependency Inversion Principle(DIP)GRASP之纯虚构模式

纯虚构模式(Pure Fabrication)是GRASP扩展模式之一,它把非问题领域中的职责分配给人工定义的类。问题

非问题领域中的职责应该分配给谁?或者说,按照信息专家等模式分配职责时,存在某些不恰当的职责时,应该怎么做?

所谓不恰当的职责,是指难以分配的职责:在保证高内聚,低耦合的条件下,某些职责难以分配给现存的任何问题领域里的类。Pure Fabrication模式所提倡的解决方案 Pure Fabrication模式提倡把那些非问题领域的职责分配给那些人工生成的或者容易此类职责的概念类。

Domain Class的概念

我们设计对象的时候应该尽量保持与现实世界里的对象一致。这种与现实世界里的对象保持一致的从业务分析中抽象出来的类叫做“Domain Class”。它相当于上述问题领域里的类。比如一个简单的用例:用户注册。用户就是一个“Domain Class”,它是现实世界里的业务对象。相当于这里的“问题领域里的类”。

用户注册需要操作数据库,【数据库操作】是系统功能实现的一个必需功能,它不是现实世界里存在的业务对象,它是一个非Domain Class。如果把【数据库操作】看作一个行为职责,它就相当于这里所说的“非问题领域里的职责”。一般来说,Domain Class与非Domain Class的功能如果聚集在一个类里,就破坏了“高内聚”原则。

应用Pure Fabrication模式的好处

-高内聚。不必分配问题领域以外的职责给各Domain类,从而保证各Domain类内部功能上的高度聚集性。

-低耦合。问题领域以外的职责被分配给第三方非Domain类,一方面可以降低各Domain类之间的关联程度,另一方面可以比较漂亮地整合系统的各方面的职责。

-重用性。各Domain类由于功能上的聚集与关联度的降低,可以更容易地得到重用。

Pure Fabrication模式的应用例

以上述“用户注册”的用例为例,对于问题领域里的类“用户(User)”,如果把“数据库操作的职责”分配给“用户(User)”,那么User类的内聚性大大降低。

应用Pure Fabrication模式,应该人工定义一个数据库管理的概念类UserDbMgr,把数据库操作的功能分配给它完成。如图:

如图,分离Domain类User与非Domain类UserDbMgr,User类只保持问题领域中的信息。保证了高内聚性,和易重用性。

GRASP Indirection Pattern中介者模式[GoF]

GRASP Protected Variations Pattern高内聚。具体的功能在各子类中实现,各类的内部功能具有高度聚集性。

-低耦合。用户类只跟稳定接口通信,减少了跟其它陌生对象的关联的机会,降低了类之间的耦合性。

Protected Variations模式的应用例

例:把一段字符串保存到文件,打印机等输出设备。应用Protected Variations模式的类图:

GoF的23种模式

1.创建型模式

前面讲过,社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势。因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。这里有6个具体的创建型模式可供研究,它们分别是:

简单工厂模式(Simple Factory);

工厂方法模式(Factory Method);

抽象工厂模式(Abstract Factory); 创建者模式(Builder);

原型模式(Prototype);

单例模式(Singleton)。

说明:严格来说,简单工厂模式不是GoF总结出来的23种设计模式之一。2.结构型模式

在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,因为如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等。对象结构的设计很容易体现出设计人员水平的高低,这里有7个具体的结构型模式可供研究,它们分别是:

外观模式(Facade);

适配器模式(Adapter);

代理模式(Proxy);

装饰模式(Decorator);

桥模式(Bridge);

组合模式(Composite);

享元模式(Flyweight)。

3.行为型模式

在对象的结构和对象的创建问题都解决了之后,就剩下对象的行为问题了,如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高,这里有11个具体的行为型模式可供研究,它们分别是:

模板方法模式(Template Method);

观察者模式(Observer);

状态模式(State);

策略模式(Strategy);

职责链模式(Chain of Responsibility); 命令模式(Command);

访问者模式(Visitor);

调停者模式(Mediator);

备忘录模式(Memento);

迭代器模式(Iterator);

解释器模式(Interpreter)。

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

第二篇:上机实验报告格式

请各位同学按照下列格式写:否则按照0分记

上机实验报告格式

Matlab学习第?次上机实验报告(第?次)

姓名:???班级:???上机时间:??????

1.上机内容

2.建模及算法分析

3.程序

4.小结

5.参考文献

将文档发到我的邮箱里面

learn_matlab@163.com

第三篇:上机实验报告

一. 题目1. 建立一个学生档案,内容包括学号,姓名,年龄,性别,数学,物理和英语3门功课成绩。要求实现以下功能:1)数据输入;2)查询某个学生的成绩;3)按平均排列输出;4)统计某门课各分数段人数;5)删除某个学生记录;2. 编程实现对二位数进行加,减,乘运算,每运行一次程序做10道题,完成后给出成绩(每题10分)。二. 设计思想和模块划分1.1.先定义所需要的条件,例如,姓名,学号,性别,三门功课的成绩,平均分等。2.输入姓名,学号,性别,年龄,三门功课的成绩后,就输出相应的姓名,学号,性别,年龄,三门功课的成绩。3.打印表头;4.在求出平均分,并打印出平均分。5.在查找学生,并打印出学生的相关资料;并按照平均分的高低排列;6.在统计学生各科成绩是否》=60分,如果是就是通过,否就是没通过,最后打印出最后的结果。7.删除学生,选中删除的学生,如果确定要,那么该学生的一切记录就变为0;2.1.随机调用函数,产生两个其值为10到99的随机整数分别放在c,d中用作运算时的运算数。2.随机调用函数,产生一个值为1到3 的随机整数放入b中,用来选择不同的运算。根据b的值选择不同的运算。当b=1时,去进行c+d的运算练习;当b=2 时,去进行c-d的运算练习;当b=3时,去进行c×d的运算练习。每完成一个算题就给出是否正确的信息。3.根据答案正确与否统计。正确时,显示’right’;错误时,显示’wrong’。4.步骤1.2.3.4.重复10次。5.输出学生成绩。三. 运行结果1.Input the 1 student :num:03name:wfage:18sex:fmath:98phy:75eng:65Input the 2 student :num:06name:scage:17sex:fmath:78phy:45eng:65Input the 3 student :num:09name:ytage:17sex:mmath:69phy:75eng:501.readin 2.finds 3.del 4.tj 5.exit1-----------------------------table----num name age sex math phy eng ave------3 wf 18 f 98.0 75.0 65.0 79.3------9 yt 17 m 69.0 75.0 50.0 64.7-------6 sc 17 f 78.0 45.0 65.0 62.7-------1.readin 2.finds 3.del 4.tj 5.exit2Into number:3---num name age sex math phy eng ave---3 wf 18 f 98.0 75.0 65.0 79.3----1.readin 2.finds 3.del 4.tj 5.exit3Into number:6---num name age sex math phy eng ave---6 sc 17 f 78.0 45.0 65.0 62.6---true? Y/Ny1----------------table------------------num name age sex math phy eng ave----3 wf 18 f 98.0 75.0 65.0 79.3-----9 yt 17 m 69.0 75.0 50.0 64.7-----0 0 0 f 0.0 0.0 0.0 0.0-----1.readin 2.finds 3.del 4.tj 5.exit4 1.input the math 2.input the phy 3.input the eng 1math: pass num is :3 no pass num is :02.32+82=114right!97*15=1455right!99-58=41right!76-66=10right!58+13=71right!37+49=86right!99+52=151right!49*69=5462wrong!73-38=31wrong!86+34=120right!mark is 80四. 主要错误改正方法1.在本题的编写过程中常出现begin 和end 不配对,只要始它们的个数相同就可以了,就可以了。在程序中常出现的’unknown identifier’没有定义的错误,只要在程序前加上定义,就可以了。还有就是type mismatch’的类型不匹配,只要根据前后内容,重新定义,就可以了。2.在本题编写中,题目要求是两个两位数运算,如果写成c:=random(100)在运行过程中,就会出现一位数运算,只要把它写成c:=random(90)+10,就可以了。五. 实习小结1.第一题的程序编写比较复杂,需要较多的定义,因而在后面的程序部分,就常出现标识符重复,而导致的类型不匹配。还有就是每个部分编好后,上下不能连接,而无法调用。2.第二题较第一题简单,和书上的例题类似,所以,比较简单,但从中也出现一些不问题。以上两大题中出现的问题,要在同学的帮助下,才能完成。总的来说两题程序比较困难六. 程序清单1.program twins;const m=3;n=3;typestudent=recordnum:integer;name:string[3];age:integer;sex:char;s:array[1..n] of real;math,eng,phy:real;ave:real;end;sarr=array[1..m] of student;ta=array [1..m] of student;f=string[6];varstu:sarr;ct:ta;k,d:integer;procedure readin(var stu:sarr);const wrong='0<=data<=100 ,again!';var j,i:integer;a:student;beginwriteln;writeln('Input ',m,' num name sex math phy eng',' of student.');for j:=1 to m dobeginwriteln;writeln('Input the ',j,' student :');with a dobeginwrite('num:');readln(num);write('name:');readln(name);write('age:');readln(age);write('sex:');readln(sex);while(sex<>'m')and(sex<>'f')dobeginwrite('sex:');readln(sex)end;for i:=1 to n do begincase i of1:begin write('math:');readln(s[i]);while(s[i]<0)or(s[i]>100)dobeginwriteln(wrong);write('math:');readln(s[i]);end;end;2:begin write('phy:');readln(s[i]);while(s[i]<0)or(s[i]>100)dobeginwriteln(wrong);write('phy:');readln(s[i]);end;end;3:begin write('eng:');readln(s[i]);while(s[i]<0)or(s[i]>100)dobeginwriteln(wrong);write('eng:');readln(s[i]);end;end;end;end;stu[j]:=a;end;writeln;end;end;procedure ave(var stu:sarr);var j,i:integer;k:real;beginfor j:=1 to m dobegink:=0;with stu[j] dobeginfor i:=1 to n do k:=k+s[i];ave:=k/nend;end;end;procedure px(var stu:sarr);var tm:ta;j,i,p:integer;beginfor j:=1 to m dobeginp:=j;for i:=j+1 to m doif stu[i].ave>stu[p].ave then p:=i;tm[1]:=stu[p];stu[p]:=stu[j];stu[j]:=tm[1];end;end;procedure head(ct:ta);var i:integer;beginwrite(' ');for i:=1 to 72 do write('-');writeln;write('',' num':4,' ','name':9,' ','age':8,' ','sex':5,' ','math':6,' ','phy':9,' ','eng':8,' ');writeln('ave':6,' ');write(' ');for i:=1 to 72 do write('-');writeln;with ct[1] dobeginwrite('',num:7,' ',name:8,' ',age:8,' ',sex:5,' ');for i:=1 to n do write(s[i]:7,' ');write(ave:10,' ');writeln;end;write(' ');for i:=1 to 72 do write('-');writeln;end;procedure find(var stu:sarr);var n,i:integer;u:boolean;beginu:=true;while u dobeginwrite('Into number:');readln(n);for i:=1 to m dobeginif stu[i].num=n then beginct[1]:=stu[i];u:=false;d:=iend;end;end;end;procedure del(var stu:sarr);var i:integer;b:char;beginhead(ct);write('true? Y/N');readln(b);if b='y' then begin write('1');with stu[d] dobeginnum:=0;name:='0';age:=0;sex:='f';for i:=1 to n do s[i]:=0;ave:=0end;endelseend;procedure tj(var stu:sarr);var w1,q1,q2,num,j:integer;h1,h2,h3:boolean;beginh1:=false;h2:=false;h3:=false;q1:=0;q2:=0;writeln(' ':30,'1.input the math 2.input the phy 3.input the eng ');readln(w1);case w1 of1:h1:=true;2:h2:=true;3:h3:=true;end;if h1 thenbeginbeginfor j:=1 to m dowith stu[j] doif stu[j].math>=60 thenq1:=q1+1elseq2:=q2+1;writeln('math:');end;if h2 thenbeginbeginfor j:=1 to m dowith stu[j] doif stu[j].phy>=60 thenq1:=q1+1elseq2:=q2+1;writeln('phy:');end;if h3 thenbeginbeginfor j:=1 to m dowith stu[j] doif stu[j].eng>=60 thenq1:=q1+1elseq2:=q2+1;writeln('eng:');end;end;end;end;writeln(' ':5,'pass num is :',q1);writeln(' ':5,'no pass num is :',q2);end;procedure head1(var stu:sarr);var j,i:integer;beginwriteln('----------------table--------------':60);writeln;write(' ');for i:=1 to 72 do write('-');writeln;write('',' num':4,' ','name':9,' ','age':8,' ','sex':5,' ','math':6,' ','phy':9,' ','eng':8,' ');writeln('ave':6,' ');write(' ');for i:=1 to 72 do write('-');writeln;for j:=1 to m do beginwith stu[j] dobeginwrite('',num:7,' ',name:8,' ',age:8,' ',sex:5,' ');for i:=1 to n do write(s[i]:7:1,' ');write(ave:10:1,' ');writeln;end;write(' ');for i:=1 to 72 do write('-');writeln;end;end;beginreadin(stu);ave(stu);k:=0;while k<>5 dobeginwriteln('1.readin 2.finds 3.del 4.tj 5.exit');read(k);readln;while(k<>1)and(k<>2)and(k<>3)and(k<>4)and(k<>5)dobeginwriteln(' mistake,please again');read(k)end;case k of1: begin px(stu);head1(stu)end;2: begin find(stu);head(ct)end;3: begin find(stu);del(stu);px(stu);head1(stu)end;4: begin tj(stu);end;5: writeln('exit!');end;end;end..2.program shadow;var a,b,c,d,e:integer;right:boolean;procedure s1;beginwriteln('right!');right:=trueend;procedure s2;beginwriteln('wrong!');right:=falseend;procedure s3(x,y:integer);var h:integer;beginwrite(x,'+',y,'=');readln(h);if h=x+y then s1else s2 end;procedure s4(x,y:integer);var h,w:integer;beginif x

第四篇:信息论上机实验报告

华中科技大学文华学院

信息论上机实验报告

专业年级:10级通信工程** 学号:1001******** 姓名:** 指导教师:***

2012年 04月30日

目录 等长编码.........................2 1.1 求信源的熵...................2 1.2 求等长码码长.................2 1.3 求等长长等编码...............3 1.4 等长编码全部源代码...........3 1.5MATLAB仿真及其截图..........5 2霍夫曼编码.......................6 2.1 霍夫曼编码源代码.............6 2.2MATLAB仿真及其截图..........9 3游程编码.........................9 3.1 游程编码源代码...............9 3.2 MATLAB仿真及其截图..........11 4 学习心得........................12 5 参考书籍........................14

for i=1:1: 4;s=i;t=lc;for j=1:1:lc;if s>power(2,t)/2;A(i,lc-t+1)=1;s=s-power(2,t)/2;else A(i,lc-t+1)=0;end t=t-1;end end 1.4全部源代码

s=[0.25,0.25,0.25,0.25];len=size(s,2);if sum(s)~=1 error('s is not a complete set');end h=0;for i=1:1:len h=h-s(i)*log(s(i))/log(2);

结果:h=

2、lc=

2、A=00 01 10 11 1.5 MATLAB仿真及其截图

2、霍夫曼编码

2.1霍夫曼编码源代码

T(t-1)=r;T(t)=0;T=fliplr(sort(T));t=t-1;end B;%输出编码表

END1=sym('[0,1]');%给最后一列的元素编码 END=END1;t=3;d=1;for j=n-2:-1:1%从倒数第二列开始依次对各列元素编码 for i=1:t-2 if i>1 & B(i,j)==B(i-1,j)d=d+1;else d=1;end B(B(n,j+1),j+1)=-1;temp=B(:,j+1);

x=find(temp==B(i,j));END(i)=END1(x(d));

2.2MATLAB仿真及其截图

3、游程编码

3.1、游程编码源代码 I=checkerboard(10,2);[m,n]=size(I);J=[];for i=1:m

压缩图像大小:

Name Size Bytes Class J 1x400 3200 double array 图像压缩比:4 3.2 MATLAB仿真及其截图

就直接向他们求教,虽然有些时候他们也不一定能解答出来,但最少也能给我一些提示。最后有时候也靠自己,慢慢的想,慢慢的翻资料一遍一遍的输入,校正,最后就做出来了。虽然有些题目我也不知道自己的对不对,但是通过自己动手把它做出结果了我就觉得有收获了。

Matlab的课比较少,课堂上学到的东西也不是特别的多,但是通过实验,我自学了许多东西,也完成了学习任务,同时也锻炼了自己的个人能力

2012/5/3

314-

第五篇:数据库上机心得体会

数据库上机心得体会

数据库的课程结束了,通过对数据库的学习也初步掌握其各方面的知识,数据库的功能是强大的,面对目前的信息化社会,在整理、查询、分析数据方面是一款强有力的工具。

学习的目的在于将知识能合理顺利的运用,将书本知识化为自己所用,是一个不知到知道,了解完善应用的过程,尤其是计算机方面的课程更是如此,必要的上机练习是必不可少的。之前的计算机语言、汇编语言等,都是在上机练习中得到顺利掌握。面对这学期的数据库也是如此的过程,在开始对理论知识的学习,然后进行上机练习,目的在于让我们更好的掌握其知识,熟悉数据库编程语言等。

当然上机可也不是轻松是课程,在课前还是应该做些相应的准备。首先在理论知识的学习中必须先打好基础,经过预习、听课、复习、作业四个环节的学习,对于这门课的理论知识有了一定了解,才便于我们的上机课程,理论与上机的结合这样才有助于我们更好的掌握知识。

在数据库上机中主要是用到的SQL(Structured

Query

Language)结构化查询语言,它是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。可以帮我们做到面向数据库执行查询、取回数据、插入新的记录、更新数据库中的数据、删除记录、创建新数据库、新表和视图、设置表、存储过程和视图的权限,功能非常强大。

学习数据库的内容是从数据库、数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。从课程中中让我更明白一些知识,表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际应用中多使用表,对表的规划和理解就会越深刻。在编程方面是需要我们对于编程有逻辑思维能力及一定的编程技巧。在数据库中插入表、表中的信息等都需要注意,不然很容易出错。

通过上机练习让我比较容易的掌握理论知识的难点,以及一些平时不注意的问题,在上机练习的过程中需要对每个细节都要留心,这样才不至于出错,这就加强了我们对平时不注意的问题得到回应,从而加深了细节问题的处理方式。在上机的学习之后更加了解了表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容应该如何设置比较好一些,需要具体,但是避免繁琐,对表的概念和应用有了更深的理解。

上机的学习中也了解到数据库的视图和查询。查询可以通过SQL语言进行完成,这样加深了查询语句的基本结构,让我们能更好的掌握其中语句,方便于我们后面的学习和应用;在视图的操作中,也了解到了视图是常见的数据库对象,是提供查看和存取数据的另一种途径,对查询执行的其中一些操作,可以使用视图来完成。视图的功能也是强大的,使用视图不仅可以简化数据操作,还可以提高数据库的安全性,不仅可以检索数据,也可以通过视图向基表中添加、修改和删除数据。

在学习过程中也遇到了不少问题,积极询问老师,和同学共同商讨,查询资料把问题得以解决,培养了解决问题的能力,查阅资料是很好的手段,在今后的学习过程中应该继续发扬这些能力。数据库的学习是在学习与探索中度过的,短暂的课程时间的学习是结束了,但其中学到了许多知识,也有诸多的问题需要今后去解决,学习一门课程,学到的是如何学会,而不是随随便便的学完,在今后还要自己强化各方面的知识,真正学以致用。通过这次的学习,我了解了数据库的概念与重要性,还有今后的发展方向,明白数据库的应用是广泛的,不可小觑,在今后应该再进行加强学习。

下载上机材料(大全5篇)word格式文档
下载上机材料(大全5篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    数据库上机报告

    课本:255页实验题1,2,3 注明: 课程名称:access数据库; 实验室:信传楼210; 上机项目:模块与VBA; 上机时间:12-05; 上机学时:2学时 作业在下周周三(12-11)上多媒体艺术基础时上交,因要统一装订......

    计算方法上机实验

    龙格-库塔 #include #include float function (float x,float y) { return (0-(y*y));//f(x,y)µÄ±í´ïʽ } int main() { float x0,x1,y0,y1,k1,k2,k3,k4,a,b,c,n,......

    第二次上机作业

    第二次上机作业一、面向对象编程【题目】小型公司技术人员信息管理程序【要求】1. 先定义日期类:class Date{int year,month,day;public:Date(int y=2020,int m=1,int d=1);v......

    《电子商务》上机实验报告

    上机实验报告 实验名称: 电子商务模拟实验 学生姓名: 班级学号: 指导教师: 实验日期: 电子商务模拟实验 一、实验名称 电子商务模拟实验 二、实验目的 1.了解电子商务的框架体......

    access上机练习题

    1.1 请在“答题”菜单下选择相应命令,并按照题目要求完成下面的操作,具体 要求如下: 注意:下面出现的“考生文件夹”均为考生文件夹 在考生文件夹下,“samp1.accdb”数据库文件......

    08电子商务上机

    电子商务上机作业 一、信息的搜索和发布 1,假设你打算买一部笔记本电脑,价位大约是5000元-7000元,想上网搜索相关的产品信息然后在线或线下购买。目的:性价比最高。 (1)根据你对笔......

    微机室上机管理制度

    微机室上机管理制度 为了加强微机室的上机管理,确保学校财产安全,保证教学秩序的正常进行。特制订如下规则: 一、学生上机要求 第1条未经微机任课教师的同意,不得进入微机室。......

    会计上机实验报告

    会计模拟实验报告姓名:赵波 班级:工商101班 学号:101565 指导教师:岳殿民 实验目的 会计综合模拟实验是在学生掌握了一定的专业理论知识的基础上,以某个单位在一定时期内发生的实......