搜档网
当前位置:搜档网 › 软件技术基础上机实验报告

软件技术基础上机实验报告

软件技术基础上机实验报告
软件技术基础上机实验报告

电子科技大学

上机实验报告

科目名称:软件技术基础

任课教师:庞晓凤

学生姓名:王德斌

学生学号:2013020910030

软件技术基础上机实验报告

实验一:顺序表和单链表基本操作上机实验

一、实验目的:理解线性结构的基本概念,掌握两种基本的存储结构:顺序存储结构(顺序表)和链式存储结构(单链表);用C语言实现在两种存储结构上的对应操作(包括创建、删除插入元素、遍历等),巩固强化C程序设计的基本方法和能力。

二、实验内容:

1、顺序表的创建、元素删除、遍历等操作:

有序的一组整数{1,2,3,4,6},设计顺序表并实现以下操作:

A.初始化一个空的顺序表;

B.从键盘依次输入上述数据添加到顺序表中;

C.删除表中的第四个数据元素;

D.显示B、C操作后顺序表中的内容。

程序:

#include

#define true 1

#define false 0

#define Maxnum 10

typedef struct{

int data[Maxnum];

int num;

}listtype;

int delete(listtype *l,int x)

{

int i;

if((x<0)||(x>l->num-1))

{

printf("未返回顺序表");

return(false);

}

for(i=x+1;i<((l->num)+1);i++)

l->data[i-2]=l->data[i-1];

l->num--;

return(true);

}

int display(listtype *l)

{ int j;

printf("顺序表如下\n");

if(l->num==0)

printf("空表");

else

{ if(l->num==1)

printf("%d",l->data[0]);

else

{

for(j=0;jnum-1;j++)

printf("%d\n",l->data[j]);

printf("%d\n",l->data[j]);

}

}

return(true);

}

main()

