文档库 最新最全的文档下载
当前位置:文档库 › 太原理工大学数据结构实验报告

太原理工大学数据结构实验报告

数据结构实验报告

课程名称:数据结构

实验项目:线性表、树、图、查找、内排序实验地点:***********************

专业班级:物联网**** 学号:********* 学生姓名:

指导教师:周杰伦

2014年*月*日

实验一线性表

目的与要求

本次实习的主要目的是为了使学生熟练掌握线性表的基本操作在顺序存储结构和链式存储结构上的实现,提高分析和解决问题的能力。要求仔细阅读并理解下列例题,上机调试并编译执行通过,并观察其结果,然后独立完成后面的实验内容,写出完整的实验报告。编写程序过程中注意养成良好的编程风格与习惯,要求程序结构清晰,程序缩进,适当注释。

实验仪器

使用的计算机联想:硬件配置cpu-i3等、软件环境win7

实验内容

问题描述:

1.设顺序表A中的数据元素递增有序,试写一程序,将x插入到顺序表的适当位置上,使该表仍然有序。

输入:插入见的顺序表,插入的数,插入后的顺序表

输出:插入前的顺序表,插入的数,插入后的顺序表

存储结构:顺序表存储数据

算法基本思想:这里采用了顺序表来存储数据,主要就是考虑插入的位置是不是在最后一个,如果不是在最后一个,那么就要移动数据了,算法很简单就不在这里的数据都看成是整型的

实验代码

#include

#include

void Insert(int* p,int length,int n){

int i,j;

int flag=0;

if(n>=p[length-1]){

p[length]=n;

flag=1;

}

else{

for(i=length-2;i>=0;i--){

if(n>=p[i]){

for(j=length;j>=i+2;j--){

p[j]=p[j-1];

}

p[i+1]=n;

flag=1;

break;}

}

}

if(flag==0){

for(j=length;j>=1;j--){

p[j]=p[j-1];

}

p[0]=n;}

}

int main(){

int L[10]={2,5,8,11,14,17,20};

int length=7;

int i,x;

printf("cha ru qian de shun xu biao wei :\n");

for(i=0;i

printf("%4d",L[i]); }

printf("\nqing shu ru yao cha ru de zheng shu:\n");

scanf("%d",&x);

Insert(L,length,x);

printf("charu%dhoudeshunxubiaowei:\n",x);

for(i=0;i<=length;i++){

printf("%4d",L[i]);

}

printf("\n"); system("pause");

return 0;

}

实验结果

实验心得与体会

本次实验是数据结构的第一个实验,虽然已经学过C语言,也用过vc++6.0,但是实验中还是不可避免的遇到许多问题,不过经过自己上网了解和同学与老师的帮助,问题都得到了解决,其中在运行代码后出现了“预编译头文件找不到”的错误,多次运行都出现这种错误,于是上网查询后,才知道是头文件错误,加上“#include”之后程序顺利运行。通过本实验我对线性表有了更深的的认识,弄懂了一些上课时没能理解的知识点,对我以后的学习有很大的帮助。

实验二树

目的与要求

熟悉树的各种表示方法和各种遍历方式,掌握有关算法的实现,了解树在计算机科学及其它工程技术中的应用。

实验仪器

使用的计算机联想:硬件配置cpu-i3等、软件环境win7

实验内容

问题描述:

1.编写递归算法,计算二叉树中叶子结点的数目。

输入:按先序序列输入二叉树ABD..EH…CF.I..G..

输出:二叉树叶子节点数目为4

存储结构:采用二叉链表存储

算法基本思想:求二叉树中叶子结点个数,即求二叉树的所有结点中左、右子树均为空的结点个数之和。可以将此问题转化为遍历问题,在遍历中“访问一个结点”时判断该结点是不是叶子,若是则将计数器累加。

实验代码:

#include

#include

int count = 0;

struct node{

char info;

struct node *llink,*rlink;

};

typedef struct node NODE;

