西电软院网络程序设计实验报告
- 格式:doc
- 大小:228.50 KB
- 文档页数:9
西安电子科技大学Java课程上机练习题(2016年度)上机报告班级:姓名:学号:一、J ava语言基础1、实验目标:掌握Java语法;掌握Java程序结构;掌握Java编译、调试、运行的方法。
2、实验要求:编写一个程序,程序提供两种功能:(1)用户输入一个整数,程序计算并输出从1开始到该整数的所有整数之和;同时,计算并输出不大于该整数的所有素数的数目。
(2)用户输入一个数字串,程序判断该数字串各位上数字的奇偶性,并分别输出奇、偶数位的计数值及各位的加和值。
3、题目分析:判断整数是素数要构建一个测试类,然后统计是素数的个数;数字串需要判断每位的数字的奇偶性,则要将数字串转化为数组的形式,然后进行奇偶判断,进行统计。
4、题目设计实现:分别设计判断素数、整数求和、格式转变、判断奇偶性、各位求和的函数。
5、实现过程://判断一个数是否是素数public static boolean isPrime(int a){boolean flag = true;if(a<2)return false;elsefor(int i = 2;i<=Math.sqrt(a);i++){if(a%i == 0)flag = false;}return flag;}//在main函数计算求和及判断public static void main(String []args){int sum=0,j=0;Scanner sc = new Scanner(System.in);System.out.println("请输入一个数计算他的和");int num = sc.nextInt();for(int i=1;i<=num;i++){sum = sum + i;if(isPrime(i))j++;}System.out.println("这个数的和为"+sum+"\n素数有"+j+"个");//输入一个字符串并转化为数字存放到数组中public static void main(String[] args){System.out.println("请输入一串数字串");Scanner scan = new Scanner(System.in);String line = scan.next();int odd=0,even=0,sumo=0,sume=0;char[] c = line.toCharArray();//求和for(int i = 0; i<line.length(); i++){if((int)c[i]%2 == 0){even++;sume = sume +(int)c[i]-48;}else{sumo = sumo +(int)c[i]-48;odd++;}}System.out.println("奇数共有"+odd+"个\n"+"奇数和为"+sumo);System.out.println("偶数共有"+even+"个\n"+"偶数和为"+sume);}6、实验结果:7、个人总结:通过这次基础练习,对Java的各种规范和函数调用有了一定的熟悉,因为之前的编过类似的,所以用Java上手没有很陌生,算是一个很好的入门基础。
《计算机与网络安全》课程实验2016年月6月实验一DES加解密算法的实现一、实验目的及任务:掌握DES加密算法的加解密过程。
二、实验环境VC或TC编程环境;主机操作系统为Windows2000或Windows XP;三、实验原理要深入理解对称加密算法,掌握DES加密过程。
具备一定的C语言编程技能。
DES( Data DES( Data Encryption Standard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法。
DES算法以被应用于许多需要安全加密的场合。
(一)、密钥生成1、变换密钥取得64位的密钥,每个第8位作为奇偶校验位。
2、变换密钥。
(1)、舍弃64位密钥中的奇偶校验位,根据下表(PC-1)进行密钥变换得到56位的密钥,在变换中,奇偶校验位以被舍弃。
(2)、将变换后的密钥分为两个部分,开始的28位称为C[0],最后的28位称为D[0]。
(3)生成16个子密钥,初始I=1。
(i)、同时将C[I]、D[I]左移1位或2位,根据I值决定左移的位数。
(ii)、将C[I]D[I]作为一个整体按下表(PC-2)变换,得到48位的K[I] (iii)、从1-2-3-1处循环执行,直到K[16]被计算完成。
(二)、处理64位的数据1、取得64位的数据,如果数据长度不足64位,应该将其扩展为64位(例如补零)2、将64位数据按下表变换(IP)3、将变换后的数据分为两部分,开始的32位称为L[0],最后的32位称为R[0]。
4、用16个子密钥加密数据,初始I=1。
(1)、将32位的R[I-1]按下表(E)扩展为48位的E[I-1](2)、异或E[I-1]和K[I],即E[I-1] XOR K[I](3)、将异或后的结果分为8个6位长的部分,第1位到第6位称为B[1],第7位到第12位称为B[2],依此类推,第43位到第48位称为B[8]。
(4)、按S表变换所有的B[J],初始J=1。
第二次试验一、问题:Matrix-chain product分析:本题是矩阵链乘问题,需要求出最优括号化方案。
即在矩阵的乘法链上添加括号来改变运算顺序以使矩阵链乘法的代价降低。
可以分析该链乘的一个子段总结一些结论。
假设m[i,j]表示A i*…*A j的链成需要进行的乘法次数(假设j-i足够大),我们可以将A i*…*A j分为两段进行计算:(A i*…*A k)*(A k+1*…*A j)可以得出m[i,j]的递推公式可以得出,当i=j的时候,m[i,j]=0。
当i<j的时候。
k的取值范围是i到j-1,对于k的每一个取值都可以得到一个m[i,j]的值,取出最小值即时m[i,j]的最优化方案。
递推公式如下:可以根据上式得到一个递归算法。
本题即是求m[1,n]的值。
用二维数组m存储m[i,j]的值,用二维数组s来储存应当分割的位置。
以本题中第一个矩阵a) <3, 5, 2, 1,10>为例,可以得出如下矩阵:通过m数组可以得出最少的乘法次数,通过s数组可以输出最优方案。
遇到的问题:在输出s数组的结果的时候仍然需要递归调用,需要合适的控制递归的条件。
总结:在矩阵链乘问题中可以看出,动态规划结合递归的思想可以快捷的解决很多问题。
本题中,重点是归纳出m[i,j]的递推公式。
二、问题:Longest Common Subsequence分析:本题即是最长公共子序列问题。
假设有序列A[m]和序列B[n],显然,对于每一个[i,j],都对应着一个公共子序列的长度。
假设长度为c,就可以得到一个二维数组c[m,n]。
对于c[i,j],当Ai=Bj的时候,问题就转变为求A[1..i-1]和B[1..j-1]的公共子序列长度的问题,所以c[i,j]的长度就是c[i-1,j-1] + 1;同理,当Ai != Bj的时候,c[i,j]应该在c[i-1,j]与c[i,j-1]中取最大值。
另外,当i或者j等于0的时候,显然c的值为0。
网络程序设计实验报告实验报告:网络程序设计一、实验目的本实验主要目的是通过网络程序设计的实践,提升学生对网络编程的理解和能力。
通过完成实验,学生需要掌握以下知识和能力:1.了解网络编程的基本概念和原理;2.熟悉TCP/IP协议栈中的各个协议;3.掌握Socket编程的基本方法和使用;4.学会利用网络进行进程间通信;5.了解常用的网络编程框架和库。
二、实验环境和工具1.计算机操作系统:Windows/Linux/MacOS;2.编程语言:C/C++/Java/Python等;3.开发工具:Visual Studio/Eclipse/PyCharm等。
三、实验过程与结果1.实验过程本次实验我们选择使用C语言进行网络程序设计,采用Socket编程进行实践。
首先,我们需要了解Socket编程的基本原理和方法。
Socket编程是一种应用程序设计接口(API),用于在网络上实现进程间的通信。
我们需要创建一个套接字(Socket),并使用Socket函数进行通信的建立和数据的传输。
在实际的网络程序设计中,先创建一个Socket,然后通过bind函数将Socket绑定到一个本地的端口上。
接着,使用listen函数将Socket设为监听状态,等待客户端的连接请求。
一旦有客户端请求连接,使用accept函数接受连接请求,并获得一个新的Socket,通过新的Socket进行数据的传输。
接下来,我们可以使用send和recv函数进行数据的传输。
send函数用于将数据发送给连接的另一方,而recv函数则用于从连接的另一方接收数据。
使用send函数发送数据时,需要指定数据的大小和发送的目标地址;而接收数据时,需要指定接收数据的大小和接收数据的缓冲区。
最后,通过close函数关闭Socket,释放资源,并结束网络连接。
2.实验结果经过实验,我们成功实现了一个简单的网络通信程序。
在服务器端,我们通过创建一个Socket,并将其绑定到本地的一个端口上;然后使用listen函数将Socket设为监听状态,并等待客户端的连接请求。
计算机组成与结构课程设计实验报告班级:学号:姓名:地点:时间:实验一存储器实验一实验题目存储器实验二实验环境Quartus II 7.2 (32-Bit) Family:CycloneII packge: TQFP Speed grade : 8 Pin count: 144 EP2C5T144C8三实验要求l、掌握FPGA中lpm_ROM的设置,作为只读存储器ROM的工作特性和配置方法。
2、用文本编辑器编辑 mif文件配置 ROM;3、在初始化存储器编辑窗口编辑mif文件配置ROM;4、验证FPGA中meg_lpm_ROM的功能。
四实验设计在FPGA中利用嵌入式阵列块EAB可以构成存储器,lpm_ROM的结构如图(注意参数)五实验仿真与测试六实验结果分析程序代码或数据以.mif格式文件加载于存储器LPM_ROM中七实验小结通过本次试验,对 FPGA中ROM及其基本设置有了简单的了解实验二运算器组成实验一实验题目运算器组成实验二实验环境Quartus II 7.2 (32-Bit) Family:CycloneII packge: TQFP Speed grade : 8 Pin count: 144 EP2C5T144C8三实验要求1.掌握简单运算器的数据传输通路。
2.验证运算功能发生器的组合功能。
3.掌握算术逻辑运算加、减、与的工作原理。
4.熟悉简单运算的数据传送通路。
5.验证实验台运算的8位加、减、与、直通功能。
6.按给定数据,完成几种指定的算术和逻辑运算。
7. 下载程序验证,验收时查看对M=L时F=A+B的结果。
A与B的数字在两数码管中显示,F的值在发光二极管显示,A的值可以先确定,键盘输入改变B的值,发光二极管的状态也变化!四实验设计原理图关键:74181 的AEQB引脚为A与B输入的比较结果输出(高)CN4为进位输出,两片74181相连要低位的进位输出连接到高位片的进位输入(CN),注意F及S后要中括号。
实验报告:迷宫问题题目:编写一个求解迷宫通路的程序一、需求分析:1)采用二维数组maze[M][N]来表示迷宫,其中:maze[0][j]和maze[M-1][j](0≤j≤N-1)及maze[i][0]和maze[i][N-1](0≤i≤M-1)为添加在迷宫外围的一圈障碍。
数据元素值0表示通路,1表示障碍。
限定迷宫的大小M≤8,N≤10.2)本次实验直接在主程序中输入表示迷宫的二维数组。
另外,迷宫的入口和出口位置都将在主程序中直接设置。
3)实验中求出的迷宫通路用“-”表示,迷宫的障碍用“#”表示,已走过但未能求出通路的路径用“@”表示。
4)本程序只求出一条成功的通路。
5)本次实验将直接输出构建迷宫的二维数组、初始化的二维数组和求解后的迷宫数组。
二、概要设计:数据结构及其抽象数据类型的定义。
(1)栈的抽象数据类型ADT Stack{数据对象:D={ai| ai∈CharSet,i=1,2…n,n>=0}数据关系:R1={<ai-1, ai >| ai-1, ai∈D,i=2,…n}基本操作:InitStack(&S)操作结果:构造一个空栈S。
DestroyStack(&S)初始条件:栈S已存在。
操作结果:销毁栈S。
ClearStack(&S)初始条件:栈S已存在。
操作结果:将S清为空栈。
StackLength(S)初始条件:栈S已存在。
操作结果:返回栈S的长度。
StackEmpty(S)初始条件:栈S已存在。
操作结果:若S为空栈,则返回TRUE,否则返回FALSE。
GetTop(S,&e)初始条件:栈S已存在。
操作结果:若栈S不空,则以e返回栈顶元素。
Push(&S, e)初始条件:栈S已存在。
操作结果:在栈S的栈顶插入新的栈顶元素e。
Pop(&S,&e)初始条件:栈S已存在。
操作结果:删除S的栈顶元素,并以e返回其值。
StackTraverse(S,visit())初始条件:栈S已存在。
word.《网络程序设计》教师实验报告学院:信息科学与技术学院专业:学期:2013~2014学年第一学期教师:目录实验1 熟悉C#运行环境 01.1 实验目的 01.2 实验预习 01.3 实验任务 0实验2 结构化程序设计 (2)2.1 实验目的 (2)2.2 实验预习 (2)2.3 实验任务 (2)实验3 使用数组 (5)3.1 实验目的 (5)3.2 实验预习 (5)3.3 实验任务 (5)4.1 实验目的 (9)4.2 实验预习 (9)4.3 实验任务 (9)实验5 继承和接口设计 (12)5.1 实验目的 (12)5.2 实验预习 (12)5.3 实验任务 (12)实验6 创建Windows 应用程序 (16)6.1 实验目的 (16)6.3 实验任务 (16)实验7 用户界面设计(一) (20)7.1 实验目的 (20)7.2 实验预习 (20)7.3 实验任务 (20)实验8 用户界面设计(二) (23)8.1 实验目的 (23)8.2 实验预习 (23)8.3 实验任务 (23)实验1 熟悉C#运行环境院(系):信息科学与技术学院课程名称:网络程序设计教师签名:班级信B1211、12 学号实验室专业姓名计算机号实验名称所用软件实验成绩1.1 实验目的1.了解和掌握C#语言的主要特点。
2.熟悉C#语言的程序开发环境,掌握C#语言的上机步骤。
3.熟练掌握源程序的建立、编辑、编译、保存和运行的基本方法。
4.会编写简单的控制台程序和Windows应用程序。
1.2 实验预习1.熟悉Visual C#的启动和退出以及Visual C#中的编辑、编译、连接和运行命令。
2.了解Visual C#开发环境的配置。
1.3 实验任务1.Visual C#的启动。
启动成功的界面截图如下:2.认识Visual C#的菜单栏、工具栏,工具箱,解决资源方案管理器,代码编辑窗口。
分别截图如下:3.完成一个简单的控制台程序的编写、运行。
西电计算机网络实验1局域网网络结构以及VLAN划分LT一、实验目的1、了解局域网中的基本概念及基本命令2、了解Vlan的概念及作用3、了解交换机的Vlan接口类型4、了解Vlan标签协议802.1Q5、了解Vlan的实际应用二、基本概念1、局域网的拓扑结构:星形网、环形网、总线网和数形网;2、局域网中的传播媒介:双绞线、同轴电缆、光纤;3、共享信道的接入技术:随机接入和受控接入;4、分层体系结构:物理层、数据链路层、网络层和高层;5、以太网:是最常见的局域网,IEEE的802.3协议主要定义的就是以太网的协议标准;6、IPconfig命令可以设置、检查各网络接口的配置值;7、PING主要是用来测试网络的连通性;8、VLAN:虚拟局域网,划分VLAN主要作用是隔离广播域,通过路由和VLAN共同分割广播域;9、VLAN工作原理简述:报文类型:不带标签的报文和带标签的报文。
端口类型:Access与终端相连,Trunk与交换机之间相连交换机接受报文时需判断报文在那个VLAN中转发,依据是收到的报文属性;减缓及发送报文时需要判断是否携带VID标记,依据是发送端口的VLAN属性。
三、实验过程:1、整体搭建:首先设置网络中所需的交换机和终端,我们选用4个交换机,如下图所示。
其中,PC0/PC2属于VLAN41,PC1/PC3属于VLAN42。
2、设置参数:(1)交换机VLAN设置。
分别对switch0-3交换机设置VLAN41和VLAN42两个虚拟局域网。
如下图所示。
(2)交换机端口设置。
分别对switch2 switch3交换机下设的PC 终端的连接端口设置为access端口,交换机与交换机相连的端口设为trunk端口;switch0 switch1端口都设为trunk口,下图所示为2号交换机的1-3号端口配置。
(3)PC终端的IP设置。
PC0为192.168.41.1/24,PC1为192.168.41.2/24,PC2为192.168.41.3/24,PC3为192.168.41.4/24,如下图。
网络多媒体上机实验报告目录实验一哈夫曼编码实验二算术编码实验三LZW编码实验四WAV文件的读取附录对应的四个源程序 实验一哈夫曼编码算法分析:哈夫曼编码采用自底向上的描述方式。
哈夫曼编码运用了贪心算法,每次都取权值最小的两个节点合并成一个节点,该合并节点的权值记为两者权值之和,然后继续上述操作直到最后合并成一个节点,在建成树的过程中,就记下了相应的哈夫曼编码。
通过已经构造出的哈夫曼树,自底向上,由频率节点开始向上寻找parent,直到parent为树的顶点为止。
每个频率都会有一个01编码与之唯一对应,并且任何编码没有前部分是同其他完整编码一样的。
程序设计:构造最优二叉树:输入入N个叶子节点的权值,找出所有结点中权值最小、无父结点的两个结点,并合并成一个结点,继续在剩下的结点中寻找权值最小的叶子结点,循环合并结点操作,并最终生成最优二叉树,节点在二叉树的深度的编码既是对此组字符的哈夫曼编码。
我们将用自己定义的结构体来表示各个节点,其中结构体中包含权值,左右孩子和父节点,然后用一个select函数来寻找当前最小的两个节点,合并成一个节点,然后继续直到全部合并为一个节点,然后顺着树来将其01编码储存在一个一个字符数组中。
调试过程:由于之前做过哈夫曼编码问题。
因此问题不大,未遇到较难处理的问题。
运行结果:这是实验的截图,从中可以看出,权值比较大的用到的编码的位数比较少,而权值较小的节点则远离根节点。
而且,我们可以从上图看出哈弗曼是一种前缀编码。
实验二算术编码算法分析:算数编码是一种更现代的编码方法,算术编码把整个消息看做一个单元。
在实际的应用中,输入数据同城被分割成块以避免错误传播。
他只传输一个区间的值,从而可以通过迭代得知相应的信息,性能比较好。
程序设计:我们将整个信息的概率设置为1,各个信号的概率给出,则一个字符一个字符的取,当取到某个自腐蚀,则将其限制在{low,high}之间,然后在在这个区间内继续往下细分,不断迭代,最后生成一个数,我们可以寻找在最后区间内的一个最短的二进制码字,记得到编码,解码同样是不断的看在那个范围中。
网络程序设计上机报告
学号:
姓名:
班级:
目录
一.程序思想概述二.实验结果截图三.程序心得体会
一.程序思想概述:
1.题目:
实现一个基于C/S模型的聊天软件
服务端采用并发模型
客户端能连接服务器
服务器能并发处理来自不同的客户端连接
连接时以用户名密码进行身份验证
验证通过后可以进行聊天和传文件
2.程序核心内容:
JDBC Socket通信(服务器能够并发的处理来自不同的客户端连接)字符串匹配3.实现的功能:
1.注册2.登陆3.找回密码
4.私聊5.群聊(可以在群里跟某个人说私话)
6.添加好友7.加入群
8.修改昵称9.传文件
二.实验结果截图
0.服务器启动界面:
1.注册页面
2.登陆
3.找回密码:
4.私聊:
5.群聊:
如图:qq账号1000000、1000002和1000006在群100000中聊天,1000002对所有人说”hi“,然后另外两个人都收到了。
1000002对1000000说”1000000,你好吗“,就只有1000000收到了这条消息。
6.添加好友:
7.加入群:
8.修改昵称:
9.传文件:
三.
程序总结:
Socket通信的模型原理图:。