学生成绩管理系统 VC版
学生成绩管理系统VC版。。。。。。。连接ACCESS
数据结构课程设计 程序分析
1. 需求分析
1) 问题描述
读入一个C程序,统计程序中代码、注释和空行数以及函数的个数和平均行数,并利用统计信息分析评价该程序风格。
2) 基本要求如下:
(1)、把C程序文件按字符顺序读入源程序;
(2)、边读入程序,边识别统计代码行、注释行和空行,同时还要识别函数的开始和结束,以便统计其个数及平均行数。
(3)、程序风格分为代码注释和空行三方面。每方面分A、B、C、D四个等级。
A B C D
代码(函数的平均长度) 10~15行 8~9或16~20 5~7或21~24 24
注释(占总行数比例) 15~25% 10~14或26~30% 5~9或31~35% 35%
空行(占总行数比率) 15~25% 10~14或26~30% 5~9或31~35% 35%
3)输入输出范例
以下是对程序文件ProgAnal.C分析的输出结果示例:
The results of analysing program file "ProgAnal.C":
Lines of code :180
Lines of comments: 63
Blank lines: 52
Code Comments Space
61% 21% 18%
The program includes 9 functions.
The average length of a section of code is 12.9 lines.
Grade A: Excellent routine size style.
Grade A: Excellent commenting style.
Grade A: Excellent white space style.
TCP聊天室 VC版 含实验报告
一、 系统概要
1、 开发平台:
Windows XP, Visual C++ 6.0
2、 系统简单描述:
这是一个用VC做的简单的聊天系统。在此系统中,采用TCP协议,程序分为服务器端各客户端。系统能实现简单的聊天室功能包括一对多,而且同时也支持一对一,即私聊功能。在系统运行中,用户可以随时更改自己的用户名。功能虽然单一但也能够满足聊天的基本功能。
二、 通信规范的制作
程序中定义了一个结构体MYMESSAGE来作为信息传送的载体
struct MESSAGE {
char flag; //作为标志来区别所发送的信息;
char data[100];//发送的内容;
char addr[25]; //客户IP地址和端口号
};
三、 主要模块的设计分析
服务器端:
系统流程如下:
设计思路:
基于TCP/IP的通信基本上都是利用SOCKET套接字进行数据通讯,程序一般分为服务器端和用户端两部分。设计思路(VC6.0下):
第一部分 服务器端
一、创建服务器套接字(create)。
二、服务器套接字进行信息绑定(bind),并开始监听连接(listen)。
三、接受来自用户端的连接请求(accept)。
四、开始数据传输(send/receive)。
五、关闭套接字(closesocket)。
第二部分 客户端
一、创建客户套接字(create)。
二、与远程服务器进行连接(connect),如被接受则创建接收进程。
三、开始数据传输(send/receive)。
四、关闭套接字(closesocket)。
编译原理实验 编译原理
对PL/0作以下修改扩充:
(1)增加单词:保留字 ELSE,FOR,TO,DOWNTO,RETURN
运算符 +=,-=,++,--
(2)修改单词:不等号# 改为 <>
(3)增加条件语句的ELSE子句
2. 课程设计
基本内容(成绩范围:“中”、“及格”或“不及格”)
(1)扩充赋值运算:+= 和 -=
(2)扩充语句(Pascal的FOR语句):
①FOR <变量>:=<表达式> TO <表达式> DO <语句>
②FOR <变量>:=<表达式> DOWNTO <表达式> DO <语句>
其中,语句①的循环变量的步长为1,
语句②的循环变量的步长为-1。
选做内容(成绩评定范围扩大到:“优”和“良”)
(1)增加运算:++ 和 --。
(2)增加类型:① 字符类型; ② 实数类型。
(3)扩充函数:① 有返回值和返回语句;② 有参数函数。
(4)增加一维数组类型(可增加指令)。
(5)其他典型语言设施。
操作系统实验 操作系统实验报告 文件管理 进程管理等
操作系统实验(含实验报告)
1、进程调度
2、作业调度
3、主存空间的分配与回收
4、文件系统
一、 实验目的
用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。
二、实验内容和要求
编写并调试一个模拟的进程调度程序,采用“简单时间片轮转法”调度算法对五个进程进行调度。
每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、到达时间、需要运行时间、已运行时间、进程状态等等。
进程的到达时间及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。 进程的运行时间以时间片为单位进行计算。
每个进程的状态可以是就绪 W(Wait)、运行R(Run)两种状态之一。
就绪进程获得 CPU后都只能运行一个时间片。用运行时间加1来表示。
如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应分配时间片给就绪队列中排在该进程之后的进程,并将它插入就绪队列队尾。 每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。
重复以上过程,直到所要进程都完成为止。
三、实验主要仪器设备和材料
硬件环境:IBM-PC或兼容机
软件环境:C语言编程环境
四、实验原理及设计方案
1、进程调度算法:采用多级反馈队列调度算法。其基本思想是:当一个新进程进入内在后,首先将它放入第一个队列的末尾,按FCFS原则排队等待高度。当轮到该进程执行时,如能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚为完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行,以此类推。
2、实验步骤:
(1)按先来先服务算法将进程排成就绪队列。
(2)检查所有队列是否为空,若空则退出,否则将队首进程调入执行。
(3)检查该运行进程是否运行完毕,若运行完毕,则撤消进程,否则,将该进程插入到下一个逻辑队列的队尾。
(4)是否再插入新的进程,若是则把它放到第一逻辑队列的列尾。
(5)重复步骤(2)、(3)、(4),直到就绪队列为空。
。。。。。。。。。。。。。。。。。。。。。。
操作系统实验报告 进程调度 作业调度等
操作系统实验报告
1、进程调度
2、作业调度
3、作业调度4、文件系统
一、 实验目的
用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。
二、实验内容和要求
编写并调试一个模拟的进程调度程序,采用“简单时间片轮转法”调度算法对五个进程进行调度。
每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、到达时间、需要运行时间、已运行时间、进程状态等等。
进程的到达时间及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。 进程的运行时间以时间片为单位进行计算。
每个进程的状态可以是就绪 W(Wait)、运行R(Run)两种状态之一。
就绪进程获得 CPU后都只能运行一个时间片。用运行时间加1来表示。
如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应分配时间片给就绪队列中排在该进程之后的进程,并将它插入就绪队列队尾。 每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。
重复以上过程,直到所要进程都完成为止。
三、实验主要仪器设备和材料
硬件环境:IBM-PC或兼容机
软件环境:C语言编程环境
四、实验原理及设计方案
1、进程调度算法:采用多级反馈队列调度算法。其基本思想是:当一个新进程进入内在后,首先将它放入第一个队列的末尾,按FCFS原则排队等待高度。当轮到该进程执行时,如能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚为完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行,以此类推。
2、实验步骤:
(1)按先来先服务算法将进程排成就绪队列。
(2)检查所有队列是否为空,若空则退出,否则将队首进程调入执行。
(3)检查该运行进程是否运行完毕,若运行完毕,则撤消进程,否则,将该进程插入到下一个逻辑队列的队尾。
(4)是否再插入新的进程,若是则把它放到第一逻辑队列的列尾。
(5)重复步骤(2)、(3)、(4),直到就绪队列为空。
.................
操作系统实验(主存的分配与回收)
一、实验目的
熟悉主存的分配与回收。理解在不同的存储管理方式下,如何实现主存空间的分配与回收。掌握动态分区分配方式中的数据结构和分配算法及动态分区存储管理方式及其实现过程。
二、实验内容和要求
主存的分配和回收的实现是与主存储器的管理方式有关的。所谓分配,就是解决多道作业或多进程如何共享主存空间的问题。所谓回收,就是当作业运行完成时将作业或进程所占的主存空间归还给系统。
可变分区管理是指在处理作业过程中建立分区,使分区大小正好适合作业的需求,并且分区个数是可以调整的。当要装入一个作业时,根据作业需要的主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该作业;若无,则作业不能装入,作业等待。随着作业的装入、完成,主存空间被分成许多大大小小的分区,有的分区被作业占用,而有的分区是空闲的。
实验要求使用可变分区存储管理方式,分区分配中所用的数据结构采用空闲分区表和空闲分区链来进行,分区分配中所用的算法采用首次适应算法、循环首次适应算法、最佳适应算法三种算法来实现主存的分配与回收。同时,要求设计一个实用友好的用户界面,并显示分配与回收的过程。
三、实验主要仪器设备和材料
硬件环境:IBM-PC或兼容机
软件环境:VC++ 6.0
四、实验原理及设计方案
1、循环首次适应算法
在该算法中,把主存中所有空闲区按其物理地址递增的次序排列。在为作业分配存储空间时,从上次找到的空闲分区的下一个空闲分区开始查找,直到找到第一个能满足要求的空闲区,从中划出与请求的大小相等的存储空间分配给作业,余下的空闲区仍留在空闲区表或链中。
2、 实验步骤
(1)初始化空闲分区;
(2)反复对现有的空闲分区进行进程创建和撤消,即内存分配和回收;
(3)退出。
操作系统实验(多道作业调度)
一、实验目的
本实验要求学生模拟作业调度的实现,用高级语言编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解。
二、实验内容和要求
1、编写并调度一个多道程序系统的作业调度模拟程序。
作业调度算法:采用基于先来先服务的调度算法。可以参考课本中的方法进行设计。
对于多道程序系统,要假定系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求。
三、实验主要仪器设备和材料
硬件环境:IBM-PC或兼容机
软件环境:C语言编程环境
四、实验原理及设计方案
采用多道程序设计方法的操作系统,在系统中要经常保留多个运行的作业,以提高系统效率。作业调度从系统已接纳的暂存在输入井中的一批作业中挑选出若干个可运行的作业,并为这些被选中的作业分配所需的系统资源。对被选中运行的作业必须按照它们各自的作业说明书规定的步骤进行控制。
采用先来先服务算法算法模拟设计作业调度程序。
(1)、作业调度程序负责从输入井选择若干个作业进入主存,为它们分配必要的资源,当它们能够被进程调度选中时,就可占用处理器运行。作业调度选择一个作业的必要条件是系统中现有的尚未分配的资源可满足该作业的资源要求。但有时系统中现有的尚未分配的资源既可满足某个作业的要求也可满足其它一些作业的要求,那么,作业调度必须按一定的算法在这些作业中作出选择。先来先服务算法是按照作业进入输入井的先后次序来挑选作业,先进入输入井的作业优先被挑选,当系统中现有的尚未分配的资源不能满足先进入输入井的作业时,那么顺序挑选后面的作业。
(2) 假定某系统可供用户使用的主存空间共100k,并有5台磁带机。
3)流程图:
操作系统实验(进程调度)
一、 实验目的
用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。
二、实验内容和要求
编写并调试一个模拟的进程调度程序,采用“简单时间片轮转法”调度算法对五个进程进行调度。
每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、到达时间、需要运行时间、已运行时间、进程状态等等。
进程的到达时间及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。 进程的运行时间以时间片为单位进行计算。
每个进程的状态可以是就绪 W(Wait)、运行R(Run)两种状态之一。
就绪进程获得 CPU后都只能运行一个时间片。用运行时间加1来表示。
如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应分配时间片给就绪队列中排在该进程之后的进程,并将它插入就绪队列队尾。 每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。
重复以上过程,直到所要进程都完成为止。
三、实验主要仪器设备和材料
硬件环境:IBM-PC或兼容机
软件环境:C语言编程环境
四、实验原理及设计方案
1、进程调度算法:采用多级反馈队列调度算法。其基本思想是:当一个新进程进入内在后,首先将它放入第一个队列的末尾,按FCFS原则排队等待高度。当轮到该进程执行时,如能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚为完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行,以此类推。
2、实验步骤:
(1)按先来先服务算法将进程排成就绪队列。
(2)检查所有队列是否为空,若空则退出,否则将队首进程调入执行。
(3)检查该运行进程是否运行完毕,若运行完毕,则撤消进程,否则,将该进程插入到下一个逻辑队列的队尾。
(4)是否再插入新的进程,若是则把它放到第一逻辑队列的列尾。
(5)重复步骤(2)、(3)、(4),直到就绪队列为空。
计算机网络习题答案(第五版)
第1章 概 述(P22)
1、计算机网络的发展可划分为几个阶段?每个阶段各有何特点?
答:计算机网络的发展可分为以下四个阶段。
(1)面向终端的计算机通信网:其特点是计算机是网络的中心和控制者,终端围绕中心计算机分布在各处,呈分层星型结构,各终端通过通信线路共享主机的硬件 和软件资源,计算机的主要任务还是进行批处理,在20世纪60年代出现分时系统后,则具有交互式处理和成批处理能力。
(2)以分组交换网为中心的多主机互连的计算机网络系统:分组交换网由通信子网和资源子网组成,以通信子网为中心,不仅共享通信子网的资源,还可共享资源子网的硬件和软件资源。网络的共享采用排队方式,即由结点的分组交换机负责分组的存储转发和路由选择,给两个进行通信的用户段续(或动态)分配传输带宽,这样就可以大大提高通信线路的利用率,非常适合突发式的计算机数据。
(3)具有统一的网络体系结构,遵循国际标准化协议的计算机网络:为了使不同体系结构的计算机网络都能互联,国际标准化组织ISO提出了一个能使各种计算机在世界范围内互联成网的标准框架—开放 系统互连基本参考模型OSI.。这样,只要遵循OSI标准,一个系统就可以和位于世界上任何地方的、也遵循同一标准的其他任何系统进行通信。
(4)高速计算机网络:其特点是采用高速网络技术,综合业务数字网的实现,多媒体和智能型网络的兴起。
2、试简述分组交换的特点
答:分组交换实质上是在“存储-转发”基础上发展起来的。它兼有电路交换和报文交换的优点。分组交换在线路上采用动态复用技术传送按一定长度分割为许多小段的数据——分组。每个分组标识后,在一条物理线路上采用动态复用的技术,同时传送多个数据分组。把来自用户发端的数据暂存在交换机的存储器内,接着在网内转发。到达接收端,再去掉分组头将各数据字段按顺序重新装配成完整的报文。分组交换比电路交换的电路利用率高,比报文交换的传输时延小,交互性好。
3、试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。
答:
(1)电路交换:电路交换就是计算机终端之间通信时,一方发起呼叫,独占一条物理线路。当交换机完成接续,对方收到发起端的信号,双方即可进行通信。在整个通信过程中双方 一直占用该电路。它的特点是实时性强,时延小,交换设备成本较低。但同时也带来线路利用率低,电路接续时间长,通信效率低,不同类型终端用户之间不能通信 等缺点。电路交换比较适用于信息量大、长报文,经常使用的固定用户之间的通信。
(2)报文交换:将用户的报文存储在交换机的存储器中。当所需要的输出电路空闲时,再将该报文发向接收交换机或终端,它以“存储——转发”方式在网内传输数据。报文交换的 优点是中继电路利用率高,可以多个用户同时在一条线路上传送,可实现不同速率、不同规程的终端间互通。但它的缺点也是显而易见的。以报文为单位进行存储转 发,网络传输时延大,且占用大量的交换机内存和外存,不能满足对实时性要求高的用户。报文交换适用于传输的报文较短、实时性要求较低的网络用户之间的通 信,如公用电报网。
(3)分组交换:分组交换实质上是在“存储——转发”基础上发展起来的。它兼有电路交换和报文交换的优点。分组交换在线路上采用动态复用技术传送按一定长度分割为许多小段 的数据——分组。每个分组标识后,在一条物理线路上采用动态复用的技术,同时传送多个数据分组。把来自用户发端的数据暂存在交换机的存储器内,接着在网内 转发。到达接收端,再去掉分组头将各数据字段按顺序重新装配成完整的报文。分组交换比电路交换的电路利用率高,比报文交换的传输时延小,交互性好。
8、 计算机网络可从哪几个方面进行分类?
答:
从网络的交换功能进行分类:电路交换、报文交换、分组交换和混合交换;
从网络的拓扑结构进行分类:集中式网络、分散式网络和分布式网络;
从网络的作用范围进行分类:广域网WAN、局域网LAN、城域网MAN;
从网络的使用范围进行分类:公用网和专用网。
9、计算机网络中的主干网和本地接入网各有何特点?
答:主干网络一般是分布式的,具有分布式网络的特点,其中任何一个结点都至少和其它两个结点直接相连;本地接入网一般是集中式的,具有集中式网络的特点,所有的信息流必须经过中央处理设备(交换结点),链路从中央交换结点向外辐射。
10、 计算机网络有哪几部分组成?
答:一个计算机网络应当有三个主要的组成部分:
(1)若干主机,它们向用户提供服务;
(2)一个通信子网,它由一些专用的结点交换机和连接这些结点的通信链路所组成的;
(3)一系列协议,这些协议为主机之间或主机和子网之间的通信而用的。
11、试在下列条件下比较电路交换和分组交换。要传送的报文共x(bit),从源站到目的站共经过k段链路,每段链路的传播时延为d(s),数据率为 C(bit/s)。在电路交换时电路的建立时间为s(s)。在分组交换时分组长度为p(bit),且各结点的排队等待时间可忽略不计。问在怎样的条件下,分组交换的时延比电路交换的要小?
答:
对电路交换,当t=s时,链路建立;
当t=s+x/C,发送完最后一bit;
当t=s+x/C+kd,所有的信息到达目的地。
对分组交换,当t=x/C, 发送完最后一bit;
为到达目的地,最后一个分组需经过k-1个分组交换机的转发,。。。。。。。。。。。。。。。。。。
图的抽象数据类型实现
一、 题目:图的抽象数据类型实现
利用VC++的工作环境实现教材里图的基本抽象数据类型。按照课本的要求运用c语言以及数据结构课程所学的知识,设计合理的数据存储结果,实现图的基本操作。
二、 抽象数据类型定义以及各基本操作的简要描述
ADT MGraph{
数据对象:n=n是具有相同特征的数据元素集合,称为顶点集。
数据关系:DR={<v,w>|v,w∈n且<v,w>表示从v指向w的弧}
基本操作:
CreateMGraph
初始条件:n是图的顶点集,e是图的边集
操作结果:按和n的e定义构造图G
DestroyGraph
初始条件: 图G存在
操作结果: 销毁图G
GetVex
初始条件: 图G存在,v是G中某个顶点
操作结果: 返回v的值
LocateVex
初始条件:图G存在,v和G中顶点有相同特征
操作结果:若G中存在顶点v,则返回该顶点再图中的位置;否则返回空
PutVex
初始条件: 图G存在,v是G中某个顶点
操作结果: 对v赋值u
FirstAdjVex
初始条件: 图G存在,v是G中某个顶点 */
操作结果: 返回的第一个邻接顶点。若顶点在G中没有邻接顶点,则返回空
NextAdjVex
初始条件: 图G存在,v是G中某个顶点,w是v的邻接顶点
操作结果: 返回v(相对w)的下一个邻接顶点。若w是v的最后一个邻接点,则返回空
InsertVex
初始条件: 图G存在,v和图G中顶点有相同特征
操作结果: 在图G中增添新顶点v(不增添与顶点相关的边,留待InsertArc()去做)
DeleteVex
初始条件: 图G存在,v是G中某个顶点
操作结果: 删除G中顶点v及其相关的弧
InsertArc
初始条件: 图G存在,v和W是G中两个顶点
操作结果: 在G中增添弧<v,w>
DeleteArc
初始条件: 图G存在,v和w是G中两个顶点
操作结果: 在G中删除弧<v,w>
DFSTraverseM
初始条件:图G存在
操作结果:对图进行深度优先遍历
BFSTraverseM
初始条件:图G存在
操作结果:对图进行广度优先遍历
}ADT MGraph
道法自然源码(面向对象实践指南)
道法自然源码(面向对象实践指南),王咏武的《道法自然》源码,该书的源码下载网站貌似已经无法登陆了。。。
接口实验报告 接口与通信实验
通信接口实验报告(8259A,电子钟,并行通信等)