NODE *creat(){

char x;NODE *p;

scanf("%c",&x);

printf("%c",x);

if(x!='.'){

p=(NODE *)malloc(sizeof(NODE));

p->info=x;

p->llink=creat();

p->rlink=creat();

}

else{

p=NULL;

return p;

}

void run(NODE *t){

if(t){

run(t->llink);

run(t->rlink);

printf("%c",t->info);

if( ((t->llink) == NULL) && ((t->rlink) == NULL)) count ++;

}

}

void main()

{

NODE *T;

printf("请输入一个树:\n");

T=creat();

printf("\n");

if(!T)

printf("这是一个空二叉树");

else

{ printf("遍历后的结果:\n ");

run(T);

}

printf("\n总共有叶子节点数%d", count );

printf("\n");

}

运行结果

实验心得与体会

本次实验是关于树的相关练习,树这一节在本书中算是一个重点内容,不过它并不是一个难点,相比其他单元的内容来说已经算是简单的了,所以本次实验相比前几次实验容易同时也顺利多了。源代码一次就运行成功。通过本次实验我对树有了更深的了解,对我以后的学习有很大的帮助。

实验三图

目的与要求

熟悉图的存储结构,掌握有关算法的实现,了解图在计算机科学及其他工程技术中的应用。

实验仪器

使用的计算机联想:硬件配置cpu-i3等、软件环境win7

实验内容

问题描述:

1.试基于图的深度优先搜索策略编写一程序,判别以邻接表

方式存储的有向图中是否存在有顶点V i到V j顶点的路径(i≠j)。

输入:图的顶点个数N,以及以V1、V2、V3、V4为弧尾的所有的弧,并以-1结束。还有你要判断是否连通的两个顶点。

输出:若A到B无路径,则输出“不是连通的”,否则输出A到B 路径上各顶点。

存储结构:图采用邻接矩阵的方式存储。

算法的基本思想:采用深度优先搜索的方法,从顶点A开始,依次访问与A邻接的顶点V A1,V A2,...,V AK, 访问遍之后,若没有访问B,则继续访问与V A1邻接的顶点V A11,V A12,...,V A1M,再访问与V A2邻接顶点...,如此下去,直至找到B,最先到达B点的路径,一定是边数最少的路径。在访问顶点过程中,每次把当前顶点的序号作为与其邻接的未访问的顶点的前驱顶点记录下来。

程序代码:

#include

#include

#include

int n;

typedef struct arcNode

{

int position;

struct arcNode *next;

}ArcNode, *ArcNode_;

typedef struct vNode

{

int mark; //在程序中用来标识是否被访问过

ArcNode *first;//存储连接到该结点的第一个弧信息的地址}VNode, *VNode_;

//函数声明部分

VNode_ Structure();//构造一个图

void DFS(VNode_ Chart, int t);

void Initialize(VNode_ Chart);

void End(VNode_ Chart);

void main()

{

int i=0;

int count=0;

int w, v;

VNode_ Chart = Structure();//创建图

printf("请输入要查询的顶点w,v\n");

scanf("%d,%d", &w, &v);

DFS(Chart, w-1);

if(Chart[v-1].mark)

{

printf("顶点V%d,与顶点V%d之间连通。", w, v);

}

else

{

printf("顶点顶点V%d,与顶点V%d之间不连通。", w, v); }

printf("\n\n");

End(Chart);

}

//构造一个图的过程

VNode_ Structure()

{

VNode_ Chart;

int i, j, k;

ArcNode_ p, q;

printf("下面进行构造图的过程,请按照提示输入信息完成构造图的过程!\n");

printf("\n请输入要构造的图的顶点总数.\n");

scanf("%d", &n);//将用户输入的总的顶点数保存

//对输入数据进行判断

while(n<1)

{

printf("录入的数据有误!请重新输入。\n");

scanf("%d", &n);

}

Chart = (VNode_)malloc(n*sizeof(VNode));

Initialize(Chart);//初始化申请出来的空间

printf("请按照下面的提示构造图。\n\n");

for(i=0; i

{

printf("请输入指向'V%d'顶点的所有顶点,结束请输入0 \n", i+1); scanf("%d", &k);

if(k != 0)

{

q = (ArcNode_)malloc(sizeof(ArcNode));

q->position = k-1;

(Chart+i)->first = q;

p = q;

scanf("%d", &k);

while(k != 0)

{

q = (ArcNode_)malloc(sizeof(ArcNode));

q->position = k-1;

p->next = q;

p = q;

scanf("%d", &k);

}

p->next = NULL;

}

else

{

Chart[i].first = NULL;

}

}

return Chart;

}

void DFS(VNode_ Chart, int t)

{

ArcNode_ q;

if(Chart[t].mark == 0)

{

Chart[t].mark = 1;

for(q=Chart[t].first; q != NULL; q=q->next) {

DFS(Chart, q->position);

}

}

}

void Initialize(VNode_ Chart)

int i;

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

{

(Chart+i)->mark = 0; }

}

void End(VNode_ Chart) {

int i;

ArcNode_ p, q;

for(i=0;i

{

p = Chart[i].first;

while(p!=NULL)

{

q = p;

p = p->next;

free(q);

}

free(Chart);

}

运行结果

实验心得与体会

这次实验让我对图有了更加深厚的了解,实验中依然遇到了许多问题,实验代码明明写对了但是运行不能通过,在网上查询后调整了vc++6.0的相关设置,最后程序顺利运行。实验中,粗心大意的

情况已然发生了,例如程序中的“{ }”,经常写了前一半而忘写后一半。在以后的实验中我一定要细心认真,不能再出现这种情况。

太原理工大学软件工程软件需求实验报告

本科实验报告 课程名称:软件需求工程实验项目:软件需求课程实验实验地点:行勉楼A304 专业班级:学号: 学生姓名: 指导教师: 2016年5月18日

实验一需求分析实验 一、实验目的 1、要求学生根据实际项目的要求,应用传统的结构化方法或者面向对象方法进行需求分析; 2、通过实验了解和掌握UML和Rataional等工具的使用方法。 二、实验设备: PC机、Windows操作系统、UML和Rational等工具软件。 三、实验内容: 1、熟悉和掌握UML和Rational Rose工具的使用。在rose中创建新的模型,分别画出如下的图:用例图、类图、包图、活动图、顺序图、状态图等。 2、根据如下项目,对系统进行需求分析。具体要求,绘制系统的用例对用例进行规格说明,绘制类图、活动图、顺序图和状态图等。 四、实验步骤 1、安装Rational Rose。 2、根据问题目标、业务背景、问题陈述(描述)等(此信息可以根据项目名称从网上搜索),确定系统的参与者Actor(用户),从用户角度确定系统相关功能用例Usecase,做出用例图。 3、针对每个功能用例使用《用例描述模板》,进行描述。 4、分别使用活动图、顺序图描述用例执行过程。 五、实验结果 1、安装Rational Rose。成功安装了UML软件。 2、根据问题目标、业务背景、问题陈述(描述)等(此信息可以根据项目名称从网上搜索),确定系统的参与者Actor(用户),从用户角度确定系统相关功能用例Usecase,做出用例图。 (一)选题1:学生选课系统 项目背景: 本系统实现学生选课的基本功能,包括学生退选课,查看自己的选课信息;教师查看选课学生的信息,提交成绩;管理员添加学生、管理学生、管理成绩、添加教师、管理教师和管理课程等。实现学生选课的动态管理,使得对信息的管

太原理工大学数据结构实验报告

数据结构实验报告 课程名称:数据结构 实验项目:线性表、树、图、查找、内排序实验地点:*********************** 专业班级:物联网**** 学号:********* 学生姓名:

指导教师:周杰伦 2014年*月*日 实验一线性表 目的与要求 本次实习的主要目的是为了使学生熟练掌握线性表的基本操作在顺序存储结构和链式存储结构上的实现,提高分析和解决问题的能力。要求仔细阅读并理解下列例题,上机调试并编译执行通过,并观察其结果,然后独立完成后面的实验内容,写出完整的实验报告。编写程序过程中注意养成良好的编程风格与习惯,要求程序结构清晰,程序缩进,适当注释。 实验仪器 使用的计算机联想:硬件配置cpu-i3等、软件环境win7 实验内容 问题描述:

1.设顺序表A中的数据元素递增有序,试写一程序,将x插入到顺序表的适当位置上,使该表仍然有序。 输入:插入见的顺序表,插入的数,插入后的顺序表 输出:插入前的顺序表,插入的数,插入后的顺序表 存储结构:顺序表存储数据 算法基本思想:这里采用了顺序表来存储数据,主要就是考虑插入的位置是不是在最后一个,如果不是在最后一个,那么就要移动数据了,算法很简单就不在这里的数据都看成是整型的 实验代码 #include #include void Insert(int* p,int length,int n){ int i,j; int flag=0; if(n>=p[length-1]){ p[length]=n; flag=1; } else{ for(i=length-2;i>=0;i--){ if(n>=p[i]){

太原理工大学软件工程《系统分析与设计》实验报告

本科实验报告 课程名称:系统分析与设计 实验项目:《企业人事管理系统》实验 实验地点:逸夫楼404 专业班级:软件工程XXXX班学号:XXXXXX 学生姓名:XXXX 指导教师:雷红 2016年11月 1 日

一、实验目的 通过《系统分析与设计》实验,使学生在实际的案例中完成系统分析与系统设计中的主要步骤,并熟悉信息系统开发的有关应用软件,加深对信息系统分析与设计课程基础理论、基本知识的理解,提高分析和解决实际问题的能力,使学生在实践中熟悉信息系统分析与设计的规范,为后继的学习打下良好的基础。 二、实验要求 学生以个人为单位完成,自选题目,班内题目不重复,使用UML进行系统分析与设计,并完成实验报告。实验报告以纸质版(A4)、电子版在课程结束前提交(10周)。 三、实验主要设备: 台式或笔记本计算机 四、实验内容 1 选题及项目背景 企业人事管理系统 2 定义 企业指定人员通过第一次登录,输入用户名:TSoft,密码:111进入系统,在档案管理模块建立超级管理员档案,然后在新增用户模块设置为管理员,系统默认第一个被设置被设置的管理员为超级管理员。然后第二次登录输入用户名:T00001,密码:111进入系统,在修改密码模块修改超级管理员登录密码,在档案管理模块建立普通管理员档案,在新增用户模块设置为管理员,除了第一个被设置的管理员外均为普通管理员。管理员使用账号密码登录,然后可以在系统中进行密码修改,在档案管理模块维护员工档案,在考勤管理模块填写考勤信息,在奖惩管理模块填写奖惩信息,在培训管理模块维护培训信息,在人员设置模块设置员工采用的账套。在统计报表模块生成员工待遇报表。在企业架构模块维护部门企业设置,在基本资料模块维护系统的基本资料。如果点击初始化系统加点将对系统进行初始化恢复到原始状态,通过系统工具模块可以打开系统中常用的计算器、Excel等。 3 参考资料 J A V A项目全程开发 4 系统分析与设计

太原理工数据结构实验报告完整版

实验名称:线性表 一.目的与要求 本次实习的主要目的是为了使学生熟练掌握线性表的基本操作在顺序存储结构和链式存储结构上的实现,提高分析和解决问题的能力。要求仔细阅读并理解下列例题,上机通过,并观察其结果,然后独立完成后面的实习题。 二.例题 [问题描述] 用链表形式存储一个字符串,插入、删除某个字符,最后按正序、逆序两种方式输出字符串。 [输入] 初始字符串,插入位置,插入字符,删除字符。 [输出] 已建立链表(字符串),插入字符后链表,删除字符后链表,逆转后链表。[存储结构] 采用链式存储结构 [算法的基本思想] 建立链表:当读入字符不是结束符时,给结点分配存储空间,写数据域,将新结点插到表尾;插入字符:根据读入的字符在链表中找插入位置,将新结点插入到该位置之前;删除字符:根据读入的删除字符在链表中找到被删结点后,将其从链表中删除;链表逆转:从链表的第一个结点开始对所有结点处理,将每个结点的前驱变为它的后继;打印链表:从链表的第一个结点开始,依次打印各个结点的数据域。 [参考源程序] #define NULL 0 typedef struct node{ char a; struct node *link; }node,*nodelink; void readlink(nodelink head){ nodelink p,q; char c; p=head; printf("Input a linktable(a string):"); scanf("%c",&c); if (c=='\n') printf("This string is empty。"); while(c!='\n'){ q=(nodelink)malloc(sizeof(node)); q->a=c; p->link=q; p=q; scanf("%c",&c); } p->link=NULL;

太原理工大学传感器实验报告2

实验报告□实践报告□课程名称: 实验、实践名称: 实验、实践地点: 专业班级:学号: 学生姓名: 指导教师: 年月日

一、实验名称 1.移相器、相敏检波器实验 2.应变片交流全桥的应用(应变仪)—振动测量实验 3.压阻式压力传感器测量压力特性实验 二、实验目的与基本要求 1.了解移相器、相敏检波器的工作原理。 2.了解利用应变交流电桥测量振动的原理与方法 3.了解扩散硅压阻式压力传感器测量压力的原理和标定方法。 三、实验原理 1、移相器工作原理 图7—1为移相器电路原理图与实验模板上的面板图。图中,IC-1、R1、R2、R3、C1 图7—1 移相器原理图与模板上的面板图 构成一阶移相器(超前),在R2=R1的条件下,可证明其幅频特性和相频特性分别表示为: K F1(jω)=Vi/V1=-(1-jωR3C1)/(1+jωR3C1) K F1(ω)=1 ΦF1(ω)=-л-2tg-1ωR3C1 其中:ω=2лf,f为输入信号频率。同理由IC-2,R4,R5,Rw,C3构成另一个一阶移相器(滞后),

在R5=R4条件下的特性为: K F2(jω)=Vo/V1=-(1-jωRwC3)/(1+jωRwC3) K F2(ω)=1 ΦF2(ω)=-л-2tg-1ωRwC3 由此可见,根据幅频特性公式,移相前后的信号幅值相等。根据相频特性公式,相移角度的大小和信号频率f及电路中阻容元件的数值有关。显然,当移相电位器Rw=0,上式中ΦF2=0,因此ΦF1决定了图7—1所示的二阶移相器的初始移相角: 即ΦF=ΦF1=-л-2tg-12лfR3C1 若调整移相电位器Rw,则相应的移相范围为:ΔΦF=ΦF1-ΦF2=-2tg-12лfR3C1+2tg-12лfΔRwC3已知R3=10kΩ,C1=6800p,△Rw=10kΩ,C3=0.022μF,如果输入信号频率f一旦确定,即 可计算出图7—1所示二阶移相器的初始移相角和移相范围。 2、相敏检波器工作原理: 图7—2为相敏检波器(开关式)原理图与实验模板上的面板图。图中,AC为交流参考电压输入端,DC为直流参考电压输入端,Vi端为检波信号输入端,Vo端为检波输出端。 图7—2 相敏检波器原理图与模板上的面板图 原理图中各元器件的作用:C5-1交流耦合电容并隔离直流;IC5-1反相过零比较器,将参考电压正弦波转换成矩形波(开关波+14V ~ -14V);D5-1二极管箝位得到合适的开关波

太原理工大学 计算机软件技术基础 规则矩阵的压缩存储 实验报告

太原理工大学现代科技学院 计算机软件技术基础课程实验报告 专业班级 学号 姓名 指导教师

实验名称 规则矩阵的压缩存储 同组人 专业班级 学号 姓名 成绩 实验目的与要求:通过对三角矩阵的压缩存储编程练习,加强对规则矩阵压缩存储的理解。使用C 语言根据压缩存储原理编写一个程序,实现三角矩阵的压缩存储。要求仔细阅读下面的内容,编写一个C 程序,上机调试通过,并观察其结果,写出实验报告书。 实验内容:建立一个n 阶三角方阵,用一个一维数组以行为主顺序存放下(上)三角矩阵中的所有下(上)三角部分的元素。 具体要求: ① 对一个阶数不小于5的三角矩阵,编写一个C 程序,实现压缩存储。要求先输出原始矩阵,再输出一维数组,最后根据该一维数组得到原始矩阵并输出。 ② 实验完成后,写出实验报告书。 上机程序: main() {int i,j; int s[15]; int v[5][5]={11,0,0,0,0,22,23,0,0,0,33,34,35,0,0,44,45,46,47,0,55,56,57,58,59}; printf("guizejuzheng is:\n"); for(i=0;i<5;i++) for(j=0;j<5;j++) {printf("%3d",v[i][j]); if((j+1)%5==0) printf("\n"); } printf("i wei shuzhu is:\n"); for(i=1;i<=5;i++) … … …… …… …… …… …… … …装 …… …… …… …… … …… …… …… 订… …… … …… …… …… …… …… … …线 …… …… …… …… … …… …… ……

软件测试实验报告(例)

2022 年10 月14 日

实验一白盒测试方法 实验楼 2022.10.9 (1)熟悉掌握白盒测试方法中的逻辑覆盖和路径覆盖的测试方法。 (2)通过实验掌握逻辑覆盖测试用例设计,掌握流程图的绘制。 (3)运用所学理论,完成实验研究的基本训练过程。 测试以下程序段 Void DoWork(int x,int y,int z) { (1) int k=0,j=0; (2) if((x>0)&&(z<10)) (3) { (4) k=x*y- 1; (5) j=sqrt(k); (6) } (7) if((x==4)||(y>5)) (8) j=x*y+10; (9) j=j%3; (10) } 说明:程序中每行开头的数字(1- 10)是对每句语句的编号。 a 画出程序的控制流图(用题中给出的语句编号表示)。 b 分别用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖方法设计测试用例,并写出每一个测试用例的执行路径(用题中给出的语句编号表示)。 三、 笔记本电脑 控制流图:

d e f 3 4 5 6 S a 1 b c g h i 8 7 k j l E 附:程序代码 #include #include 9 2

int dowork(int x,int y,int z){ int k=0,j=0; if((x>0)&&(z<10)){ k=x*y- 1; j=sqrt(k); } if((x==4)||(y>5)) j=x*y+10; j=j%3; return j; } void main(){ int x, y ,z,j; printf("输入x,y,z 的值"); scanf("%d%d%d",&x,&y,&z); j=dowork(x,y,z); printf("j 的值%d",j); } 设判定条件 M=(x>0)&&(z<10) N=(x==4)||(y>5) 设路径 P1( abcdefhijl)=M and N P2(abcdefhkl)=M and /N P3(abgijl)=/M and N P4(abgkl)=/M and/N 1. 语句覆盖 输入{x=4,y=8,z=9} 输出{j=0} 覆盖路径P1(abcdefhijl) 2.判定覆盖 输入{x=4,y=8,z=9} 输出{j=0} 覆盖路径P1(abcdefhijl)

太原理工大学算法设计及分析实验报告

本科实验报告 课程名称:算法设计与分析 实验工程:分治法合并排序 贪心法作业调度 动态规划法求多段图问题 回溯法求n皇后问题 实验地点:致远楼B503 专业班级:学号: 学生: 指导教师: 2017年3月18日

MergeSort(left, mid); MergeSort(mid + 1, right); Merge(left, mid, right); //调用合并函数。 } } int main() { int i; cout << "排序前的数组为:"; for (i = 0; i < 10; i++) { a[i] = random(100); //调用random函数,产生10个0-100的随机数。 cout << a[i] << " "; } cout << endl; MergeSort(0, 9); cout << "排序后的数组为:"; for (i = 0; i < 10; i++) { cout << a[i] << " "; } getchar(); return 0; } 五、实验结果截图 六、实验总结 通过编写这个程序,我进一步了解了分株算法的思想,在实际运用过程当中,尤其是在算法编写方面相对来说比拟简单,实现起来较为容易。

flag[j] = true; break; } } } cout << "作业完成顺序为:" ; for (i = 0; i<7; i++) { cout << res[i] << "\t"; } cout << endl; cout << endl << "最正确效益为:"; int j; for (j = 0; j<7; j++) maxReap += res[j]; cout << maxReap << endl; } HomeWork(){ int i; for(i = 0;i<8;i++) flag[i] = false; maxReap = 0; } }; int main() { HomeWork a = HomeWork(); a.dealWith(); getchar(); return 0; } 五、实验结果截图 六、实验总结 通过这个实验让我知道了闫新算法在实际当中的运用,也让我了解到了贪心算法的便捷以及贪心算法的实用性