{listtype list;

int i,x;

printf("请输入表长");

scanf("%d",&list.num);

printf("请输入数据");

for (i=0;i

scanf("%d",&list.data[i]);

printf("请输入要删除的数据位置");

scanf("%d",&x);

delete(&list,x);

display(&list);

}

实验结果:

2、现有有序的一组整数{1,2,2,3,4,6,6},设计单链表,分别编写函数实现以下操作:

A.初始化一个空链表。

B.依次添加上述一组数据(结点),生成该链表。

C.统计该链表的长度。

D.在表中查找数据为3和7的结点,并返回其位置(若找不到返回 -1)。

E.删除中间重复结点,使链表变为 1-2-3-4-6。

F.显示经B,E操作后,链表的内容。

程序:

#include

#include

#include

struct node

{

int val;

int w;

struct node *next;

};

int a[7]={1,2,2,3,4,6,6};

node *h=(node *)malloc(sizeof(node)); node *t;

node *x;

void print()

{

printf("此单链表为:");

for(x=h;x->next!=NULL;x=x->next) printf("%d ",x->next->val);

}

void print_len()

{

int len=0;

for(x=h;x->next!=NULL;x=x->next)

len++;

printf("\n链表长度为:%d\n",len); }

void sec(int i)

{

int ans1=-1;

for(x=h;x->next!=NULL;x=x->next)

{

if(x->next->val==i)

{ans1=x->next->w;

break;}

}

printf("%d\n",ans1);

}

void d()

{

for(x=h;x->next!=NULL;x=x->next)

{

if(x->next->val==x->next->next->val) x->next=x->next->next;

}

}

int main()

{ printf("题中单链表如下\n");

t=h;

int ans1=-1;

int len=0;

for(int i=0;i<7;i++)

{

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

t->next=p;

t->next->val=a[i];

t->next->w=i;

t=t->next;

}

t->next=NULL;

print();

print_len();

printf("数据为3的结点位置为:");

sec(3);

printf("数据为7的结点位置为:");

sec(7);

d();

print();

return 0;

}

实验结果:

实验二:基本查找排序操作上机实验

一、实验目的:掌握两种基本的查找算法(顺序查找、二分查找)和三种基本排序算法(简单插入排序、简单冒泡排序、简单选择排序)的原理及C语言实现。

二、实验内容:

现有一顺序表,表中元素分别为{51,38,79,22,91,105,33,52,16,112},分

别编写函数实现以下操作:

A、采用简单插入排序法实现对顺序表的排序,显示每一趟的排序结果;

B、采用简单冒泡排序法实现对顺序表的排序,显示每一趟的排序结果;

C、采用简单选择排序法实现对顺序表的排序,显示每一趟的排序结果;

D、对上述排序后的顺序表采用顺序查找方法,查找关键字为52和关键字为

36的元素,分别显示查找结果;

E、对上述排序后的顺序表采用二分查找方法,查找关键字为22的元素,显

示查找结果。

程序:

#include

#include

#define true 1

#define false 0

#define Maxnum 10 //设定最大表长

#define SWAP(x,y) {int t; t = x; x = y; y = t;}

typedef struct {

int data[Maxnum];

int num;

}listtype;

void selsort(listtype *l);

void insort(listtype *l) ;

void bubsort(listtype *l);

int seq_search(listtype *l);

int bin_search(listtype *l);

main()

{

void display(listtype *l) ;

listtype list;

int i,j,x;

printf("请输入表长");

scanf("%d",&list.num); //设定表长

printf("请输入各数据\n");

for(i=0;i

scanf("%d",&list.data[i]); //建立顺序列表此处输入1 2 3 4 6

printf("排序前\n");

display(&list);

x=1;

while(x==1)

{

printf("如需排序请选择下列排序方式。\n");

printf("(1)选择排序\n(2)插入排序\n(3)冒泡排序\n(4)顺序查找法按值查找元素位置\n(5)二分查找法查找元素位置\n(6)显示顺序表\n(7)结束程序\n");

scanf("%d", &j);

switch(j)

{

case 1:

selsort(&list);break;

case 2:

insort(&list); break;

case 3:

bubsort(&list); break;

case 4:

seq_search(&list); break;

case 5:

bin_search(&list); break;

case 6:

display(&list); break;

case 7:

x=3;break;

default:

printf("选项错误\n");

}

}

return(false);

}

void display(listtype *l)

{int j;

printf("顺序表如下\n");

if (l->num==0)

printf("空表");

else

{if (l->num==1)

printf("%d",l->data[0]);

else

{for(j=0;jnum-1;j++)

printf("%d\n",l->data[j]);

printf("%d\n",l->data[j]);

}

}

return(false);

}

void selsort(listtype *l)

{

int i,j,small,k;

for (i=0;i<(l->num-1);i++)

{small=i;

for(j=i+1;jnum;j++)

{

if(l->data[j]data[small]) small=j;

}

if(small!=i)

SWAP(l->data[small],l->data[i]) printf("第 %d 次排序:", i+1);

for(k = 0; k < l->num; k++)

printf("%d ", l->data[k]);

printf("\n");

}

printf("\n");

}

void insort(listtype *l)

{

int i, j, k, tmp;

for(j = 0; j < (l->num-1); j++)

{

tmp =l->data[j+1];

i = j ;

while(i>-1&&tmp < l->data[i])

{

l->data[i+1] =l->data[i];

i--;

}

l->data[i+1] = tmp;

printf("第 %d 次排序:", j);

for(k = 0; k num; k++)

printf("%d ",l->data[k]);

printf("\n");

}

}

void bubsort(listtype *l)

{

int i, j, k, flag = 1;

for(i = 0; i < l->num && flag == 1; i++) { flag = 0;

for(j = 0; j < l->num-i-1; j++)

{

if(l->data[j+1] < l->data[j])

{

SWAP(l->data[j+1], l->data[j]); flag = 1;

}

}

printf("第 %d 次排序:", i+1);

for(k = 0; k < l->num; k++)

printf("%d ", l->data[k]);

printf("\n");

}

}

int seq_search(listtype *l)

{

int i,key,j;

j=0;

printf("请输入要查找数据的关键字。\n");

scanf("%d",&key);

for (i=0;inum;i++)

{

if(l->data[i]==key)

{

printf("searching success\n");

printf("所查找数据位置为%d\n",i+1); }

else

j++;

}

if(j==l->num)

printf("未找到\n");

}

int bin_search(listtype *l)

{ int low,high,mid,key;

low=0;

high=(l->num)-1;

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

scanf("%d",&key);

while(low<=high)

{ mid=(low+high)/2;

if(l->data[mid]==key)

{ printf("searching success\n");

printf("所查找的数据位置是%d\n",mid); return(mid);

}

else if((l->data[mid])

{low=mid+1;}

else

{high=mid-1;}

}

printf("searching failed\n");

return(-1);

}

实验结果:

实验总结:

通过这次上机实验,我加深了对软件技术基础这门学科的理解,增强了计算机语言编程的掌握。但也暴露出很多问题,如解决问题时太过格式化,导致难以找到最简单有效的方法解决问题。其次,在上机实验过程中,我也更加深刻地体会到软件技术基础对我们学习生活所产生的巨大影响,所以我需要更加努力学习计算机编程与软件应用,不断完善自我。

重庆邮电大学-软件技术基础--实验报告(耿道渠)

《软件技术基础》实验报告 实验名称:顺序表的操作 班级学号姓名 第9 周星期 2 、5,6 节成绩 一、实验目的: 1、掌握顺序表结构的实现方式; 2、掌握顺序表常用算法的实现; 3、熟悉利用顺序表解决问题的一般思路; 4、参照给定的顺序表的程序样例,验证给出的顺序表的常见算法,领会顺序表结构的优点和不足。 二、实验内容: 1、设计一个静态数组存储结构的顺序表,要求编程实现如下任务:(1)建立一个顺序表,首先依次输人整数数据元素(个数根据需要键盘给定)。 (2)删除指定位置的数据元素(指定元素位置通过键盘输入),再依次显示删除后的顺序表中的数据元素。 (3)查找指定数据的数据元素(指定数据由键盘输入),若找到则显示位置,若没有找到则显示0。 2、使用顺序表实现一个电话本的管理程序,电话本中的每条记录包括学号、姓名、手机号码和固定电话四项。要求实现菜单、初始化、添加、删除和显示等功能。 三、实验结果:

四、实验中遇到的问题及解决方法: 第一次编写C++,感觉力不从心,回去多看看PPT。

五、实验心得体会: 对顺序表的一些常用语句不熟悉,对顺序表的整体思路理解不深刻以后要加强练习 附:源程序(自行编写或修改的程序。若为修改程序请注明修改部分的功能,若为书上实例则可不附。) #include #include #include #include #define MAXSIZE 20 using namespace std; int num; typedef struct { string student_number; string name; string tel; string home_phone; int id; } TEL; void shuaxin(TEL *); void delet(TEL *);

SQL-Server数据库上机实验报告

SQL-Server数据库上机实验报告

《数据库系统原理》上机实验报告 学号:1120131743 姓名:谈兆年 班级:07111301

一、实验目的与要求: ●熟练使用SQL语句 ●掌握关系模型上的完整性约束机制 二、实验内容 1:利用SQL语句创建Employee数据库 CREATE DATABASE Employee; 结果: 2:利用SQL语句在Employee数据库中创建人员表person、月薪表salary及部门表dept。 做法:按表1、表2、表3中的字段说明创建 表1 person表结构 字段名数据 类型 字段 长度 允许空 否 字段说明 P_no Char 6 Not Null 工号,主键P_na Varch10 Not 姓名

me ar Null Sex Char 2 Not Null 性别 Birth date Dateti me Null 出生日期 Prof Varch ar 10 Null 职称 Dept no Char 4 Not Null 部门代码,外键 (参照dept表)表2 salary表结构 字段名数据 类型 字段 长度 允许空 否 字段说明 P_no Char 6 Not Null 工号,主键,外键(参照person表) Base Dec 5 Null 基本工资Bonu s Dec 5 Null 奖金,要求>50 Fact Dec 5 Null 实发工资=基本工 资+奖金 Mont h Int 2 Not Null 月份

表3 dept表结构 字段名数据 类型 字段 长度 允许空 否 字段说明 Dept no Char 4 Not Null 部门代码,主键, Dna me Varch ar 10 Not Null 部门名称 程序为: CREATE TABLE dept( deptno CHAR(4) PRIMARY KEY NOT NULL, dname V ARCHAR(10) NOT NULL) CREATE TABLE Person( P_no CHAR(6) PRIMARY KEY Not Null, P_name V ARCHAR(10) Not Null, Sex CHAR(2) Not Null, Birthdate Datetime Null, Prof V ARCHAR(10) Null, Deptno CHAR(4) Not Null, FOREIGN KEY(Deptno) REFERENCES

西电《软件技术基础》上机大作业答案解析

说明 每个实验题目含有一个main函数和一些函数,与实验题目相关的基本运算的函数定义和main函数定义的代码在附录以及对应的文件夹中给出,供上机实验参考使用。对于每个题目,只需要根据题目要求设计算法,补充函数定义,然后对程序进行编译、调试。

实验一线性表 一、实验目的 1.熟悉线性表的顺序和链式存储结构 2.掌握线性表的基本运算 3.能够利用线性表的基本运算完成线性表应用的运算 二、实验内容 1.设有一个线性表E={e1, e2, … , e n-1, e n},设计一个算法,将线性表逆置,即使元素排列次序颠倒过来,成为逆线性表E’={ e n , e n-1 , … , e2 , e1 },要求逆线性表占用原线性表空间,并且用顺序表和单链表两种方法表示,分别用两个程序来完成。(文件夹:顺序表逆置、单链表逆置) 2.已知由不具有头结点的单链表表示的线性表中,含有三类字符的数据元素(字母、数字和其他字符),试编写算法构造三个以循环链表表示的线性表,使每个表中只含有同一类的字符,且利用原表中的结点空间,头结点可另辟空间。(文件夹:分解单链表) 实验二栈和队列 一、实验目的 1.熟悉栈和队列的顺序和链式存储结构 2.掌握栈和队列的基本运算 3.能够利用栈和队列的基本运算完成栈和队列应用的运算 二、实验内容 1.设单链表中存放有n个字符,试编写算法,判断该字符串是否有中心对称的关系,例如xyzzyx是中心对称的字符串。(提示:将单链表中的一半字符先依次进栈,然后依次出栈与单链表中的另一半字符进行比较。)(文件夹:判字符串中心对称) 2.假设以数组sequ[m]存放循环队列的元素,同时设变量rear和quelen 分别指示循环队列中队尾元素的位置和内含元素的个数。编写实现该循环队列的入队和出队操作的算法。 提示:队空的条件:sq->quelen==0;队满的条件:sq->quelen==m。(文件夹:循环队列)实验三串 一、实验目的 1.熟悉串的顺序存储结构 2.掌握串的基本运算及应用 二、实验内容 1.串采用顺序存储结构,编写朴素模式匹配算法,查找在串中是否存在给定的子串。(文件夹:模式匹配) 2.若S是一个采用顺序结构存储的串,利用C的库函数strlen和strcpy(或strncpy)编写

数据库上机实验报告

数据库实验 (第三次) 题目1 实验内容: 1. 检索上海产的零件的工程名称; 2. 检索供应工程J1零件P1的供应商号SNO; 3. 检索供应工程J1零件为红色的供应商号SNO; 4. 检索没有使用天津生产的红色零件的工程号JNO; 5. 检索至少用了供应商S1所供应的全部零件的工程号JNO; 6. 检索购买了零件P1的工程项目号JNO及数量QTY,并要求对查询的结果按数 量QTY降序排列。

1 select jname from j where jno in (select jno from spj where sno in (select sno from s where city ='上海' ) ); 2 select sno from spj where jno ='j1'and pno ='p1' 3

selectdistinct sno from spj where pno in (select pno from p where color='红'and pno in (select pno from spj where jno ='j1' ) ); 4 selectdistinct jno from spj where pno notin (select pno from p where color ='红'and pno in (select pno from spj where sno in (select sno from s where city ='天津' ) ) )

5 select jno from spj where sno ='s1' 6 select jno,qty from spj where pno ='p1' orderby qty desc 四﹑思考题 1.如何提高数据查询和连接速度。 建立视图 2. 试比较连接查询和嵌套查询 有些嵌套查询是可以用连接来代替的,而且使用连接的方式,性能要比 嵌套查询高出很多 当查询涉及多个关系时,用嵌套查询逐步求解结构层次清楚,易于构造,具有结构化程序设计的优点。但是相比于连接运算,目前商用关系数据库管理系统对嵌套查询的优化做的还不够完善,所以在实际应用中,能够用连接运算表达的查询尽可能采用连接运算。

软件技术基础教学大纲资料

《软件技术基础》教学大纲 课程编号:23000840 适用专业:电子信息类(非计算机专业) 学时数:40 学分数: 2.5 开课学期:第4学期 先修课程:《C语言》 考核方式:笔试(闭卷) 执笔者:沈晓峰编写日期:2015年3月审核人(教学副院长): 一、课程性质和目标 授课对象:电子信息工程专业大学二年级本科生 课程类别:学科拓展课程 教学目标: 本课程是针对工科电子信息类本科生开设的一门学科拓展课程。着重培养学生在软件设计领域的基本素质,基本方法和设计理念。授课对象为大学二年级学生,课程任务是通过本课程的学习和相关实验的练习,使学生掌握数据结构、操作系统等软件技术的基本理论知识,具有一定的软件开发能力。 二、教学内容和要求 1、课堂理论教学要求和学时安排(32学时) 1)C程序设计(4学时) (1)C语言回顾,指针的基本概念、运算方法和使用(2学时)。 (2)结构体的基本概念和使用方法(2学时)。 2)数据结构(20学时) (1)数据结构的基本概念(2学时):理解数据结构的基本概念;理解线性和非线性结构的概念。 (2)线性数据结构(9学时):理解表、栈、队列等线性数据结构的概念,存储方式及基于不同存储方式的相关操作的实现方法。 a.理解表的概念及顺序表的存储特点,掌握其创建、插入、删除等实现方法(2 学时); b.掌握单链表、双链表、循环链表的创建、插入、删除方法(2学时); c.理解栈的概念及结构特点,掌握顺序栈及链栈的出栈、入栈操作的实现方法 (2学时);

d.理解队列的概念及特点,掌握顺序、循环队列的创建、出队、入队、判空、判满等操作。掌握链队列的创建及出队、入队(2学时); e.理解数组的概念及二维数组的存放方式,掌握对称矩阵及稀疏矩阵的压缩存储方法(1学时)。 (3)非线性数据结构(5学时):了解典型非线性数据结构的基本概念、存储和访问方式。 a.理解二叉树、满二叉树、完全二叉树的概念及基本性质(1学时); b.掌握二叉树的三种遍历算法、树和二叉树的转换方法(2学时); c.理解图的基本概念及性质,掌握图的邻接矩阵、邻接图存储方式(2学时)。 (4)结构查找和排序(4学时):理解查找和排序的基本概念,掌握三种查找(顺序、二分、分块)和三种排序(简单插入,简单选择和冒泡)方法和实现。 3)操作系统(8学时) (1)操作系统的基本概念(2学时):了解操作系统的基本概念,操作系统发展的历 程和现代操作系统的基本特征。 (2)处理机管理(4学时);理解进程、进程的状态、描述方式、进程控制的手段, 进程的同步和互斥,进程通信和死锁等基本概念,理解进程调度的相关方法。 (3)作业管理(2学时):理解作业、作业的状态、描述方式、作业控制的手段,等 基本概念,理解作业调度的相关方法。 通过这一章的学习同学们应该理解一个用户作业提交给计算机之后,操作系统控制计算机来执行该用户作业的基本流程。 2、实验安排(8学时) 共设置5组实验,分为上机实验和课外实验两部分:上机实验包括两个实验,课外实验包括3个实验,详细实验内容见实验教学大纲。 三、考核方式 课程最后成绩构成包括:期末考试卷面成绩(70%),平时成绩(10%),实验成绩(20%)。 实验部分的考核包含上机实验和课外实验,实验成绩采用实验出勤、实验考核、实验报告和实验程序验证相结合的方式给出。 四、教材和参考资料 1、教材 《软件技术基础》,黄迪明,电子科技大学出版社,1998年 2、参考资料

电子科技大学软件技术基础实验报告4

电子科技大学通信与信息工程学院标准实验报告 (实验)课程名称软件技术基础实验 电子科技大学教务处制表

电子科技大学 实验报告 一、实验室名称:校公共机房 二、实验项目名称:二叉树和哈夫曼树 三、实验学时:4学时 四、实验原理: 使用VS2010等C语言集成开发环境(IDE),在微型计算机上对程序进行编辑、编译、连接与运行。通过上机练习掌握二叉树的建立、插入删除,遍历等方法和过程,掌握递归函数在二叉树建立,遍历中的应用,掌握哈夫曼树的最小路径和建立过程。 五、实验目的: 1.熟练二叉树和哈夫曼树的概念和基本操作方法。 2.掌握课程平台使用方法。 六、实验内容: 上机完成所有函数,编程实验,调试运行程序并完成报告。 七、实验器材(设备、元器件): 硬件要求:普通pc机,1G内存,100G硬盘空间即可。 软件要求:Windows 7,包括C编译器的IDE。 八、实验步骤、实验编程与运行结果: 下面建立该二叉树并展示输出结果: #include #include typedef struct bnode

{ int data; struct bnode *lc,*rc; }; struct bnode* create() { struct bnode *tree=NULL; char ch; ch=getchar(); if(ch=='_') tree=NULL; else { tree=(struct bnode *)malloc(sizeof(struct bnode)); tree->data=ch; tree->lc=create(); tree->rc=create(); } return tree; } //先序遍历(根左右)--递归 int preorder(struct bnode *root) { putchar(root->data); if(root->lc!=NULL) preorder(root->lc); if(root->rc!=NULL) preorder(root->rc); } //中序遍历--递归 int inorder(struct bnode *root) { if(root->lc!=NULL) inorder(root->lc); putchar(root->data); if(root->rc!=NULL) inorder(root->rc); } //后序遍历--递归 int postorder(struct bnode *root) { if(root->lc!=NULL) postorder(root->lc); if(root->rc!=NULL)

数据库上机实验报告正式版

For the things that have been done in a certain period, the general inspection of the system is also a specific general analysis to find out the shortcomings and deficiencies 数据库上机实验报告正式 版

数据库上机实验报告正式版 下载提示:此报告资料适用于某一时期已经做过的事情,进行一次全面系统的总检查、总评价,同时也是一次具体的总分析、总研究,找出成绩、缺点和不足,并找出可提升点和教训记录成文,为以后遇到同类事项提供借鉴的经验。文档可以直接使用,也可根据实际需要修订后使用。 数据库上机实验报告 试验内容 1、数据表的建立 基本表《简单的》带有主键 带有外码约束的(外码来自其他表或者本表) 2、数据表的修改 添加删除列 修改列属性类型 添加删除约束(约束名) 元组的添加,修改,删除 删除数据表

试验过程 1、createtablestudent ( snochar(9)primarykey,/*sno是主码列级完整性约束条件*/ snamechar(20)unique,/*sname取唯一值*/ ssexchar(2), sagesmallint,/*类型为smallint*/ sdeptchar(20)/*所在系*/ ); createtablecourse ( cnochar(4)primarykey,/*列级完整性约束条件,cno是主码*/

cnamechar(40), cpnochar(4),/*cpno的含义是先行课*/ ccreditsmallint, foreignkey(cpno)referencescourse(cno) /*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是 cno*/ ); createtablesc ( snochar(9), cnochar(4), gradesmallint,

软件技术基础习题答案

操作系统 1.如何理解虚拟机的概念? 答:虚拟机就是在裸机上扩展一层软件,将硬件实现细节隐藏起来,使用户能够更方便、更灵活使用的计算机。 2.什么是多道程序设计,它的主要优点是什么? 答:多道程序设计就是允许多个程序同时进入内存并运行。主要优点:提高资源利用率,从而提高了系统的吞吐量。 3.试述分时系统与实时系统,并比较它们的区别。 答:分时系统是指能够允许多个用户同时使用一台计算机的系统。实时系统是指能够及时响应随机发生的外部事件,并在严格的时间范围内完成对该事件处理的系统。实时系统对系统响应速度要求更高,可靠性要求更高。(或者说明分时系统与实时系统各自特点) 4.一般从哪几方面对操作系统的性能进行评价? 1)可靠性 2)方便性 3)效率 4)可维护性 5)可移植性 5.试说出几种你所熟悉的操作系统名称,并说明其特征。 答:Linux特征:支持多用户、多任务,具有良好的用户界面,设备独立性,系统安全性能高,良好的可移植性。 Windows特征:支持多用户、多任务,具有友好的图形用户界面,强大的内存管理功能,可靠性高,操作简单。 6.根据你试用计算机系统的经验,说明操作系统的作用。 答:控制和管理计算机系统内各种硬件和软件资源、合理有效地组织计算机系统的工作,为用户提供一个使用方便可扩展的工作环境,从而起到连接计算机和用户的接口作用。 7.如何理解网络操作系统的主要功能? 答:用于管理网络通信和共享资源,协调各主机上任务的运行,并向用户提供统一的、有效的网络接口,包括网络管理、通信、资源共享、系统安全和多种网络应用服务。 8.如何理解进程的概念?进程与程序的区别是什么?进程与作业的联系和区别是什么?答:进程是一个可以并发执行的程序或程序段在一个数据集合上的执行过程,他是系统分配资源的基本单位。 区别:1)经常是一个动态的概念,是执行程序的动态过程,它因创建而产生,因调度而执行,因撤销而消亡。而程序是一个静态的概念,是进程运行的静态文本。 2)进程能真实地描述并发执行,且具有并发性,而程序没有。 3)一个进程可以执行一个或多个程序。 4)程序可以作为一种软件资源长期保持着,而进程则是程序的一次执行过程,是暂时的,是动态地产生和终止的,它不具有存储性。 作业和进程的联系两者静态描述的结构相似,作业是由程序,数据和JCB组成,进程是由程序或程序段,数据,PCB组成。区别:作业是用户向计算机提交任务实体,而进程是完成用户任务的执行实体;一个作业可由多个进程组成,且必须至少有一个进程。作业一般用于批处理系统中,而进程用在所有多道系统中。 9.理解进程的三种基本状态和发生状态转换的原因。 答:进程的三种基本状态分别执行状态,就绪状态和等待状态。简单来说是由于CPU以及

