大二下学期计算机主导课程概述

来源:互联网 发布:淘宝手机端全屏怎么做 编辑:程序博客网 时间:2024/06/06 01:44

     课程1:数据库系统原理

在不同的 计算机系统 中,由于缺乏统一的标准,即使同种数据模型的DBMS,在用户接口、系统功能等方面也常常是不相同的。
用户对数据库进行操作,是由DBMS把操作从应用程序带到外部级、概念级,再导向内部级,进而通过OS操纵存储器中的数据。同时,DBMS为应用程序在内存开辟一个DB的系统缓冲区,用于数据的传输和格式的转换。而三级结构定义存放在
数据字典中。图1.20是用户访问数据库的一个示意图,可看出DBMS所起的核心作用。DBMS的主要目标是使数据作为一种可管理的资源来处理。
DBMS提供DML实现对数据的操作。基本的数据操作有两类:检索(查询)和更新(包括插入、删除、更新)。因此,在DBMS中应包括DML的
编译程序或解释程序。依照语言的级别,DML又可分成过程性DML和非过程性DML两种。过程性DML是指用户编程时,不仅需要指出“做什么”(需要什么样数据),还需要指出“怎么做”(怎样获得这些数据)。包括一些算法和其他知识。

  课程2:数字逻辑

数字电路基础,门电路,逻辑代数基础,基本组合逻辑电路,触发器,时序逻辑电路,脉冲产生与变换电路,数/模和模/数转换器

课程3:数据结构与算法

以基本数据结构和算法设计策略为知识单元,系统地介绍了数据结构的知识与应用、计算机算法的设计与分析方法,主要内容包括线性表、树、图和广义表、算法设计策略以及查找与排序算法等。


课程4:微机原理与接口技术★


内容:包括概述、微处理器、8086/80 88的指令系统、汇编语言程序设计、总线技术、地址译码技术与存储器接口、中断处理技术与DMA技术、并行接口与定时/计数技术、串行通信接口人机交互设备接口、模拟接口技术等内容。

