文档库 最新最全的文档下载
当前位置:文档库 › 实验五

实验五

实验五
实验五

实验五:Hash查找

一、实验目的

掌握哈希表的定义和特点

掌握哈希函数的构造方法和解决冲突的技术,实现哈希造表

掌握哈希表的查找、插入和删除技术

掌握哈希表平均查找长度ASL的计算方法

三、实验内容

(1-5必做,其他选做)

1.输入关键字序列;

2.用除留余数法构建哈希函数,用线性探测法解决冲突,构建哈希表HT1;

3.用除留余数法构建哈希函数,用拉链法解决冲突,构建哈希表HT2;

4.分别对HT1和HT2计算在等概率情况下查找成功和查找失败的ASL;

5.分别在HT1和HT2中查找给定的关键字(注意对墓碑的处理),给出比较次数

6.在HT1中删除指定的关键字(注意对墓碑的处理)

7.在HT1中插入新的关键字(注意对墓碑的处理)

8.其他查找算法(顺序、折半、索引、二叉排序树)的具体实现

实验算法

可设哈希关键字序列:

43,71,93,35,89,05,38,90,61,30,54,39,76,85,63,22,45 (共17个整数,初始化到一个一维数组里,省去每次运行都需键盘输入)

装填因子为:0.74;哈希地址空间:0-22;哈希函数可取为:H(K) = K % p,(p取23或19);空标志:9999,墓碑(已删除)标志:8888 三、算法设计:

存储结构:

typedef struct list

{

int key;

struct list *next;

}node,*link;//链式

typedef struct

{

int key;

}HashTable,*HashType;

1, 各函数名:

(1)除留余数:int Hash(int key)

(2)线性再探测建表:void CreateHash1(HashType &H,int *a,int n)

(3)拉链法建表:void CreateHash2(int *a,int len)

(4)哈希HT1查找:int hash_search1(HashType H,int key)

(5)哈希HT2查找:int hash_search2(int key)

(6)ASL计算:float sASL1(int len)//HT1查找成功

float fASL1(HashType H)//HT1查找失败

float sASL2(int len)//HT2查找成功

float fASL2(void)//HT2查找失败

(7)哈希表打印:void PrintHash1(HashType H)//HT1

void PrintHash2(void)//HT2

2,算法设计、评价及代码:

(1)除留余数:

int Hash(int key){

return key%m; //m=23

}

(2)线性再探测建表:

算法描述:发生冲突时地址加1