太原理工大学 数据库系统概论 实验报告 数据的完整性

本科实验报告 课程名称:数据库系统原理B 实验项目:数据的完整性 实验地点: 专业班级:学号:学生姓名: 指导教师: 201 年月日

一目的与要求 (1)了解SQL Serer数据库系统中数据完整性控制的基本方法 (2)熟练掌握常用CREATE 或ALTER 在创建或修改表时设置约束 (3)了解触发器的机制和使用 (4)验证数据库系统数据完整性控制 二实验设备与环境 使用SQL Server数据库管理系统提供的SSMS和查询编辑器 三实验内容、实验记录及实验结果与分析 结合ST数据库中的各个表,设置相关的约束,要求包括主键约束、外键约束、唯一约束、检查约束、非空约束等,掌握各约束的定义方法。 设置一个触发器,实现学生选课总学分的完整性控制,了解触发器的工作机制。 设计一些示例数据,验证完整性检查机制。 要求包括如下方面的内容: 1.创建基本表及约束 Student表 Course表

SC表 如下图所示表创建成功: 2.插入数据 (1)插入学生信息到Student表

(2).插入课程信息到Course表 (3)插入到SC表

(4)检查插入表中的数据

二、检查完整性约束 1.检查主键约束 (1)INSERT INTO Student VALUES('','李斌','男',20,'CS','1001',0) INSERT INTO Student VALUES('','李斌','男',20,'CS','1001',0) UPDATE Student SET Sno='' WHERE Sname = '张立' 无法正确运行因为:违反了PRIMARY KEY 约束'PK__Student__CA1FE4647F60ED59'。不能在对象'dbo.Student' 中插入重复键。(2)INSERT INTO SC VALUES('','1',78) INSERT INTO SC VALUES('',null,78) 违反了PRIMARY KEY 约束'PK__SC__E0F21'。不能在对象'dbo.SC' 中插入重复键。 不能将值NULL 插入列'Cno',表'学生选课数据库TEST.dbo.SC';列不允许有Null 值。 2.检查唯一约束 INSERT INTO Course VALUES('8','JAVA',7, 3) INSERT INTO Course VALUES('9','数据结构',7, 3) 运行正确 3. INSERT INTO Student(Sno,Sname,Ssex,Sclass) VALUES('','张盛','男',NULL) INSERT INTO Student(Sno,Sname,Ssex) VALUES('','张盛','男') 不能将值NULL 插入列'Sclass',表'学生选课数据库TEST.dbo.Student';列不允许有Null 值。INSERT 失败。 4. INSERT INTO SC VALUES('','4',95) INSERT INTO SC VALUES('','4',102) INSERT INTO Student(Sno,Sname,Ssex,Sclass) VALUES('','张盛','男 ','1008') INSERT INTO Student(Sno,Sname,Ssex,Sclass) VALUES('','张盛','','1008') 违反了PRIMARY KEY 约束'PK__SC__E0F21'。不能在对象'dbo.SC' 中插入重