大学计算机基础上机考试试卷(含答案)

大学计算机基础上机考试试卷 姓名:学号:院系:班级: 考试时间:登录机器:试卷号: 一、选择题 (共 40 分) 1. 使用超大规模集成电路制造的计算机应该归属于( )。 A ) 第一代 B ) 第二代 C ) 第三代 D ) 第四代 正确答案:D 考生答案:A × 2. 在计算机内部,传送、存储、加工处理的数据和指令都是()。 A ) 拼音简码 B ) 八进制码 C ) ASCII码 D ) 二进制码 正确答案:D 考生答案:C × 3. 与十六进制数BB等值的八进制数是( )。 A ) 187 B ) 273 C ) 563 D ) 566 正确答案:B 考生答案:× 4. 计算机应用中,CAD是指()。 A ) 计算机辅助设计 B ) 计算机辅助教学 C ) 计算机辅助制造 D ) 计算机辅助测试 正确答案:A 考生答案:× 5. 目前使用的“奔腾”型微机采用的逻辑器件属于( )。 A ) 电子管

C ) 集成电路 D ) 超大规模集成电路 正确答案:D 考生答案:× 6. 微处理器是把( )作为一整体,采用大规模集成电路工艺在一块或几块芯片上制成的中央处理器。 A ) 内存与中央处理器 B ) 运算器和控制器 C ) 主内存 D ) 中央处理器和主内存 正确答案:B 考生答案:× 7. 计算机的内存储器比外存储器( )。 A ) 价格便宜 B ) 存储容量大 C ) 读写速度快 D ) 读写速度慢 正确答案:C 考生答案:× 8. 打印机在与主机连接时,应将信号线插在( )。 A ) 串行接口上 B ) 并行接口上 C ) 串并行接口上 D ) 任意扩展插口上 正确答案:B 考生答案:× 9. 下面( )选项中的设备依次为:输入设备、输出设备和存储设备。 A ) CRT、CPU、ROM B ) 硬盘、鼠标器、键盘 C ) 鼠标器、绘图仪、光盘 D ) 磁带、打印机、激光打印机 正确答案:C 考生答案:× 10. 多媒体技术的特征是()。 A ) 集成性、交互性和音像性 B ) 实时性、分时性和数字化性 C ) 交互性、多样性、实时性、集成性 D ) 存储性、传输性、压缩与解压性 正确答案:C 考生答案:× 11. 将微机的主机与外设相连的是 ( )。 A ) 总线 B ) 磁盘驱动器 C ) 内存