void CreateHash1(HashType &H,int *a,int n){//线性再探测int i,j;

H=(HashType)malloc(m*sizeof(HashTable));

if(n>m)printf("哈希表长度不够\n");

for(i=0;i

H[i].key=NULL;

for(i=0;i

j=Hash(a[i]);

while(H[j].key!=NULL){

j=(j+1)%m;count++;

}

H[j].key=a[i];

count++;

}

}

算法评价:T(n)=O(n^2);

(2)拉链法建表:

算法描述:相同余数的关键字存入统一线性链表void CreateHash2(int *a,int len){

link p,q;

int index;

int i;

for(i=0;i

q=(link)malloc(sizeof(node));

q->key=a[i];

q->next=NULL;

index=Hash(a[i]);

p=hashtab[index].next;

if(p!=NULL){

q->next=p;

hashtab[index].next=q;

}

else hashtab[index].next=q;

}

}

算法评价:T(n)=O(n);

(3)哈希HT1查找:

算法描述:按余数查找,线性再探测,直至遇到空结点int hash_search1(HashType H,int key){

int index;

counter1=1;

index=Hash(key);

while(H[index].key!=0&&H[index].key!=key){

index++;

counter1++;

if(index==m)

index=0;

}

if(H[index].key==0)return 0;

else return 1;

}

(4)哈希HT2查找:

算法描述:按余数查找某一链表中的结点

int hash_search2(int key){

link p;

int index;

counter2=0;

index=Hash(key);

p=hashtab[index].next;

while(p!=NULL){

counter2++;

if(p->key==key)

return 1;

else p=p->next;

}

return 0;

}

(5)ASL计算:

float sASL1(int len){

float asl1;

asl1=(float)count/len;

return asl1;

}

算法评价:T(n)=O(1); float fASL1(HashType H){ int p=0,i,k=0;

float asl;

int a[m]={0};

for(i=0;i

if(H[i].key==0)a[k++]=i+1;

p+=a[0]*(a[0]+1)/2;

for(k=1;a[k]!=0;k++)

p+=((a[k]-a[k-1])*(a[k]-a[k-1]+1))/2;

p+=(m-a[k-1])*(m-a[k-1]+a[0])-(m-a[k-1])*(m-a[k-1]-1)/2;

asl=(float)p/m;

return asl;

}

算法评价:T(n)=O(n);

float sASL2(int len){

int i,k=0,temp=1;

float asl;

link p;

for(i=0;i

p=hashtab[i].next;

if(p!=NULL)

k++;

while(p&&p->next){

temp++;

k+=temp;

p=p->next;

}

temp=1;

}

asl=(float)k/len;

return asl;

}

float fASL2(void){

int i,k=0;

float asl;

link p;

for(i=0;i

p=hashtab[i].next;

k++;

while(p){

k++;

p=p->next;

}

}

asl=(float)k/m;

return asl;

}

(6)哈希表打印:

void PrintHash1(HashType H){

int i;

for(i=0;i

printf("%3d ",i);

printf("\n");

for(i=0;i

printf("%3d ",H[i].key);

printf("\n");

}

void PrintHash2(void){

int i;

link p;

for(i=0;i

p=hashtab[i].next;

printf("%2d ",i);

while(p){

printf("--> %2d",p->key);

p=p->next;

}

printf("\n");

}

}

主函数:

void main(){

HashType H;

int a[]={43,71,93,35,89,05,38,90,61,30,54,39,76,85,63,22,45};

int len=sizeof(a)/sizeof(a[0]);

int key;

char c;

printf("请选择再探测方式a:线性探测法b:拉链法\n");

scanf("%c",&c);

switch (c){

case 'a':

printf("线性再探测下的哈希表Th1:\n");

CreateHash1(H,a,17);

PrintHash1(H);

printf("查找成功的ASL为\n%g\n",sASL1(len));

printf("查找失败的ASL为\n%g\n",fASL1(H));

printf("请输入要查找的数\n");

scanf("%d",&key);

if(hash_search1(H,key))printf("查找成功!\n比较次数为%d\n",counter1);

else printf("查找失败!\n");

break;

case 'b':

printf("拉链法解决冲突下的哈希表Th2:\n");

CreateHash2(a,len);

PrintHash2();

printf("查找成功的ASL为\n%g\n",sASL2(len));

printf("查找失败的ASL为\n%g\n",fASL2());

printf("请输入要查找的数\n");

scanf("%d",&key);

if(hash_search2(key))printf("查找成功!\n比较次数为%d\n",counter2);

else printf("查找失败!\n");

}

}

UML实验指导(修改)

UML实验指导书 实验一用例图 (2) 实验二类图和对象图 (4) 实验三顺序图、协作图 (6) 实验四活动图 (8) 实验五状态图 (10) 实验六组件图和部署图 (11) 2011-9-1

实验一用例图 一、实验目的和要求 1.熟悉UML建模工具Visual Paradigm和Rational Rose的基本菜单及操作。 2.熟悉用例图的基本功能。 3.掌握绘制用例图的方法。 二、实验内容 1.设计和实现某学校的网上选课系统的用例图。 2.网上选择系统的问题描述如下: 某学校的网上选课系统主要包括如下功能:管理员通过系统管理界面进入,建立本学期要开的各种课程、将课程信息保存在数据库中并可以对课程进行改动和删除。学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:查询已选课程、选课以及付费。同样,通过业务层,这些操作结果存入数据库中。 本系统拟使用Java语言通过三层模型实现:数据核心层、业务逻辑层和接入层。数据核心层包括对于数据库的操作;业务逻辑层作为中间层对用户输入进行逻辑处理,在映射到相应的数据层操作;接入层包括用户界面、系统登录界面、管理界面、用户选课界面等。 三、实验要求 1.对本系统中的参与者、用例进行分析,并绘制用例图。 2.写出添加课程、选课的用例详述。 3.按要求认真填写实验报告。 下面是系统中出现的一些事件流。 添加课程事件流: a)管理员选择进入管理界面,用例开始。 b)系统提示输入管理员密码。 c)管理员输入密码。 d)系统验证密码。 A1:密码错误 e)进入管理界面,系统显示目前所建立的全部课程信息。 f)管理员选择添加课程。 g)系统提示输入新课程信息。 h)管理员输入信息。 i)系统验证是否和已有课程冲突。

VFP实验5 SQL语言的应用-参考答案