太原理工数据结构实验报告 实验三 图

太原理工数据结构实验报告实验三图 课程名称:实验项目: 实验地点: 专业班级:计科 学生姓名:指导教师: 实验报告 数据结构B 图实验楼110 1301班学号:2013001989 杨喆孟亮2015年1 月1 日 一、实验目的和要求 熟悉图的存储结构,掌握有关算法的实现,了解图在计算机科学及其他工程技术中的应用。 二、实验内容和原理 1. 采用邻接表存储结构,编写一个求无向图的连通分量个数的算法。 2. 试基于图的深度优先搜索策略编写一程序,判别以邻接表方式存储的有向图中是否

存在 有顶点Vi到Vj顶点的路径(i≠j)。 3. 在上述例题中,如改用邻接表的方式存储图,试编一程序实现上述算法。 顶点表nodelist的每个元素包含四个字段: info mark pre out 其中mark为布尔类型,用来标记顶点是否被访问过。开始时,所有元素的mark字段为false,每访问过一个顶点,则mark字段置为true。info为顶点值,pre 为访问路径上该顶点的前驱顶点的序号,out指向该顶点的出边表。 三、主要仪器设备 1.设备: PC微机; 2.实验环境: windows操作系统;VC++6.0, 四、实验结果与分析(必填)(1)程序代码: //————————*********用邻接矩阵实现 #include #define OK 1 #define ORROR 0 #define max 10 // a function to build adjacency matrix of a graph typedef int Status; void buildadjm(int adj[][max], int n) { int i,j; for(i=0;i4) printf(\输入错误,请重新输入\\n\ else break; } return sn; } void main() { int adj; typedef struct { AdjList vertices; int vexnum,arcnum; //图的当前顶点数int kind; //图的种类标志}ALGraph; ///元素在图中的位置 int LocateNode__ALGraph(ALGraph g,VertexType v) { for(int i=0;i