计算机软件技术基础实验报告Word版

计算机软件基础实验报告 姓名学号实验目的 1. 掌握C语言程序设计方法,并学会上机调试。 2. 熟悉Huffman编码源程序,并构造Huffman树。 实验内容 1.试设计一算法,从包括n个元素的数组中,求最大和最小元素,并使得当n 个元素为有序排列时,元素之间的比较次数仅为n-1次。 2.在给出的Huffman编码源程序基础上,要求画出Huffman树,求出与等长编 码相比时的压缩比。 实验要求 1.根据实验内容编写算法,并用 C 语言进行程序设计。 2. 将所编程序在计算机上调试通过,并全面测试。 实验结果 1.以一个含有8个元素的一维数组{1,2,3,5,7,8,9,12}为例,设计程序如下: #include int maxArray(int x ,int y); int minArray(int x ,int y); int main(void) { int i = 0 ; int array[8]={ 1,2,3,5,7,8,9,12} ; printf; do { scanf("%d",&array[i]); i++; } while(i < 8); int maxTemp = array[0]; int minTemp = array[0]; int maxIndex = 0; int minIndex = 0; for(i=1;i<8;i++)

maxTemp = maxArray(array[i] , maxTemp); minTemp = minArray(array[i] , minTemp); } for(i=0;i<8;i++) { if (maxTemp == array[i]) { maxIndex = i; } if (minTemp == array[i]) { minIndex = i; } } printf; return 0; } 运行结果如下: 2.Huffman编码源程序 #include #include #include #include #include typedef struct {unsigned int weight; //结点权值 unsigned int parent,lchild,rchild; //结点的父指针,左右孩子指针 }HTNode,*HuffmanTree; //动态分配数组存储哈夫曼树 typedef char **HuffmanCode; //动态分配数组存储哈夫曼编码表 void CreateHuffmanTree(HuffmanTree &,unsigned int*,int ); //生成哈夫曼树 void HuffmanCoding(HuffmanTree,HuffmanCode &,int ); //对哈夫曼树