实验5 SQL语言的应用 【实验目的】 1.掌握SQL的基本语句的使用 2.掌握SELECT命令的基本用法 3. 掌握对查询的结果进行处理 4.掌握用查询设计器建立查询的方法 【实验内容与操作步骤】 说明:红色字体为答案 设置VFP的默认工作目录为D:\EX7,并完成以下各操作,将操作结果存入D:\EX5文件夹中。 1、使用SQL语句实现下列功能: ( creat table 学生成绩(学号C(7),姓名C(8),入学成绩N(5,1)) (2)使用ALTER TABLE命令,增加一个字段:性别C(2),并将“学号”的字段长度改为8。 alter table 学生成绩add 性别C(2) alter table 学生成绩alter 学号C(8) ( insert into 学生成绩values("0503102","李丽",680,"女") insert into 学生成绩values("0603101","王庆",600,"男") 或者是: Insert into 学生成绩(学号,姓名,入学成绩,性别) values(“0503101”,”张海”,660,”男”) Insert into 学生成绩(学号,姓名,入学成绩,性别) values(“0503102”,”李丽”,680,”女”) Insert into 学生成绩(学号,姓名,入学成绩,性别) values(“0603101”,”王庆”,600,”男”)

庆”,600,”男”) (4)使用DELETE 删除“王庆”的记录。 dele from 学生成绩where 姓名="王庆" (5)使用UPDATE命令将所有人的“入学成绩”置为0。 update 学生成绩set 入学成绩=0 2、使用SQL语句中的SELECT命令来实现下列查询: (1)查询“学生.dbf”表中全部记录,输出“学号”、“姓名”、“性别”、“出生日期”和“入学成绩”这5个字段的内容; select 学号,姓名,性别,出生日期,入学成绩from 学生 (2)查询“学生.dbf”表中的性别为男的所有内容,并按“学号”的降序排列; select * from 学生where 性别=”男” order by 学号 (3)查询“学生.dbf”表中的全部学生中的入学最高分; select max(入学成绩) from 学生 (4)查询“学生.dbf”表中的数学专业和英语专业的学生的学号,姓名和专业; select 学号,姓名,专业from 学生where 专业=”数学” or 专业=”英语” (5)查询“学生.dbf”表中的入学成绩在550到650之间的学生的学号,姓名和入学成绩,并按“入学成绩”的降序排序; select 学号,姓名,入学成绩from 学生where 入学成绩>=550 and 入学成绩<=650 order by 入学成绩 (6)利用学生表中的数据创建一个查询,其结果包含学号、姓名、性别、出生日期、专业和入学成绩6个字段,查询结果按入学成绩由高分到低分排序,并将查询结果保存到一个“学生情况表.DBF”文件中; select 学号,姓名,性别,出生日期,专业,入学成绩from 学生order by 入学成绩desc into table 学生情况表 【思考题】 请参考教材6.4.3 嵌套查询、6.4.4 多表联接查询、6.4.5查询结果输出处理做如下练习。写出相应的SQL命令并上机运行。 (1)查询“学生.dbf”和“学生其它情况.dbf”表中的所有姓“李”的学生的学号、姓名和身份证; (2)查询“成绩.dbf”和“课程.dbf”表中的选修“计算机基础”的所有学生的学号和成绩,按“学号”的升序进行排序,并输出到TEST文件中; (3)查询“学生.dbf”、“成绩.dbf”和“课程.dbf”表中的选修“电脑文秘应用”的所有学生的学号,姓名,课名和总评(总评=(平时+期中+期末)/3);

UML实验报告

《面向对象分析与设计UML》 实验报告 学号:180108213 姓名:庞志伟 班级:08级软件2班 指导老师:姚宇峰

实验及作业一 一、实验目的 了解软件工程等基础知识,为后续的统一建模语言UML知识的学习做好准备工作。 二、实验设备与环境 装有Visio、RathionalRose的计算机。 三、实验内容 1、复习阐述“软件工程开发模型”的相关概念,并分析各种模型的优缺点,写成实验报告。 2、熟悉UML软件设计工具Visio、Rational Rose的安装及环境 四、实验过程及结果 1、软件工程开发模型有(1)瀑布模型,(2)原型模型,(3)螺旋模型,(4)喷泉模型(1)瀑布模型 将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 优点: 1)为项目提供了按阶段划分的检瀑布模型查点。 2)当前一阶段完成后,您只需要去关注后续阶段。 3)可在迭代模型中应用瀑布模型。 缺点: 1)在项目各个阶段之间极少有反馈。 2)只有在项目生命周期的后期才能看到结果。 3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。 (2)原型模型 原型模型又称快速原型,它是增量模型的另一种形式;它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。 优点:克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。

数据库-SQL语言的实验

北华航天工业学院《数据库原理与应用》 实验报告 报告题目:SQL语言 作者所在系部:计算机系 作者所在专业:网络工程 作者学号:20114052233 作者姓名: 张旭刚 指导教师姓名:李建义 完成时间:20134.24 北华航天工业学院教务处制

SQL语言 一、实验目的 1、理解数据库以及数据表的设计; 2、熟悉SQLServer2005中的数据类型; 3、熟悉使用SQL语句创建和删除模式和索引; 4、掌握使用SQL语句创建、修改和删除数据表; 5、掌握使用SQL语句查询表中的数据; 6、掌握使用SQL语句插入、修改和删除数据表中的数据; 7、掌握使用SQL语句创建、删除、查询和更新视图。 二、实验内容 (一)创建数据库和模式 1、通过SQL语句创建图书信息管理数据库,命名为“db_Library”,数据文件和日志文件放在D盘下以自己学号和姓名命名的文件夹中,数据文件的逻辑名为db_Library_data,数据文件的操作系统名为db_Library_data.mdf,文件初始大小为10MB,最大可增加至300MB,增幅为10%;日志文件的逻辑名为db_Library_log,日志文件的操作系统名为db_Library_data.ldf,文件初始大小为5MB,最大可增加至200MB,增幅为2MB。 2、通过SQL语句在该数据库中创建模式L-C。 (二)创建和管理数据表 要求为各数据表的字段选择合适的数据类型及名称;为各数据表设置相应的完整性约束条件。 1、通过SQL语句将以下数据表创建在L-C模式下: 课程信息表(tb_course)——课程编号、课程名、先修课、学分 2、通过SQL语句将以下数据表创建在该数据库的默认模式dbo下: 图书类别信息表(tb_booktype)——类别编号、类别名称 图书信息表(tb_book)——图书编号、类别编号、书名、作者、出版社、定价、库存数 读者信息表(tb_reader)——读者编号、姓名、性别、学号、班级、系部 借阅信息表(tb_borrow)——图书编号、读者编号、借阅日期、归还日期 3、通过SQL语句对读者信息表进行修改:删除系部字段、添加所在系字段。 4、通过SQL语句对图书信息表进行修改:将定价的数据类型改为REAL。 5、通过SQL语句删除课程信息表。 (三)创建和删除索引 1、使用SQL语句在图书信息表上创建一个非聚簇索引IX_S_QUANTITY,要求按照该表中库存数字段的降序创建。 2、使用SQL语句在读者信息表上创建一个唯一的非聚簇索引IX_S_NAME,要求按照该表中的姓名字段的升序创建。 3、使用SQL语句删除之前创建的两个索引。 (四)数据库及数据表设计 根据周围的实际应用情况,自选一个小型的数据库应用项目进行研究,完成该系统的设计。要求2人一组,通过需求分析,列出系统的主要功能,并完成该系统数据库的逻辑结构设计。例如可选择学籍管理系统、企业进销存管理系统、人事管理系统或在线考试系统等。

