当前位置:范文大全 > 公文范文 > 软件技术基础实验指导及报告

软件技术基础实验指导及报告

发布时间:2021-11-03 10:21:56

软件技术基础实验指导及报告 本文关键词:软件技术,指导,实验,基础,报告

软件技术基础实验指导及报告 本文简介:太原理工大学现代科技学院软件技术基础课程实验报告专业班级通信14-1学号2014101596姓名王晓振指导教师范俊杰软件技术基础实验指导及报告实验说明:1、共5次实验,每次实验完成1个内容。2、实验报告命名统一为:软件_专业班级_学号_姓名3、自备U盘,在实验前认真阅读实验要求,在实验中及时记录保存

软件技术基础实验指导及报告 本文内容:

太原理工大学现代科技学院

软件技术基础课程

实验报告

专业班级

通信14-1

2014101596

王晓振

指导教师

范俊杰

软件技术基础

实验指导及报告

实验说明:

1、

共5次实验,每次实验完成1个内容。

2、

实验报告命名统一为:软件_专业班级_学号_姓名

3、自备U盘,在实验前认真阅读实验要求,在实验中及时记录保存实验结果和调试过程,并填写到实验报告对应位置,实验结束后将该实验报告电子版在指定时间内提交给各班学习委员。

实验一

顺序线性表的插入与删除

1、实验目的:理解和掌握线性表的顺序存储结构,使用C语言根据相应算法编写程序,实现线性表的创建、插入和删除。

2、

实验内容:编写C程序实现

先建立一个长度不小于n

=

8的线性表,输出原始线性表;

然后进行插入运算,在第3个元素前面插入一个新元素b(值为学号后3位),得到一个长度为(n+1)的线性表,输出插入后的线性表;

最后进行删除运算,删除第5个元素,得到长度为n的线性表,输出删除后的线性表。

3、参考程序:

#include

#define

MAXSIZE

20

typedef

struct

{

int

data[MAXSIZE];

int

last;

}List;

void

Init(Listpt)

{

int

i

=

0;

for(i=1;idata[i]

=

i;

pt->last

=

i;

}

}

void

Output(Listpt)

{

int

i,max=pt->last;

printf(“List

have

%d:

/n“,pt->last);

for(i=1;idata[i]);

printf(“/n“);

}

void

InsertL(Listpt,int

i,int

x)

{

int

k;

if(iMAXSIZE-1)

{

printf(“插入位置不合适!/n“);

}

else

if(pt->last>=MAXSIZE-1)

{

printf(“线性表已满!/n“);

}

else

{

for

(k=pt->last;k>=i;k--)

pt->data[k+1]=pt->data[k];

pt->data[i]=x;

pt->last++;

}

}

void

Insert(Listpt)