数据库上机实验报告4

数据库上机实验报告 4 学号:姓名:日期:年月日 实验目的:(1)练习连接查询;(2)练习视图的创建与使用;(3)学习使用ODBC的方法;(4)体验T-SQL的功能;体验存储过程的功能;体验表值函数、标量值函数的作用;体验ranking等功能。 1 练习视图及连接查询。 (1)创建一个视图,视图名为viNF,视图内容为select id,count(*) as nf from friends group by id。执行成功后,将SQL语句复制到下方。 (2)基于viNF视图,查找拥有最多好友的用户、最少好友的用户。执行成功后,将SQL语句复制到下方。 (3)基于users表和viNF视图进行连接查询。分别进行内连接、全外连接、左外连接、右外连接四种操作。执行成功后,将SQL语句复制到下方,并回答:四种结果表,哪两个的结果是一致的,为什么? (4)将题(3)中全外连接保存为一个新的视图viUAF。 2 通过ODBC用Excel打开users表。 3 体验T-SQL。 回顾实验2中的题目: 定义最低价格为成本价;依据此成本价做如下计算: 连接Goods,Goods_Extent,Sellers表,按照总利润,输出前10名;要求输出表的格式为(商品名称,卖家名称,商品价格,运费,卖家信誉,卖家好评率,历史销量,历史利润,期内销量,期内利润,总销量,总利润) 利用如下语句进行查询,体会和之前有什么不同。如感兴趣,自己可以仿照写一个变量定义、赋值及应用的例子。 declare @cost as float; select @cost=min(good_price)from goods; select top 10 good_name as商品名称, goods.seller_name as卖家名称, good_price as商品价格, good_shipping as运费,