UML统一建模语言-实验报告2-活动图及状态图

《UML技术》课程实验报告 专业: 班级: 学号: 姓名: 日期: 2013 年 10 月 11 日

一、实验题目 活动图及状态图 二、实验目的 1.熟悉活动图的基本功能和使用方法。 2.掌握如何使用建模工具绘制活动图方法。 三、实验内容及原理 通过前面内容的学习,完成了对TJKD图书馆的图书馆管理系统的需求的初步分析,得出系统的用例图和相应的活动态。通过这两类图我们可以初步了解系统的业务处理过程,但对业务处理过程的处理状态间转换了解仍不够,这不利于设计人员对系统业务的进一步理解,而状态图能从对象的动态行为的角度去描述系统的业务活动。因此,指派你运用本节所学的状态图,完成如下任务: 1. 完成图书业务模块中还书用例的状态图。 1.业务分析:由前面章节对图书馆管理系统中的还书主要业务的描述和分析可知,还书业务的动态行为是由:空闲(idle)、图书查找(finding)、还书(reversion)、失败(Failure)、归还成功(Success)5种状态及激活相互转换的事件。 2.绘制状态图:请您根据分析运用UML绘制还书用例的状态图。 分析: 还书的状态图,还书的主要业务都是由管理员来完成,首先管理员必须先登录系统,并通过验证后,便可以进行下一步的操作,查找该书的相关信息,如存在,则进行还书操作,如不存在该信息,则给出提示信息; 四、实验步骤 第一个 (1)在用例图中,找到删除的用例,在删除用例上单击右键,在弹出的快捷菜单中选“New”,Rose 工具也会弹出一个菜单,选”Activity Diagram”,选中后单击,便可以新建好一个活动图。 (2)新建好活动图后,双击删除的活动图,然后把在左边的工具栏内点击“Swinlane“,在右边的图添加一个泳道,并命名为administrator.按照此步骤,再添加另一个泳道,并命名为SystemTool (3)接着在左边的工具上选取开始点,并在administrator的泳道上添加;添加完开始结点后,再来为此活动图添加活动,在左边的工具栏上选中Activity这个图标,在administrator这边的泳道上添加一个活动,命名为登录(login),再在开始结点和活动登录(login)之间添加活动关系 (4)完成步骤(2)后,登录输入需要对输入的信息进行验证,则在图中添加一个验证框结束(5)验证后,下一步的操作是查询需要删除的记录,添加一个活动,命名为delete (6)最后,在删除后,系统会返回操作结果给操作者;删除成功或删除失败系统都会有信息返回给操作者。 (7)根据分析设计情况,进一步添加或细化活动图 第二个 (1)在用例图中的还书(revesion)用例,单击右键,新建一个状态图,命名为revesion状态图,(2)双击“receivesion”状态图,展开后,在左边的工具栏上选取一个实心圆点,此结点为开始结点;当还书的时候,操作者先要询问系统的状态,如果系统忙,操作者则必需等待,因此,得到系统的两种状态

sql实验5(一)

实验报告专用纸 实验5 索引和视图 三、实验内容 1.分别使用企业管理器和Transact-SQL语句为studentsdb数据库的student_info和curriculum创建主键索引。 ①、使用企业管理器为studentsdb数据库的student_info创建主键索引。 ②使用企业管理器为studentsdb数据库的curriculum创建主键索引。(将课程表的课程编号属性设为主键,系统将自动创建主键索引) ③使用Transact-SQL语句为studentsdb数据库的student_info创建主键索引。(将先前创建好的主键移除) create clustered index student_info_idx on student_info(学号)

④使用Transact-SQL语句为studentsdb数据库的curriculum创建主键索引。(将先前创建好的主键移除) create clustered index curriculum_idx on curriculum(课程编号) 2.使用企业管理器按curriculum的课程编号列创建唯一性索引。

3.分别使用企业管理器和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index

①使用企业管理器为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引。 ②使用Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引。(删除之前所创建的索引)

UML实验三活动图

实验三活动图 [实验目的和要求] 1、掌握活动的概念以及表示方法。 2、掌握活动图中各元素表示的意义和表示方法。 3、掌握分支、监护条件、分岔、汇合和泳道的概念。 4、掌握阅读和绘制活动图的方法。 5、掌握UML的可见性规则和构造型的作用。 [实验环境] 1、Windows操作系统(XP、Vista等) 2、Rational Rose2003软件(或RSA8.0) [实验内容和步骤] 1、说明下面活动图所表达的信息。 表达的信息:用户下订单,可以直接生成送货单,然后由供应商发货,修改订单项状态,然后等所有的订单项全都送货完毕,这样一笔订单就完成了。或者也可以由用户下订单,然后

选择支付方式,如果用户想要取消订单或订单超过了时限则该订单取消,否则供应商收款后送货,然后修改订单项状态,待所有的订单项全都送货完毕,订单就完成了。 2、用活动图表示for(i=0;i<9;i++)循环。 输入i=0 i>=9 i++ i<9 2、了解使用“支付宝”进行网上购物的活动过程,并画出活动图,关于支付宝的相关说明可以登录https://www.wendangku.net/doc/cb6557634.html,/查看。