太原理工大学学院毕业实习报告

太原理工大学学院毕业实习报告

太原理工大学学院毕业实习报告 社会实践是大学生拓展自身素质的主要载体之一,学生通过实践磨练意志、发展个性、锻炼能力,勇于承担社会责任,拓展自身的综合素质,成为“学历、素质、技能”一体化的“适应型”人才。为帮助大家学习方便,收集整理了太原理工大学学院毕业实习报告5篇,希望可以帮助您,欢迎借鉴学习! 太原理工大学学院毕业实习报告1 一、实习目的 专业实习是我们完成专业基础课和专业课程的学习之后,综合运用知识的重要的实践性教学环节,是本专业必修的实践课程,在实践教学体系中占有重要地位。通过专业实习使自己在实践中验证,巩固和深化已学的专业理论知识,通过知识的运用加深对相关课程理论与方法的理解与掌握。 加强对企业及其管理业务的了解,认识的基础上,将学到的知识与实际相结合,使学生运用已学的专业理论知识,对实习单位的各项业务进行初步分析,善于观察和分析对比,找到其合理和不足之处,灵活运用所学专业知识,在实践中发现并提炼问题,提出解决问题的思路和方法,提高分析问题及解决问题的能力。 二、实习任务 本次实习我到的实习单位是河南省新野县审计局,实习的主要任务如下:

