首页 范文大全 古典文学 职场知识 中国文学 公文书信 外国名著 寓言童话 百家讲坛 散文/诗歌 美文欣赏 礼仪知识 民俗风情
  • 工作总结
  • 工作计划
  • 心得体会
  • 竞聘演讲
  • 会议发言
  • 爱国演讲
  • 就职演说
  • 开业开幕
  • 思想学习
  • 征文演讲
  • 经验材料
  • 述职报告
  • 调研报告
  • 工作汇报
  • 年终总结
  • 申报材料
  • 学习体会
  • 企划方案
  • 活动方案
  • 技巧经验
  • 模板范例
  • 思想宣传
  • 经济工作
  • 工作报告
  • 组织人事
  • 反腐倡廉
  • 慰问贺电
  • 先进事迹
  • 思想汇报
  • 入党申请书
  • 党会发言
  • 先进性教育
  • 入团申请书
  • 个人简历
  • 演讲稿
  • 调查报告
  • 实习报告
  • 和谐社会
  • 观后感
  • 读后感
  • 作文范文
  • 自我鉴定
  • 讲话稿
  • 自查报告
  • 软件技术基础实验指导及报告

    时间:2021-03-20 18:12:10 来源:蒲公英阅读网 本文已影响 蒲公英阅读网手机站

    相关热词搜索:软件技术 指导 实验

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

    软件技术基础实验指导及报告 本文简介:太原理工大学现代科技学院软件技术基础课程实验报告专业班级通信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查询语法,加深了对数据库管理系统的理解。

    • 范文大全
    • 职场知识
    • 精美散文
    • 名著
    • 讲坛
    • 诗歌
    • 礼仪知识