2020年西安邮电学院 通信软件设计参照模板
- 格式:docx
- 大小:196.35 KB
- 文档页数:8
西安郵電學院
高级程序语言课程设计
报告书
一、实验目的
二、实验内容
内容:
1):熟悉Turbo C的实验环境,按照给定的上机步骤练习完成;
2):熟悉C程序的编辑,编译,连接和运行的过程。
3):编译一个应用系统程序,形成一个软件系统。
三、详细设计及运行结果
1 算法设计
内容:包括如何将题目分解成若干模块的算法设计思想
2模块图设计
内容:主函数流程图,要与标号表现出各模块于主函数的关系
3流程图设计
内容:包括各模块的流程图
四调试情况,设计技巧及体
内容:
1)包括合法与非合法的测试数据、预期结果和实测结果。
最好用表格列出。
2)本人在设计中的收获、遇到的困难,如何克服困难以及基本软件的不足和需要改进的的设想。
3)用简短的文字对本次设计中给与直接帮助的人员表示感谢。
附录:
程序清单、参考文献
格式:
内容部分用宋体、小四号字,代码用Courier New字体、五号。
A4打印纸。
课程设计实验报告010812##跳舞机设计一.设计目的:掌握矩阵键盘和显示接口的硬件设计方法掌握键盘扫描程序和显示程序的编程方法实用程序设计及学习DOS、BIOS调用1.基本功能设计:至少设计4个数码管和4个按键数码管显示的舞蹈动作是随机的可以统计游戏者的分数2.扩展功能:电脑和实验版上可以加一些声光电的效果3.创新功能:,,,作为正常↑→↓←,当作反向应用,即↓←↑→。
二.系统方案:设计思路如下:产生4个随机数,将随机数和方向对应。
将随机方向显示在数码管上,从按键获得方向输入,比较两方向的值。
时间结束将统计到的正确值转换成评分,输出评分等级。
程序分为以下几大部分:主程序,RDNUM,DISPLAY,SCANNUM1,CMPNUM。
其中RDNUM 调用系统时间规范化产生随机数,载入BUF,;DISPLAY则将BUF1的数值在TABEL2查询获得数码管值,并将内容显示出来;SCANNUM1循环调用DISPLAY以维持在扫描键值期间的数码管显示,同时监控按键获得键值,查询TABE1将键值转换为数值,超时则记为-1;CMPNUM调整键值和随机数,将他们的对应域统一,形成映射,比较二者的值;主程序通过循环调用SCANNUM1持续监控按键直到超时,4次调用CMPNUM,统计正确数,最后对结果评分等级NICE,GOOD,PASS,FAIL,调用DISPLAY显示评分。
1.主程序:MOV AX,DATAMOV DS,AX ;数据段段址送DS。
MOV AX,STACKMOV SS,AX ;堆栈段段址送SS。
MOV SP,OFFSET TOP ;获取堆栈指针。
MOV DX,0EE03H ;DX指向8255的D口。
MOV AL,10001001B ;工作方式状态控制字,表示方式0,端口C输出。
OUT DX,AL ;完成8255初始化。
STEP1:CALL FAR PTR RDNUM ;调用RDNUM生成随机数,存储于BUF。
《高级Internet》试验汇报题目: Socket网络编程学生姓名:班级:软件1202班学号:****:***成绩:西安邮电大学计算机学院2023 年 4 月 27 日一、试验目旳①熟悉Socket网络编程②熟悉CS客户机模式③熟悉ServerSocket编写服务端④熟悉使用多线程机制处理业务⑤理解客户机之间通信方式二、试验内容及规定①采用CS模式, 通过客户机向服务器端发送消息;②采用Socket来实现客户机之间旳网络通信;③通过ServerSocket创立服务端来处理接受客户机祈求;④通过多线程方式来处理客户机之间旳通信祈求;⑤实现通信旳界面窗口;⑥试验内容有发送私聊消息、向选中顾客发送文献、顾客接受文献。
三、试验过程1.首先学习了在JAVA语言中TCP/IP协议下旳Socket网络模式图如1.1所示图1.1TCP/IP协议下旳Socket网络模式图(1)由图1.1可以得到, Socket通信旳环节如下:(2)在服务器端创立一种ServerSocket对象并且指定端口号。
(3)运行ServerSocket旳accept()措施, 等待客户端旳祈求。
(4)客户端创立一种Socket对象, 指定计算机旳地址和端口号, 向服务器端发出连接祈求。
(5)服务器端接受到来自客户端旳祈求后, 创立Socket对象与客户端建立连接。
(6)服务器端和客户端分别建立输入输出流进行数据传播。
(7)通信结束后, 服务器端和客户端分别关闭对应旳Socket连接。
2.服务器端程序运行结束后, 调用ServerSocket对象旳close()措施停止等待客户端祈求。
由此可以看出, 对于一种网络通信程序来说, 需要编写服务器端和客户端两个程序才可以实现互相通信, 为了实现一种服务端程序可以对多种客户进行服务, 需要使用到多线程, 在服务器端创立客户祈求旳监听线程, 一旦客户发起祈求连接, 在服务器端创立用于服务旳Socket, 运用改Socket完毕与客户旳通信, 即每个线程针对一种客户进行服务, 数据传播结束后, 终止运行该Socket通信旳线程, 继续在服务器端指定旳端口进行监听。
实验一TCP通信程序设计一.实验目的及实验环境(1)掌握TCP的传输格式。
(2)熟悉TCP的Socket和ServerSocket类的用法,掌握基于TCP Socket的服务器和客户方编程的方法和步骤。
二.实验内容(1)创建服务器和客户程序,在运行客户程序的计算机上输入的内容,可以在服务器屏幕上看到。
(2)实现下面Server程序,目的是能够同时服务多个客户,客户的请求是一句话(一个String)。
如果这个请求的内容是字符串"plain"的话,服务器仅将"hello"字符串返回给用户。
否则将用户的话追加到当前目录的文本文件Memo.txt中(路径为"Memo.txt"),并向用户返回"OK"。
注意Server 并发的处理多用户,Memo.txt被共享,要求不能出现数据不一致。
(3)使用socket编写一个服务器端程序,服务器端程序在端口8888监听,如果它接到客户端发来的"hello"请求时会回应一个"hello",对客户端的其他请求不响应。
三.方案设计1.打开java运行环境;2.把客户端与服务器端的程序写入,进行编译调试;3.程序无错后点击运行,先运行服务器端程序,再运行客户器端的程序;4.在客户端输入字符串,可以相应的看到服务器端有响应。
四.测试数据及运行结果实验一:实验二:实验三:五.总结第一次接触这个仿真软件,无处下手,但是老师说有什么问题直接问不要耽搁时间,我就直接说了我的问题,其实也很简单。
熟悉软件基本操作以后就是完成老师布置的任务了,第一个比较费时间,但是熟悉之后,后面的基本就差不多了。
通过这次试验,对TCP的传输格式有了更深的理解,对TCP的Socket和ServerSocket类的用法熟悉了。
西电协议分析和设计上机报告样本西电协议分析和设计上机报告本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
协议分析与设计上机报告本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
一.实验目的学习和掌握A PROMELA语言,并能在N SPIN上对协议进行模拟和分析。
二.实验题目66--55,且都丢失,接收方没有无线接收能力,这就是我们通常所说的实用停等协议。
请用A PROMELA进行描述,并用N SPIN模拟运行、、一般性验证、、无进展循环验证和人为加入。
错误进行验证。
66--6请根据图图66--616写出著名的的B AB协议的A PROMELA描述,并验证“A”获取的每一个报文至少有一个是正确的,而“B”接收的每一个报文之多有一次是正确的。
S1?b0?b11S4S3?b1!a1!a0?err!b1?a0S2?err S5S2?errS5!a1?b0?a1!b1!b0?err S3S1?a0?a1S4Terminal ATerminal B三.实验分析66--55停止等待协议本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
因为协议条件为报文应答均会出错,,且都丢失,接收方没有无限接收能力,所以此时信道应该有55种信号,分别为::信息,ACK,NAK,出错信号和丢失信号,即mtype={Msg,Ack,Nak,Err,Miss}。
然后定义两个信道,用于在发送方实体和接收方实体进行数据传输。
chan SenderToReceiver=[1]of{mtype,byte,byte};chan ReceiverToSender=[1]of{mtype,byte,byte};主要过程为::发送方发送报文,等待应答,如果是肯定应答则发送下一帧,如果是否定应答或者应答帧出错则重发,发送端通过OutCh!Miss(0,0)来模拟发送报文丢失;接收方接收报文,如果是期望的报文则发送肯定应答,否则发送否定应答,接收端通过InCh?Mis(0,0))模拟应答报文丢失,如果报文丢失,则需要重发报文。
西安郵電學院数字电路课程设计报告书题目:多路彩灯多路彩灯控制器内容摘要:彩灯控制电路可以自动控制多路彩灯按照不同的花型循环显示各种灯光变换花型,它主要由定时器、控制电路、编码发生器、彩灯等几部分组成。
一设计内容及要求:1.设计内容:设计一个带有三种花型的八路循环变换彩灯电路。
扩展内容:采用不同频率来控制各种花型的变化速度。
2.设计要求:彩灯控制器是以高低电平来控制彩灯的亮与灭,如果以某种节拍按一定规律改变彩灯的输入电平值,控制彩灯的亮与灭,即可以按照预定规律显示一定的花型。
因此彩灯控制电路需要一个能够按一定规律输出不同高低电平编码信号的编码发生器,同时还需要编码发生器所要求的时序信号和控制信号。
综上所述,彩灯控制器应该由定时器、控制电路、编码发生器等组成。
二电路工作原理:定时电路产生一个连续的脉冲信号,用来提供给计数器和花型输出电路,其中定时器由简单的555振荡器来实现,而用两片161芯片级联来设计一个模48的计数器,其中低位片为模16,高位片为模3。
用两片194芯片来设计花型输出电路,再用一片151八选一数据选择器进行控制花型输出电路的左移和右移。
该电路一共有三种花型分别为:三电路所需元器件:四确定系统设计方案,画出系统框图:多路彩灯控制器系统框图如下所示:各模块的设计:1.定时器:该部分主要由555芯片设计而成,其中需要两个不同阻值的电容和两个不同阻值的电阻连接而成。
它的主要作用是产生该彩灯控制电路所需的cp脉冲。
它产生的脉冲频率为1Hz。
定时电路的设计图如下:2.计数器的设计:在该模块里我主要采用两片161进行级联来设计一个模48 的计数器,其中它的低位片为模16的,它的高位片位模3的。
当低位片满16则向高位片进1,当高位片的低两位都为1时进行置位,并且低位片的CO端输出后取非再送给后面两个194芯片的CLEAR端来对每个花型变换完成后进行清零。
计数器的模块设计图如下:3.数据选择器的设计:在这个电路中,主要使用数选器来控制选择每种花型的左移、右移以及花型变换,其中它的数据输入端中A端与计数器高位端输出的QA连接,而B端则与计数器高位端输出的QB相连接。
南邮毕业设计模版南京邮电大学毕业设计(论文)题目认知协作中继通信MAC设计专业通信工程学生姓名梁原班级学号B080209 B08020930指导教师田峰指导单位通信工程系日期:年月日至年月日毕业设计(论文)原创性声明本人郑重声明:所提交的毕业设计(论文),是本人在导师指导下,独立进行研究工作所取得的成果。
除文中已注明引用的内容外,本毕业设计(论文)不包含任何其他个人或集体已经发表或撰写过的作品成果。
对本研究做出过重要贡献的个人和集体,均已在文中以明确方式标明并表示了谢意。
论文作者签名:日期:年月日摘要无线Mesh协作中继网是一种基于无线Mesh网的网络结构,它通过引入协作中继通信的概念来优化其结构、提升其性能。
本文在该类网络中提出了一种新的MAC协议设计方案,该方案研究了Mesh协作中继通信中中继节点的选取问题。
在该MAC协议中,当目的节点接受数据出现差错时,它向各个中继节点广播发送重传帧(Retran),中继节点根据相应算法设置计时器,竞争产生最佳机会中继节点,之后该最佳机会中继节点向目的节点重新传送数据信号。
仿真表明,当网络中选取合适的中继节点数时,该MAC协议可有效改善网络的误比特率和吞吐量,提高通信质量。
关键词:无线Mesh网络;协作中继;MAC协议ABSTRACTWireless Mesh cooperative relaying network is a networkstructure which bases on wireless Mesh network. It optimizes its structure and enhances its performance by using cooperative relaying. This paper proposes a novel cooperative MAC design which discusses the selection of relaying nodes in Wireless Mesh cooperative relaying network. In this new protocol, the destination node will broadcast Retran frames to relaying nodes when it can't receive data from the source node correctly. After that, those relaying nodes will set their timers according to the selection algorithm to compete for the best opportunistic relaying node which will send correct data to the destination node. Experimental results show that this new MAC protocol distinctly improves the performance of the network when the number of relaying nodes is proper. Key words: Wireless Mesh Network; Cooperative Relaying; MAC Protocol目录第一章绪论 (1)1.1无线M ESH网的发展背景和概况 (1)1.2协作中继通信的发展背景和概况 (1)1.3本文的结构与安排 (2)第二章 MESH网络与协作中继通信 (3)2.1无线M ESH网络概述 (3)2.1.1无线Mesh网络的特点 (3)2.1.2无线Mesh网络的结构分类 (4)2.1.3无线Mesh网络的优势 (4)2.1.4无线Mesh网中存在的问题 (5)2.1.5无线Mesh网络的应用 (6)2.2协作中继通信概述 (7)2.2.1协作通信的理论原理 (8)2.2.2协作通信的特点 (8)2.2.3协作通信的分类 (9)2.3无线M ESH中继协作网概述 (9)第三章 MESH网络中MAC协议的介绍分析 (11) 3.1M ESH网络MAC协议的概述 (11)3.2M ESH下的MAC调度机制 (11)3.3M ESH网络MAC协议技术标准 (11)3.3.1IEEE 802.11MAC协议 (11)3.3.2IEEE 802.16MAC协议 (12)3.4M ESH网络MAC协议存在的问题 (12)3.4.1隐藏节点和暴露节点问题 (12)3.4.2广播消息问题 (13)3.4.3QoS服务问题 (14)3.5M ESH网络MAC协议研究方向 (14)第四章 MESH网络新的协作MAC设计 (15) 4.1场景描述 (15)4.2模型的理论设计 (15)4.2.1机会中继 (15)4.2.2协作中继通信过程描述 (16)4.2.3中继节点的选择 (18)4.2.4系统性能仿真算法及流程图 (19)4.3仿真实验及结果分析 (20)4.3.1通信环境 (20)4.3.2仿真结果分析 (21)4.4模型的改进方案 (25)4.4.1改进中继节点选择标准 (25)4.4.2改变中继信道 (25)4.4.3改进编码方案 (25)结束语 (27)致谢 (28)参考文献 (29)第一章绪论无线Mesh网络,英文全称Wireless Mesh Network(WMN),又称无线网状网,随着无线宽带接入Internet业务需求的迅速增长,凭借其易组网、高速率、成本低、性能稳定等优点,已日益引起人们的注意。
附件1西安邮电学院专业课程设计报告书系部名称:通信与信息工程学院学生姓名:专业名称:通信工程专业班级:时间:2011年10月10日至2011年10月21日附件2 西安邮电学院 通信工程 系 专业课程设计 成绩鉴定表 学生姓名专业班级/学号进行时间 2011年10月10日 — 2011年 10 月21日题目专业课程设计具体内容第一周基础型实验模块(实验一—实验四) 第二周 基础型实验模块(实验五—实验六) 提高型实验模块(实验一—实验五)成绩鉴定接受单位评价 (20分)学习态度(10分)学习纪律(10分)报告鉴定 (30分) 报告内容与教学计划内容结合程度(15分)报告质量(主题、结构、观点、逻辑、资料)(15分)验收鉴定 (50分)程序的合理性(15分)调试过程(20分) 调试结果(15分)评阅教师姓名职称成绩评语评阅教师签字年 月 日实验一时间表调度实验一、实验目的时间调度表实验用来考查自己对时间表调度原理的掌握情况。
二、实验原理及设计在程控数字交换的体系结构中,周期级程序(例如摘挂机检测程序、脉冲识别程序、位间隔识别程序)是由时间表调度实现的。
所谓时间表调度,是指每经过交换系统的最短有效时间(这通常是指各周期性程序周期的最大公约数),都会检查调度表的调度要求,如果某个程序在这时需要执行,则调度程序开始执行它。
调度表任务如下进行初始化:时间(10ms)\任务0:摘挂机检测任务1:脉冲检测任务2:位间隔检测任务0 0 1 01 0 1 02 0 1 03 0 1 04 0 1 05 0 1 06 0 1 07 0 1 08 0 1 09 0 1 110 0 1 011 0 1 012 0 1 013 0 1 014 0 1 015 0 1 016 0 1 017 0 1 018 0 1 019 1 1 1这个交换系统提供了三个周期性调度程序(摘挂机检测程序、脉冲识别程序和位间隔识别程序),它们的调用周期分别为200ms、10ms和100ms,所以我们系统的最小调度时间为10ms。
西安邮电学院毕业设计(论文)题目:QPSK调制器的设计学院:电子工程学院系部:光电子技术系专业:电子科学与技术班级:科技0705学生姓名:吴建建导师姓名:郑燕职称:副教授起止时间:2011年3月28日至2011年7月1日西安邮电学院毕业设计(论文)任务书学生姓名吴建建指导教师郑燕职称副教授学院电子工程学院系部光电子技术系专业电子科学与技术题目QPSK调制器的设计任务与要求任务:1.掌握FPGA的工作原理;2.利用FPGA完成QPSK调制器的设计;3.完成毕业论文的撰写。
要求:1 了解VHDL语言及其编程;2 熟悉QUARTUS 2软件,并且会运用;3 有一定的数字系统设计能力;4 熟悉通信原理的相关知识。
开始日期2011年3月28日完成日期2011年7月1日主管院长(签字) 年月日西安邮电学院毕业设计 (论文) 工作计划学生姓名吴建建指导教师郑燕职称副教授学院电子工程学院系部光电子技术系专业电子科学与技术题目QPSK调制器的设计工作进程起止时间工作内容2011.3.28-2011.4.3阅读相关资料,写出开题报告。
2011.4.4-2011.5.1阅读指导教师提供的参考资料;复习VHDL语言、QUARTUSII软件、数字通信相关知识;掌握QPSK调制器的设计方法;学习相关实验设备的使用。
2011.5.2-2011.6.12应用VHDL语言设计QPSK调制器,利用QUARTUSII软件对所设计的电路进行仿真验证。
2011.6.13-2011.7.1撰写毕业设计论文,准备毕业答辩。
主要参考书目(资料)1. 郑燕,赫建国,党剑华编著:《基于VHDL语言与QuartusII软件的可编程器件的应用与开发》,国防工业出版社2. 潘松,黄继业编著:《EDA技术与VHDL》,清华大学出版社3. 侯伯亨,顾新编著:《VHDL硬件描述语言与数字逻辑电路设计》(修订版),西安电子科技大学出版社4. 罗朝霞,高书莉编著:《CPLD/FPGA设计及应用》人民邮电出版社5. 樊昌信编著:《通信原理》,国防工业出版社主要仪器设备及材料微机一台及相应的仿真平台论文(设计)过程中教师的指导安排每周固定进行一次设计指导。
西安郵電學院软件设计报告题目:小区物业管理系统院系名称:电子工程学院专业名称:光电信息工程班级:光电1101学生姓名:张萌学号(8位):05114014指导教师:王西龙设计起止时间:2012年04月09日~2012年04月23日一. 设计目的进一步掌握和利用C语言进行程设计的能力,理解和运用结构化程设计的思想和方法,熟练掌握条件语句、循环、数组、函数操作,初步掌握开发一个小型实用系统的基本方法,学会高度一个较长程序的基本方法和利用流程图或N-S图表示算法,将本课程所学的知识合理地运用于实践当中。
了解一些书上没有的函数及使用方法。
二. 设计内容小区管理系统设计:小区管理系统包括小区成员的所住单元、住户号、工作单位姓名、电话号码等信息;——小区管理系统主要提供以下功能:1.系统的登录界面(主要包括用户名、密码的设置、新用户的创建、密码的修改等);2.系统以菜单方式工作3.住户信息录入功能——输入4.住户信息浏览功能——显示5.住户信息查询、修改、增加功能(1)按姓名(2)按电话号码6.住户信息删除功能7.住户信息以文件方式保存、读取8.住户信息的统计三.概要设计1.功能模块图依据程序的数据结构和功能,遵照“自顶向下”原则,采用基于函数的逐步求精法,描述该程序的层次结构:2.各个模块功能的详细描述●主函数: main();●登录菜单:⑴. 进入主菜单:menu();⑵.修改密码函数: repassword();⑶.登录界面函数: print1();⑷创建用户函数: usercreat();●主菜单:⑴输入函数:head=create();⑵输出函数:print(head);⑶住户信息文件的保存函数:save_inf(head);⑷住户信息文件的读取函数:head=read_inf();⑸住户信息的查找函数:find(head);⑹住户信息的修改函数:re(head);⑺住户信息的删除函数:delete(head);⑻住户信息的添加函数:add(head);⑼信息的排序:sort(head);⑽住户信息的统计:count(head);四.详细设计1.功能函数的调用关系图2.各功能函数的数据流程图①输出函数print()的流程图开始执行while循环执行printf()语句结束○2输入函数create()的流程图开始Printf()提示语句;Scanf()语句输入数执行While()语依次查找链表再执行scanf()语句结束○3执行查找函数find()流程图开始执行while循环语句执行if判断语句结束○4执行修改函数re()的流程图开始执行while语句进行查找执行if语句进行判断执行while语句进行选择要修改的内容结束○5执行删除函数delete的流程图开始If语句判断节点是否为空执行while进行查找要删除的节点结束○6添加函数add的流程图开始执行scanf语句输入要添加的信息执行while语句查找添加的位置结束○7执行排序sort函数的流程图开始执行for循环统计节点的数目执行for循环节点一到尾部执行for循环找最大节点执行for循环给最后尾节点排序结束3.重点设计及编码1)密码输入函数(实现密码能够再输错的情况下修改);编码:printf("\n\n**-----------请输入密码(6位)login in: ");for(i=0;i<7;i++){mima[i]=getch();if(mima[i]=='\r')break;if(mima[i]=='\b'){printf("\b \b");i=i-2;}else if(mima[i]!='\r')printf("*");}mima[i]='\0';2)从文件中实现一次读取:编码:fp=fopen("mima.txt","rt");while(fscanf(fp,"%s %s",n,a)!=EOF){if(strcmp(mima,a)==0&&strcmp(root,n)==0)//进行判断是否一致{printf("\n\n***********恭喜你登录成功!***********\n");lead();break;}}fclose(fp);if(fp==NULL){printf("\n\n*-----抱歉登录指令错误,请选择(3)重新登录!-------*\n");}3)登录函数实现与主体函数的链接:编码:lead(){printf("*************** ----- 欢迎进入登录界面-----*************************\n\n");printf("*-------------------------1.进入主菜单--------------------------------*\n");printf("*-------------------------2.修改密码----------------------------------*\n");printf("*-------------------------3.重新登录----------------------------------*\n");printf("*-------------------------4.创建用户----------------------------------*\n");printf("*-------------------------0.退出系统----------------------------------*\n");printf("***************************************************** ******************\n");}4)输入函数找准链表节点进行输入:编码:struct person *head,*p1,*p2;head=p2=(struct person *)malloc(N); /* head *p2都指向头结点*/printf("请输入: 单元号户号姓名性别工作单位电话号码(输入户号0结束)\n");p1=(struct person *)malloc(N);scanf("%s%ld%s%s%s%s",p1->num,&p1->num1,p1->name,p1->sex,p1->com, p1->tel);while(p1->num1!=0){p2->next=p1;/* 将新结点连接到表尾*/p2=p1; /* p2指向新的表尾*/p1=(struct person *)malloc(N);/* p1指向新申请的结点*/scanf("%s%ld%s%s%s%s",p1->num,&p1->num1,p1->name,p1->sex,p1->com,p1-> tel);}p2->next=NULL;/* 表尾结点next域置空*/free(p1); /* 释放无效空间*/return head; }5)文件的保存函数与读取函数要保持一致:编码:for(stu=h->next;stu!=NULL;stu=stu->next)fprintf(fp,"%s %ld %s %s %s %s\n",stu->num,stu->num1,stu->name,stu->sex,stu-> com,stu->tel); /*格式化字符串写函数*/printf("\n文件已成功保存,按任意键返回!\n");getch(); /* 从键盘上输入一个字符但不会现在屏幕上*/fclose(fp); /* 将文件所指的指针FP关闭*/}fscanf(fp,"%s %ld %s %s %s %s\n",stu->num,&stu->num1,stu->name,stu->sex, stu->com,stu->tel);/*格式化字符读函数*/r->next=stu;r=stu;}r->next=NULL; /*尾指针置空*/fclose(fp);6)排序函数关键在找最大节点的位置时能记录前一节点的位置:编码:struct person *p,*pre1,*pre2,*r,*s;int count=0,i;for(s=h;s->next!=NULL;s=s->next) /*统计节点数*/{count++;}for(s=h;s->next!=NULL;s=s->next); /*循环体语句为空,找尾节点*/for(i=1;i<count;i++){pre1=h; /*pre1指向r前的一个节点*/pre2=h->next; /*pre2指向p前的一个节点*/r=pre1->next;p=pre2->next;while(p!=s)//不等于尾节点{if(p->num1>r->num1){pre1=pre2; /*指针r始终指向数据较大的节点*/r=p;}pre2=pre2->next;//依次往下查找p=p->next;}pre1->next=r->next; //释放最大的节点r->next=s->next;//给s节点附上新的节点s->next=r;}for(p=s->next,pre1=s;s->num1>p->num1;pre1=pre1->next,p=p->next);//给s节点后的进行排序h->next=s->next;//找到插入的位置s->next=p;pre1->next=s;printf("按任意键继续\n");getch();7)修改函数中要实现能对修改选项的选择:编码:while(p->next!=NULL){p=p->next; /* 继续查找*/if(strcmp(p->name,name)==0){while(choice!=0)/* 进行选择修改信息*/{printf("请输入要修改的选项:1.单位号 2.房户号 3.工作单位 4.电话号码0:退出\n");printf("请选择(0--4):");scanf("%d",&choice);if(choice==1){printf("请输入新的单位号: ");scanf("%s",p->num);}if(choice==2){printf("请输入新的房户号: ");scanf("%ld",&p->num1);}if(choice==3){printf("请输入新的工作单位: ");scanf("%s",p->com);}if(choice==4){printf("请输入新的电话号码: ");scanf("%s",p->tel);}}}return 1;}return 0;8)删除函数关键在找要删除节点的位置:编码:while(p!=NULL){if(strcmp(p->name,name)==0) /* 找到要删除的节点*/{p0->next=p->next; /*后续结点链接到前驱结点之后*/free(p);return 1;}p0=p; /* 移向指针继续查找*/p=p->next;9)添加函数关键在找到要添加的位置:编码:while(p0->next!=NULL&& p0->next->name==p->name)p0=p0->next; /* 继续查找添加的位置*/if(p0->next!=NULL&& p0->next->name==p->name){free(p);/* 释放新结点的存储空间*/return 0; /* 不添加就返回0*/}p->next=p0->next;/*后续结点连接到新结点之后*/p0->next=p; /* 新节点连接到前驱接点之后*/10)统计函数在于实现住户单元号相同与不同的情况下的记录:编码:struct person *p;sort(h);i=0,j=0,dcount=0;drcount[j]=0;for(p=h->next,d[i]=p->num,dcount=1;p!=NULL;p=p->next){count++; //统计总人数if(d[i]!=p->num)//楼号不相等则继续查找{i++;d[i]=p->num;dcount++;j++;drcount[j]=1;//该栋楼人数加为1}elsedrcount[j]++; //统计每栋住户楼的人数}五.测试数据及运行结果1.正常数据及运行结果从文件中读取信息从键盘中输入信息住户信息的删除住户信息的修改住户信息的添加2.异常测试数据及运行结果六.调试情况,设计技巧及体会1、通过这次实习,我丰富了计算机操作经验,更加深了对C语言的了解,熟悉了其环境,更增强了对WIN—TC和C++的使用技巧。
通信系统综合设计题目________________________________ 班级________________________________ 学号________________________________ 姓名________________________________摘要仿真QPSK系统通过AWGN信道的误符号率(SER)和误比特(BER),发送端采用GRAY编码映射,基带脉冲采用矩形脉冲。
每个脉冲抽样点数为8。
关键词:目录一、设计的目的和意义 (1)1.1 引言 (1)二、设计原理 (2)2.1 XX原理介绍 (2)2.1.1 三级标题 (2)2.2 系统框图 (2)2.2.1 三级标题 (4)三、详细设计步骤 (5)3.1 M文件实现 (5)3.1.1 三级标题 (5)3.2 SIMULINK实现 (5)3.2.1 三级标题 (5)四、设计结果及分析 (12)4.1 M文件仿真分析 (12)4.1.1 三级标题 ................................................................... 错误!未定义书签。
4.2 SIMULINK仿真分析............................................................... 错误!未定义书签。
4.2.1 三级标题 ................................................................... 错误!未定义书签。
五、心得体会 (13)参考文献 (14)一、设计的目的和意义1.1 课题背景相移键控(PSK)是在太空计划中早期发展起来的,现广泛用于军事和商用通信系统中。
QPSK是英文QuadraturePhaseShiftKeying的缩略语简称,意为正交相移键控,是一种数字调制方式。
西安科技大学移动通信课程设计报告移动通信系统中切换技术的分析与研究专业:通信工程班级:1004班姓名:范琳琳学号:1007020404成绩:姓名:王维学号:1007020409 成绩:姓名:何盼盼学号:1007020414成绩:姓名:聂沛学号:1007020418成绩:姓名:李洋学号:1007020423成绩:设计时间:2013/7/8-2013/7/11 审阅教师:孙翠珍西安科技大学通信通信学院目录移动通信系统中切换技术的分析与研究 01.设计任务 (3)1.1设计提示 (3)1.2设计要求 (3)2.方案设计与论证 (3)2.1 移动通信的发展历程 (3)2.1.1 第一代蜂窝移动电话系统(1G) (4)2.1.2 第二代蜂窝移动电话系统(2G) (4)2.1.3 第三代蜂窝移动电话系统(3G) (4)2.2切换的目的及技术 (5)2.2.1 切换的目的 (5)2.2.2 切换实现的技术 (5)2.3第二代移动通信系统的切换技术及参数分析 (6)2.3.1 GSM 系统 (6)2.3.2 IS-95窄带CDMA系统 (10)2.4第三代移动通信系统的切换技术及参数分析 (12)2.4.1 WCDMA的切换技术 (12)2.4.2 CDMA2000的切换技术 (12)2.4.3 TD-SCDMA的切换技术 (15)2.4.4 WiMAX系统的切换技术 (17)2.5 4G网络切换的简单介绍 (18)2.6 三种3G标准切换技术的分析比较 (19)2.7 硬切换、软切换与接力切换的相互比较 (20)2.7.1 硬切换和接力切换的区别 (20)2.7.2 硬切换与软切换的区别 (20)2.7.3 接力切换和软切换的比较 (20)3.分析与总结 (20)参考文献: (21)1.设计任务1.1设计提示1、在移动通信系统中的规划和设计中,无线资源的管理与控制居于中心地位,对系统的整体性能产生重要的影响,而切换是无线资源管理功能中重要一部分,直接影响着系统的容量和服务质量,同时也是蜂窝移动系统所独有的功能和关键特征。
通信课程设计模板图一、教学目标本课程的教学目标是让学生掌握通信原理的基本知识,了解通信系统的工作原理和组成,能够运用通信理论知识分析实际问题。
具体分为以下三个部分:1.知识目标:学生能够理解并掌握通信系统的基本概念、调制解调技术、信号传输原理等通信理论知识。
2.技能目标:学生能够运用所学知识分析通信系统的工作过程,能够进行简单的通信系统设计和优化。
3.情感态度价值观目标:培养学生对通信技术的兴趣和热情,使学生认识到通信技术在现代社会中的重要性,增强学生的社会责任感和使命感。
二、教学内容本课程的教学内容主要包括通信系统的基本概念、调制解调技术、信号传输原理等。
具体安排如下:1.第一章:通信系统概述,介绍通信系统的基本概念、分类和性能指标。
2.第二章:模拟通信系统,讲解调制解调技术、信号传输原理以及模拟通信系统的组成。
3.第三章:数字通信系统,介绍数字通信的基本原理、数字调制解调技术以及数字通信系统的性能评估。
4.第四章:现代通信技术,概述卫星通信、光纤通信、移动通信等现代通信技术的发展和应用。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学。
具体包括:1.讲授法:教师通过讲解、阐述通信理论知识,使学生掌握基本概念和原理。
2.案例分析法:教师通过分析实际案例,使学生了解通信系统的工作过程和应用场景。
3.实验法:学生通过动手实验,加深对通信原理的理解和掌握。
4.讨论法:教师引导学生进行分组讨论,培养学生的团队协作能力和解决问题的能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《通信原理》,为学生提供系统、全面的通信理论知识。
2.参考书:《现代通信技术》,拓展学生对现代通信技术的了解。
3.多媒体资料:通过PPT、视频等形式,直观地展示通信系统的工作原理和应用场景。
4.实验设备:提供通信实验箱等实验设备,让学生动手实践,提高实际操作能力。
五、教学评估为了全面、客观地评估学生的学习成果,本课程将采用以下评估方式:1.平时表现:通过课堂参与、提问、小组讨论等环节,评估学生的学习态度和课堂表现。
西安邮电学院实验报告课程通信软件设计开课时间至学年第学期这个软件主要功能是以UDP为基础实现两台电脑之间收发简单文本消息。
软件全部使用java编写,并以JavaBuilder8为工具进行编写与调试。
布局方式采用NULL方式,主要使用AWT的组件和部分SWING的组件。
使用方法如下:1 首先在输入IP地址的输入栏中输入想与之进行通信的主机的IP地址,即消息接受方的IP地址。
2 在消息编辑框中输入想发送的消息内容。
3 编辑完欲发送的消息后,点击“发送消息”按钮进行发送;4 双方发送的消息和发送方与接受方的IP地址都会在下面的空白区域----“频道”内显示。
6 如果没有输入IP地址便发送编辑完的文本消息,空白区域内会显示出提示信息提示用户应输入接受方的IP地址。
7 当频道内显示的消息太多时,可以按”刷新频道”来清除频道内全部信息!软件运行时候的抓图:本机测试结果的抓图效果程序代码与简要说明1 chatFrame类的代码:package chat;import .*;import java.io.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;/*** <p>Title: </p>* <p>Description: </p>* <p>Copyright: Copyright (c) 2004</p>* <p>Company: </p>* @author not attributable* @version 1.0*/public class chatFrame extends JFrame {JPanel contentPane;Label label1 = new Label();TextField textField1 = new TextField();Label label2 = new Label();TextField textField2 = new TextField();Button button1 = new Button();TextArea textArea1 = new TextArea();DatagramPacket sendpacket,receivepacket; //定义发送和接受数据包DatagramSocket sendsocket,receivesocket;//定义发送和接受DatagramSocket//Construct the framepublic chatFrame() {enableEvents(AWTEvent.WINDOW_EVENT_MASK);try {jbInit();}catch(Exception e) {e.printStackTrace();}}//Component initializationprivate void jbInit() throws Exception { //定义个组件和他们的布局contentPane = (JPanel) this.getContentPane();label2.setAlignment(Label.CENTER);label2.setFont(new java.awt.Font("SansSerif", 0, 15));label2.setForeground(Color.black);label2.setText("消息编辑框");label1.setBounds(new Rectangle(14, 17, 133, 32));contentPane.setLayout(null);this.setSize(new Dimension(500, 400));this.setTitle("用UDP实现聊天");textField1.setBackground(SystemColor.text);textField1.setColumns(0);textField1.setFont(new java.awt.Font("Dialog", 0, 16));textField1.setText("");textField1.setBounds(new Rectangle(129, 72, 200, 61));label1.setAlignment(Label.CENTER);label1.setFont(new java.awt.Font("Dialog", 0, 15));label1.setText("输入对方IP地址");label2.setBounds(new Rectangle(23, 86, 108, 28));try{sendsocket=new DatagramSocket(5000); //初始化receivesocket=new DatagramSocket(5001);}catch(SocketException se){ //可能产生Socketexception类的异常se.printStackTrace();System.exit(0);}button1.setBackground(Color.magenta);button1.setFont(new java.awt.Font("Dialog", 0, 13));button1.setLabel("发送消息");button1.setBounds(new Rectangle(374, 23, 88, 42));button1.addActionListener(new java.awt.event.ActionListener (){public void actionPerformed(ActionEvent e){button1_actionPerformed(e);}});textField2.setBackground(SystemColor.activeCaptionBorder);textField2.setFont(new java.awt.Font("Dialog", 1, 18));textField2.setLocale(java.util.Locale.getDefault());textField2.setText("");textField2.setBounds(new Rectangle(166, 21, 169, 29));textArea1.setFont(new java.awt.Font("Dialog", 0, 13));textArea1.setText("");textArea1.setBounds(new Rectangle(46, 157, 382, 185));contentPane.setBackground(new Color(113, 111, 159));jButton1.setBackground(Color.pink);jButton1.setBounds(new Rectangle(374, 86, 87, 42));jButton1.setFont(new java.awt.Font("Dialog", 0, 13));jButton1.setText("刷新频道");jButton1.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(ActionEvent e) {jButton1_actionPerformed(e);}});contentPane.add(label1, null);contentPane.add(textField2, null);contentPane.add(textField1, null);contentPane.add(label2, null);contentPane.add(textArea1, null);contentPane.add(jButton1, null);contentPane.add(button1, null);}//Overridden so we can exit when window is closedprotected void processWindowEvent(WindowEvent e) {super.processWindowEvent(e);if (e.getID() == WindowEvent.WINDOW_CLOSING) {System.exit(0);}}public void waitforpackets(){ //这个方法完成接受数据包的功能while(true){try{byte[]array=new byte[100];receivepacket=new DatagramPacket(array,array.length);//创建接受数据包的缓冲receivesocket.receive(receivepacket);//接受数据包textArea1.append("\nfrom "+receivepacket.getAddress() +" : ");byte data[]=receivepacket.getData();String received=new String(data,0);//将字节数组转化为字符串textArea1.append(received);}catch(IOException se){//可能产生的IOException类异常textArea1.append(se.toString() +"/n");se.printStackTrace();}}}void button1_actionPerformed(ActionEvent e){//这个方法完成发送数据包String str = textField2.getText();if(pareTo("")!=0){try{textArea1.append("\nto "+textField2.getText() +" : "+textField1.getText());String s=textField1.getText();byte data[]=new byte[100];s.getBytes(0,s.length(),data,0);sendpacket=new DatagramPacket(data,s.length(),InetAddress.getByName(textField2.getText()),5001);//创建发送的数据包sendsocket.send(sendpacket);//发送数据包}catch(IOException exc){textArea1.append(exc.toString() +"\n");exc.printStackTrace();}}elsetextArea1.setText("please input your friend's IP first!");}JButton jButton1 = new JButton();void jButton1_actionPerformed(ActionEvent e) {textArea1.setText("");}}2.chatapp类的代码:package chat;import .*;import java.io.*;import javax.swing.UIManager;import java.awt.*;/*** <p>Title: </p>* <p>Description: </p>* <p>Copyright: Copyright (c) 2004</p>* <p>Company: </p>* @author not attributable* @version 1.0*/public class chatApp {boolean packFrame = false;//Construct the applicationpublic chatApp() {chatFrame frame = new chatFrame();//Validate frames that have preset sizes//Pack frames that have useful preferred size info, e.g. from their layoutif (packFrame) {frame.pack();}else {frame.validate();}//Center the windowDimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();Dimension frameSize = frame.getSize();if (frameSize.height > screenSize.height) {frameSize.height = screenSize.height;}if (frameSize.width > screenSize.width) {frameSize.width = screenSize.width;}frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);frame.setVisible(true);frame.waitforpackets();}//Main methodpublic static void main(String[] args) {try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}catch(Exception e) {e.printStackTrace();}new chatApp();}}。