{

int

position,x;

printf(“please

input

insert

position

and

value:“);

scanf(“%d,%d“,InsertL(pt,position,x);

}

void

DeleteL(Listpt,int

i)

{

int

k;

if(ipt->last)

{

printf(“删除位置不合适!/n“);

}

else

{

for(k=i+1;klast;k++)

pt->data[k-1]=pt->data[k];

pt->last--;

}

}

void

Delete(Listpt)

{

int

position;

printf(“please

input

delete

position:“);

scanf(“%d“,DeleteL(pt,position);

}

int

main()

{

int

int_Insert,int_Delete;

List

L,*pt;

pt

=

Init(pt);

Output(pt);

Insert(pt);

Output(pt);

Delete(pt);

Output(pt);

return

0;

}

4、实验结果:将程序运行结果截屏粘贴至此处。

5、实验总结:(自行改进程序请粘贴至此处)else

{

for

(k=pt->last;k>=3;k--)

pt->data[k+1]=pt->data[k];

pt->data[3]=596;

pt->last++;

}

}

void

Insert(Listpt)

{

int

position,x;

printf(“please

input

insert

position

and

value:“);

scanf(“%d,%d“,InsertL(pt,position,x);

}

void

DeleteL(Listpt,int

i)

{

int

k;

i=6;

if(ipt->last)

{

printf(“删除位置不合适!/n“);

6、其他(自行设计程序请粘贴至此处)

实验二

顺序栈及其操作

1、实验目的:理解和掌握栈数据结构及其顺序存储结构,使用C语言实现栈的相关操作:建立、入栈、退栈和读栈顶元素。

2、实验内容:编写C程序实现

先建立一个容量不小于5的栈;

然后将序列L(L长度为5,起始数为学号后3位,之后每个数加1)中元素依次入栈;

最后进行退栈操作,同时读出栈顶元素并输出,直到栈为空。

3、参考程序:

#include

#define

maxlen

5

int

element[maxlen];

int

top;

int

push(

int

element[],int

max,inttop,int

x

)

{

if

(top

==

max

)

{

printf(“Stack-overflow/n“);

return

-1;

}top

=top

+

1;

element[*top-1]

=

x;

//元素x入栈,只影响top指针

return

0;

}

int

pop(

int

element[],inttop,intx

)

{

if

(*top

==

0)

{

printf(“Stack-underflow/n“);

return

-1;

}x

=

element[*top-1];//x为退栈元素的值top

=top

-

1;

return

0;

}

int

Readtop(int

element[],int

top,intx)

{

if

(

top

==

0

)

{

printf(“Stack-underflow/n“);

return

-1;

}x

=

element[top-1];

return

0;

}

void

CreateStack()

{

top

=

0;

}

int

main()

{

int

r,b,x;

//

CreateStack();

//

while(1)

{

printf(“Push:please

input

push

element

value:“);

scanf(“%d“,r

=

push(element,maxlen,if(r

==

0)

{

printf(“push

Success/n“);

}

else

{

printf(“push

Fail/n“);

break;

}

}

//

while(1)

{

printf(“Read

and

Pop:/n“);

r

=

Readtop(element,top,if(r

==

0)

{

printf(“%d/n“,x);

}

else

{

break;

}

r

=

pop(element,}

return

0;

}

4、实验结果:将程序运行结果截屏粘贴至此处。

5、实验总结:(自行改进程序请粘贴至此处)

由于栈中元素的插入和删除只能在表的同一端即栈顶进行,所以总是后进栈的元素先出来,即栈的后进先出特性,其运算效率相对较高。

6、其他(自行设计程序请粘贴至此处)

实验三

线性链表的插入与删除

1、

实验目的:理解和掌握线性表的链式存储结构,使用C语言根据相应算法编写程序,实现线性链表的创建、插入和删除。

2、

实验内容:编写C程序实现

先建立一个长度不小于n

=

6的线性表,输出原始线性表;

然后进行插入运算,在第3个元素前面插入一个新元素b(值为学号后3位),得到一个长度为(n+1)的线性表,输出插入后的线性表;

最后进行删除运算,删除第5个元素,得到长度为n的线性表,输出删除后的线性表。

3、参考程序:

#include

#include

typedef

struct

node

{

int

data;

struct

nodenext;

}

LinkList;

LinkList*

create()

{

LinkListhead,*p,*q=NULL;

int

x;

head=(LinkList)malloc(sizeof(LinkList));

head->next=NULL;

printf(“请输入结点值,结束输入-1

/n结点值为:/n“);

q=head;

scanf(“%d“,if(x==-1)

return

head;

while(x!=-1)

{p=(LinkList)malloc(sizeof(LinkList));

p->data=x;

q->next=p;

q=p;

scanf(“%d“,}

q->next=NULL;

return

head;

}

void

output(LinkListhead)

{

int

i

=

0;

LinkListp

=

head->next;

printf(“链表元素为:/n“);

while(p

!=

NULL)

{

printf(“%d

“,p->data);

p

=

p->next;

}

printf(“/n“);

}

void

Insert(LinkListhead,int

i,int

x)

{

LinkListp,*s;

int

j=0;

p

=

head;

while((p!=NULL)

j++;

}

if((p==NULL)

||

(j>i-1))

printf(“i值不合法

/n“);

else

{

s

=

(LinkList*)malloc(sizeof(LinkList));

s->data

=

x;

s->next

=

p->next;

p->next

=

s;

}

}

void

Delete(LinkListhead,int

i)

{

LinkListp,*s;

int

j

=

0;

p

=

head;

while((p->next!=NULL)

j++;

}

if((p->next==NULL)

||

(j>i-1))

printf(“i值不合法

/n“);

else

{

s

=

p->next;

p->next

=

s->next;

printf(“删除元素

%d

/n“,s->data);

free(s);

}

}

/*主函数*/

void

main()

{

int

x=0,i=0;

LinkListhead;

printf(“建立链表/n“);

head=create();

output(head);

printf(“/n输入在链表中插入数据的值x:/n“);

scanf(“%d“,printf(“/n输入要插入数据的位置i:/n“);

scanf(“%d“,Insert(head,i,x);

output(head);

printf(“/n输入在链表中删除数据的位置i:/n“);

scanf(“%d“,Delete(head,i);

output(head);

}

4、实验结果:将程序运行结果截屏粘贴至此处。

5、实验总结:(自行改进程序请粘贴至此处)

在线性链表中插入或删除元素时,不需要移动元素,只要找到制定删除节点的钱趋结点,然后改变链接,即只要将待插入或删除结点的指针域内容赋予前趋结点的指针域即可,但为了找到表中第i-1个元素,仍需从表头开始顺链查找。

6、其他(自行设计程序请粘贴至此处)

实验四

有序表的对分查找

1、

实验目的:理解和掌握对分查找的算法及适用条件,并使用C语言实现对分查找。

2、实验内容:编写C程序实现有序表的对分查找算法,要求在顺序存储的长度为n=10的有序线性表中实现对分查找,即查找元素值为x的位置序号k,并能正确输出查找结果,若查找的元素存在,则输出其在线性表中的位置,若不存在,在输出不存在的提示信息。

3、参考程序:

#include

#define

N

10

void

arrayprint(int

array[],int

n)

{

int

i;

for(i=0;ix

)

j

=

k

-

1;

//取前半部分

else

i

=

k

+

1;

//取后半部分

}

return

(-1);

//找不到返回

}

int

main()

{

int

searcharray[N];

int

i,x,position;

for(i=0;i=0

for(i=0;i

{

printf(“%d

“,array[i]);

}

}

void

sort(int

array[],int

n)

{

int

i,j,k,min,temp;

for(i=0;i

{

min=array[i];

k=i;

for(j=i+1;j

{

if(array[j]

{

min

=

array[j];

k=j;

}

}

if(i!=k)

{

temp

=

array[i];

array[i]

=

array[k];

array[k]

=

temp;

}

arrayprint(array,n);

printf(“/n“);

}

}

int

main()

{

int

sortarray[N];

int

i;

for(i=0;i

{

printf(“please

enter

integer

num

for

sortarray[%d]:“,i);

scanf(“%d“,}

printf(“the

array

before

sort

is:“);

arrayprint(sortarray,N);

printf(“/n“);

sort(sortarray,N);

printf(“the

array

after

sort

is:“);

arrayprint(sortarray,N);

printf(“/n“);

return

0;

}

4、实验结果:将程序运行结果截屏粘贴至此处。

5、实验总结:(自行改进程序请粘贴至此处)

通过实验得出:选择排序用时相对较多,尤其是当顺序线性表的数据量很大时,其运行过程中步骤多导致花费的时间会很长。

6、其他(自行设计程序请粘贴至此处)

int

main()

{

int

i,j,tem,min,a[N];

printf(“请输入十个数:“);

for(i=0;i

{

printf(“a[%d]=“,i);

scanf();

printf(“/n“);

sort(sortarray,N);

printf(“the

array

after

sort

is:“);

arrayprint(sortarray,N);

printf(“/n“);

return

0;

}

篇2:DOT郑大软件技术学院实训方案(校内三个月)

DOT郑大软件技术学院实训方案(校内三个月) 本文关键词:技术学院,校内,实训,方案,郑大

DOT郑大软件技术学院实训方案(校内三个月) 本文简介:火?国家火炬计划中部软件园IT?人才实训基地郑州大学软件技术学院10级本科生DOTNET实训方案(校内三个月)河南惠文软件工程有限公司?国家火炬计划中部软件园IT?人才实训基地地址:郑州市高新区莲花街5号威科姆国际生态软件园2号楼B座三层电话:0371-5517537955932981网址:http

DOT郑大软件技术学院实训方案(校内三个月) 本文内容:

火?国家火炬计划中部软件园IT?人才实训基地

郑州大学

软件技术学院

10级本科生DOTNET实训方案(校内三个月)

河南惠文软件工程有限公司

?国家火炬计划中部软件园IT?人才实训基地

地址:郑州市高新区莲花街5号威科姆国际生态软件园2号楼B座三层

电话:0371-55175379

55932981

网址:http://www.jsfw8.com

惠文实训体系的最大特点是,以实际项目开发为主线,以行业新技术传授为补充,培养企业实用型人才为目的。该实训方案是根据郑州大学软件技术学院提出的实训目标与需求,制定而成。

一、本次实训方案面向对象为

郑州大学软件技术学院10级本科学生

二、实训周期

三个月

三、实训地点

郑大软件学院校内惠文软件实训机房

四、实训岗位方向

DONET软件开发工程师

五、实训目标:

1)

具备软件开发工作所需的知识和技能,编码熟练度和规范性达到一定要求;

2)

具备较高的项目能力(包括调试能力、文档编写能力、测试能力等)和综合技术素质(包括对软件生命周期的理解、对设计模式的理解、必备的行业知识和经验等);

3)

就业岗位:

ASP.NET软件开发工程师、网站开发工程师

六、DOENT实训岗位方向与实训安排

(1)

DONET实训内容

序号

课程名称

内容

1

数据建模设计

数据建模构建与实现的设计方法和实现方法

2

ADO.NET核心技术

ADO.NET数据操纵核心技术

3

HTML表现层设计技术

HTML

+

JavaScript

+

CSS

4

数据提交和数据检索功能模块设计与实现

SQL

SERVER需求分析、数据库设计、代码开发、单元测试、软件工程、UML应用

5

ASP.NET应用技术

C#面向对象分析和设计、服务器控件应用、主题皮肤母板页、水晶报表应用、三层架构设计应用,简单设计模式,AJAX应用

6

企业职业素养

当职场达人的秘密要诀、双赢商务谈判技巧、赢在职场三部曲、企业拓展训练、与IT专家高峰论坛、何谓“职业性”?、

抗困难挫折能力、职业人十项标准……等

7

项目竞标

最终学员所做的项目都是以项目竞标的方式进行(二个以上企业项目)

(2)

DONET实训项目

序号

1

项目名称

银行柜台管理系统

实训目标

熟悉C#基础知道;熟悉OOP面向对象编程技术;简单三层框架应用;简单设计模式应用

实训内容

本项目一套银行储蓄柜台的综合业务平台,它主要实现了储蓄柜台的最常用的功能,用户登录,用户登录后,可以为储户(Client)提供开户,销户,存款,取款,查询、冻结、挂失、转账等功能。

项目周期

3周

序号

2

项目名称

企业新闻管理系统

实训目标

熟练应用Asp.net开发;精通SQL2005在项目中的分析和设计能力;UML应用知识;VSS版本控制技术应用

实训内容

系统的具体功能包含有:系统管理(用户管理,权限管理,数据库管理),企业新闻管理,新闻类别管理,留言管理,招聘信息管理等

项目周期

4周

序号

3

项目名称

通用版CMS管理系统

实训目标

熟悉WEBFORM应用;Oracle数据库在项目中的分析和设计能力;UML应用知识;VSS版本控制技术应用;流行技术的应用

实训内容

采用SQL(ORACLE)数据库,实现拥有文章、图片、下载、问答、论坛/留言、站内调查、友情链接、广告系统、自定义模型、自定义表单等众多丰富的功能模型;同时系统具有灵活的产品架构、严密的安全性!

作简单、上手快、易用性强,一般用户几乎不用培训就可以开始使用。

主要特性:

1、系统采用模块化开发,可自由屏蔽暂时没有用到的功能模型,同时又是一款100%开源的程序,二次开发更方便。

2、系统支持整站生成HTML静态和动态ASP.NET

项目周期

5周

(3)

DONET具体实训安排

时间

内容

所需技术点

项目名称

第一周

系统系统分析、系统面向对象分析与设计

1、C#

OOP思想,面向对象编程应用,文件操作、继承、封装、多态应用,反射、泛型、简单工厂设计模式、序列化数据操作、简单三层应用

2、软件工程

3、企业职业素养

银行柜台管理系统

第二周

系统框架建设、用户登录,用户登录后,可以为储户(Client)提供开户,销户,存款

第三周

冻结、挂失、转账等功能,及测试,项目评审

第四周

系统系统分析、概要设计、功能分析(UML)、(SQL2005)数据库应用

1.UML分析设计技术

2.Asp.net构建用户界面层的方法

3.VSS版本服务器技术/ADO.NET

4.nuint单元测试技术

5、软件工程

6、企业职业素养

企业新闻管理系统

第五周

页面规范要求、Asp.net平台应用、系统权限设计、编码规范

第六周

系统框架搭建(多层架构)、(VSS)版本控制应用、持久层构建

第七周

构建业务逻辑层、业务功能测试、项目整合、项目评审

第八周

CMS功能分析、系统用例设计、ORACLE数据库的应用

1、HTML+CSS+JAVASCRIPT的页面设计

2、Oracle数据库的设计与应用

3、AJAX的应用,ASP.NET常用控件

5、JQUERY在项目中的具体应用

6、ADO.NET操作ORACEL的应用

7、软件工程

8、企业职业素养

通用版CMS管理系统

第九周

构建数据访问层、单元测试、系统架构搭建

第十周

DIV+CSS+Jquery页面设计,构建用户界面层

第十一周

整合表现层和数据访问层实现

第十二周

项目文档整理、项目交付、项目总结、项目评审

项目软件工程所需文档流程

序号

文档名称

1

项目成果

2

可行性分析报告、需求分析报告、项目计划

3

概要设计说明书、数据库设计说明书、界面设计说明书、模块设计说明书

4

编程文档、测试计划、测试说明书、测试记录单、测试报告

5

用户使用手册、项目总结文档、个人总结文档

6

用户可使用系统

7

实训总结报告

七、实训流程安排

(1)

实训入职典礼

i.

院领导参加

ii.

实训中心领导

iii.

项目经理及项目助理参加

iv.

软件企业代表参加

(2)

项目开题

i.

简单介绍项目的项目类型

ii.

简单介绍项目的功能、开发方法、开发流程

iii.

简单介绍项目设计到的技术

iv.

为完成项目对学生进行分组

(3)

项目知识串讲

i.

客户端技术

ii.

服务器技术

i.

ASP.NET

ii.

SqlServer2005

iii.

其它技术

i.

软件开发流程

ii.

软件开发各阶段的工作内容及方法

(4)

项目问题定义

i.

问题定义阶段的工作要点

ii.

可行性分析报告的格式及编写方法

(5)

项目需求讲解

i.

需求分析文档编写要求及编写方法

ii.

项目需求文档讲解

iii.

学生通过角色扮演理解需求

(6)

项目设计讲解

i.

设计流程及设计方法

ii.

项目设计讲解

(7)

项目创建活动

i.

创建活动的一般性原则

ii.

功能代码编写

iii.

单元测试

iv.

每日构建

v.

其它测试

(8)

项目部署及安装

i.

用户手册的制作

ii.

常用部署方法

iii.

用户验收方法

(9)

项目评审

i.

对项目进行评审

ii.

项目经理对项目进行总结

iii.

合理的开发方式

iv.

合理的技术运用

v.

项目成果汇总

(10)

项目阶段总结

i.

项目组总结

ii.

项目组成员个人总结

iii.

总结文档汇总

(11)

项目重构开题

i.

简单讲述产品的开发和为某一企业开发的区别

ii.

讲述产品开发的流程

iii.

讲述项目所开发产品的市场定位、基本功能等产品要求指标

iv.

说明开发产品对开发知识的要求

(12)

项目重构需求分析

i.

说明制定产品规格说明书的过程

ii.

学生查阅相关资料

iii.

学生对相关企业进行调查

iv.

对学生编写需求规格说明书进行指导

v.

需求评审

(13)

项目重构概要设计和数据库设计

i.

复习设计流程及方法

ii.

指导学生进行概要设计和数据库设计

iii.

设计评审

(14)

项目重构模块和界面设计

i.

讲解模块设计和界面设计的一般性方法和要求

ii.

讲述不同企业对模块和界面设计的不同要求

iii.

指导学生完成部分模块和界面设计

(15)

项目重构创建活动

i.

参考项目第一阶段创建活动的流程及要求

ii.

重点1:规范

iii.

重点2:技术的应用

(16)

项目部署及安装

(17)

项目评审

(18)

项目总结

(19)

模拟面试

i.

布置面试环境

ii.

面试前准备活动

iii.

面试

iv.

面试总结

(20)

实训工作总结

(21)

综合实训鉴定

国家火炬计划中部软件园惠文软件IT人才实训基地

2013年6月1日

篇3:软件技术基础综合实验报告

软件技术基础综合实验报告 本文关键词:软件技术,实验,基础,报告,综合

软件技术基础综合实验报告 本文简介:一、实验目的实验3使用Select语句进行数据查询1.观察查询结果,体会SELECT语句实际应用;2.要求学生能够在查询分析器中使用SELECT语句进行简单查询;3.熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法;4.加深对SQL语言的嵌套查询语句的理解;5.熟练掌握数据查询中的分组、

软件技术基础综合实验报告 本文内容:

一、实验目的

实验

3

使用

Select

语句进行数据查询

1.观察查询结果,体会

SELECT

语句实际应用;

2.要求学生能够在查询分析器中使用

SELECT

语句进行简单查询;

3.

熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法;

4.

加深对

SQL

语言的嵌套查询语句的理解;

5.

熟练掌握数据查询中的分组、统计、计算和组合的操作方法。

二、

实验准备

1.

完成实验二,成功建立了基本表;

2.

了解简单

SELECT

语句的用法;

3.

了解

SELECT

语句的

GROUP

BY

ORDER

BY

子句的作用;

4.

了解统计函数和分组统计函数的使用方法。

三、实验要求

完成实验,并验收实验结果提交实验报告。

四、实验内容

写出相应的语句。所有的查询全部用

Transact-SQL

语句实现。

1.查询学生的所有信息。

2.查询所有姓‘张’的学生的信息。

3.查询所有姓张的学生的信息,在列标题之间显示

3

行。

4.查询编号“00000001”的姓名信息。

5.查询表“Course”所有信息。

6.查询学生信息前

6

条记录。

7.将“Course”表中字段名做以下修改:

课程编码

替换

CouNo

‘课程名称

替换

CouName

替换

Teacher

‘上课时间

替换

SchoolTime

限制选课人数

替换

LimitNum

‘报名人数

替换

WIllNum。

8.查询《Linux

操作系统》课程教师信息。

9.查询“Course”表,平均报名人数。

10.查询“Course”表,报名人数与限选人数之比。

11.查询编号

004,007,013

课程名称。

12.查询所有含字母‘D’的课程名程信息。

13.查询所有含‘制作’的课程名称信息。

14.查询所有名字含“宝”的学生信息。

15.查询排除“刘”姓的所有学生信息。

16.查询报名人数小于

15

的课程信息。

17.查询报名人数大于

15

小于

25

的课程信息。

实验代码如下:

1.

select

from

Student

2.

select

from

Student

where

StuName

like

张%

3.

select

top

3

from

Student

where

StuName

like

张%

4.

select

from

Course

5.

select

StuNo,StuName

from

Student

where

StuNo

=

00000001

6.

select

top

6

from

Student

7.

select

课程编码

=

CouNo,课程名称

=CouName,教师

=Teacher,上课时间

=SchoolTime,限制选课人数

=

LimitNum,报名人数

=WillNum

from

Course

8.

select

from

Course

where

CouName=

Linux操作系统

9.

select

最小报名人数

=

min(WillNum),最大报名人数

=MAX(WillNum),平均报名人数

=AVG(Willnum)

from

Course

10.

select,WillNum/LimitNum

报名人数与限选人数之比

from

Course

order

by

WillNum

11.

select

CouName

as

课程名称

from

Course

where

CouNo

in(

004,007,013

)

12.

select

CouName

from

Course

where

CouName

like

%D%

13.

select

CouName

from

Course

where

CouName

like

%制作%

14.

Select

from

Student

where

CouName

like

%宝%

15.

select

from

Student

where

StuName

not

like

刘%

16.

select

from

Course

where

WillNum25

实验总结:

通过本次实验,我学会了使用SELECT

语句进行简单查询;

掌握了简单表的数据查询、数据排序和数据连接查询的操作方法;

加深了对

SQL

语言的嵌套查询语句的理解;

掌握了数据查询中的分组、统计、计算和组合的操作方法。

实验

4

综合实验

【实验目的】

通过一个实际问题的解决,来考察学生对《软件技术基础》相关理论知识掌握程

度。

【实验要求】

1)

掌握

SQL

Server

2005

或(SQL

Server

2008)环境使用;

2)

掌握基本

SELECT

查询及其相关子句的使用;

3)

掌握复杂的

SELECT

查询,如多表查询、子查询、连接和联合查询。

【实验步骤】

1.根据给出实验课题,完成自己的设计,并编程具体实现。

2.完成后举手示意让老师验收。

3.回去后完成自己的实验报告。实验报告中应有实现的

SQL

语句以及遇到的问题

及其解决方案和实验后的心得。

4.在综合设计实验过程中严禁互相讨论交流。

【实验内容】

1.

创建“学生成绩”(XSCJ)数据库。

2.

建立“学生情况”(XSQK)表。

列名

数据类型

长度

是否允许为空值

默认值

说明

学号

Char

6

N

主键

姓名

Char

8

N

性别

Bit

1

N

1,女

0

出生日期

smalldatetime

4

N

专业

Char

10

N

所在系

Char

10

N

联系电话

Char

11

Y

3.

输入“学生情况”(XSQK)表记录。

4.

建立“课程”(KC)表。

列名

数据类型

课程号

Char

课程名

Char

教师

Char

开课学期

Tinyint

学时

Tinyint

学分

Tinyint

5.

输入“课程”(KC)表记录

长度

3

20

10

1

1

1

是否允许为空值

N

N

N

默认值

60

说明

主键

课程号

101

102

103

104

105

106

107

108

课程名

计算机原理

计算方法

操作系统

数据库原理及应用

网络基础

高等数学

英语

VB

程序设计

教师

陈红

王颐

徐格

应对刚

吴江江

孙中文

陈刚

赵红韦

开课学期

2

3

2

3

4

1

1

3

学时

45

45

60

75

45

90

90

70

学分

3

3

4

5

3

6

6

5

6.建立“成绩”(XS_KC)表。

列名

数据类型

学号

Char

课程号

Char

成绩

Tinyint

长度

6

3

1

是否允许为空值

N

N

默认值

说明

外键

外键

0

7.输入“成绩”(XS_KC)表记录。

学号

课程号

020101

101

020101

102

020101

107

020102

101

020102

102

020104

107

020202

103

020202

108

020203

103

8.用

SQL

语句,完成以下内容。

成绩

85

87

88

58

63

76

55

80

57

1)

2)

3)

在

KC

表中查询学分低于

3

的课程信息,并按课程号升序排列。

XS_KC

表中按学号分组汇总学生的平均分,并按平均分的降序排列。

XS_KC

表中查询选修了

3

门以上课程的学生学号。

4)

5)

6)

7)

8)

9)

按学号对不及格的成绩记录进行明细汇总。

分别用子查询和连接查询,求

107

号课程不及格的学生信息。

用连接查询在

XSQK

表中查询住在同一寝室的学生,即其联系电话相同

查询

XSQK

表中所有的系名。

查询有多少同学选修了课程。

查询有多少同学没有选课。

10)

查询与杨颖同一个系的同学姓名。

11)

查询选修了课程的学生的姓名、课程名与成绩。

12)

统计每门课程的选课人数和最高分。

13)

统计每个学生的选课门数和考试总成绩,并按选课门数的降序排列。

代码如下:

建立数据库:

create

database

XSCJ

on

(name=StdData1,filename=

E:/DB/XSCJData.mdf,size=5,maxsize=30,filegrowth=5%)

log

on

(name=StdLog1,filename=

E:/DB/XSCJLog.ldf,size=1,maxsize=5,filegrowth=1)

USE

XSCJ

CREATE

TABLE

XSQK

(

学号

char(6)

not

null

PRIMARY

KEY,姓名

char(8)

not

null,性别

bit

not

null,出生日期

smalldatetime

not

null,专业

char(10)

not

null,所在系

char(10)

not

null,联系电话

char(11)

)

INSERT

INTO

XSQK

VALUES(

020101,杨颖,0,1980-7-20,计算机应用,计算机,88297147

);

INSERT

INTO

XSQK

VALUES(

020102,方露露,0,1981-1-15,计算机应用,计算机,88297147

);

INSERT

INTO

XSQK

VALUES(

020103,俞奇军,1,1980-2-20,信息管理,计算机,88297151

);

INSERT

INTO

XSQK

VALUES(

020104,胡国强,1,1980-11-7,信息管理,计算机,88297151

);

INSERT

INTO

XSQK

VALUES(

020105,薛冰,1,1981-3-10,水利工程,水利系,88297152

);

INSERT

INTO

XSQK

VALUES(

020201,秦盈飞,0,1980-9-15,电子商务,经济系,88297161

);

INSERT

INTO

XSQK

VALUES(

020202,董含静,0,1980-8-7,电子商务,经济学,88297062

);

INSERT

INTO

XSQK

VALUES(

020203,陈伟,1,19807-20,电子商务,经济系,88297171

);

INSERT

INTO

XSQK

VALUES(

020204,陈新江,1,1981-1-15,房建,水利系,88297171

);

CREATE

TABLE

KC

(

课程号

char(3)

not

null

primary

key,课程名

char(20)

not

null,教师

char(10),开课学期

tinyint,学时

tinyint

default

60,学分

tinyint

not

null,)

INSERT

INTO

KC

VALUES(

101,计算机原理,陈红,2,45,3)

INSERT

INTO

KC

VALUES(

102,计算方法,王颐,3,45,3)

INSERT

INTO

KC

VALUES(

103,操作系统,徐格,2,60,4)

INSERT

INTO

KC

VALUES(

104,数据库原理及应用,应对刚,3,75,5)

INSERT

INTO

KC

VALUES(

105,网络基础,吴江江,4,45,3)

INSERT

INTO

KC

VALUES(

106,高等数学,孙中文,1,90,6)

INSERT

INTO

KC

VALUES(

107,英语,陈刚,1,90,5)

INSERT

INTO

KC

VALUES(

108,VB程序设计,赵红韦,3,70,5)

CREATE

TABLE

XS_KC

(

学号

char(6)

not

null,课程号

char(3)

not

null,成绩

tinyint,/*primary

key(学号,课程),*/

CONSTRAINT

C1

CHECK(成绩>=0

and

成绩=3

4.

SELECT

学号

as

不及格学生学号,课程名,成绩

FROM

XS_KC,KC

WHERE

(成绩<60

and

XS_KC.课程号=KC.课程号)

5.

SELECT

XSQK.*,课程名,成绩

FROM

XSQK,KC,XS_KC

WHERE

(

XSQK.学号=XS_KC.学号

and

XS_KC.课程号=KC.课程号

and

XS_KC.课程号=

107

and

成绩<60)

SELECT

XSQK.*

FROM

XSQK

WHERE

学号

IN

(

SELECT

学号

From

XS_KC

where

(课程号=

107

and

成绩<60)

)

6.

SELECT

A.*

FROM

XSQK

A,XSQK

B

WHERE

(A.联系电话=B.联系电话

AND

A.学号!=B.学号)

7.

SELECT

所在系

AS

系名

FROM

XSQK

GROUP

BY

所在系

8.

select

COUNT(DISTINCT

XS_KC.学号)

as

已选修人数

from

XS_KC

9.

select

(COUNT(DISTINCT

XSQK.学号))-COUNT(DISTINCT

XS_KC.学号)

as

未选课人数

from

XSQK,XS_KC

10.

select

姓名,课程名,成绩

from

XSQK,XS_KC,KC

where(XSQK.学号=XS_KC.学号

and

XS_KC.课程号=

KC.课程号)

11.

SELECT

姓名

as

与杨颖同系的学生

FROM

XSQK

WHERE

所在系

IN

(

select

所在系

from

XSQK

where

姓名=

杨颖

)

and姓名!=

杨颖

12.

select

XS_KC.课程号,课程名,MAX(成绩)

as

最高分,COUNT(DISTINCT

学号)

as

选课人数

from

XS_KC,KC

where(XS_KC.课程号=KC.课程号)

GROUP

BY

XS_KC.课程号,课程名

13.

select

姓名,sum(成绩)

AS

考试总成绩,COUNT(

XS_KC.学号)

as

选课门数

from

XSQK,XS_KC

where(XSQK.学号=XS_KC.学号)

GROUP

BY

XSQK.学号,姓名

实验总结:通过本次实验,我掌握了多表查询、子查询、连接和联合查询等sql查询方法,能够熟练使用SQL

Server

2008进行建立、更新、查询数据库等简单操作,熟悉基本的SQL查询语法,加深了对数据库管理系统的理解。

版权所有:蓬勃范文网 2010-2024 未经授权禁止复制或建立镜像[蓬勃范文网]所有资源完全免费共享

Powered by 蓬勃范文网 © All Rights Reserved.。蜀ICP备20021444号