1.调查新野县审计局目前的审计事务的操作流程。 2.研究现行信息化系统对业务进程所起的作用。 3.分析新野审计局信息化的经验及出现的问题。 三、实习内容 1.实习背景 21世纪是信息技术的时代。随着生产的自动化,贸易中的电子商务的普及,网络财务软件的广泛使用,以及支付手段的多样化,审计信息化将是21世纪必然趋势。但是我国现今的基层审计单位的信息化现状是什么样的呢我国基层审计信息化的现状,审计人员;软件条件以及硬件条件如何在信息化的过程中有什么样的经验和教训呢带着这个问题,我联系了河南省新野县省审计局,并在那进行了我的专业实习。 本文所探讨的审计信息化是指,被审计对象进行财务工作和经营时,审计人员为了实现其审计目的,收集必要的审计证据,采取必要的审计程序,对企业的运营的合规性以及利用计算机以及网络生成的财务信息进行审计的工作。 2.实习单位介绍 新野县审计局是隶属于国家审计署的县一级的审计单位,编制大约30人。新野县属于河南省的经济不太发达的农业县,所以审计机构不像大城市那样有很多的审计事务所,审计单位只有审计局一家,并且被审单位也大部分是国有企业和国家机关。平时业务工作量并不太多,同一时间基本上只进行一家被审单位的审

(完整word版)太原理工大学DSP课设报告