#include <stdlib.h>#include <stdio.h>struct node /* 图顶点结构定义 */{int vertex; /* 顶点数据信息 */struct node *nextnode; /* 指下一顶点的指标 */};typedef struct node *graph; /* 图形的结构新型态 */struct node head[9]; /* 图形顶点数组 */int visited[9]; /* 遍历标记数组 *//********************根据已有的信息建立邻接表********************/void creategraph(int node[20][2],int num)/*num指的是图的边数*/{graph newnode; /*指向新节点的指针定义*/graph ptr;int from; /* 边的起点 */int to; /* 边的终点 */int i;for ( i = 0; i < num; i++ ) /* 读取边线信息,插入邻接表*/{from = node[i][0]; /* 边线的起点 */to = node[i][1]; /* 边线的终点 *//* 建立新顶点 */newnode = ( graph ) malloc(sizeof(struct node));newnode->vertex = to; /* 建立顶点内容 */newnode->nextnode = NULL; /* 设定指标初值 */ptr = &(head[from]); /* 顶点位置 */while ( ptr->nextnode != NULL ) /* 遍历至链表尾 */ptr = ptr->nextnode; /* 下一个顶点 */ptr->nextnode = newnode; /* 插入节点 */}}/********************** 图的深度优先搜寻法********************/void dfs(int current){graph ptr;visited[current] = 1; /* 记录已遍历过 */printf("vertex[%d]\n",current); /* 输出遍历顶点值 */ptr = head[current].nextnode; /* 顶点位置 */while ( ptr != NULL ) /* 遍历至链表尾 */{if ( visited[ptr->vertex] == 0 ) /* 如过没遍历过 */dfs(ptr->vertex); /* 递回遍历呼叫 */ptr = ptr->nextnode; /* 下一个顶点 */}}/****************************** 主程序******************************/void main(){graph ptr;int node[20][2] = { {1, 2}, {2, 1}, /* 边线数组 */{1, 3}, {3, 1},{1, 4}, {4, 1},{2, 5}, {5, 2},{2, 6}, {6, 2},{3, 7}, {7, 3},{4, 7}, {4, 4},{5, 8}, {8, 5},{6, 7}, {7, 6},{7, 8}, {8, 7} };int i;clrscr();for ( i = 1; i <= 8; i++ ) /* 顶点数组初始化 */{head[i].vertex = i; /* 设定顶点值 */head[i].nextnode = NULL; /* 指针为空 */visited[i] = 0; /* 设定遍历初始标志 */}creategraph(node,20); /* 建立邻接表 */printf("Content of the gragh's ADlist is:\n");for ( i = 1; i <= 8; i++ ){printf("vertex%d ->",head[i].vertex); /* 顶点值 */ptr = head[i].nextnode; /* 顶点位置 */while ( ptr != NULL ) /* 遍历至链表尾 */{printf(" %d ",ptr->vertex); /* 印出顶点内容 */ptr = ptr->nextnode; /* 下一个顶点 */}printf("\n"); /* 换行 */}printf("\nThe end of the dfs are:\n");dfs(1); /* 打印输出遍历过程 */printf("\n"); /* 换行 */puts(" Press any key to quit...");getch();}/*//////////////////////////////////////////*//* 图形的广度优先搜寻法 *//* ///////////////////////////////////////*/#include <stdlib.h>#include <stdio.h>#define MAXQUEUE 10 /* 队列的最大容量 */struct node /* 图的顶点结构定义 */{int vertex;struct node *nextnode;};typedef struct node *graph; /* 图的结构指针 */struct node head[9]; /* 图的顶点数组 */int visited[9]; /* 遍历标记数组 */int queue[MAXQUEUE]; /* 定义序列数组 */int front = -1; /* 序列前端 */int rear = -1; /* 序列后端 *//***********************二维数组向邻接表的转化****************************/void creategraph(int node[20][2],int num){graph newnode; /* 顶点指针 */graph ptr;int from; /* 边起点 */int to; /* 边终点 */int i;for ( i = 0; i < num; i++ ) /* 第i条边的信息处理 */{from = node[i][0]; /* 边的起点 */to = node[i][1]; /* 边的终点 *//* 建立新顶点 */newnode = ( graph ) malloc(sizeof(struct node));newnode->vertex = to; /* 顶点内容 */newnode->nextnode = NULL; /* 设定指针初值 */ptr = &(head[from]); /* 顶点位置 */while ( ptr->nextnode != NULL ) /* 遍历至链表尾 */ptr = ptr->nextnode; /* 下一个顶点 */ptr->nextnode = newnode; /* 插入第i个节点的链表尾部 */}}/************************ 数值入队列************************************/int enqueue(int value){if ( rear >= MAXQUEUE ) /* 检查伫列是否全满 */return -1; /* 无法存入 */rear++; /* 后端指标往前移 */queue[rear] = value; /* 存入伫列 */}/************************* 数值出队列*********************************/int dequeue(){if ( front == rear ) /* 队列是否为空 */return -1; /* 为空,无法取出 */front++; /* 前端指标往前移 */return queue[front]; /* 从队列中取出信息 */}/*********************** 图形的广度优先遍历************************/void bfs(int current){graph ptr;/* 处理第一个顶点 */enqueue(current); /* 将顶点存入队列 */visited[current] = 1; /* 已遍历过记录标志置疑1*/printf(" Vertex[%d]\n",current); /* 打印输出遍历顶点值 */while ( front != rear ) /* 队列是否为空 */{current = dequeue(); /* 将顶点从队列列取出 */ptr = head[current].nextnode; /* 顶点位置 */while ( ptr != NULL ) /* 遍历至链表尾 */{if ( visited[ptr->vertex] == 0 ) /*顶点没有遍历过*/{enqueue(ptr->vertex); /* 奖定点放入队列 */visited[ptr->vertex] = 1; /* 置遍历标记为1 */printf(" Vertex[%d]\n",ptr->vertex);/* 印出遍历顶点值 */}ptr = ptr->nextnode; /* 下一个顶点 */}}}/*********************** 主程序 ************************************//*********************************************************************/void main(){graph ptr;int node[20][2] = { {1, 2}, {2, 1}, /* 边信息数组 */{6, 3}, {3, 6},{2, 4}, {4, 2},{1, 5}, {5, 1},{3, 7}, {7, 3},{1, 7}, {7, 1},{4, 8}, {8, 4},{5, 8}, {8, 5},{2, 8}, {8, 2},{7, 8}, {8, 7} };int i;clrscr();puts("This is an example of Width Preferred Traverse of Gragh.\n");for ( i = 1; i <= 8; i++ ) /*顶点结构数组初始化*/{head[i].vertex = i;head[i].nextnode = NULL;visited[i] = 0;}creategraph(node,20); /* 图信息转换,邻接表的建立 */printf("The content of the graph's allist is:\n");for ( i = 1; i <= 8; i++ ){printf(" vertex%d =>",head[i].vertex); /* 顶点值 */ptr = head[i].nextnode; /* 顶点位置 */while ( ptr != NULL ) /* 遍历至链表尾 */{printf(" %d ",ptr->vertex); /* 打印输出顶点内容 */ptr = ptr->nextnode; /* 下一个顶点 */}printf("\n"); /* 换行 */}printf("The contents of BFS are:\n");bfs(1); /* 打印输出遍历过程 */printf("\n"); /* 换行 */puts(" Press any key to quit...");getch();}


 

 

 

0 0
原创粉丝点击