软件技术基础教学大纲资料

软件技术基础》教学大纲 课程编号: 23000840 适用专业:电子信息类(非计算机专业) 学时数: 40学分数: 2.5 开课学期:第4 学期 先修课程: 《C 语言》 考核方式:笔试(闭卷) 执笔者:沈晓峰编写日期:2015 年3月审核人(教学副院长): 一、课程性质和目标授课对象:电子信息工程专业大学二年级本科生课程类别:学科拓展课程教学目标: 本课程是针对工科电子信息类本科生开设的一门学科拓展课程。着重培养学生在软件设计领域的基本素质,基本方法和设计理念。授课对象为大学二年级学生,课程任务是通过本课程的学习和相关实验的练习,使学生掌握数据结构、操作系统等软件技术的基本理论知识,具有一定的软件开发能力。 二、教学内容和要求 1、课堂理论教学要求和学时安排(32 学时) 1) C 程序设计(4 学时) (1)C 语言回顾,指针的基本概念、运算方法和使用( 2 学时)。 (2)结构体的基本概念和使用方法(2 学时)。 2)数据结构(20 学时) (1)数据结构的基本概念(2 学时):理解数据结构的基本概念;理解线性和非线性结构的概念。 (2)线性数据结构(9 学时):理解表、栈、队列等线性数据结构的概念,存储方式及基于不同存储方式的相关操作的实现方法。 a. 理解表的概念及顺序表的存储特点,掌握其创建、插入、删除等实现方法(2 学时); b. 掌握单链表、双链表、循环链表的创建、插入、删除方法( 2 学时); c. 理解栈的概念及结构特点,掌握顺序栈及链栈的出栈、入栈操作的实现方法 (2 学时); d. 理解队列的概念及特点,掌握顺序、循环队列的创建、出队、入队、判空、判满等操作。掌握链 队列的创建及出队、入队(2 学时); e. 理解数组的概念及二维数组的存放方式,掌握对称矩阵及稀疏矩阵的压缩存储方法 (1 学时)。

软件技术基础实验报告

《计算机软件技术基础》实验报告 专业_____________ 年级_____________ 学号_____________ 学生姓名_____________ 指导老师_____________ 南华大学计算机学院编

【实验报告】