一、设计摘要 摘要: DSP数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。DSP 芯片是一种特别适合数字信号处理运算的微处理器,主要用来实时、快速地实现各种数字信号处理算法用DSP 芯片实现IIR 数字滤波器,不仅具有精确度高、不受环境影响等优点,而且因DSP 芯片的可编程性,可方便地修改滤波器参数,从而改变滤波器的特性,设计十分灵活.IIR数字滤波器有其独特的优点,IIR数字滤波器单位响应为无限脉冲序列, IIR数字滤波器采用递归型结构,即结构上带有反馈环路。 本课题主要应用MATLAB软件设计IIR数字滤波器,并对所设计的滤波器进行仿真;应用DSP集成开发环境——CCS调试汇编程序。利用MATLAB仿真得到的滤波器系数,编程实现IIR数字滤波器,得出滤波结果波形,并对结果进行分析与总结。 关键字:DSP IIR滤波器编程 二、设计目的 (1)通过设计对DSP芯片有进一步的了解。 (2)掌握IIR滤波器的设计方法。 (3)培养一定的汇编及c语言能力。 三、设计原理 3.1 IIR数字滤波器的理论分析 从IIR数字滤波器的实现来看,有直接型、级联型、并联型和格型等基本网络结构。不同的结构形式会有不同的运算误差,其稳定性、运算速度、所占用的存储空间等也有所不同[3].其中直接Ⅱ型仅需要N级延迟单元,且可作为级联型和并联型结构中的基本单元,是最常用的IIR数字滤波器结构之一。IIR数字滤波器的设计方法有两类[4],一类是借助于模拟滤波器的设计方法

设计出模拟滤波器,利用冲激响应不变法或双线性变换法转换成数字滤波器,然后用硬件或软件实现;另一类是直接在频域或时域中进行设计,设计时需要作辅助工具。对系统传递函数为 00 ()1M r r r N k k k b z H z a z -=-== -∑∑ 对应的差分方程为: 1 ()()()M N r k r k y n b x n r a y n k ===-+-∑∑ 的IIR 数字波滤器来说,设计的任务就是寻求一种因果关系和物理上可实现的系统传递函数使H (z )满足上述的关系,为此可这样使其频率响应能够满足所希望得到的频域指标。 3.2 TMS320C5502的体系结构 TMS320VC5402处理器在本系列中处于先进水平。它具有运算速度快,内部存储空间大,外部接口性能好等优点。所以我选择了技术上比较先进,价格又较便宜的C5402作为硬件开发对象。下面结合C5402的实际情况,介绍一下该芯片的体系结构。C5402共有144个引脚,其中有20根地址线AO-A19,16根数据线DO —D15,4个外部可屏蔽引脚INTO#-INT3#和一个不可屏蔽中断引脚BIO #,剩下的引脚可以分成以下几类:存储器控制引脚,时钟/晶振引脚,多通道缓冲串口引脚,主机接口通讯引脚,电源引脚,初始化和复位引脚,通用输入/输出引脚,以及用于测试的IEEE1149. 1标准JTAG 口。 3.3 IIR 数字滤波器的设计流程 在设计滤波器时首先要有清晰的思路,因此流程图的设计至关重要。本设计采用的是基于DSP 的IIR 数字滤波,针对其要完成的功能,对其流程进行了初步规划,如图1所示:

太原理工大学数值计算试验报告

TAIYUAN UNIVEaSIIY OF TECHNOLOGY 本科实验报告 计算机数值方法 课程名称: 实验项目:方程求根,线性方程组的直接求解, 线性方程组的迭代求解,代数插值和最小二乘法拟合 实验地点:软件楼208 _______________ 专业班级:学号: 学生姓名:___________________________ 指导教师:李志崔冬华 2015年6月5 日

实验内容和要求(必填) 目的:《数值计算方法》是一门实践性和实用性都很强的课程,学习的目的在于应用已有的理论基础和技术方法,实现对实际计算问题的计算机求解。本实验配合《计 算数值方法》课堂教学,通过上机实践实验环节,巩固课堂和书本上所学的知 识、加强实践能力、提高解决实际计算问题的水平、启发创新思想。其基本目的 是: (1)培养理论联系实际的思路,训练综合运用已经学过的理论和实际知识去分析 和解决实际问题的能力。 (2)帮助学生全面消化已学的相关课程内容,深刻理解计算数值方法课程的内涵, 培养使用电子计算机进行科学计算和解决问题的能力。 (3)进行基本技能训练和巩固。使学生得到选择算法、编写程序、分析数值结果、 写数值试验报告、课堂讨论等环节的综合训练。 要求:(1)应用结构化程序设计编出通用程序,源程序要有详细的注释和说明; (2)比较计算结果,分析数值解误差的原因; (3)实验完成,要求提交实验结果并写出报告,分析计算结果是否符合问题的要 求,找出计算成功的原因或计算失败的教训。 实验原理(必填) 选择上述方法中的两种方法求方程:f(x)=x3+4x2-10=0在[1,2]内的一个实 根, 且要求满足精度lx*-x n l<0.5x10-5

K清风C实验报告太原理工大学

C++实验报告-太原理工大学