登陆淘宝网,选择要购买的商品,选中 后点“立即购买”买下选中的商品 正确填写您的收货地址、收货人、联系电话,填写您所需的购买数量;补充完成您的个人基本信息,点“确认无误,购买”继续 选择支付宝账户余额支付,输入支付宝账户支付密码,点“确认无误,付款”支付宝账户无余额可以选择网上银行、支付宝卡通、网点付款来完成支付 支付宝付款成功,点“点此查看 本笔交易详情” 卖家发货后,买家注意查收货物,收 到货物后,点“确认收货”付款给卖家 输入支付宝账户的支付密码, 点“同意付款”付款给卖家; 收到货点“确定”付款给卖家 成功付款 给卖家 双方相互 评价 交易成功 [分析与讨论] 1总结UML在软件工程中的作用以及使用UML建模的必要性。 作用:在现代软件工程中,需求到详细设计是非常重要的环节,后续的编码、测试、维护都只是按照前面的规划计划进行,一个非常详细的设计,利用UML几乎能将整个的代码通过UML表示出来,UML处理好了,就简化了软件的制作难度。我们利用画UML,把自己想实现的程序实现。 必要性:通过使用UML,这些我们就能够阅读和交流系统架构和设计规划,就像建筑工人多年来所使用的建筑设计图一样,能让人一目了然。

实验五 SQL语句应用

实验5 SQL语句应用 1 实验目的 (1)掌握数据的插入、修改和删除操作。 (2)掌握不同类型的数据查询操作。 2 实验要求 (1)利用SQL语句对图书销售系统表进行插入、修改、删除和查询操作。 3 实验步骤 (1)以bs用户登录BOOKSALES数据库,将表1至表6中的数据插入到数据库的相应表中。 表1CUSTOMERS 表2PUBLISHERS

表3BOOKS 表4ORDERS ORDERITEM 表5 表6PROMOTION

(2)将ISBN为978-7-121-18619-8的图书的零售价格(retail)修改为30。Update books set retail=30 where isbn=’978-7-121-18619-8’; (3)将订单号为1000的订单的发货日期修改为“2013-2-2”。 Update orders set shipdate=to_date('2013-02-02','yyyy-mm-dd') where order_id=1000; (4)已知当前有一个图书表OLDPUBLISHERS,其表中数据如下: publisher_id name contact phone 1 电子工业出版社李明0 2 机械工业出版社孙浩 3 人民邮电出版社张春 4 传智播客吴瑞997990 请将表中的数据与PUBLISHERS中的数据进行合并。 创建表: CREATE TABLE OLDPUBLISHERS ( 2 publisher_id CHAR(10) PRIMARY KEY, 3 name VARCHAR2(25), 4 contact V ARCHAR2(25),

数学实验练习题

第一讲 MATLAB 使用简介 一、填空题 1.启动MATLAB 程序的三种方式为 、 、 。 2.MA TLAB 的窗口组成为 、 、 、 、 , 和 需要切换才能显示。 3.特殊矩阵的生成方法有元素全为1的矩阵平共处五项原则 , 元素全为0的矩阵 , 生成n 阶单位矩阵命令为 。 4.清除命令窗口内容的命令是 。 5. 删除工作空间中保存的变量x 的命令是 。 6. 将双精度实数的显示格式设置成15位定点小数格式的命令是 。 7. 要在命令窗口中查看对函数log 的帮助信息,所用命令是 。 8. 要查询在工作空间中定义的变量x 的相关信息,可用命令 。 9. 设x 是复数,取x 的实部存入变量y 的语句是 。 10. 设x 是复数,取x 的虚部存入变量y 的语句是 。 11. 设x 是复数,取x 的模存入变量y 的语句是 。 12. 设x 是复数,取x 的共轭存入变量y 的语句是 。 13. MATLAB 的含义为 。 14. 在MATLAB 中,矩A 阵的秩由函数 来实现。 15. 将双精度实数的显示格式设置成15位定点小数格式的命令是 。 16. 用冒号运算符':'创建数组?? ????ππππ,,1002,1002,100Λ命令为 __ _. 17. MATLAB 中逗号主要用作 ,用作输入量与输入量之间的分隔符, 。 18.MA TLAB 中Inf 或inf 表示 、NaN 或nan 表 示 。 19. size 命令的功能 。 20.工作空间窗口的作用是用于内存变量 的 、 、 。 二、选择题(每小题只有一个正确答案,请将正确答案写到括号里) 1.下面关系MATLAB 软件中的对数函数正确的说法是( ) A 、ln(x)是自然对数函数。 B 、log(x)是常用对数函数。 C 、log(x)是自然对数函数。 D 、log3(x)是求以3为底x 的对数函数 2.下面关于MATLAB 函数说法正确的是() A 、反正弦函数命令为arcsin(x). B 、反余弦函数的命令为acos(x)。 C 、取整函数fix(x)与数学中

实验5 sql语句练习——图书馆数据库答案

实验5sql语句练习——图书馆数据库 实验5 sql语句练习——图书馆数据库 实验目的 (1)了解SQL Server数据库的逻辑结构和物理结构; (2)了解表的结构特点; (3)了解SQL Server的基本数据类型; (4)了解空值概念; (5)学会在企业管理器中创建数据库和表; (6)学会使用T-SQL语句创建数据库和表。 (7)学会使用T-SQL语句更新数据。 (7)学会使用T-SQL语句创建多种查询。 实验准备 首先要明确,能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 其次创建数据库必须要确定数据库名、数据库大小(最初的大小、最大的大小、是否允许增长及增长方式)和存储数据库的文件。 然后,确定数据库包含哪些表,以及所包含的各表的结构,还要了解SQL Server的常用数据类型,以创建数据库的表。 此外还要了解两种常用的创建数据库、表的方法,即在企业管理器中创建和使用T-SQL的CREATE DA TABASE语句。 实验内容 假设有5本书 设有一图书馆数据库,其中包括3个表,即图书表、读者表和借阅表。三个表的结构如图: 读者表结构

(1)用Sql语句创建图书馆数据库 Create database Lab05 (2)用Sql语句创建上述3个表 create table book ( bookId char(10)primary key, bookName varchar(50), bookWriter varchar(30), bookPublish varchar(30), bookPrice float ) create table reader ( readerId char(10) primary key, readerName varchar(8)not null, readerSex char(2)not null, readerOfficeTel char(8), readerDepartment varchar(30) ) create table 借阅表 ( readerId char(10), bookId char(10), checkOutTime char(8), checkInTime char(8), primary key(readerId,bookId), foreign key (readerId) references reader(readerId), foreign key (bookId) references book(bookId), ) (3)基于图书馆数据库的3个表,用sql语言完成一下操作:1)为图书表增加一列“ISBN”,数据类型为CHAR(10)

