软件工程基础实训
报告
田军营 仲志丹
河南科技大学机电工程学院
线性表的基本运算
班级: 机制115 姓名: 王朋飞 实训成绩:□□批改教师签名:
一、实训学时:2学时
二、实训目的:
理解线性表的概念,掌握线性表的存储方法以及建立在该存储方法上的各种线性表算法,并用C/C++调试实现。
三、实训原理:
线性表是一种数据结构,它有多种存储方法,不同存储方法对应的线性表算法都有着相同的功能和不同的实现。学生实验时,线性表的存储结构可以通过数组和链表来实现,而线性表的各种算法则就是为实现相同功能而进行的数组或链表操作。
四、实训设备:
一台可以建立C/C++语言程序调试环境的个人计算机。
五、主要实训内容及编程:
1、线性表的各种存储结构的实训(用C/C++语言描述,用实训过程中的实训内容填写,实训过程中检查)。
#include <stdio.h>
#include <malloc.h>
#define ListSize 20
//List structure
typedef int DataType; //DataType的类型可根据实际情况而定,这里假设为int
typedef struct{
DataType data[ListSize]; //向量data用于存放表结点
vb采用什么的编程机制 int length; //当前的表长度
}seqList;
//menu
void menu(){
printf("\nCreate and Init a list: -> 1\n");
printf("Get the length: -> 2\n");
printf("Get the ith node: -> 3\n");
printf("Find the node =x: -> 4\n");
printf("Insert the node x: -> 5\n");
printf("Delete the node x: -> 6\n");
printf("Your choice is: "); }
//Create and init a list
seqList* Init_seqlist(){
// int num;
int i=0;
seqList *list;
list=(seqList *)malloc(sizeof(seqList));
//从键盘输入
/*
printf("please input the seq number:");
scanf("%d",&num);
while(num!=-1){list->data[i++]=num;
scanf("%d",&num);}
list->data[i]=-1;
list->length=--i;
*/
//默认值
for(i=0;i<10;i++)
list->data[i]=i*10;
list->data[i]=-1;
list->length=i;
return list; }
//output the list
void output_seqlist(seqList *list)
{
int i=0;
printf("The sequence is: ");
while(list->data[i]!=-1)
printf("%d ",list->data[i++]);
printf("\n");
}
//get length of the list
int length_seqlist(seqList *list)
{
return list->length;
}
//get the node of i in the list
void getnode_seqlist(seqList *list)
{
int i;
printf("i=");
scanf("%d",&i);
printf("list->data[%d] = %d \n", i, list->data[i]);
}
//find node in the list
void findnode_seqlist(seqList *list)
{
int found=0, i=0, x;
printf("x=");
scanf("%d",&x);
while(list->data[i]!=-1)
{
if(list->data[i++]==x){found=1;break;}
}
if(!found)printf("Not found!\n");
else printf("Found! i= %d \n",--i);
}
//insert a node into the list
void insert_seqlist(seqList *list)
{
int i,x;
printf("insert x= ");
scanf("%d",&x);
list->data[list->length+1]=-1;
for(i=list->length-1;i>=0;i--)
{
if(x<list->data[i]){list->data[i+1]=list->data[i];}
else
{ list->data[i+1]=x;break;}
}
list->length++;}
//delete a node of the list
void delete_seqlist(seqList *list)
{
int x,i=0;
printf("delete x=");
scanf("%d",&x);
while(list->data[i]!=x)
{
if(i==list->length)
{ printf("no such node = %d in the sequence!\n",x);
return;
}
i++;
}
if(list->data[i]==x)
{
for(i;i<list->length;i++)
{list->data[i]=list->data[i+1];}
list->length--;
}
}
void main()
{
int n;
seqList *list;
menu();
while(1)
{
printf("Your choice is: ");
scanf("%d",&n);
switch(n)
{
case 1:{list=Init_seqlist();output_seqlist(list);break;}
case 2:{printf("the length of list is %d\n",length_seqlist(list));break;}
case 3:{getnode_seqlist(list);break;}
case 4:{findnode_seqlist(list);break;}
case 5:{insert_seqlist(list);output_seqlist(list);break;}
case 6:{delete_seqlist(list);output_seqlist(list);break;}
}
}
}
2、基于某种线性表存储结构给出线形表操作的各种算法实训(用C/C++语言描述,用实训过程中的实训内容填写,实训过程中检查检查)。
3、挑选一个你实训中使用过的较为复杂的算法,研究它的时间复杂性。
数据排序与查
班级: 姓名: 实训成绩:□□批改教师签名:
一、实训学时:2学时
二、实训目的:
学习和理解数据排序和查的不同实现方法,了解实现它们的技巧和方法。
三、实训原理:
任选一种排序和查算法用C/C++实现,通过实验说明它们的复杂度以及适用范围。
四、实训设备:
一台可以建立C/C++语言程序调试环境的个人计算机。
五、主要实训内容及编程:
1、数据排序算法实训(至少完成2个算法的实训,用C/C++语言描述,用实训过程中的实训内容填写,实训过程中检查)。
2、数据查算法实训(至少完成2个算法的实训,用C/C++语言描述,用实训过程中的实训内容填写,实训过程中检查)。
3、挑选两个你实训中使用过的排序算法,比较它们的优缺点。
4、挑选两个你实训中使用过的查算法,比较它们的优缺点。
5、挑选一个你实训中使用过的较为复杂的算法,研究它的时间复杂性。
数据库技术的应用
班级: 姓名: 实训成绩:□□批改教师签名:
一、实训学时:2学时
二、实训目的:
理解并掌握数据库检索系统的建立方法。
三、实训原理:
通过C++或VB语言中的数据库的建立和编程手段,使学生在数据库系统构建、检索等数据库系统操作方面得到锻炼和提高,从而达到对数据库系统的完整理解。
四、实训设备:
一台可以建立C/C++语言程序调试环境的个人计算机。
五、主要实训内容及编程:
1、关系数据库建立实训(至少建立2个关系数据库,并能对所建立的数据库结构进行必要
地修改。用实训过程中的实训内容填写,实训过程中检查)。
2、关系数据库数据记录的添加、检索、修改、删除等操作实训(在1的基础上利用SQL语言进行实训。实训内容记录包括:数据库结构、数据库中数据、数据库操作命令以及结果。用实训过程中的实训内容填写,实训过程中检查)。
3、数据库有那些种类?它们对应的操作是否有所不同?
应用软件设计
班级: 姓名: 实训成绩:□□批改教师签名:
一、实训学时:2学时
二、实训目的:
学习和理解应用软件的设计方法并设计一个简单的应用软件系统。
三、实训原理:
通过模块设计用C/C++实现一个简单的应用软件系统。
四、实训设备:
一台可以建立C/C++语言程序调试环境的个人计算机。
五、主要实训内容及编程:
1、应用软件模块组织实训(根据过去的实训内容或根据教师提供代码参考,设计并实现有一定意义的软件模块并用菜单技术将他们合理地组织在一起。用C/C++语言描述,用实训过程中的实训内容填写,实训过程中检查)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论