本科实验报告 课程名称:C++面向对象程序设计 实验工程: 实验地点:明向校区行知楼B118 专业班级:软件130x学号:202100xxxx 学生姓名:XXX 指导教师:宋春花 2021年4月20日 实验名称实验一 C++根底 实验目的和要求 1.熟悉根本的输入输出方法; 2.掌握函数的定义、调用和声明方法,函数的参数传递机制,函数嵌套调用和递归调用,内联函数,带默认形参的函数,重载函数; 3.理解名称空间的概念,掌握名称空间的使用; 4.熟悉const关键字的使用; 5.掌握内存的动态分配的概念和使用方法; 6.熟悉编译预处理命令; 7.掌握常用算法的实现〔如穷举、迭代、递推等〕。实验内容 1.编写重载函数max1可分别求取2个整数、3个整数、2个双精度数、3个双精度数的最大值。

2.编程计算图形的面积。程序可计算圆形、长方形、正方形的面积,运行时先提求用户选择图形的类型,然后再要求用户对圆形输入半径值,对长方形输入长与宽,对正方形输入边长,计算出面积的值后,在屏幕上显示出来。 主要仪器设备笔记本电脑 实验记录(写出实验内容中1,2的程序代码和运行结果) 实验1 程序代码: #include "stdafx.h" #include "iostream" using namespace std; int max1(int x,int y); int max1(int x,int y,int z); double max1(double x,double y); double max1(double x,double y,double z); int _tmain(int argc, _TCHAR* argv[]) { int a=1,b=2,c=3;double d=1.1,e=2.2,f=3.3; cout<y?x:y; } int max1(int x,int y,int z) { int m;m=x>y?x:y;return m>z?m:z; } double max1(double x,double y) { return x>y?x:y; }

太原理工大学数值计算方法实验报告讲解

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解法、线性方程组的迭代解法、代数插值和最小二乘拟合多项式 实验地点:行勉楼 专业班级:******** 学号:********* 学生姓名:******** 指导教师:李誌,崔冬华 2016年4 月8 日

学生姓名实验成绩 实验名称实验一方程求根 实验内容和要求 熟悉使用二分法、迭代法、牛顿法、割线法等方法对给定的方程进行根的求解。选择上述方法中的两种方法求方程:f(x)=x3+4x2-10=0在[1,2]内的一个实根,且要求满足精度|x*-x n|<0.5×10-5 (1)了解非线性方程求根的常见方法,如二分法、牛顿法、割线法。 (2)加深对方程求根方法的认识,掌握算法。 (3)会进行误差分析,并能对不同方法进行比较。 实验原理 1.二分法:如果要求已知函数 f(x) = 0 的根 (x 的解),那先要找出一个区间 [a, b],使得f(a)与f(b)异号。根据介值定理,这个区间内一定包含着方程式的根。求该区间的中点m=(a+b)/2,并找出 f(m) 的值。若 f(m) 与 f(a) 正负号相同,则取 [m, b] 为新的区间, 否则取 [a, m]。重复第3步和第4步,直到得到理想的精确度为止。 2. 割线法是利用牛顿迭代法的思想,在根的某个领域内,函数有直至二阶的连续导数,并且不等于0,则在领域内选取初值x0,x1,迭代均收敛。 (1)在区间[m ,n]内输入初值x0,x1. (2)计算x2。x2=x1-f(x1)*(x1-x0)/(f(x1)-f(x0)) (3) x0=x1,x1=x2(4)判断是否达到精度,若是输出x1,若否执行(2) 主要仪器设备HP计算机 实验记录 1.二分法 // 方程求根(二分法).cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include"iostream" using namespace std; class Text { public: float x, y, a, b, c, n = 0; void Getab() { cout << "请输入计算区间:(以空格隔开)" << endl; cin >> a >> b; } float GetY(float x) {

太原理工大学数据库实验

实验报告 课程名称:数据库系统原理 实验项目:认识DBMS系统、交互式SQL、数据完 整性、用户鉴别与数据控制 实验地点:实验室210 专业班级:软件1334学号: 学生姓名: 指导教师:宋晓涛 2015年5月8日

学院 名称 软件学院专业班级1334 实验成绩 学生 姓名 学号实验日期2015.0 课程名称数据管理库系统 概论 实验题目认识DBMS系统 一、实验目的和要求 (1)通过对SQL Server 2005/2008数据库管理系统的使用,了解DBMS的工作原理和系统构架。 (2)熟悉SQL Server提供的管理工具 (3)熟悉使用SQL Server Management Studio创建数据库对象 二、主要仪器设备 计算机:HP-6470b windows7 64 位运行环境: SQL Server 2008R2 三、实验内容及要求 3.1 安装SQL Server 1.在安装过程中记录安装的选择,并且对所作的选择进行思考,为何要进行这样的配置,对今后运行数据库管理系统会有什么影响。 2.理解默认实例、命名实例的含义 3.了解SQL Server的身份认证模式,初步了解SQL Server的安全性。 4.了解SQL Server提供的服务。 5.检查SQL Server安装是否成功。 3.2 管理和使用SQL Server 了解SQL Server如何通过它提供的工具对数据库服务器进行管理和使用的。 1、启动、暂停和停止SQL Server 学会运用SQL Server配置管理或SQL Server Management Studio启动和停止SQL Server 的各种服务。 2、了解SQL Server的管理工具 初步了解SQL Server的提供了哪些主要管理工具和它们的功能。 3、学会使用SQL Server联机丛书 学会SQL Server联机丛书查询SQL命令语法格式、SQL Server数据库的概念、术语等内容。 3.3 熟悉使用SQL Server Management Studio

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