信息系统开发与设计实验九活动图、状态图

福建农林大学计算机与信息学院实验报告 1.实验项目名称:面向对象分析与设计–活动图、状态图 2.实验目的 1.熟悉活动图的基本功能和使用方法。 2.熟悉状态图的基本功能和使用方法。 3.掌握如何使用建模工具绘制活动图方法。 4.掌握如何使用建模工具绘制状态图方法。 3.实验器材 1.计算机一台。 2.Rational Rose 工具软件。 4.实验内容 (1)根据学院的图书管理系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程、在删除读者用例描述的基础上,系统分析部指派您完成该项任务。要求:用活动图来描述系统中已知用例的业务过程: 1.描述添加读者用例。 2.描述添加管理员用例。 3.描述新加书籍用例 (2) 通过前面内容的学习,在学院图书馆的图书馆管理系统的需求的初步分析,得出系统的用例图和相应的活动态。通过这两类图我们可以初步了解系统的业务处理过程,但对业务处理过程的处理状态间转换了解仍不够,这不利于设计人员对系统业务的进一步理解,而状态图能从对象的动态行为的角度去描述系统的业务活动。通过还书用例的状态图绘制学习,完成如下任务: 1. 完成图书业务模块中借书用例的状态图。 2. 完成图书业务模块中新加书籍用例的状态图。 绘制“删除读者信息”用例的活动图的实验步骤 删除读者信息一般按照以下步骤进行: (1)管理员在录入界面,输入待删除的读者名; (2)“业务逻辑”组件在数据库中,查找待删除的读者名; (3)如果不存在,则显示出错信息,返回步骤(1),如果存在则继续; (4)“业务逻辑”组件判断“待删除的读者”是否可以删除; (5)如果不可以,则显示出错信息,返回步骤(8),如果可以则继续; (6)在数据库中,删除相关信息; (7)显示删除成功信息; (8)结束。 5. 实验报告要求 1.整理实验结果。

SQL Serve实验5_索引和视图_要点