I 实验要求 1.每次实验中有若干习题,每个学生至少应该完成其中的两道习题。 2.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率。 3.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。 4.上机结束后,应整理出实验报告。书写实验报告时,重点放在调试过程和小节部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力的目的。 实验一线性表 【实验目的】 1.熟悉VC环境,学习如何使用C语言实现线性表的两种存储结构。 2.通过编程、上机调试,进一步理解线性表的基本概念,熟练运用C语言实现线性表基本操作。 3.熟练掌握线性表的综合应用问题。 【实验内容】 必做: 1.一个线性表有n个元素(n

《计算机应用基础》实验报告本1

(封面) 上海建桥学院《计算机应用基础》 实验报告本 20 11 年3月15 日

2010-2011学年第一学期《计算机应用基础》实验目录

上海建桥学院实验报告 课程名称:计算机应用基础实验类型:验证/ 设计/ 综合 实验名称:文字处理软件的使用 系别:艺术系专业:视觉传达班级:三班学号:10B05060324 姓名:顾雯茵 同组人姓名: 指导老师:实验地点: 实验日期:2011年 3 月15 日 实验报告日期:2011年3月15日 报告退发( 订正、重做): 成绩:指导教师(签字):_________________________ 一、实验名称:文字处理软件的使用 二、实验目的: 1.掌握字体、段落格式、首字下沉、中文版式、分栏的设置; 2.掌握查找与替换、项目符号和编号、边框和底纹的设置; 3.掌握表格插入和设置; 4.掌握图片、图形、艺术字、文本框的插入、编辑及混排设置; 5.掌握公式、水印、页眉和页脚的插入及编辑方法; 6.掌握页面设置方法。

三、实验环境(所使用的平台和相关软件) (1)中文WindowXP操作系统 (2)中文Word2003应用软件 (3)中文实验配套材料配套 四、实验内容(实验内容的具体描述) 实验(1) 打开配套文件Word-Lx1.doc,按下列要求操作,并将结果以原文件名保存。 (1) 插入标题,内容见样张,其中大字:华文琥珀,72磅,空心,阴影;小字:华文云 彩,60,金色底纹,双行合一。 (2) 正文为小四号,第一段添加蓝色小3号项目符号;其余各行,首行缩进2字符;如 样张分栏,第1栏宽4厘米,间距0.75厘米;文末段落首2字下沉,并设置灰-20% 底纹。 (3) 按样张,对文中相应段落添加绿色、3磅边框线。 (4) 把文中的半角逗号、句号,均改为全角。 (5) 按样张,利用制表位在文末输入相关文字(注意对齐方式,间距自定)。 实验(2) 打开配套文件Word-Lx3.doc,按下列要求操作,并将结果以原文件名保存。 (1) 按样张,将文本标题“网上阅读,日趋流行”转化为艺术字,艺术字式样为艺术字 库中第四行第一列;艺术字字体为楷体、36磅、加粗;艺术字高2.8厘米、宽7.5厘米,形状采用“波形2”;艺术字衬底为加上填充色为“雨后初晴”斜上过渡效果的“流程图:资料带”。 (2) 按样张,将正文各段首行缩进2字符,将第二段(网页成本极为便宜…最大区别还 在于能够“反馈”。)设置成1.7倍行距。 (3) 将正文中所有的“图书馆”都替换为楷体、红色、四号、粗斜、蓝色双下划线。 (4) 按样张,为第一段中的文字“印刷出版物”制作合并字符效果,字体:隶书,字号: 12。 (5) 取消第三段原有的分栏,并将第二、三段按样张分为三栏,其栏宽分别为8字符米、 10字符、14字符。 (6) 将第四、五段加上三维边框,框线的粗细为3磅,颜色为深红,并加上如样张所示 的编号。 (7) 按样张,在文末插入大小为30%的配套图片Examine.wmf。

数据库上机实验报告 总结

重庆邮电大学移通学院 数据库集中上机报告 学生:马志鹏 学号: 022******* 班级: 02210901 专业:计算机应用技术 重庆邮电大学移通学院 2011年6月

第一天:Access数据库基本操作 1 实验目的 1、熟悉的掌握Access数据库结构与创建 2、了解创建、修改、删除、查询、保存等操作 3、输入数据创建、设计器创建、向导创建。 2 实验内容 3 实验结果 1. 2. 2

重庆邮电大学移通学院 3 2 Access 数据表的编辑 第二天 数据表基本操作 1 表关系与编辑数据 1 实验目的: 1、实现一对一,一对多,多对多的实体关系 2、对“学生基本信息”表中的记录进行排序,按出生日期降序排列 3、从“学生基本信息”表中筛选出所有计算机系男生的记录 4、从“学生基本信息”表中筛选出回族和蒙古族的所有学生记录

2 实验内容 1. SELECT 学生基本信息表.学生姓名, 成绩档案表.* FROM 成绩档案表INNER JOIN 学生基本信息表ON 成绩档案表.学生学号= 学生基本信息表.学生学号 WHERE (((学生基本信息表.学生姓名)="张冰冰")); 2 SELECT 学生基本信息表.* FROM 学生基本信息表 WHERE (((学生基本信息表.性别)="男") AND ((学生基本信息表.班级名称)="计算机系")); 3 SELECT 成绩档案表.C语言, 课程表.* FROM 成绩档案表, 课程表; 4 SELECT 学生基本信息表.*, 学生基本信息表.性别, 学生基本信息表.班级名称FROM 学生基本信息表WHERE (((学生基本信息表.性别)<>"男") AND ((学生基本信息表.班级名称)<>"计算机系")); 5 SELECT 学生基本信息表.*, 学生基本信息表.出生日期 FROM 学生基本信息表WHERE (((Month([出生日期]))=9) AND ((Day([出生日期]))=1)); 6 SELECT 学生基本信息表.* FROM 学生基本信息表WHERE (((学生基本信息表.学生姓名) Like "李*")); 3 实验结果 4

软件技术基础试题(含答案)

《操作系统》 选择题: (bs30)1. 分页式存储管理的主要特点是(B)。 (A) 要求作业全部同时装入内存(B) 不要求作业装入到内存的连续区域 (C) 要求扩充外存容量(D) 不要求处理缺页中断 (bs30)2. 进程从运行状态进入就绪状态的原因可能是(D)。 (A) 被选中占有处理机(B) 等待某一事件(C) 等待的事件已发生(D) 时间片用完 (bs30)3. 多道程序设计是指(D)。 (A) 在实时系统中并发运行多个程序(B) 在分布系统工程中同一时刻运行多个程序 (C) 在一台处理机上同一时刻运行多个程序(D) 在一台处理机上并发运行多个程序 (bs29)2. 进程从运行状态进入就绪状态的原因可能是( A )。 (A) 时间片用完(B) 等待某一事件(C) 等待的事件已发生(D) 被选中占有处理机(bs29)4. 以下(D)不是实时操作系统的特点。 (A) 高可靠性(B) 及时响应(C) 高效性(D) 通用性 (bs28)3. 任何两个并发进程之间( A )。 (A) 可能存在同步或互斥关系(B) 一定存在同步关系 (C) 一定彼此独立无关(D) 一定存在互斥关系 (bs28)4. 以下的哪个特征不是分时操作系统的主要特征(B)。 (A) 分时性(B) 独占性(C) 交互性(D) 多路性 (bs27)2. 以下(D)不是实时操作系统的特点。 (A) 高可靠性(B) 及时响应(C) 中断管理(D) 独立性 (bs27)3. 若当前进程因时间片用完而让出处理机时,该进程应转变为(B)状态。 (A) 运行(B) 就绪(C) 等待(D) 完成 (bs26)3. 在多道程序设计系统中,处于后备状态的作业要经过(D)调度后才能真正执行。 (A) 作业调度(B) 作业调度和设备调度(C) 进程调度(D) 作业调度和进程调度 (bs25)1. 把高级语言的源程序翻译成二进制代码的过程称为:(A)。 (A) 编译(B) 连接(C) 运行(D) 重定位 (bs25)2. 把逻辑地址转变为内存的物理地址的过程称作(D)。 (A) 地址分配(B) 地址连接(C) 地址调用(D) 地址变换 (bs25)4. 在操作系统中,进程最基本的特征是(A)。 (A) 动态性和并发性(B) 顺序性和可再现性 (C) 与程序的对应性(D) 执行过程的封闭性 (bs24)2. 把逻辑地址转变为存储的物理地址的过程称作(D)。 (A) 编译(B) 连接(C) 运行(D) 重定位 (bs24)3. SPOOLing技术可以实现设备的(B)分配。 (A) 虚拟(B) 共享(C) 独占(D) 物理 (bs24)4. 允许用户把若干作业提交计算机系统集中处理的操作系统称为(D)。 (A) 分时操作系统(B) 实时操作系统 (C) 网络操作系统(D) 批处理操作系统 (bs24)5. 进程从运行状态进入就绪状态的原因可能是(B)。 (A) 被选中占有处理机(B) 时间片用完 (C) 等待的事件已发生(D) 等待某一事件 (bs23)2. 任何两个并发进程之间( D) (A) 一定存在互斥关系(B) 一定存在同步关系 (C) 一定彼此独立无关(D) 可能存在同步或互斥关系

软件技术基础--上机实验三

姓名:吴振国学号:2011019190006 上机实验三 题目一: 一、程序流程说明 (1)创建一个链栈,(2)编写输出,进栈出站函数,(3)编写主函数 二、程序代码 #include #include #define LEN sizeof(node_type) typedef struct node { int data; struct node *next; }node_type; typedef struct { node_type *top; int length; }lstack_type; lstack_type *create_list(void) { lstack_type *p;

p=(lstack_type *)malloc(sizeof(lstack_type)); p->top=NULL; p->length=0; return(p); } void print(node_type *head) { node_type *p; printf("Now ,those records are:\n"); p=head; if(head!=NULL) { do{ printf("%4d",p->data); p=p->next; } while(p!=NULL); } } int push(lstack_type *lp, int x) { node_type *p; p=(node_type *)malloc(LEN);

if(p!=NULL) { p->data = x; p->next = lp->top; lp-> top = p; lp->length++; return(1); } else return(0); } int pop(lstack_type *lp) { node_type *p; int x; if(lp->top==NULL){ printf("stack is underflow"); return(0); } else{ x = lp->top->data; p = lp->top; lp->top = lp->top->next; lp->length--;

数据库上机实验8实验报告

上机实验八——完整性约束的实现 一、实习目的: 掌握SQL中实现数据完整性的方法,加深理解关系数据模型的三类完整性约束。 二、实习准备: 1.复习“完整性约束SQL定义” 2.完成习题四第10题中的各项操作的SQL语句。 3.了解SQL Server 中实体完整性、参照完整性和用户自定义完整性的实现手段 三、实习内容: 1.验证习题四第10题四个表结构的SQL语句。 表一:Sstudent CREATE TABLE Sstudent (Sno char(7) NOT NULL PRIMARY KEY, Sname VarChar(20) NOT NULL, Ssex Char(2) NOT NULL DEFAULT('男') check(Ssex IN('男','女')), Sage smallint check(Sage >14 AND Sage<65), Clno Char(5) NOT NULL REFERENCES Cclass(Clno) ON UPDATE CASCADE); 表二:Ccourse CREATE TABLE Ccourse (Cno Char(1) NOT NULL PRIMARY KEY, Cname VarChar(20) NOT NULL, Credit Smallint CHECK(Credit IN(1,2,3,4,5,6)));

表三:Cclass CREATE TABLE Cclass (Clno Char(5) NOT NULL PRIMARY KEY, Speciality VarChar(20) NOT NULL, Inyear Char(4) NOT NULL, Number Integer CHECK(Number>1 AND Number<100), Mointor Char(7) REFERENCES Student(Sno) ); 表四:Ggrade CREATE TABLE Ggrade (Sno Char(7) NOT NULL REFERENCES Student(Sno) ON DELETE CASCADE ON UPDATE CASCADE, Cno Char(1) NOT NULL REFERENCES Course(Cno) ON DELETE CASCADE ON UPDATE CASCADE, Gmark Numeric(4,1) CHECK(Gmark>0 AND Gmark<100), PRIMARY KEY(Sno,Cno)); 2. SQL Server中提供了那些方法实现实体完整性、参照完整体和用户自定义完整性 答:实体完整性:是通过主码的定义(PRIMARY KEY)来实现的; 参照完整性:是利用外部码(REFERENCES)的说明,以限制相关表中某些属性的取值,当用户违反规则时,提供三种:RESTRICT(限制策略),CASCADE(级联策略),SET NULL(置空策略); 用户自定义完整性:check约束,对元组的CHECK约束

相关主题