实验5 索引和视图 1.实验目的 (1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引的方法。 (2)掌握使用SQL Server管理平台查看索引的方法。 (3)掌握使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引的方法。 (4)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。 (5)了解索引和视图更名的系统存储过程sp_rename的用法。(6)掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。 (7)了解删除视图的Transact-SQL语句DROP VIEW的用法。2.实验内容及步骤 (1)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。 使用SQL Server管理平台:

a. b. c. d.

e. 使用Transact-SQL语句: (2)使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。

(3)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。 使用SQL Server管理平台: 使用SQL语句: use studentsdb go create index grade_index on grade (分数) (4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。 create index grade_id_c_ind on grade (学号,课程编号)

实验7 面向对象分析与设计—活动图

实验7 面向对象分析与设计—活动图姓名:学号:日期: 7.1 实验目的 ?熟悉熟悉UML活动图的功能和组成元素 ?理解活动图的语义 ?学会构思活动图 ?掌握活动图的绘制方法 7.2 实验类型及学时 ?验证型 ?2学时 7.3 实验设备 ?PC机一套,要求安装Windows操作系统、Office软件 ?安装Visio分析建模工具 7.4 实验要求 ?要求能够熟练运用Visio软件所提供的菜单、工具、模型等制作图形或图 表;能用Visio软件所提供的专业图形模板,自行绘制出专业化、高质量的图形或图表 ?结合案例1,根据给定系统(案例2)的业务需求,构思网上书店的活动 图,且绘制活动图 ?攥写实验报告,请以“学号+姓名”命名实验报告文档,并在规定时间内 提交

7.5实验内容 1、案例1——图书管理系统之用户管理模块 2、案例2——网上书店系统 7.6 实验结果 1、案例2——网上书店系统 请将“网上书店系统的活动图”放置于实验报告7。 (1)客户购书的活动图

(2)订单处理的活动图 7.7 心得体会 (请大家根据自己的实际情况,如实填写)

不过如此,我觉得简单的小菜一碟,就和那个什么一样,和上次实验报告三一样,这几个案列通过之前的几次操作都是剖析的较为详细了,所以实际上画活动图和前面的几张图片没有太大差别。就是把已经剖析好的每个部分用着活动图的规则来进行摆放,尽管可能因为时间不够,然后导致有些地方出错,或者会看不出来,所以我百度了一下下,发现没有别人做的,所以就先这样上交了。非要说问题的话就是感觉有很多地方有缺漏,而且说明分析可能不够,而且图画的不是很漂亮,但是时间不够我就不改了。

第五讲Matlab求解微分方程-内江师范学院数值仿真与数学实验教学

第五讲 Matlab求解微分方程 教学目的:学会用MATLAB求简单微分方程的解析解、数值解,加深对微分方程概念和应用的理解;针对一些具体的问题,如追击问题,掌握利用软件求解微分方程的过程;了解微分方程模型解决问题思维方法及技巧;体会微分方程建摸的艺术性. 教学重点:利用机理分析建模微分方程模型,掌握追击问题的建模方法,掌握利用MATLAB求解数值解. 教学难点:利用机理分析建模微分方程模型,通过举例,结合图形以及与恰当的假设突破教学难点. 1微分方程相关函数(命令)及简介 因为没有一种算法可以有效地解决所有的ODE 问题,为此,Matlab 提供了多种求解器Solver,对于不同的ODE 问题,采用不同的Solver.

阶常微分方程(组)的初值问题的解的 Matlab 的常用程序,其中: ode23 采用龙格-库塔2 阶算法,用3 阶公式作误差估计来调节步长,具有低等的精度. ode45 则采用龙格-库塔4 阶算法,用5 阶公式作误差估计来调节步长,具有中等的精度. 2 求解微分方程的一些例子 2.1 几个可以直接用 Matlab 求微分方程精确解的例子: 例1:求解微分方程 22x xe xy dx dy -=+,并加以验证. 求解本问题的Matlab 程序为: syms x y %line1 y=dsolve('Dy+2*x*y=x*exp(-x^2)','x') %line2 diff(y,x)+2 *x*y-x*exp(-x^2) %line3 simplify(diff(y,x)+2*x*y-x*exp(-x^2)) %line4 说明:(1) 行line1是用命令定义x,y 为符号变量.这里可以不写,但为确保正确性,建议写上; (2) 行line2是用命令求出的微分方程的解: 1/2*exp(-x^2)*x^2+exp(-x^2)*C1 (3) 行line3使用所求得的解.这里是将解代入原微分方程,结果应该为0,但这里给出: -x^3*exp(-x^2)-2*x*exp(-x^2)*C1+2*x*(1/2*exp(-x^2)*x^2+exp(-x^2)*C1)

数据库实验五:视图的应用

数据库实验五:视图的应用 一、实验目的与要求: 1.实验目的 (1)理解视图的概念; (2)掌握视图的使用方法。 (3)理解视图和基本表的异同之处。 2.实验要求 (1)参照实验五中完成的查询,按如下要求设计和建立视图: 1)基于单个表按投影操作定义视图。 2)基于单个表按选择操作定义视图。 3)基于单个表按选择和投影操作定义视图。 4)基于多个表根据连接操作定义视图。 5)基于多个表根据嵌套操作定义视图。 6)定义含有虚字段的视图。 (2)分别在定义的视图设计一些查询(包括基于视图和基本表的连接或嵌套查询)。 (3)在定义的视图上进行插入、更新和删除操作,分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。 (4)在实验报告中要给出具体的视图定义要求和操作要求,并针对各种情况做出具体的分析和讨论。 二、实验内容 1、实验原理 (1)视图是用SQL SELECT查询定义的,创建视图命令格式如下: CREATE VIEW <视图名> AS (2)删除视图的命令格式如下: DROP VIEW <视图名> 2、实验步骤与结果 (1)调出SQL Server2005软件的用户界面,进入SQL SERVER MANAGEMENT

STUDIO。 (2)输入自己编好的程序。 (3)检查已输入的程序正确与否。 (4)运行程序,并分析运行结果是否合理和正确。在运行时要注意当输入不同的数据时所得到的结果是否正确。 (5)输出程序清单和运行结果。 (1)参照实验五中完成的查询,按如下要求设计和建立视图: 1)基于单个表按投影操作定义视图。 create view v as select教师编号,姓名 from教师 2)基于单个表按选择操作定义视图。 create view v_order as select* from教师 where职称='教授' 3)基于单个表按选择和投影操作定义视图。 create view v_cuss as select教师编号,姓名,职称

面向对象的系统分析与设计实验报告-周佳胤-12408300120

面向对象系统分析与设计实验 实验报告书 面向对象系统分析与设计 起止日期:2015 年10 月19 日至2015 年11 月19 日 学生姓名惠大贺 班级软件工程1201 学号12408300123 成绩 指导教师(签字) 计算机与通信学院 2015年11月19日 1

目录 实验一用例图及进度安排------------------------------------------------------------------03 实验二活动图---------------------------------------------------------------------------------08 实验三状态图---------------------------------------------------------------------------------16 实验四类---------------------------------------------------------------------------------------23 实验五类的关系------------------------------------------------------------------------------30 实验六、七交互图---------------------------------------------------------------------------34 实验八、九对象图和包---------------------------------------------------------------------43 实验十、十一组件图和部署图------------------------------------------------------------45 实验十二正向工程---------------------------------------------------------------------------51 实验总结---------------------------------------------------------------------------------------56 2

数据库SQL语句实验报告

《数据库原理及应用》实验报告SQL语句部分 :绩成总

实验一熟悉SQL SERVER,数据定义实验 实验一成绩: 一、实验目的 1、利用查询分析器创建数据库 2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作 二、实验步骤及内容 在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。 1.创建学生课程数据库 2.创建学生关系表S : 3.创建课程关系表C : 课程名学分先行课课程号Cno ccreditCname Cpno 4.创建课程关系表SC : 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 7、删除表S的“年龄”属性列。 8、删除S姓名列的唯一值约束。 9、修改SC表成绩属性列为精确数字型。 10、在表S上,按“Sno”属性列的唯一值方式建立索引。 11、删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。 12、创建教材P74页习题5中SPJ数据库中的四个关系:S、P、J、SPJ。 三、实验结果: 1.创建学生课程数据库 ; Studend create database2.创建学生关系表S : S create table(, 9Sno CHAR()PRIMARYKEY UNIQUE,)(Sname CHAR20CHAR Ssex (2), smallint Sage ,

char Sdept 20(), ); .创建课程关系表C 3: 课程号课程名先行课学分 ccredit Cpno CnoCname table C create (primary key,) Cno char(4Cname CHAR(40 ),char(), 4Cpno ,Ccredit SMALLINT); 4.创建课程关系表SC : 学号课程号成绩 grade Sno Cno createtable SC(9),Sno char(),char Cno (4, Grade smallint); 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 ;datetimeadd Sbirthday alter table S 7、删除表S的“年龄”属性列。

实验五 活动图

实验五活动图 一、实验目的 1.熟悉活动图的基本功能和使用方法。 2. 初步掌握建立活动图的方法。 3.掌握如何使用建模工具Rational Rose2003绘制活动图方法。 二、实验器材 1.计算机一台。 2.Rational Rose 2003工具软件。 三、实验内容 (一)对于图书管理系统开发,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程。要求:用活动图来描述系统中已知用例的业务过程,具体包括: 1.确定用例 2.确定用例路径 3.创建完整的活动图 (二)要求:用活动图来描述系统中参与者在整个系统的活动,具体包括: 1.借阅者活动图 2.图书管理员活动图 3.系统管理员活动图 四、实验步骤(具体方案) (一)绘制“删除读者信息”用例的活动图。删除读者信息一般按照以下步骤进行:(1)管理员在录入界面,输入待删除的读者名; (2)“业务逻辑”组件在数据库中,查找待删除的读者名; (3)如果不存在,则显示出错信息,返回步骤(1),如果存在则继续; (4)“业务逻辑”组件判断“待删除的读者”是否可以删除; (5)如果不可以,则显示出错信息,返回步骤(8),如果可以则继续; (6)在数据库中,删除相关信息; (7)显示删除成功信息; (8)结束。 绘图步骤: (1)在用例图中,找到删除的用例,如图5.1所示,在删除用例上单击右键,在弹出的快捷菜单中选“New”,Rose工具也会弹出一个菜单,选”Activity Diagram”,选中后单击,便可以新建好一个活动图。如图5.2所示。

图5.1 图5.2 (2)新建好活动图后,双击删除的活动图,得到如图5.3所示,然后把在左边的工具栏内点击“Swinlane“,在右边的图添加一个泳道,如图5.4所示,并命名为administrator.按照此步骤,再添加另一个泳道,并命名为System,得到图5.5。

数据库系统原理实验报告_SQL查询语句

数据库系统原理 实验报告 :xxx 学号:xxxxxxxx 专业:xxxxx 日期:xxxxx

Lab2 一、实验目的 进一步熟悉关系数据库标准语言SQL。 二、实验环境 1)Windows 10 2)SQL Server 2017 三、实验容 给定如学生表、课程表和学生作业表所示的信息。 表1 学生表 表2 课程表 表3 学生作业表

K001 0433 60 75 75 K001 0529 70 70 60 K001 0531 70 80 80 K001 0591 80 90 90 K002 0496 80 80 90 K002 0529 70 70 85 K002 0531 80 80 80 K002 0538 65 75 85 K002 0592 75 85 85 K006 0531 80 80 90 K006 0591 80 80 80 M001 0496 70 70 80 M001 0591 65 75 75 S001 0531 80 80 80 S001 0538 60 80 写出如下SQL语句: 1.查询数据库中有哪些专业班级。(5分) Sql语句: SELECT专业班级 FROM学生表; 查询结果截图: 2.查询在1986年出生的学生的学号、和出生日期。(5分) Sql语句: SELECT学号,,出生日期 FROM学生表 WHERE出生日期LIKE'1986%'; 查询结果截图:

3.查询05级的男生信息。(5分) Sql语句: SELECT* FROM学生表 WHERE学号LIKE'05%'AND性别='男'; 查询结果截图: 4.查询没有作业成绩的学号和课程号。(5分) Sql语句: SELECT学号,课程号 FROM学生作业表 WHERE作业1成绩IS NULL OR作业2成绩IS NULL OR作业3成绩IS NULL; 查询结果截图: 5.查询选修了K001课程的学生人数。(5分) Sql语句: SELECT COUNT(DISTINCT学号) FROM学生作业表 WHERE课程号='K001'; 查询结果截图:

相关文档
相关文档 最新文档