首页

毕业论文

首页 毕业论文 问题

基于c型槽天线的毕业论文

发布时间:

基于c型槽天线的毕业论文

5G通信是未来移动通信系统一个新的发展方向,当前这种技术还不是很成熟,处于探索和研发阶段。下面是我带来的关于5g通信技术论文的内容,欢迎阅读参考!5g通信技术论文篇一:《5G无线通信通信系统的关键技术分析》 摘要:5G无线通信是未来移动通信系统一个新的发展方向,当前这种技术还不是很成熟,处于探索和研发阶段。笔者在对5G无线通信技术系统进行简要介绍的基础之上,重点针对了5G无线通信系统的大规模MIMO 技术、超密集异构 网络技术 和全双工技术进行论述。 关键词:5G无线通信大规模MIMO 技术全双工技术超密集异构网络 引言: 经过了几十年的发展,移动通信使得人们生活和工作得到了翻天覆地的变化。当今已进入了信息化发展的新时代,由于移动终端越来越普及,使得多媒体数据业务的需求量极具增长。可以预测到,移动通信网络将在2020年增长1000倍的容量和100倍的连接数,众多的用户接入以及很低的营运成本的需求也会随之出现。因此,对5G 无线网络 技术的研究就显得格外重要。鉴于此,笔者希望本文的论述能够对5G无线通信网络技术的研究起到抛砖引玉的作用。 一、5G无线通信系统概述 5G无线通信和4G相比具有更高的传输速率,其覆盖性能、传输时延以及用户体验方面比4G更加良好,5G通信和4G通信之间有效的结合将贵构成一个全新的无线移动通信网络促进其进一步扩展。当前国内外对5G无线通信技术的研究已经进入到了深入时期,如2013年欧盟建立的5G研研发项目METIS(mobile and wireless communications enablers for the 2020 information society)项目,中国和韩国共同建立的5G技术论坛以及我国的813计划研发工程的启动。 由此可以看出5G无线通信是移动互联网在外来发展的最为重要的驱动力,将对移动互联网作为未来新兴业务的基础平台起到了重要的推动作用。而当前在互联网进行的各种业务大多都是通过无线传播的方式进行,而5G技术对这种传输的效率和传输质量提出了更高的要求。而将5G通信系统和 其它 通信系统进行有效的结合以及无缝的对接是5G无线通信技术研究的主要方向和目标。因此,在5G无线蓬勃发展的今天,其技术的发展主要呈现出以下特点: 首先,5G通信技术系统更加注重用户体验,而良好的用户体验主要是以传输时延、3D交互游戏为主要支撑来实现。 其次,5G无线通信系统以多点和多用户协作的网络组织是其与与其它通信系统相比最为明显的特点和优势,这种网络组织系统使得系统整体的性能得到了极大的提升。 再次,5G无线通信系统和其它通信系统相比应用到了较多的高端频谱,但是高端频谱无线电波穿透能力有限,因此,有线和无线相结合是系统采取的最为普遍的组成形式。 二、5G无线通信通信系统的关键技术 (一)大规模MIMO 技术 1技术分析 在多种无线通信系统中已经普遍采用了多天线技术,这种技术能够有效的提升通信系统的频谱效率,例如,3G系统、LTE、LTE-A、WLAN 等.频谱效率是随着天线数量的增多而效率随之提高。MIMO信道容量的增加和收发天线的数量呈现出近似线性的关系,因此在5G无线系统内采取较多数量的天线是为了有效的提高系统容量。但是当前系统收发终端配备的收发天线数量不多,这是由于天线数量的增多使得系统的空间容量会被压缩,并且多数量天线技术复杂所造成的。 但是,大规模MIMO 技术的优势还是非常明显的,主要体现在以下几个方面:首先,大规模MIMO分辨率更强,能够更加深入挖掘到空间维度资源,从而使得多个用户能够在大规模MIMO的基站平台上实现同一频率资源的同时通信,因此,使得能够实现小规模数量基站的前提下高频谱的信息传输。其次,大规模 MIMO抗干扰性能强,这是由于其能够将波束进行集中。再次,能够极大程度的降低发射功率,提高发射效率。 2我国的研究和应用现状 我国对大规模MIMO 技术的研究主要是集中在信道模、信道容量以及传输技术等方面,在理论模型和实测模型方面的研究比较少,公认的信道模型当前还没有建立起来,而且传输方案都是采用TTD系统,用户数量少于基站数量使得导频数和用户数呈现出线性增长的关系。除此之外采用矩阵运算等非常复杂的运算技术来进行信号检测和信息编码。因此,我国要充分挖掘MIMO 技术的内在优势,结合实际来对通信信道模型进行深入的研究,并且在频谱效率、无线传输 方法 、合资源调配方法等方面应当进行更多的有效分析和研究。 (二)全双工技术 所谓全双工技术就是指信息的同时传输和同频率传输的一种通信技术。由于无线网络通信系统在信息传输过程中传输终端和接受终端存在一种固有的信号自干扰。全双工计划苏能够充分的提高频率利用率,以实现多频率的信息的信息传输,从而改变了一般通信系统不能够实现同频率和双向传输的技术现状,因此这种技术已经成为无线通信技术当前研究的一个重要的关键点。这种技术应用在5G无线通信系统中能够实现无线频谱资源得到充分的挖掘和利用。当前5G无线通信系统由于接受信号的终端和发射信号的终端频率之间存在着较大的差异,使得其产生自干扰的现象比较突出,是5G无线通信技术发展的一个主要瓶颈,因此,全双工技术在5G无线通信系统内有效的应用使得信号自干扰的问题能够通过相互抵消的方式得到有效的解决。通过模拟端干扰抵消、对已知的干扰信号的数字端干扰抵消等各种新的干扰技术的发展以及这些技术的有效结合使得极大多数信号之间的自干扰现象都基本上得到了有效的抵消。 (三)超密集异构网络技术 5G无线通信通信系统不仅包括无线传输技术,而且也包括后续演化的无线接入技术,因此,5G网络系统就是各种无线接入技术,例如,5G,4G,LTE, UMTS (universal mobile telecommunications system)以及wireless fidelity等技术共同组成的通信系统,在系统内部,宏站和小站共同存在,例如,Micro,Pico,Relay以及Femot等多层覆盖的异构网络。在异构网络内部,运营商和用户共同部署基站,而用户部署的主要是一些功率较低的小站,并且节点的类型也比较多使得网络拓扑变得相当复杂。并且由于异构网络网络基站的密集程度较高,因此其网络节点和用户终端之间的距离就更为接近,使得功率的效率和频谱的效率以及网络系统容量等方面比一般通信网络系统更为优良。 虽然这种技术应用于5G无线网络通信系统中有着非常良好的发展前景,但是也存在着一些缺陷,这种缺陷主要表现在以下几个方面:首先,由于节点之间比较密集使得节点之间的距离相应就比较短,这样就会造成系统内会存在同种无线接入技术之间的同频干扰的现象以及不同无线接入技术在共享频谱之间分层干扰的现象,这种问题的解决有赖于对5G无线通信网络系统进一步的深入研究。其次,由于系统内存在着大量的用户部署的节点,使得拓扑以及干扰图样呈现出范围较大的动态变化。因此,要加强应对这种动态变化的相关技术的研究。 结束语 5G无线网络系统的建立是建立在现有无线网络技术的进步以及新的无线接入技术的研发的基础之上,通过5G无线网络技术的进一步发展,将会在未来极大的拓展移动通信业务的应用领域和应用范围。 参考文献 [1]石炯.5G移动通信及其关键技术发展研究[J].石家庄学院学报,2015(06) [2]尤肖虎.5G移动通信发展趋势与若干关键技术[J]中国科学,2014(05). [3]杨绿溪.面向5G无线通信系统的关键技术综述[J]。东南大学学报,2015(09). 5g通信技术论文篇二:《试谈5G移动通信发展现状及其关键技术》 【摘要】 第5代移动通信(5G)是面向2020年以后的新一代移动通信系统,其愿景和需求已逐步得以确立,但相关技术发展目前仍处于探索阶段。本文简单介绍了5G移动通信的发展前景;概述了国内外5G移动通信的发展现状及相关研发单位和组织的学术活动;重点针对5G移动通信中富有发展前景的若干项关键技术做了详细的阐述,包括Massive MIMO、超密集异构网络、毫米波技术、D2D通信、全双工无线传输、软件定义网络、网络功能虚拟化和自组织网络等。 【关键词】 5G 发展现状 关键技术 前言 社会的进步,使人与人、人与万物的交集越来越大,人们对通信技术的需求和更优性能的追求在当今变得更加迫切。无论是在移动通信起步的伊始,还是迅速发展的当下,人们对移动通信的追求都是更快捷,更低耗,更安全。第五代移动通信为满足2020年以后的通信需求被提出,现今受到无数学人的关注。 第5代移动通信(fifth generation mobile communication network,5G)作为新一代的移动通信肩负着演进并创新现有移动通信的使命。它主要通过在当今无线通信技术的基础上演进并开发新技术加以融合从而构建长期的网络社会,是新、旧无线接入技术集成后方案总称,是一种真正意义上的融合网络。 一、5G发展现状 移动通信界,每一代的移动无线通信技术,从最开始的愿景规划,到技术的研发,标准的制定,商业应用直至其升级换代大致周期都是十年。每一次的周期伊始,谁能抢占技术高地,更早的谋划布局,谁就能在新一轮‘通信大洗牌’中获得领先优势。我国在5G之前的全球通信竞备中一直是落后或慢于发达国家的发展速度,因而在新一轮5G通信的竞备中国家是非常重视并给予了大力支持。2013年初,我国便成立了专项面对5G移动通信研究与发展的IMT-2020推进组,迅速明确了5G移动通信的愿景,技术需求,应用规划。2013年6月,国家863计划启动了5G移动通信系统先期研究一期重大项目。令人振奋的是2016年伊始,我国正式启动5G技术试验,这是我国通信业同国际同步的一个重要信号。 同样2013年以来,欧盟、韩国等国家与地区也成立相关组织并启动了针对5G的相关重大的科研计划[1]:1)METIS是欧盟第七框架计划中的一部分,项目研究组由爱立信、法国电信及欧洲部分学术机构共29个成员组成,旨在5G的愿景规划,技术研究等。2)5G PPP是由政府(欧盟)出资管理项目吸引民间企业与组织参加,其机制类似于我国的重大科技专项,计划发展800个成员,包括ICT的各个领域。3)5G Forum是由韩国发起的5G组织,成员涵盖政府,产业,运营商和高校,主要愿景是引领和推进全球5G技术。 二、5G关键技术 结合当前移动通信的发展势头来看,5G移动通信关键技术的确立仍需要进一步的考量和市场实际需求的检验。未来的技术竞争中哪种技术能更好的适应并满足消费者的需求,谁能够在各项技术中脱颖而出,现阶段仍然不能明确的确立。但结合当前移动通信网络的应用需求和对未来5G移动通信的一些展望,不难从诸多技术中 总结 出几项富有发展和应用前景的关键性技术[1]。 Massive MIMO MIMO(Multiple-Input Multiple-Output)技术其实在5G之前的通信系统中已经得到了一些应用,可以说它是一种作为提高系统频谱效率和传输可靠性的有效手段。但因天线占据空间问题、实现复杂度大等一系列条件的制约,导致现有MIMO技术应用中的收发装置所配置的天线数量偏少。但在Massive MIMO中,将会对基站配置数目相当大的天线,将把现阶段的天线数量提升一到两个数量级。它所带来的巨大的容量和可靠性吸引了大量通信研究人员的眼球,彰显了该技术的优越性。 它的应用能够给我们带来的好处是:1)较于以往的多入多出系统,Massive MIMO可以加大对空间维度资源的利用,为系统提供更多的空间自由度。2)因其系统架构的优越性,可以做到降干扰、提升功率效率等。 同时它也存在着一系列问题:1)因缺乏大量理论建模、实测建模方面工作的支撑,当前没有认可度较高的信道模型。2)在获取信道信息时的开销要依靠信道互易性来降低,但是当前的假定方案中使用比较多的是TDD系统,且用户均为单天线,与基站天线数量相比明显不足,当用户数量增加时则会致使导频数量线性增加,冗余数据剧增。3)当前Massive MIMO面对的瓶颈问题主要是导频污染。 Massive MIMO在5G移动通信中的应用可以说是被寄予厚望,它将是5G区别以往移动通信的主要核心技术之一。 超密集异构网络 应5G网络发展朝着多元、综合、智能等方向发展的要求,同时随着智能终端的普及,数据流的爆炸式增长将逐步彰显出来,减小小区半径、增加低功率节点数等举措将成为满足5G发展需求并支持愿景中提到的网络流量增长的核心技术之一。超密集组网的组建将承担5G网络数据流量提高的重任。未来无线网络中,在宏站覆盖范围内,无线传输技术中的各种低功率的节点密度将会是现有密度5-15倍,站点间的距离将缩小到10米以内,站点与激活用户甚至能够做到一对一的服务,从而形成超密集异构网络[2]。超密集异构组网中,网络的密集化的构造拉近了节点与终端的距离,从而使功率效率和频谱效率加以提升,并且可以让系统容量得到巨幅提升。 毫米波技术 在5G网络中,与即将面对的巨大的业务需求相冲突的是传统移动通信频谱资源已趋于饱和。如何将移动通信系统部署在6GHz以上的毫米波频段正成为业界广泛研究的课题。相比于传统移动通信频谱的昂贵授权费,MMW频段中包含若干免费频段,这使得其使用成本可能会降低。MMW频谱资源极为丰富可以寻找到带宽为数百兆甚至数千兆的连续频谱,连续频谱部署在降低部署成本的同时也提高了频谱的使用率[3]。 D2D通信 在未来5G网络中,无论是网络的容量还是对频谱资源的利用率上都将会得到很大空间的提升,丰富的信道模式以及出色的用户体验也将成为5G重要的研发着力点。D2D通信具有潜在的提升系统性能,增强用户体验,减轻基站压力,提高频谱利用率等前景,因而它也是未来5G网络的关键技术之一。 D2D通信是一种在蜂窝系统架构下的近距离数据直接传输技术。用户之间使用的智能终端可以在不经基站转发的情况下直接传输会话数据,且相关的控制信号仍由蜂窝网络负责。这种新型传输技术让终端可以借助D2D在网络覆盖盲区实现端到端甚至接入蜂窝网络,从而实现通信功能。 全双工无线传输 全双工无线传输是区别于以往同一时段或同一频率下只能单向传输的一种通信技术。能够实现双向同时段、同频传输的全双工无线传输技术在提升频谱利用率上彰显出其优越性,它能够使频谱资源的利用趋于灵活化。全双工无线传输技术为5G系统挖掘无线频谱资源提供了一种很好的手段,使其成为5G移动通信研究的又一个 热点 技术。 同样,在全双工无线传输技术的应用上也有很多阻力因素:同频、同时段的传输,在接收端和发射端的直接功率差异是非常大的,会产生严重自干扰。而且全双工技术在同其他5G技术融合利用时,特别是在Massive MIMO条件下的性能差异现在还缺乏深入的理论分析[4]。 软件定义网络(SDN)与网络功能虚拟化(NFV) SDN技术是源于Internet的一种新技术。该技术的思路是将网络控制功能从设备上剥离,统一交由中心控制器加以控制,从而实现控、转分离,使控制趋于灵活化,设备简单化。 同时在考虑网络运营商的运维实际也提出了一种新型的网络架构体系NFV,该体系利用IT技术及其平台将网元功能虚拟化,根据用户的不同业务需求在VNF(Virtual Network Feature)的基础上进行相应的功能块连接与编排。NFV的核心所在即降低网络逻辑功能块和物理硬件模块的相互依赖,提高重用,利用软件编程实现虚拟化的网络功能,并将多种网元硬件归于标准化,从而实现软件的灵活加载,大幅度降低基础设备硬件成本。 自组织网络 运营商在传统的移动通信网络中,网络的部署和基站的维护等都需要大量人工去一线维护,这种依赖人力的方式提供的服务低效、高昂等弊端一直深受用户诟病。因此,为了解决网络部署、优化的复杂性问题,降低运维成本相对总收入的比例,便有了自组织网络的概念。 SON的应用将会为无线接入技术带来巨大的便利,如实现多种无线接入技术的自我融合配置,网络故障自我愈合,多种网络协同优化等等。但当前在技术的完备上也存在一系列挑战:不支持多网络之间的协调,邻区关系因低功率节点的随机部署和复杂化需发展新的自动邻区关系技术等。 三、小结 5G移动通信作为下一代移动通信的承载者,肩负着特殊的使命,在完成人们对未来移动通信的诸多憧憬上被寄予厚望。本文概述了当前5G几项富有发展前景的关键性技术,结合5G一系列的发展背景和人们多方面的通信需求,对几项关键技术的利弊加以剖析。可以预计的是未来几年5G的支撑性技术将被确立,其关键技术的实验、标准的制定以及商业化的应用也将逐步展开。 参 考 文 献 [1]赵国峰,陈婧等.5G移动通信网络关键技术综述[J].重庆邮电大学学报(自然科学版), DOI: [2] Kela,P. Turkka,J. Costa,M. Borderless Mobility in 5G Outdoor Ultra-Dense Networks[J],Access, IEEE(Volume:3),,pages1462-1476. [3] JungSook Bae, Yong Seouk Choi,Architecture and Performance Evaluation of MmWave Based 5G Mobile Communication System[C],Information and Communication Technology Convergence(ICTC),2014 International Conference ,,pages847-851. [4] Wang,,,T. On the Capacity Gain from Full Duplex Communications in A Large Scale Wireless Network[J], IEEE EARLY ACCESS ARTICLES, . 5g通信技术论文篇三:《试论5G无线通信技术概念》 引言 近年来,移动通信技术已经历数次变革,从20世纪80年代速度慢、质量差、安全性小、业务量低的1G通信技术,到20世纪90年代提出的低智能的2G无线通信技术,再到近年来的频谱利用率较低的3G网络,和现在的前三代无可比拟的4G无线通信技术,可谓是长江后浪推前浪,一浪更比一浪高啊!5G无线通信工程技术作为当代最具前景的技术,将可以满足人们近期的对移动无线技术的需求。 15G无线网络通信技术的相关概念 5G无线网络通信技术实际上就是在前面无线网络技术的基础上不断改进充分利用无线互联网网络。这项技术是最近才在国际通信工程大会上被优点提出的,他将会是一项较为完美的、完善的无线通信技术,他将可能会将纳米技术运用到这种将会在未来占据一席之地的无线互联网网络工程中,运用纳米技术更好的做好防护工作,保护使用者的一切信息。在未来5G无线网络通信技术将会融合之前所有通信工程的优点,他将会是更为灵活与方便的核心网站,在运营过程中将会减少在传输过程中的能量损耗,速度更快。若是在传输信息的过程中受到阻碍,将会被立刻发现且能很好的保护个人信息起到保护作用。 5G无线网络通信技术将会有很多优点,不仅融会贯通了在它之前所有通信技术的长处而且集百家之长于一身,是个更加灵活的网络核心平台,也会就有更加激烈的竞争力。在这项网络技术中将会为人类提供更加优秀、比其他平台更优惠的价位,更接近人类生活的服务。它的覆盖面要比现如今的3G、4G的更为广阔,有利于用户更快更好的体验,智能化的服务与网络快速推进进程的核心化的全球无缝隙的连接。为了使人类体验到更优惠的、更先进化的、具有多样性的、保障人类通信质量的服务,我们必须利用有限的无限博频率接受更大的挑战,充分利用现在国家领导人为我们提供的宽松的网络平台,让5G无线网络通信技术在不久的将来更好的服务于我们。 25G无线网络通信技术的相关技术优点与特点 5G无线网络通信技术也就是指第五代移动网络通用技术,它与前几代通信技术有些许不同之处,他并不是独立存在的而是融合了别的技术的许多优点更为特别的是将现有的无限技术接入其中,它将实现真正意义上的改革,实现“天人合一”达到真正的融合。它的体型会更加的小巧,便于我们随时随地安装。现如今5G无线网络通信技术已经被提上日程,成为了全球相关移动通信讨论热议的话题,互联网公司在争先恐后的提高与改善自身的通信设备,加快创新的步伐,想要在未来的通信技术领域占据一席之地。现在让我么一起来探讨一下他可能具有哪些其他通信技术无可比拟的优点与特点: (1)全新的设计理念:在未来5G无线网络通信技术将会是所有通信工程中的龙头老大,它设计的着重点是室内无限的覆盖面与覆盖能力,这与之前的通信工程的最根本的设计理念都不同。 (2)较高的频率利用率:5G无线网络通信技术将会使用较高频率的赫兹,而且会被广泛的使用在生活中但是我们国家现阶段的技术水平还较为低下,达不到这样的层次,所以我们必须先提高我们的科学技术,才能跟上通信技术更新的步伐。 (3)耗能、成本投入量较低:之前我们所使用的通信工程技术都是较为简单的将物理层面的知识营运的网络中,没有创新意识,不能够将环保的理念运用到通信工程中,都是一些较为传统的方法与手段,只是一味的追求经济利益。现如今随着科技的进步我们需要做到全方面的考虑,不能只注重眼前利益,所以低耗能、高质量的通信技术将是未来5G无线网络通信技术要面临的主要问题,也是难点问题,我们必须学会适时的对相应状况作出调整。 (4)优点:5G无线网络通信技术作为未来世界通信技术的主力,在不久将会得到实质性的开展,他将大大的提高我们的上网速度,将资源合理有效的利用起来,较其他之前的通信技术上升到一个新的层面,安全性也会得到保障不会出现个人信息外漏的现象,总而言之它的各个方面将都会得到改善,成为人们心中理想的模样,它具有较大的灵活程度可以适时更具客户的需求做出合理的调整,它的优点相信不久我们就会有切身的感受. 3小结 随着现代的快速进步,移动无线通讯技术也紧随时代的进步,呈现着日新月异的变革,现如今我国综合国力已经得到了很大程度的提高,当然在通信技术领域这一块我们也不愿屈居人后,必须加快通信技术改革与创新的脚步,满足人们对互联网的需求,尽快的、更好的发展5G无线网络通信技术才能在未来的通信技术中立于不败之地。 猜你喜欢: 1. 移动无线网络技术的论文三篇1000字 2. 大学通信技术论文范文 3. 通信技术论文范文 4. 浅谈无线网络通讯技术的论文1000字 5. 通信工程的毕业论文优秀范文 6. 通信学术论文范文

可以的,这篇应该可以参考下,就是不知道你还需要不需要呢1、对蜗杆传动的类型进行选择利用GB-T10085-1988中数据的条件,本次蜗杆利用蜗杆(ZI)。2、对蜗杆和蜗轮材质的选择蜗轮采用模具铸造而成,材质采用锡磷青铜。围绕着保护环境节约价值高的材料,因此齿圈利用青铜铸造而成,而轮芯则采用材质更好的灰铸铁铸造而成。蜗杆与蜗杆之间传动的能量一般,之间传动的速度并不是很快,蜗杆采用45钢;并在蜗杆螺旋表面做淬火处理。采用45钢可以增强效率和耐磨性,提高韧性,加强强度。3、对齿根弯曲疲劳强度检验和对接触疲劳强度设计传动之间的中心距为 (4-6)1)计算T2的大小根据Z1=8,估计选择效率η1=,则T2=×106=×106=×106=)确定载荷系数K蜗轮和蜗杆的转速并不是很高,他们之间冲撞不是很高,因此选择系数为Kv=;则K=KβKAKv=1××。蜗轮蜗杆载荷比较稳定,因此载荷系数为Kβ=1;在利用12-5[8]中数据可以知道帮并选择系数KA=。3)对ZE的确定蜗轮的材质ZCuSn10PI和钢蜗杆匹配,所以 弹性影响系数为160。 4)对于Zp的选择首先预先估计d1/a=,然后利用图12-13[8]中的数据可以知道Zρ=。5) 对于[σH]的选择依照蜗轮的材质采用ZCuSn10PI构成并由模具压铸而来,因此螺旋齿面的硬度应该超过45HRC,然后可以利用表12-7[8]中数据可以知道蜗轮 [σH]'等于245MPa N=60jn2Lh=60×1××12000/5=×107 KHN==则 a≥=)计算中心距预先定其中心距为220mm,又根据i=5,所以可以利用表12-2[8]中数据可以知道模数为8mm可以确定分度圆直径大小为70mm。这时d1/a=,再次利用表12-18[8]中数据可以知道Zρ'等于,得出Zρ'小于Zρ,所以以上假设成立,可以使用。。4、对于蜗杆和蜗轮的各种具体数字准确的计算1)蜗杆首先对蜗杆的轴向齿距和轴向齿厚大小进行判断得出Pa=;然后对直径的系数大小和齿顶圆齿根圆以及分度圆导程角q=10;da1=96mm; df1=; γ=11°18´36"。2)蜗轮对于蜗轮主要对蜗轮的分度圆直径d2,齿根圆和喉圆直径df2,da2;以及蜗轮的齿数z2和变位系数x2和对传动比的验证iz2=40;x2=;i=40/8=5;d2=mz2=8×40=320mm;da2=d2+2ha2=320+2×8=336mm;df2=d2-2hf2=320-2××8=;rg2=a- da2/2=×336=32mm。5)、对齿根圆强度的校核 齿数为 zv2===因为x2=, zv2=,所以利用12-14[8]中数据可以知道YFa2= Yβ=1-=许用应力[σF]= [σF] 'KFN。利用12-8[8]中数据可以知道并得出铸锡磷青铜制造的蜗轮的弯曲应力 [σF]'=56MPa。由以上数据可以得出其寿命的系数为 KFN==其强度满足实际要求,合理。 6)、蜗杆蜗轮的精度根据GB/T10089-1988这个,可以从其中圆柱形蜗杆,蜗轮的精度等级为8级,侧隙的种类为f,因此标注是8f GB/T10089-1988,以上都是选择都是由于蜗杆属于通用机械减速器。 链传动设计 已知链传动传动比i=,输入功率P=。 1 选择链轮齿数z1,z2 假定链速υ=3~8m/s,由表9-8[8]选取小链轮齿数z1=22,从动链轮齿数z2=iz1=×22=55。2 计算功率Pca查得工作情况系数KA=,故Pca=× 确定链条链节数Lp初定中心距a0=40p,则链节数为Lp==[]节 =节,最终确定Lp=124节。4 对链条节数的选择和确定利用9-10[4]中数据可以查询知道齿数的系数大小为Kz=; KL=;利用9-13[8]中数据可以对小链轮的转速进行预先估计,因为链板有可能会发生疲劳破坏,这是由于链板在功率曲线顶点左侧。链板选择用单排链,利用9-11[8]中数据可以查询知道多排链的系数为KP=1,因此功率为是P0===为了验证上面预计的链的工作的点在功率曲线的顶点的左侧是否是对的,利用n1=和P0=,再根据9-13[8]中数据查询并选择单排链。因此上述假设成立。再根据9-1[8]中数据可以查询知道节距p=。5 计算链长和中心距L=== =mm =642mm(~)a=(~)×642mm =~'=a-△a=642-(~)mm=~取 a'=640mm6 验算带速υ==m/s=,满足实际要求。利用9-4[8]中数据可以知道小链轮毂孔直径dkmax=59mm, 并大于电动机的轴径大小,因此比较满足要求。8对压轴力的计算和确定 圆周力的的计算==将其依照水平方向安置取,因此其系数为KFP=,所以= 齿轮传动设计根据已知功率输入为P=,小齿轮转速 n1=15转/分传动比i=2。 1 选定齿轮类型、精度等级、材料及齿数 1)选择直齿圆柱齿轮 2)齿轮速度中等不是很快,因此选择7级精度 3)对齿轮的材质进行选择。利用10-1[5]表中数据选择小齿轮材料的选择为40 Cr,并且做出调质处理,与此同时可以得出其硬度为280HBS;和上一个一样的道理大齿轮所用材质是45钢,并知道其硬度为240HBS。4)对小齿轮的齿数进行选择z1=25,对大齿轮的齿数的选择和计算z2=iz1=2×25=50。 2 对齿轮的设计用接触疲劳强度来设计 先根据计算公式来计算,即 1)弄清公式中各个代表的数值大小; (a) 首先对载荷系数的确定Kt=; (b) 对其传动的转矩大小进行确定=×105××105N·mm (c) 由表10-7[9]选取齿宽系数ød=1 (d) 利用10-6[9]中数据可以知道其材质的ZE大小;ZE= (e) 利用10-21d[9]中数据可以查询到其齿面硬度的接触疲劳强度σHlim1=600MPa;同理也可以查询到大齿轮的强度为σHlim2=550MPa; (f) 根据10-13[9]中的公式来计算循环次数 N1=60n1jLh=60×15×1×(2×8×300×15)=×109 N2=N1/i=×109 /2=×109 (g) 利用10-19[9]中数据可以知道KHN1=;KHN2=; (h) 对其应力的计算利用(10-12)[9]中数据可以得到 2)计算 (a) 对分度圆直径的计算,将其代[σH]入中最小的值 d1t≥== (b) 计算圆周速度υ (c) 对齿宽的计算 (d) 计算b/h的大小 mt=d1t/z1= h=× mm b/h= (e) 对载荷的系数的计算因为υ=,所以精度等级为7,在利用10-8[9]中数据可以查询知道KV=;预先估计KAFt/b<100N/m。在利用表10-3[9]中数据可以查询知道KHα=KFα=;再利用10-2[9]中数据可以知道系数KA=1;再次利用10-4[9]中数据可以知道精度等级为7级、两个小齿轮不是相互对称安装时相对支撑时,KHβ=(1+)+×10-3b把上述数值代到下面可以得到KHβ=(1+×)×+×10-3×;由b/h=,KHβ=;再利用10-13[9]中数据可以查询得到KFβ=;因此得到 =1×××。(f)对分度圆直径的验证,根据(10-10a)[9]中数据可以知道=== mm(g)对模数的确定m=d1/z1= mm3 对其强度计算弯曲强度设计公式为 (4-9)1)对计算中强度极限和寿命安全系数的确定(a)σFE1=500 MPa,σFE2=380 MPa;(b)KFN1=, KFN1=;(c)S=;[σF]1==×500/ MPa= MPa;[σF]2==×380/ MPa= MPa;(d)对载荷系数的确定K=KAKVKFαKFβ=1×××(e)查取齿行系数=,=。(f)查取应力校正系数=,=。(g)计算大小齿轮的并加以比较==,==大齿轮数值大。2)设计计算=就近取m=4,d1=,算出小齿轮齿数z1= d1/m=,z2=i z1=2×27=54。4 对其具体尺寸的计算1)齿轮分度圆的直径的计算d1=z1 m=27×4=108 mm, d2=z2 m=54×4=216 mm2)计算中心距 a=(d1+d2)/2==(108+216)/2=162mm3)对齿轮的宽度进行计算 b==1×108=108mm,取b1=108mm,b2=113mm5 验算 Ft=2T1/d1=2××/108= N == N/mm<100 N/mm,合适。5互感器线圈绝缘包纸机工作执行部分设计设计一个机械设备的最终目的是能让所设计的设备投入实际生产,并要达到生产的要求。设计包纸机的目的是它的工作部分能实现包纸,并达到所要求的技术参数[10]。互感器线圈绝缘包纸机工作执行部分由包纸轮、放纸架和一个压紧装置组成。包纸轮的材料是45钢,轮体加工后进行抛光处理,表面镀铬,结构如图2。由电动机经带传动带动包纸轮转动,同时纸从上方的放纸架上包在包纸轮上。包纸轮上有槽,纸包在轮上的同时经过槽再包在需要包纸的线圈上。线圈在包纸轮内部,并和它同轴转动。 图2存放待用纸的地方是放纸架。放纸架由电木盘、放纸架支架、尼龙滚、星形电木杆很多部件构成。因为放纸架所受载荷不大,其各个部件的材料为酚醛布板、尼龙棒等。压紧结构示意图在图三所展示。保证包纸的紧凑性就是利用这个装置,工作时通过旋转外面的轮盘,通过一个蜗轮蜗杆传动带紧一根橘皮带,橘皮带再带紧正在进行包扎的纸,从而达到工作目的。 图3结 论综上所述,互感器线圈绝缘包纸机性能优越,完全能满足现在社会工业发展的要求。它在工作时具有以下优点:(1) 互感器线圈绝缘包纸机在工作时能够通过压紧装置,经过人工简单的操作使包纸紧凑;(2) 从电机到实现包纸只经过了两次带传动,传动过程简洁合理; (3)互感器线圈绝缘包纸机的直线行走部分行走范围达3000mm,能实现较长距离包纸;另外,互感器线圈绝缘包纸机具有高效率、稳定的可靠性以及耐用持久等特点,而这些都是机械设备的基本要求。其次是成本低,无论是制造、运营还是维修,互感器线圈绝缘包纸机的成本相比同类设备来说都降低了不少;然后是该设备的环保性能好。随着社会的发展,环保将会是机械设备最基本的要求。而此次设计的包纸设备完全不同于以往的包纸机,它的噪音、废弃物污染都降到了最低程度;最后是互感器线圈绝缘包纸机的操作和使用非常便利简单易于维修,对人体没有危害。综上所述,互感器线圈绝缘包纸机将会有良好的前景,当然,随着科学技术的发展,相信包纸设备将会进一步改进。致 谢毕业设计马上就要结束了。随之四年的大学生活也接近尾声,在这一学期的毕业设计时间里,非常感谢老师给予的指导,和同学们对我的帮助,非常感谢大家对我的指导和监督。在毕业设计过程中,我的指导老师从始至终都认认真真、勤勤恳恳地指导我进行设计,在他身上我不仅学到一些本科专业知识,还学到了他对工作认真负责的态度,这些都是我终身受益的,他们在我毕业设计过程中给予了我鼓励和帮助,感谢他们的耐心指导,祝老师,身体健康,在各自的工作岗位上创出良好的佳绩。还有一同设计的同学们,在共同相处的一学期里,我感到非常愉快,没有他们给予的帮助,我无法如此顺利的完成设计任务。同时,也感谢各位评审老师。毕业答辩是我大学的最后一次考核,为了我们顺利毕业,各位老师在这炎热的六月坚守岗位,尽职尽责。祝各位评审老师工作顺利。我向那些曾经给予我巨大帮助和鼓励的老师和16级机自2班的全体同学表示感谢,谢谢他们四年里对我无微不至的关怀和照顾,祝他们身体健康,前途无量!参考文献[1] 石娜. 一种简易实用的引线包纸机 [J].变压器 ,1998 ,(01): 9—9.[2] 刘力,周伟.组合导线联合包纸机设计[J].变压器 ,2004 ,(07): 12—14.[3] 胡来榕,陈启松.机械传动手册[M]. 北京: 煤炭工业出版社 ,2001.[4] 王凤兰, 宗振奇. 机械设计学[M]. 长春: 吉林科学技术出版社, 2004. 2[5] 成大先 . 机械设计手册[M]. 北京: 化学工业出版社 ,2004.[6] 余梦生,吴宗泽.机械零部件手册[M].北京: 机械工业出版社 ,2003.[7] 张富洲.轴承设计手册[M]. 北京: 机械工业出版社 ,2001.[8] 濮良贵, 纪名刚. 机械设计[M]. 北京: 高等教育出版社, [9] 朱孝录.齿轮传动设计手册[M]. 北京 : 化学工业出版社 ,2005.[10] 成大先 . 机械设计图册[M]. 北京: 化学工业出版社 ,2003.[11] 孙振权. 电子式电流器互感器研发现状与应用前景[J]. 高压电器 ,2004 ,(12): 8—10.[12] 司徒东语. 红外光技术在组合导线包纸机上的应用 [J]. 变压器 ,2001 ,(11): 31—34.[13] 郎沪勇. 一种新颖高效的包纸设备[J]. 变压器 ,2001 ,(01): 24—25.[14] 张贵芳. 滑动轴承[M]. 北京: 高等教育出版社 ,1985.[15] 吴宗泽. 机械设计课程设计手册(第二版)[M]. 北京: 高等教育业出版社 ,1999.[16] Orlov P .Fundamentala of Machine Design. Moscow: Mir Pub. ,1987.

做个毕设100分就有人做?真是值得怀疑?

.......论文.....源程序...... 一般不会有人给```

基于c的网站毕业论文

兄弟,论文要自己用心写。我是过来人,自己写论文只有好处,没有坏处的。

你看下这篇文章跟网站设计相关的主要内容:1)本课题是结合我院新型轮机模拟器的子专题“主机遥控装置仿真”进行的。仿真对象为中国海运集团总公司所属的集装箱船“新大连”号主机遥控装置。2)主机遥控装置是现代化船舶的核心设备,它能根据发出的指令自动完成主机的停车、起动、换向、调速的程序操作。本文旨在通过分析主机操纵应具备的各项条件、条件之间的逻辑关系,编写一套仿真软件,模拟出主机遥控系统能完成的各种操作 3)本文基于仿真对象MAN BW 12K90MC-C主机遥控装置的特点,对主机遥控系统的基本逻辑功能进行分析后,获得了主机各项操作的逻辑条件。分析了该型主机逻辑回路的组成方式、回路之间的连接方式,以及某些特殊逻辑回路的实现方法。4)用面向对象方法进行主机遥控仿真软件开发,开发过程中,选用VC++为开发环境,以C语言为编程工具,采用了两种不同的策略(直接使用控件,调用函数显示底图)搭建界面,相互比较后表明调用函数显示底图方式更为合理。5)针对软件使用数据需大量存储,根据数据库的利用率、通用性、访问数据库速度以及仿真对象的复杂程度等要求,选用了Microsoft公司的Access数据库为后台数据库。6)数据库的访问则选择了Microsoft提供的DAO数据库对象集合的访问技术。为了使主机遥控系统仿真软件为达到逼真的模拟效果,作者开发了专门用于在界面快速定位的工具软件,用于在特定位置界面动态刷新,将相关遥控系统的设备操纵以动画方式显示。编写遥控系统仿真运算软件,运用了数据结构、计算机图形学、ActiveX等知识。7)本文采用故障树分析法对主机遥控系统的可靠性进行了分析,建立了主机遥控系统故障树实例,能帮助维修人员准确快速地诊断故障性质,确定故障位置,及时排除故障。 8)本课题开发的软件控制逻辑与实机相同,实现了该型主机遥控系统较完整的功能,具有友好的人机交互界面,使复杂的主机操作系统原理变得详细、直观、便于理解。故障树分析法在主机遥控系统的运用,使得系统的故障的原因直观,分析法得出的可靠性结论有较强的指导意义。你看下这篇文章可以吧

280919298

做个毕设100分就有人做?真是值得怀疑?

基于c语言的通讯录毕业论文

应该是要求你用C语言写一个关于通讯录和记事本的程序.然后围绕这个来写一篇论文.主要是看你们学校以及你的老师对你有什么具体要求.这个你必须要自己去问清楚.一般来说,现在的学生写毕业设计都是在网上找些相关的,然后再改写别人的论文变成自己的.现在论文网非常多,有的是免费的,有的是要给钱的,你先问清楚老师的要求.然后在网上查一下有没有这方面相关的,有就最好,弄下来,加入与之不同的,去掉不要的,再加入你自己的思想就可以了.这个不用急的,反正到时候,老师自然会帮你想方法的,你记住一定要和老师搞好关系,多勾通一下.有不懂的地方及时的问.这样才能保证你过关,因为写论文一是要搞清楚题目要求,二是要按要求写,比如用什么样的格式,写多少字等等.总之,你首先应该做的是问清具体的要求,然后不懂的就问老师,或者是和老师商量,具体怎么做.然后根据安排再查相关资料完全论文.

#include ""#include ""#include "" #include ""#include "" FILE *fp;int i; //i是全局变量 可代替length struct address { char postnum[10]; char a[40]; //家庭地址};struct birthday { int year; int month; int day; };struct ffriend { int num; //序号char name[20]; char sex; char telephone[13]; struct birthday birthday; struct address address; }friends[50]; void Load(){ int j;long k;fp=fopen("","a+"); //打开文件 if(fp!=NULL){ for(i=1;i<50;i++){ j=fgetc(fp);if(j==EOF) //判断是否到了文件尾return;k=i-1;fseek(fp,k*sizeof(struct ffriend),SEEK_SET);fread(&friends[i],sizeof(struct ffriend),1,fp); //从文件中读取一条记录}}else{ fp=fopen("","w");i=1;}}void Show(int j) {// friends[j].num=i;printf("\n\n\t编号-Nnumber: %3d",friends[j].num);printf("\n\t姓名-Name:%-20s",friends[j].name);printf("\n\t性别-Sex:%c",friends[j].sex);printf("\n\t联系电话-Telephone:%-13s",friends[j].telephone);printf("\n\t出生日期-Birthday:%4d-%2d-%3d",friends[j].[j].[j].);printf("\n\t邮编-Postnum:%-10s",friends[j].);printf("\n\t通信地址-address:%-40s",friends[j].);}void Append(int j) {fflush(stdin); //区内清除文件缓冲区,文件以写方式打开时将缓冲容写入文件//stdin是一个标准FILE*(文件型指针)指向通常是用键盘的输入的输入流friends[j].num=j;printf("\n\t\t\t序号-Number:%d",j);printf("\n\t\t\t姓名-Name:"); scanf("%s",friends[j].name);fflush(stdin); //为什么没有fflush(stdin); 的效果会自动跳过呢?printf("\t\t\t性别-Sex(m/w):"); //为什么输入汉字男女也会自动跳过联系电话呢 scanf("%c",&friends[j].sex);printf("\t\t\t联系电话-telephone:"); scanf("%s",friends[j].telephone);printf("\t出生日期-birthday"); printf("\n\t\t\t年份-year:");scanf("%d",&friends[j].);printf("\t\t\t月份-month:");scanf("%d",&friends[j].);printf("\t\t\t日-day:");scanf("%d",&friends[j].);printf("\t\t\t邮编-Postnumber:"); scanf("%s",friends[j].);printf("\t\t\t通信地址-Address:"); scanf("%s",friends[j].);getchar();}void Delete() {int k;printf("\n\tDelete 序号-Number:"); scanf("%d",&k);if(k<=i){for(int j=k;jk;j--) //插入功能{strcpy(friends[j].name,friends[j-1].name); //数据后移friends[j].sex=friends[j-1].sex;strcpy(friends[j].telephone,friends[j-1].telephone);friends[j].[j-1].;friends[j].[j-1].;friends[j].[j-1].;strcpy(friends[j].[j-1].);strcpy(friends[j].[j-1].);}Append(k);i++; printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");break; case 'D': //删除功能 //增添随意删除多条记录的功能Delete();if(i<1)printf("\n没有记录-No records\n");printf("\n请按回车键继续!");getchar();getchar(); printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");break;case 'E': //查询功能 printf("\n\t请输入要查询记录的相关姓名:"); //增添查询按列号的scanf("%s",searchname);for(j=1;j<=i;j++){if(strcmp(searchname,friends[j].name)==0) //比较字符串{ Show(j); break;}}if(i<1) {printf("\n 没有您所查询的记录-No records");printf("\n 请按回车键继续!");getchar();}printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");getchar();break;case 'F': //修改功能 / /增添按序列号查询printf("\n\t请输入要修改记录的相关姓名:");gets(searchname);scanf("%s",searchname);for(j=1;j<=i;j++){if(strcmp(searchname,friends[j].name)==0) //比较字符串{ Modify(j); // getchar(); //加个输出确定修改吗}}if(i<1) //修改功能{ printf("\n 没有您所要修改的记录-No records");printf("\n 请按回车键继续!");getchar();getchar();}printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");break;case 'G': Save(); //存盘功能 getchar();printf("\n\t\t\t\t\t\t\t此次操作结束"); printf("\n\t------------------------------------------------------------\t\t\n");break;case 'H': //退出功能char x;printf("是否保存?yes/no\n");scanf("%s",&x);//getchar();// getchar();if(x=='y') { Save();exit(0);}elseexit(0);default: printf("\n\t输入有误,请输入正确的序列号!");printf("\n请按回车键继续!");getchar();printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");}}while(1);}

/*源程序*//******头文件(.h)***********/#include""/*I/O函数*/#include""/*标准库函数*/#include""/*字符串函数*/#include""/*字符操作函数*/#defineM50/*定义常数表示记录数*/typedefstruct/*定义数据结构*/{charname[20];/*姓名*/charunits[30];/*单位*/chartele[10];/*电话*/}ADDRESS;/******以下是函数原型*******/intenter(ADDRESSt[]);/*输入记录*/voidlist(ADDRESSt[],intn);/*显示记录*/voidsearch(ADDRESSt[],intn);/*按姓名查找显示记录*/intdelete(ADDRESSt[],intn);/*删除记录*/intadd(ADDRESSt[],intn);/*插入记录*/voidsave(ADDRESSt[],intn);/*记录保存为文件*/intload(ADDRESSt[]);/*从文件中读记录*/voiddisplay(ADDRESSt[]);/*按序号查找显示记录*/voidsort(ADDRESSt[],intn);/*按姓名排序*/voidqseek(ADDRESSt[],intn);/*快速查找记录*/voidcopy();/*文件复制*/voidprint(ADDRESStemp);/*显示单条记录*/intfind(ADDRESSt[],intn,char*s);/*查找函数*/intmenu_select();/*主菜单函数*//******主函数开始*******/main(){inti;ADDRESSadr[M];/*定义结构体数组*/intlength;/*保存记录长度*/clrscr();/*清屏*/for(;;)/*无限循环*/{switch(menu_select())/*调用主菜单函数,返回值整数作开关语句的条件*/{case0:length=enter(adr);break;/*输入记录*/case1:list(adr,length);break;/*显示全部记录*/case2:search(adr,length);break;/*查找记录*/case3:length=delete(adr,length);break;/*删除记录*/case4:length=add(adr,length);break;/*插入记录*/case5:save(adr,length);break;/*保存文件*/case6:length=load(adr);break;/*读文件*/case7:display(adr);break;/*按序号显示记录*/case8:sort(adr,length);break;/*按姓名排序*/case9:qseek(adr,length);break;/*快速查找记录*/case10:copy();break;/*复制文件*/case11:exit(0);/*如返回值为11则程序结束*/}}}/*菜单函数,函数返回值为整数,代表所选的菜单项*/menu_select(){chars[80];intc;gotoxy(1,25);/*将光标定为在第25行,第1列*/printf("pressanykeyentermenu\n");/*提示压任意键继续*/getch();/*读入任意字符*/clrscr();/*清屏*/gotoxy(1,1);printf("********************MENU*********************\n\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("***********************************************\n");do{printf("\nEnteryouchoice(0~11):");/*提示输入选项*/scanf("%s",s);/*输入选择项*/c=atoi(s);/*将输入的字符串转化为整型数*/}while(c11);/*选择项不在0~11之间重输*/returnc;/*返回选择项,主程序根据该数调用相应的函数*/}/***输入记录,形参为结构体数组,函数值返回类型为整型表示记录长度*/intenter(ADDRESSt[]){inti,n;char*s;clrscr();/*清屏*/printf("\npleaseinputnum\n");/*提示信息*/scanf("%d",&n);/*输入记录数*/printf("pleaseinputrecord\n");/*提示输入记录*/printf("nameunittelephone\n");printf("------------------------------------------------\n");for(i=0;in-1)/*如果整数i值大于n-1,说明没找到*/printf("notfound\n");elseprint(t[i]);/*找到,调用显示函数显示记录*/}/*显示指定的一条记录*/voidprint(ADDRESStemp){clrscr();printf("\n\n********************************************\n");printf("nameunittelephone\n");printf("------------------------------------------------\n");printf("%-20s%-30s%-10s\n",);printf("**********************end***********************\n");}/*查找函数,参数为记录数组和记录条数以及姓名s*/intfind(ADDRESSt[],intn,char*s){inti;for(i=0;in-1)/*如果i>n-1超过了数组的长度*/printf("nofoundnotdeleted\n");/*显示没找到要删除的记录*/else{print(t[i]);/*调用输出函数显示该条记录信息*/printf("Areyousuredeleteit(1/0)\n");/*确认是否要删除*/scanf("%d",&ch);/*输入一个整数0或1*/if(ch==1)/*如果确认删除整数为1*/{for(j=i+1;j=i;j--)/*从最后一个结点开始向后移动一条*/{strcpy(t[j+1].name,t[j].name);/*当前记录的姓名拷贝到后一条*/strcpy(t[j+1].units,t[j].units);/*当前记录的单位拷贝到后一条*/strcpy(t[j+1].tele,t[j].tele);/*当前记录的电话拷贝到后一条*/}strcpy(t[i].name,);/*将新插入记录的姓名拷贝到第i个位置*/strcpy(t[i].units,);/*将新插入记录的单位拷贝到第i个位置*/strcpy(t[i].tele,);/*将新插入记录的电话拷贝到第i个位置*/n++;/*记录数加1*/returnn;/*返回记录数*/}/*保存函数,参数为结构体数组和记录数*/voidsave(ADDRESSt[],intn){inti;FILE*fp;/*指向文件的指针*/if((fp=fopen("","wb"))==NULL)/*打开文件,并判断打开是否正常*/{printf("cannotopenfile\n");/*没打开*/exit(1);/*退出*/}printf("\nSavingfile\n");/*输出提示信息*/fprintf(fp,"%d",n);/*将记录数写入文件*/fprintf(fp,"\r\n");/*将换行符号写入文件*/for(i=0;i=0&&id0)/*比较大小*/{flag=1;strcpy([j].name);/*交换记录*/strcpy([j].units);strcpy([j].tele);strcpy(t[j].name,t[j+1].name);strcpy(t[j].units,t[j+1].units);strcpy(t[j].tele,t[j+1].tele);strcpy(t[j+1].name,);strcpy(t[j+1].units,);strcpy(t[j+1].tele,);}if(flag==0)break;/*如果标志为0,说明没有发生过交换循环结束*/}printf("sortsucess!!!\n");/*显示排序成功*/}/*快速查找,参数为结构体数组和记录数*/voidqseek(ADDRESSt[],intn){chars[20];intl,r,m;printf("\nPleasesortbeforeqseek!\n");/*提示确认在查找之前,记录是否已排序*/printf("pleaseenternameforqseek\n");/*提示输入*/scanf("%s",s);/*输入待查找的姓名*/l=0;r=n-1;/*设置左边界与右边界的初值*/while(lr)/*如果左边界大于右边界时*/printf("notfound\n");/*显示没找到*/}/*复制文件*/voidcopy(){charoutfile[20];/*目标文件名*/inti,n;ADDRESStemp[M];/*定义临时变量*/FILE*sfp,*tfp;/*定义指向文件的指针*/clrscr();/*清屏*/if((sfp=fopen("","rb"))==NULL)/*打开记录文件*/{printf("cannotopenfile\n");/*显示不能打开文件信息*/exit(1);/*退出*/}printf("Enteroutfilename,forexamplec:\\f1\\:\n");/*提示信息*/scanf("%s",outfile);/*输入目标文件名*/if((tfp=fopen(outfile,"wb"))==NULL)/*打开目标文件*/{printf("cannotopenfile\n");/*显示不能打开文件信息*/exit(1);/*退出*/}fscanf(sfp,"%d",&n);/*读出文件记录数*/fprintf(tfp,"%d",n);/*写入目标文件数*/fprintf(tfp,"\r\n");/*写入换行符*/for(i=0;i

这个问题答案网上很多,这个地址就是或#include 我也答过#include "" #include "" #include "" #include "" #include "" #include "" /#include "" #define N 3 typedef struct z1 { char no[11]; char name[15]; int score[N]; float sum; float average; int order; struct z1 *next; }STUDENT;STUDENT *init(); STUDENT *create(); STUDENT *delete(STUDENT *h); void print(STUDENT *h); /* 显示所有记录*/void search(STUDENT *h); /*查找*/void save(STUDENT *h); /*保存*/STUDENT *load(); /*读入记录*/void computer(STUDENT *h); /*计算总分和均分*/STUDENT *insert(STUDENT *h); /*插入记录*/void append(); /*追加记录*/void copy(); /*复制文件*/STUDENT *sort(STUDENT *h); /*排序*/STUDENT *index(STUDENT *h); /*索引*/void total(STUDENT *h); /*分类合计*/int menu_select(); /*菜单函数*//******主函数开始*******/main(){ int i; STUDENT *head; /*链表定义头指针*/ head=init(); /*初始化链表*/ clrscr(); /*清屏*/ for(;;) /*无限循环*/ { switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/ { /*值不同,执行的函数不同,break 不能省略*/ case 0:head=init();break; case 1:head=create();break; case 2:head=delete(head);break; case 3:print(head);break; /*显示全部记录*/ case 4:search(head);break; /*查找记录*/ case 5:save(head);break; /*保存文件*/ case 6:head=load(); break; /*读文件*/ case 7:computer(head);break; /*计算总分和均分*/ case 8:head=insert(head); break; /*插入记录*/ case 9:copy();break; /*复制文件*/ case 10:head=sort(head);break; /*排序*/ case 11:append();break; /*追加记录*/ case 12:head=index(head);break; /*索引*/ case 13:total(head);break; /*分类合计*/ case 14:exit(0); /*如菜单返回值为14程序结束*/ } }}/*菜单函数,返回值为整数*/menu_select(){ char *menu[]={"***************MENU***************", /*定义菜单字符串数组*/ " 0. init list", /*初始化*/ " 1. Enter list", /*输入记录*/ " 2. Delete a record from list", /*从表中删除记录*/ " 3. print list ", /*显示单链表中所有记录*/ " 4. Search record on name", /*按照姓名查找记录*/ " 5. Save the file", /*将单链表中记录保存到文件中*/ " 6. Load the file", /*从文件中读入记录*/ " 7. compute the score", /*计算所有学生的总分和均分*/ " 8. insert record to list ", /*插入记录到表中*/ " 9. copy the file to new file", /*复制文件*/ " 10. sort to make new file", /*排序*/ " 11. append record to file", /*追加记录到文件中*/ " 12. index on nomber", /*索引*/ " 13. total on nomber", /*分类合计*/ " 14. Quit"}; /*退出*/ char s[3]; /*以字符形式保存选择号*/ int c,i; /*定义整形变量*/ gotoxy(1,25); /*移动光标*/ printf("press any key enter menu......\n"); /*压任一键进入主菜单*/ getch(); /*输入任一键*/ clrscr(); /*清屏幕*/ gotoxy(1,1); /*移动光标*/ textcolor(YELLOW); /*设置文本显示颜色为黄色*/ textbackground(BLUE); /*设置背景颜色为蓝色*/ gotoxy(10,2); /*移动光标*/ putch(0xc9); /*输出左上角边框┏*/ for(i=1;i<44;i++) putch(0xcd); /*输出上边框水平线*/ putch(0xbb); /*输出右上角边框 ┓*/ for(i=3;i<20;i++) { gotoxy(10,i);putch(0xba); /*输出左垂直线*/ gotoxy(54,i);putch(0xba); } /*输出右垂直线*/ gotoxy(10,20);putch(0xc8); /*输出左上角边框┗*/ for(i=1;i<44;i++) putch(0xcd); /*输出下边框水平线*/ putch(0xbc); /*输出右下角边框┛*/ window(11,3,53,19); /* 制作显示菜单的窗口,大小根据菜单条数设计*/ clrscr(); /*清屏*/ for(i=0;i<16;i++) /*输出主菜单数组*/ { gotoxy(10,i+1); cprintf("%s",menu[i]); } textbackground(BLACK); /*设置背景颜色为黑色*/ window(1,1,80,25); /*恢复原窗口大小*/ gotoxy(10,21); /*移动光标*/ do{ printf("\n Enter you choice(0~14):"); /*在菜单窗口外显示提示信息*/ scanf("%s",s); /*输入选择项*/ c=atoi(s); /*将输入的字符串转化为整形数*/ }while(c<0||c>14); /*选择项不在0~14之间重输*/ return c; /*返回选择项,主程序根据该数调用相应的函数*/}STUDENT *init(){ return NULL;}/*创建链表*/STUDENT *create(){ int i; int s; STUDENT *h=NULL,*info; /* STUDENT指向结构体的指针*/ for(;;) { info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/ if(!info) /*如果指针info为空*/ { printf("\nout of memory"); /*输出内存溢出*/ return NULL; /*返回空指针*/ } inputs("enter no:",info->no,11); /*输入学号并校验*/ if(info->no[0]=='@') break; /*如果学号首字符为@则结束输入*/ inputs("enter name:",info->name,15); /*输入姓名,并进行校验*/ printf("please input %d score \n",N); /*提示开始输入成绩*/ s=0; /*计算每个学生的总分,初值为0*/ for(i=0;iscore[i]); if(info->score[i]>100||info->score[i]<0) printf("bad data,repeat input\n"); }while(info->score[i]>100||info->score[i]<0); s=s+info->score[i]; } info->sum=s; info->average=(float)s/N; info->order=0; info->next=h; h=info; } return(h); /*返回头指针*/}/*输入字符串,并进行长度验证*/inputs(char *prompt, char *s, int count){ char p[255]; do{ printf(prompt); /*显示提示信息*/ scanf("%s",p); if(strlen(p)>count)printf("\n too long! \n"); }while(strlen(p)>count); strcpy(s,p); }void print(STUDENT *h){ int i=0; /* 统计记录条数*/ STUDENT *p; /*移动指针*/ clrscr(); /*清屏*/ p=h; /*初值为头指针*/ printf("\n\n\n****************************STUDENT********************************\n"); printf("|rec|nO | name | sc1| sc2| sc3| sum | ave |order|\n"); printf("|---|----------|---------------|----|----|----|--------|-------|-----|\n"); while(p!=NULL) { i++; printf("|%3d |%-10s|%-15s|%4d|%4d|%4d| % | % | %3d |\n", i, p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order); p=p->next; } printf("**********************************end*********************************\n");}/*删除记录*/STUDENT *delete(STUDENT *h){ STUDENT *p,*q; /*p为查找到要删除的结点指针,q为其前驱指针*/ char s[11]; /*存放学号*/ clrscr(); /*清屏*/ printf("please deleted no\n"); /*显示提示信息*/ scanf("%s",s); /*输入要删除记录的学号*/ q=p=h; /*给q和p赋初值头指针*/ while(strcmp(p->no,s)&&p!=NULL) /*当记录的学号不是要找的,或指针不为空时*/ { q=p; /*将p指针值赋给q作为p的前驱指针*/ p=p->next; /*将p指针指向下一条记录*/ } if(p==NULL) /*如果p为空,说明链表中没有该结点*/ printf("\nlist no %s student\n",s); else /*p不为空,显示找到的记录信息*/ { printf("*****************************have found***************************\n"); printf("|no | name | sc1| sc2| sc3| sum | ave |order|\n"); printf("|----------|---------------|----|----|----|--------|-------|-----|\n"); printf("|%-10s|%-15s|%4d|%4d|%4d| % | % | %3d |\n", p->no, p->name,p->score[0],p->score[1],p->score[2],p->sum, p->average,p->order); printf("********************************end*******************************\n"); getch(); /*压任一键后,开始删除*/ if(p==h) /*如果p==h,说明被删结点是头结点*/ h=p->next; /*修改头指针指向下一条记录*/ else q->next=p->next; /*不是头指针,将p的后继结点作为q的后继结点*/ free(p); /*释放p所指结点空间*/ printf("\n have deleted No %s student\n",s); printf("Don't forget save\n");/*提示删除后不要忘记保存文件*/ } return(h); /*返回头指针*/}/*查找记录*/void search(STUDENT *h){ STUDENT *p; char s[15]; clrscr(); printf("please enter name for search\n"); scanf("%s",s); /*输入姓名*/ p=h; /*将头指针赋给p*/ while(strcmp(p->name,s)&&p!=NULL) /*当记录的姓名不是要找的,或指针不为空时*/ p=p->next; /*移动指针,指向下一结点*/ if(p==NULL) /*如果指针为空*/ printf("\nlist no %s student\n",s); /*显示没有该学生*/ else /*显示找到的记录信息*/ { printf("\n\n*****************************havefound***************************\n"); printf("|nO | name | sc1| sc2| sc3| sum | ave |order|\n"); printf("|----------|---------------|----|----|----|--------|-------|-----|\n"); printf("|%-10s|%-15s|%4d|%4d|%4d| % | % | %3d |\n", p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order); printf("********************************end*******************************\n"); }}/*插入记录*/STUDENT *insert(STUDENT *h){ STUDENT *p,*q,*info; /*p指向插入位置,q是其前驱,info指新插入记录*/ char s[11]; /*保存插入点位置的学号*/ int s1,i; printf("please enter location before the no\n"); scanf("%s",s); /*输入插入点学号*/ printf("\nplease new record\n"); /*提示输入记录信息*/ info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/ if(!info) { printf("\nout of memory"); /*如没有申请到,内存溢出*/ return NULL; /*返回空指针*/ } inputs("enter no:",info->no,11); /*输入学号*/ inputs("enter name:",info->name,15); /*输入姓名*/ printf("please input %d score \n",N); /*提示输入分数*/ s1=0; /*保存新记录的总分,初值为0*/ for(i=0;iscore[i]); if(info->score[i]>100||info->score[i]<0) printf("bad data,repeat input\n"); }while(info->score[i]>100||info->score[i]<0); s1=s1+info->score[i]; /*计算总分*/ } info->sum=s1; /*将总分存入新记录中*/ info->average=(float)s1/N; /*计算均分*/ info->order=0; /*名次赋值0*/ info->next=NULL; /*设后继指针为空*/ p=h; /*将指针赋值给p*/ q=h; /*将指针赋值给q*/ while(strcmp(p->no,s)&&p!=NULL) /*查找插入位置*/ { q=p; /*保存指针p,作为下一个p的前驱*/ p=p->next; /*将指针p后移*/ } if(p==NULL) /*如果p指针为空,说明没有指定结点*/ if(p==h) /*同时p等于h,说明链表为空*/ h=info; /*新记录则为头结点*/ else q->next=info; else if(p==h) { info->next=p; h=info; } else { info->next=p; q->next=info; } printf("\n ----have inserted %s student----\n",info->name); printf("---Don't forget save---\n"); /*提示存盘*/ return(h); /*返回头指针*/}/*保存数据到文件*/void save(STUDENT *h){ FILE *fp; /*定义指向文件的指针*/ STUDENT *p; /* 定义移动指针*/ char outfile[10]; /*保存输出文件名*/ printf("Enter outfile name,for example c:\\f1\\:\n"); /*提示文件名格式信息*/ scanf("%s",outfile); if((fp=fopen(outfile,"wb"))==NULL) /*为输出打开一个二进制文件,如没有则建立*/ { printf("can not open file\n"); exit(1); } printf("\nSaving file......\n"); /*打开文件,提示正在保存*/ p=h; /*移动指针从头指针开始*/ while(p!=NULL) /*如p不为空*/ { fwrite(p,sizeof(STUDENT),1,fp);/*写入一条记录*/ p=p->next; /*指针后移*/ } fclose(fp); /*关闭文件*/ printf("-----save success!!-----\n"); /*显示保存成功*/}/* 从文件读数据*/STUDENT *load(){ STUDENT *p,*q,*h=NULL; /*定义记录指针变量*/ FILE *fp; /* 定义指向文件的指针*/ char infile[10]; /*保存文件名*/ printf("Enter infile name,for example c:\\f1\\:\n"); scanf("%s",infile); /*输入文件名*/ if((fp=fopen(infile,"rb"))==NULL) /*打开一个二进制文件,为读方式*/ { printf("can not open file\n"); /*如不能打开,则结束程序*/ exit(1); } printf("\n -----Loading file!-----\n"); p=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/ if(!p) { printf("out of memory!\n"); /*如没有申请到,则内存溢出*/ return h; /*返回空头指针*/ } h=p; /*申请到空间,将其作为头指针*/ while(!feof(fp)) /*循环读数据直到文件尾结束*/ { if(1!=fread(p,sizeof(STUDENT),1,fp)) break; /*如果没读到数据,跳出循环*/ p->next=(STUDENT *)malloc(sizeof(STUDENT)); /*为下一个结点申请空间*/ if(!p->next) { printf("out of memory!\n"); return h; } q=p; p=p->next; } q->next=NULL; /*最后一个结点的后继指针为空*/ fclose(fp); /*关闭文件*/ printf("---You have success read data from file!!!---\n"); return h; /*返回头指针*/}/*追加记录到文件*/void append(){ FILE *fp; /*定义指向文件的指针*/ STUDENT *info; /*新记录指针*/ int s1,i; char infile[10]; /*保存文件名*/ printf("\nplease new record\n"); info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/ if(!info) { printf("\nout of memory"); /*没有申请到,内存溢出本函数结束*/ return ; } inputs("enter no:",info->no,11); /*调用inputs输入学号*/ inputs("enter name:",info->name,15); /*调用inputs输入姓名*/ printf("please input %d score \n",N); /*提示输入成绩*/ s1=0; for(i=0;iscore[i]); /*输入成绩*/ if(info->score[i]>100||info->score[i]<0)printf("bad data,repeat input\n"); }while(info->score[i]>100||info->score[i]<0); /*成绩数据验证*/ s1=s1+info->score[i]; /*求总分*/ } info->sum=s1; /*保存总分*/ info->average=(float)s1/N; /*求均分*/ info->order=0; /*名次初始值为0*/ info->next=NULL; /*将新记录后继指针赋值为空*/ printf("Enter infile name,for example c:\\f1\\:\n"); scanf("%s",infile); /*输入文件名*/ if((fp=fopen(infile,"ab"))==NULL) /*向二进制文件尾增加数据方式打开文件*/ { printf("can not open file\n"); /*显示不能打开*/ exit(1); /*退出程序*/ } printf("\n -----Appending record!-----\n"); if(1!=fwrite(info,sizeof(STUDENT),1,fp)) /*写文件操作*/ { printf("-----file write error!-----\n"); return; /*返回*/ } printf("-----append sucess!!----\n"); fclose(fp); /*关闭文件*/}/*文件拷贝*/void copy(){ char outfile[10],infile[10]; FILE *sfp,*tfp; /*源和目标文件指针*/ STUDENT *p=NULL; /*移动指针*/ clrscr(); /*清屏*/ printf("Enter infile name,for example c:\\f1\\:\n"); scanf("%s",infile); /*输入源文件名*/ if((sfp=fopen(infile,"rb"))==NULL) /*二进制读方式打开源文件*/ { printf("can not open input file\n"); exit(0); } printf("Enter outfile name,for example c:\\f1\\:\n"); /*提示输入目标文件名*/ scanf("%s",outfile); /*输入目标文件名*/ if((tfp=fopen(outfile,"wb"))==NULL) /*二进制写方式打开目标文件*/ { printf("can not open output file \n"); exit(0); } while(!feof(sfp)) /*读文件直到文件尾*/ { if(1!=fread(p,sizeof(STUDENT),1,sfp)) break; /*块读*/ fwrite(p,sizeof(STUDENT),1,tfp); /*块写*/ } fclose(sfp); /*关闭源文件*/ fclose(tfp); /*关闭目标文件*/ printf("you have success copy file!!!\n"); /*显示成功拷贝*/}/*排序*/STUDENT *sort(STUDENT *h){ int i=0; /*保存名次*/ STUDENT *p,*q,*t,*h1; /*定义临时指针*/ h1=h->next; /*将原表的头指针所指的下一个结点作头指针*/ h->next=NULL; /*第一个结点为新表的头结点*/ while(h1!=NULL) /*当原表不为空时,进行排序*/ { t=h1; /*取原表的头结点*/ h1=h1->next; /*原表头结点指针后移*/ p=h; /*设定移动指针p,从头指针开始*/ q=h; /*设定移动指针q做为p的前驱,初值为头指针*/ while(t->sumsum&&p!=NULL) /*作总分比较*/ { q=p; /*待排序点值小,则新表指针后移*/ p=p->next; } if(p==q) /*p==q,说明待排序点值大,应排在首位*/ { t->next=p; /*待排序点的后继为p*/ h=t; /*新头结点为待排序点*/ } else /*待排序点应插入在中间某个位置q和p之间,如p为空则是尾部*/ { t->next=p; /*t的后继是p*/ q->next=t; /*q的后继是t*/ } } p=h; /*已排好序的头指针赋给p,准备填写名次*/ while(p!=NULL) /*当p不为空时,进行下列操作*/ { i++; /*结点序号*/ p->order=i; /*将名次赋值*/ p=p->next; /*指针后移*/ } printf("sort sucess!!!\n"); /*排序成功*/ return h; /*返回头指针*/}/*计算总分和均值*/void computer(STUDENT *h){ STUDENT *p; /*定义移动指针*/ int i=0; /*保存记录条数初值为0*/ long s=0; /*总分初值为0*/ float average=0; /*均分初值为0*/ p=h; /*从头指针开始*/ while(p!=NULL) /*当p不为空时处理*/ { s+=p->sum; /*累加总分*/ i++; /*统计记录条数*/ p=p->next; /*指针后移*/ } average=(float)s/i;/* 求均分,均分为浮点数,总分为整数,所以做类型转换*/ printf("\n--All students sum score is:%ld average is %\n",s,average);}/*索引*/STUDENT *index(STUDENT *h){ STUDENT *p,*q,*t,*h1; /*定义临时指针*/ h1=h->next; /*将原表的头指针所指的下一个结点作头指针*/ h->next=NULL; /*第一个结点为新表的头结点*/ while(h1!=NULL) /*当原表不为空时,进行排序*/ { t=h1; /*取原表的头结点*/ h1=h1->next; /*原表头结点指针后移*/ p=h; /*设定移动指针p,从头指针开始*/ q=h; /*设定移动指针q做为p的前驱,初值为头指针*/ while(strcmp(t->no,p->no)>0&&p!=NULL) /*作学号比较*/ { q=p; p=p->next; } if(p==q) /*p==q, { t->next=p; h=t; } else { t->next=p; /*t的后继是p*/ q->next=t; /*q的后继是t*/ } } printf("index sucess!!!\n"); /*索引排序成功*/ return h; /*返回头指针*/}/*分类合计*/void total(STUDENT *h){ STUDENT *p,*q; /*定义临时指针变量*/ char sno[9],qno[9],*ptr; /*保存班级号的*/ float s1,ave; /*保存总分和均分*/ int i; clrscr(); /*清屏*/ printf("\n\n *******************Total*****************\n"); printf("---class---------sum--------------average----\n"); p=h; while(p!=NULL) { memcpy(sno,p->no,8); /*从学号中取出班级号*/ sno[8]='\0'; /*做字符串结束标记*/ q=p->next; /*将指针指向待比较的记录*/ s1=p->sum; /*当前班级的总分初值为该班级的第一条记录总分*/ ave=p->average; /*当前班级的均分初值为该班级的第一条记录均分*/ i=1; /*统计当前班级人数*/ while(q!=NULL) /*内循环开始*/ { memcpy(qno,q->no,8); /*读取班级号*/ qno[8]='\0'; /*做字符串结束标记*/ if(strcmp(qno,sno)==0) /*比较班级号*/ { s1+=q->sum; /*累加总分*/ ave+=q->average; /*累加均分*/ i++; /*累加班级人数*/ q=q->next; /*指针指向下一条记录*/ } else break; } printf("%s % %\n",sno,s1,ave/i); if(q==NULL) break; else p=q; } printf("---------------------------------------------\n");}

有关基于c的毕业论文怎么写

一、论文构成 毕业论文格式应规范,必须由封面、目录、正文(包括中外文题名、中外文摘要、中外文关键词、正文、参考文献和致谢)三部分构成。论文装订顺序为外封面开题报告内封面目录中文题名中文摘要中文关键词外文题名外文摘要外文关键词正文参考文献致谢考核意见表。如有附录部分,装订在参考文献后面。 二、纸张及印刷装订规格 毕业论文一律用A4纸张电脑打印。左侧装订。 三、编辑设置 1、页面设置: ①“纸型” ——主要选用“A4”,“纵向”,个别页面可以采用“A4”,“横向”。 ②“文档网格” ——一律使用“无网格”。 ③“页边距” ——上:,下: cm,左:,右: cm。装订线位置居左。 2、段落: ①论文题目居中,每段落首行缩进2字符。 ②“行距”一律为倍。 3、外文字体:一律为Times New Roman 四、封面要求 上交的每份论文都一律采用学校统一印发的外封面(装订线一律在左面)。另附自制内封面一份(A4纸张电脑打印),内容为中外文论文题目、作者的姓名、学号、班级、指导老师的姓名与职称、论文完成时间。 五、开题报告要求 开题报告内容包括:选题的背景与意义(对与选题有关的国内外研究现状、进展情况、存在的问题等进行调研,在此基础上提出选题的研究意义),课题研究的主要内容、方法、技术路线,课题研究拟解决的主要问题及创新之处,课题研究的总体安排与进度,参考文献等方面。开题报告表格至教务处网站下载。 六、论文摘要 (一)字数:中、外文摘要一般各为300~500字。 (二)摘要内容:要求概括地表述论文的研究背景、目的、研究方法、研究重点、结果和主要结论。 (三)字体:中外文均是五号,中文使用宋体。 七、正文要求 (一)字数:文科类专业8000字以上;理科类专业,音乐、美术等专业5000字以上。 (二)字体:正文一般用宋体小四号字打印。中文题名用黑体小三打印,外文题名用小三打印。文章中的各段标题用黑体、小四号字打印,并且前后要一致。全文的文字格式要统一。独立成行的标题后面不再加标点符号。 (三)序号:全文的序号编排要规范。论文的正文层次不宜过多,一般不超过5层次。 中文各层次系统为: 第一层:一、 二、 三、 ……; 第二层:(一)(二)(三)……; 第三层:l. 2. 3. ……; 第四层:(1)(2)(3) ……; 第五层:1) 2) 3)……。 外文各层次系统为: 第一层:A. B. C. ……; 第二层:(A)(B)(C)……; 第三层:a. b. c. ……; 第四层:(a)(b)(c) ……; 第五层:a) b) c)……。 第一、二层次标题应单独成行,第三、四、五层次标题可与文章其他内容同列一行。 每页要插入阿拉伯数字页码,置于右下角。 (四)表名放置在表格正上方,中外文对照;图名放置在图件的正下方,中外文对照。表格一览表采用“三线表”形式,插图需在文中相应处直接给出。图的大小为:半栏图<60mm,100mm<通栏图<130mm。文中计量、计价单位统一采用国际标准单位,公式应独立成行居中斜体排版。 (五)注释:注释指作者对文中某一部分内容的说明。如:对某些名词术语的解释、引文(尤其是直接引用)出处的说明等。中外文均是小五号,中文使用宋体。注释既可以使用脚注,也可以使用尾注。在正文中需加注之处的右上角用注码 ([],一般放在标点符号前)标出。注释的格式参考参考文献的格式。 八、参考文献 参考文献指论文写作过程中所参阅的各种资料,应附在论文末尾加以说明。参考文献有多种意义:作为阐发作者见地的佐证或背景资料;提供有力的理论依据或经典论述;表示对他人理论或成果的继承、借鉴或商榷等,反映作者对情报吸收、利用的程度。 论文主体撰写过程要求参考两篇以上外文文献,文科专业要求必须有10篇以上参考文献,其他专业要求必须有6篇以上参考文献。要求罗列出所有引用的中外文文献资料目录,目录按引用顺序排列。 参考文献具体格式如下: (一)专著(注意应标明出版地及所参阅内容在原文献中的位置) 〔序号〕 作者.专著名[M].出版地:出版者,出版年,起止页. (二)期刊中析出的文献(注意应标明年、卷、期,尤其注意区分卷和期) 〔序号〕 作者.题(篇)名[J].刊名.出版年,卷号(期号):起止页. (三)会议论文 〔序号〕 作者.篇名[C].会议名,会址,开会年. (四)学位论文 〔序号〕 作者.题(篇)名[D].授学位地:授学位单位,授学位年. (五)专利文献 〔序号〕 专利申请者.专利题名[P].专利国别,专利文献种类,专利号.出版日期. (六)报纸文章 〔序号〕 作者.题(篇)名[N].报纸名.出版日期(版次). (七)标准 〔序号〕 标准名称[S].出版地:出版年,起止页. (八)报告 〔序号〕 作者.题(篇)名[R].报告年、月、日. (九)电子文档 〔序号〕 作者.题(篇)名[E].出处或可获得地址(网址).发表或更新日期/引用日期(任选). 九、附录的要求 毕业论文形成过程中所涉及的实验设计、调查材料及其相应的数据、图表等应整理后用附件形式附在参考文献之后。

XXX管理系统,

一、内容要求 毕业设计报告正文要求: (一)理、工科类专业毕业设计报告正文内容应包括:问题的提出;设计的指导思想;方案的选择和比较论证;根据任务书指出的内容和指标要求写出设计过程、课题所涉及元件结构和相关参数的设计计算,有关基本原理的说明与理论分析;给出所设计课题实际运行的数据或参数,并与理论设计参数进行比较和分析,说明产生误差的原因。最后要对所设计课题实用价值做出评估说明;设计过程中存在的问题,改进意见或其它更好的方案设想及未能采纳的原因等。 (二)经济、管理类专业毕业设计报告或论文正文应包括:问题的提出、设计的指导思想;设计方案提出的依据,设计方案的选择和比较;设计过程;所运用的技术经济分析指标和方法;数学模型及其依据,数据计算方法;对设计方案的实用性和经济效益等方面做出评估;对设计实施过程中存在的问题 ( 或可能发生的问题 ) 提出合理化建议。毕业论文的基本论点、主要论据;根据国家有关方针、政策及规定联系实际展开理论分析。 (三)文科类专业毕业设计报告或论文正文应包括:问题的提出、解决问题的指导思想;解决方案提出的依据,解决方案的选择和比较,结论。 二、论文印装 毕业论文用毕业设计专用纸打印。正文用宋体小四号字,行间距为24磅;版面页边距上3cm,下、左,右2cm。 三、论文结构、装订顺序及要求 毕业论文由以下部分组成: (一)封面。论文题目不得超过20个字,要简练、准确,可分为两行。 (二)内容。 1、毕业设计(论文)任务书。任务书由指导教师填写,经系主任、教务部审查签字后生效。 2、毕业设计(论文)开题报告; 3、毕业设计(论文)学生申请答辩表与指导教师毕业设计(论文)评审表; 4、毕业设计(论文)评阅人评审表; 5、毕业设计(论文)答辩表; 6、毕业设计(论文)成绩评定总表; 7、中英文内容摘要和关键词。 (1)摘要是论文内容的简要陈述,应尽量反映论文的主要信息,内容包括研究目的、方法、成果和结论,不含图表,不加注释,具有独立性和完整性。中文摘要一般为200-400字左右,英文摘要应与中文摘要内容完全相同。“摘要”字样位置居中。 (2)关键词是反映毕业设计(论文)主题内容的名词,是供检索使用的。主题词条应为通用技术词汇,不得自造关键词。关键词一般为3-5个,按词条外延层次(学科目录分类),由高至低顺序排列。关键词排在摘要正文部分下方。 (3)中文摘要与关键词在前,英文的在后。 8、目录。 目录按三级标题编写,要求层次清晰,且要与正文标题一致。主要包括绪论、正文主体、结论、致谢、主要参考文献及附录等。 9、正文。论文正文部分包括:绪论(或前言、序言)、论文主体及结论。 (1)绪论。综合评述前人工作,说明论文工作的选题目的和意义,国内外文献综述,以及论文所要研究的内容。 (2)论文主体。论文的主要组成部分,主要包括选题背景、方案论证、过程论述、结果分析、结论或总结等内容。要求层次清楚,文字简练、通顺,重点突出,毕业设计(论文)文字数,一般应不少于8000字(或20个页码)。外文翻译不少于3000字符,外文参考资料阅读量不少于3万字符。 中文论文撰写通行的题序层次采用以下格式: 1 格式是保证文章结构清晰、纲目分明的编辑手段,毕业论文所采用的格式必须符合上表规定,并前后统一,不得混杂使用。格式除题序层次外,还应包括分段、行距、字体和字号等。 第一层次(章)题序和标题居中放置,其余各层次(节、条、款)题序和标题一律沿版面左侧边线顶格安排。第一层次(章)题序和标题距下文双倍行距。段落开始后缩两个字。行与行之间,段落和层次标题以及各段落之间均为24磅行间距。 第一层次(章)题序和标题用小二号黑体字。题序和标题之间空两个字,不加标点,下同。 第二层次(节)题序和标题用小三号黑体字。 第三层次(条)题序和标题用四号黑体字。 第四层次及以下各层次题序及标题一律用小四号黑体字。 (3)结论(或结束语)。作为单独一章排列,但标题前不加“第XXX章”字样。结论是整个论文的总结,应以简练的文字说明论文所做的工作,一般不超过两页。 10、致谢。对导师和给予指导或协助完成毕业设计(论文)工作的组织和个人表示感谢。文字要简洁、实事求是,切忌浮夸和庸俗之词。 11、参考文献及引用资料目录(规范格式见附文)。 12、附录。 13、实验数据表、有关图纸(大于3#图幅时单独装订)。 (三)封底。 附:规范的参考文献格式 参考文献(即引文出处)的类型以单字母方式标识:M——专著,C——论文集,N——报纸文章,J——期刊文章,D——学位论文,R——报告,S——标准,P——专利;对于不属于上述的文献类型,采用字母“Z”标识。 参考文献一律置于文末。其格式为: 1、专著 示例 [1] 张志建.严复思想研究[M]. 桂林:广西师范大学出版社,1989. [2] 马克思恩格斯全集:第1卷[M]. 北京:人民出版社,1956. [3] [英]蔼理士.性心理学[M]. 潘光旦译注.北京:商务印书馆,1997. 2、论文集 示例 [1] 伍蠡甫.西方文论选[C]. 上海:上海译文出版社,1979. [2] 别林斯基.论俄国中篇小说和果戈里君的中篇小说[A]. 伍蠡甫.西方文论选:下册[C]. 上海:上海译文出版社,1979. 凡引专著的页码,加圆括号置于文中序号之后。 3、报纸文章 示例 [1] 李大伦.经济全球化的重要性[N]. 光明日报,1998-12-27,(3) 4、期刊文章 示例 [1] 郭英德.元明文学史观散论[J]. 北京师范大学学报(社会科学版),1995(3). 5、学位论文 示例 [1] 刘伟.汉字不同视觉识别方式的理论和实证研究[D]. 北京:北京师范大学心理系,1998. 6、报告 示例 [1] 白秀水,刘敢,任保平. 西安金融、人才、技术三大要素市场培育与发展研究[R]. 西安:陕西师范大学西北经济发展研究中心,1998. 7、对论文正文中某一特定内容的进一步解释或补充说明性的注释,置于本页地脚,前面用圈码标识。 8、其他要求 (1)文字 论文中汉字应采用严格执行汉字的规范。所有文字字面清晰,不得涂改。 (2)表格 论文的表格可以统一编序,也可以逐章单独编序,采用哪种方式应和插图及公式的编序方式统一。表序必须连续,不得重复或跳跃。表格的结构应简洁。 表格中各栏都应标注量和相应的单位。表格内数字须上下对齐,相邻栏内的数值相同时,不能用‘同上’、‘同左’和其它类似用词,应一一重新标注。 表序和表题置于表格上方中间位置,无表题的表序置于表格的左上方或右上方(同一篇论文位置应一致)。 (3)插图 插图要精选。图序可以连续编序,也可以逐章单独编序,采用哪种方式应与表格、公式的编序方式统一,图序必须连续,不得重复或跳跃。仅有一图时,在图题前加‘附图’字样。毕业设计(论文)中的插图以及图中文字符号应打印,无法打印时一律用钢笔绘制和标出。 由若干个分图组成的插图,分图用a,b,c,……标出。 图序和图题置于图下方中间位置。 (4)公式 论文中重要的或者后文中须重新提及的公式应注序号并加圆括号,序号一律用阿拉伯数字连续编序,或逐章编序,序号排在版面右侧,且距右边距离相等。公式与序号之间不加虚线。 (5)数字用法 公历世纪、年代、年、月、日、时间和各种计数、计量,均用阿拉伯数字。年份不能简写。数值的有效数字应全部写出。 (6)软件 软件流程图和源程序清单要按软件文档格式附在论文后面,特殊情况可在答辩时展示,不附在论文内。 (7)工程图按国标规定装订 图幅小于或等于3#图幅时应装订在论文内,大于3#图幅时按国标规定单独装订作为附图。 (8)艺术设计作品 无法用纸质文档保存的艺术设计作品应用光盘或照片保存。 (9)计量单位的定义和使用方法按国家计量局规定执行。 以上是我的毕业论文要求,全国各个学校其实都是一样的. 回答完毕.

学术堂手把手得来教你如何写出一篇计算机专业的毕业论文:首先是选题,一般老师都会提供若干个选题给你选,其中必然包括几个"XX系统的设计与开发",这样的选题就是符合我们前面的假设和预想的.盘他!假设我现在选了一个题目是"基于SSM的XX网上商城的设计与开发".选完题目就面临着一个问题:是先做开发还是先写文章,或者是一边写一边开发.我的建议是一边写一边开发.原因是:开发的过程是需要写一些文案的,比如需求分析、数据库的表结构的关系、整个系统的交互逻辑等等.而这些文案是可以出现在我们的论文当中的.那接下来就说一下如何开发和写文论,当然某些开发过程我只能粗略的说一下.1.摘要:这是所有论文的第一个小title,说他恶心有时候也恶心,说他简单也是蛮简单的.那么这一部分究竟是要写什么的?由于这一部分需要展现出做这个系统的必要性、开发这个系统的实现方式、系统的功能和系统的作用.所以可以这样写:?随着中国经济的高速发展以及网络技术的普及,互联网的技术得到全面的发展,中国的各行各业都在互联网的影响下发生了变革.互联网的快速发展催生了许多产业,其中最具代表性的便是电子商务,电子商务使得企业和客户的营销关系由实体店销售准换为网络电子商务营销.马云曾说:"让天底下没有难做的生意",越来越多的店家选择在网上开店,使得交易不再限制于天南地北,同时也大大降低了店家的经营成本,在提高收益的同时,也方便了客户,本课题正式在这种背景下应运而生.本课题介绍了"基于SSM的XX网上商城"的开发环境、需求分析、界面设计和数据库设计以及涉及到的框架.本系统采用了B/S架构,使用了Java、HTML、JS等语言,使用了主流的后台开发框架SSM(spring+springMVC+Mybatis),以及采用了开源的轻量级数据库Mysql进行开发,为网络商城提供了前端展示和后台管理的模块,实现了注册、登录以及购物等主要功能,为消费者提供了便捷快速的购物体验,以及为提高了店家的销售效率.关键字:网上商城,SSM,Java,HTML,JS,MySQL(关键字一般就是把摘要中提及到的关键性技术提取出来,让阅读者一目了然,知道哪些是重点)Abstract:......(英文摘要建议谷歌翻译,然后把明显错误的地方修改一下即可)2.第一章:引言这一部分也是比虚的,其实随便扯一扯就可以了,一般包含以下几部分1.背景2.研究内容.其中背景主要讲一些关于社会发展的趋势导致了一些什么问题,而这些问题又应该如何去解决,多说几句,写到两三百字即可.研究内容就是针对上述的背景我们如何进行改进.细心的同学可能会说,感觉跟摘要有些重复.是的!这两部分内容其实是挺重复的,但是没关系,不过不要使用完完全全一样的话去描述,因为最后论文查重的时候会对文章自引用进行查重的.这一部分也是三五百字即可.3.第二章:系统的开发技术介绍这一部分是需要我们在正式开发之前做好的技术调研,然后对这一部分的技术进行详细的介绍.这一部分我不可能细讲,因为内容太多了,而且对于不同的项目有不同的内容,在查阅资料的过程也是提升技术的一个重要的环节,你可以真真切切的了解到开发一个工程是需要哪方面的知识,因此我就对我所选的这个课题应该使用到的技术栈进行一下介绍,也算是抛砖引玉,各位同学可以根据自己的实际情况进行撰写.开发不同的系统虽然涉及到的业务逻辑不同,处理方式也千差万别,但是本质上都是一样的,都是前端界面通过服务器跟数据库进行数据交互的一个过程,涉及到的内容也无非就是前端、后台和服务器.但是有一个需要注意的点,就是不要把HTML、JAVA等使用的语言介绍也给堆在这里,老师没细看还好,细看还是会显得太水字数了,记住,写工程性的课题不怕没字数.那问题来了,语言介绍不给写那应该些什么呢?应该写涉及到的框架、使用的工具.这些就够了,随随便便就几千字了.下面举例简单说明一下.a. 前端强调一下,不要把HTML、CSS等一下前端的规范展开来写,可以轻描淡写,但篇幅不能过多.这里可以写前端框架的使用,比如使用npm管理包(可以介绍一下npm以及在工程中的使用)、vue的使用(同样可以介绍vue框架以及应用)、element(element以及使用他的好处)等等.也希望同学在做毕设的过程中要真的去了解这些技术并且去使用它,相信我,看完再去用你的技术会有质的飞跃.b. 后台这一部分是重点,对于本课题来说,标题就写了是基于SSM的.对于这个java框架并不熟悉的同学来说建议先去查一下资料,而且很多同学会有疑问,使用技术框架的目的就是为了让开发更加的便捷和快速,但是为什么我们自己在开发的过程中会感觉好像变得更加复杂?很负责任的告诉你,是正常的.因为框架不仅会帮我们封装好一些常用的方法,而且会考虑到更新迭代以及代码可读性等等的一系列的问题,某些规定和配置我们之所以没有感受到他的好处是因为这种校园内的开发并不涉及生产问题,也不会有很多的更新迭代,更加不会考虑到代码的可读性.例如spring的工厂,一开始使用的时候很多同学会觉得为什么我new一个类的时候还要去改配置文件,直接new不香吗?直接new是很香,但是你考虑到真正去工作的时候,假设你要改类的一些关系的时候,还要去改代码,当工程一大,代码去哪里找呢?一个一个文件看吗?显然是非常不可取的,效率非常低,这个时候配置文件的优势就发挥出来了,直接修改配置文件,不需要更改代码,耦合性也大大的降低.好像跑题了,说了这么多就告诉同学们,要沉住气,理解框架这样设计背后的原因,对大家自身技术的提高非常的有帮助!那这一部分我们就可以介绍spring(包括spring的IOC、spring的工厂、spring的AOP等等,并且可以在论文中强调如何应用到我们的系统当中)、springMVC(这一部分可以讲解srpingMVC作为一个连接前端和数据库的工具在实际工作过程中的具体流程,也可以讲述springMVC的分层的概念以及如何应用)、Mybatis(包括跟JDBC的关系、mybatis依赖的配置、使用到的接口、动态代理、一级缓存和二级缓存以及延迟加载等等的一些技术问题)c. 服务器和数据库这一部分可以介绍一下用来搭建服务器的工具和所使用的数据库.假设你是使用了云服务器来搭建了,可以详细介绍一下云服务器的搭建过程包括防火墙、端口等等内容.一般服务器使用tomcat进行搭建,可以把tomcat介绍一下并且介绍一下tomcat是如何监听和解析用户请求的具体流程.一般小型的项目采用MySQL作为数据库,可以详细说一下选择MySQL的原因,比如相对于Oracle的好处.可以介绍一下MySQL数据库的一些特点包括分页、是否支持事务等等.4.第三章:需求分析这一部分是针对具体的业务场景来分析需要开发哪些功能,这一部分可以让你感受一下产品经理的职责,只不过不需要跟程序员对接,因为你自己就是程序员哈哈.一般来说分成两部分就可以了,一部分是对于前端的业务流程,另一部分就是后台服务器的业务流程,可以使用一些软件来绘画流程图,想图个方便可以直接使用word自带的图形进行编写,也不至于难看,就比较简约.想做的好看点的话个人推荐使用xmind,非常简单,可以快速做出美观的流程图.如果没有什么思路,那前端就按照着使用者的逻辑去写,比如用户需要注册、登录、找回密码、购物、退货等操作,那后端就对应着这些前端逻辑需要有相应的业务处理.个人感觉这一部分比较好写,就不再赘述.5.第四章:系统的设计和实现这一部分可以挑选一些有代表性的功能出来细讲,有些同学可能会有疑问,论文可不可以贴代码呢?答案是可以的.但是我个人的建议是贴伪代码,不要把你写的长篇大论的代码全部放进去,不好看而且逻辑混乱,应该做的是把代码抽取为伪代码,贴代码的目的是为了让阅读者清晰地读懂你是如何实现这个功能的,他并不会在意你的语法你的命名.下面列举若干个可以写的内容,并不限于此.a. SSM框架的整合.如何使用Spring来整合并且管理SpringMVC和. 客户登录状态保存的实现.这一部分可能会涉及到cookies,sessions以及http报文解析等等,都可以详解.c. 后台商品管理的功能.这一部分可以根据管理员的后台管理功能进行描写.d. 商品搜索功能.可以涉及到数据库的模糊搜索.e. 数据库表格的设计.可以体现数据库表格设计的时候如何遵守三范式.f. 可以写在开发过程中遇到的一些疑难杂症.g. 可以写开发过程中使用到的一些比较具有亮点的语言特性.比如java的多线程、lambda表达式.又比如实现注册功能的时候使用的正则表达式.……等等数不胜数.6.第五章:运行结果这一部分非常好写了.截取一些关于你的系统的界面并且介绍一下功能,尽量说详细点,就ok了.7.第六章:总结以及展望这一部分也是比较水的一部分,但是也希望同学们认真写一写.可以写一下你开发这个项目的过程中学习到了什么,可以是XX技术,也可以是艰苦奋斗的精神…….展望可以写有望发展成另外一个淘宝……开玩笑开玩笑,总之劈里啪啦凑个几百字即可.8.参考文献把你开发过程中参考过的文章、论文贴进去之后,往往会发现参考文献不够,太少了!那怎么办呢?那就贴一些关于使用的技术的文章或者参考手册咯,虽然大部分是没看过的,但是还是希望大家可以多少看一看(正义之气跃然纸上).去知网查找参考文章然后添加到你的参考文献是非常方便的,只需要找到对应的文章并且选择"引用"功能,即可自动生成引用的文字,直接复制到你的论文中.9.致谢第一步,感谢你的导师,感谢你的院领导,感谢你的校领导.说的好听后可能答辩的时候不会太为难你……然后你要感谢你的家人你的舍友你的朋友或者是你家的狗(开玩笑),都可以的,这一部分又轻轻松松两百字.

基于c语言2048的小游戏毕业论文

/*幸运52游戏 */#include<>void main(){int a,b,c;char name[20];printf("请输入您的姓名:\n");scanf("%s",name);printf("请设置玩家的游戏猜谜次数\n");scanf("%d",&b);printf("请设置猜谜的正确答案\n");scanf("%d",&c);printf("\n好了,游戏开始\n*****************************************\n请输入数字:\n");scanf("%d",&a);while(a!=c&&b>0){if(a>c)printf("大了\n");elseprintf("小了\n");b--;scanf("%d",&a);}if(a==c){printf("\n*****************************************\n恭喜您过关了!\n玩家:%s\t",name);}elseprintf("\n*****************************************\n游戏结束,大虾请重新来过\n");getch();}

学号:    姓名:高少魁 【嵌牛导读】2048游戏在网页端与移动端均可以使用,本设计将该游戏移植到了硬件平台FPGA上,使用Digilent Nexys 4 DDR 开发板,使用Xilinx Vivado 用于搭建基于MicroBlaze 软核处理器的硬件运行环境,“2048”游戏主程序和VGA 显示控制等程序的编写在Xilinx SDK 上进行。游戏必需的上、下、左、右方向控制,在物理上由开发板上的按键实现,在软件层面通过查询方式实现。最终,嵌入式系统的运行结果将输出到显示屏上,包含4×4 棋盘方格、游戏得分和游戏结果。 【嵌牛鼻子】FPGA    VGA    最小嵌入式系统    软核CPU 【嵌牛正文】 一、硬件设计 系统设计的整体电路框图如图所示 硬件部分由基于MicroBlaze 软核处理器的最小嵌入式系统和外围的输入输出模块构成。最小嵌入式系统以MicroBlaze 软核处理器、时钟模块(Clocking Wizard)、处理器系统复位模块(Processor System Reset)、调试模块(MicroBlaze Debug Module,MDM)、内置存储(LocalMemory)和外置存储接口模块(Memory Interface Generator,MIG)为核心,以AXI 总线互联模块(AXI Interconnect)作为处理器与外设的通信基础,以直接或间接挂载于其上的AXI 中断控制器(AXI Interrupt Controller)和中断请求集成器(Concat)作为中断信号的数据通路。 外围输入输出模块包括以下若干部分,它们均通过AXI 总线与处理器通信。UART 模块(AXI Uartlite)实现嵌入式系统与计算机的调试通信,GPIO 模块(AXI GPIO)实现按键输入,TFT 模块(AXI TFT Controller)把系统运行结果通过VGA 接口输出。 由于软件部分需要存储大量的图片资源,且TFT 模块要求显存不少于2MB,而处理器的内置存储空间不足,故使用MIG 模块以使用外置DDR2 存储。硬件系统共需要有三种不同频率的时钟信号:处理器需要100MHz 时钟、MIG 模块需要200MHz 时钟、TFT 模块需要25MHz 时钟,故Clocking Wizard 输出三路时钟。 要把上述嵌入式系统在FPGA 上实现,需要添加管脚约束。共有三处需要添加约束:时钟信号输入、GPIO 模块的按键输入和TFT 模块的VGA 接口输出。前两处在添加相应IP 核时以完成约束,TFT 模块的约束需要手动完成,即把红、绿、蓝三通道颜色信号和行、场同步信号约束到VGA 端子上。 二、软件设计 1.图片素材 嵌入式系统的运行结果,即“2048 ”游戏的状态需要以图形的方式输出到显示屏,因此需要把所有可能显示的较为复杂的内容预先制作好并存储起来。这些内容包括2~ 65536 共16个数字方块、用于显示得分的 0~ 9 这十个数字 、“得分”提示语 和游戏给出的“赢”和“输”的提示信息,均使用 Adobe Photoshop制作。然后,利用 Image 2 Lcd 工具软件把图片输出为 C 语言格式的数组备用。 2.主程序部分 主程序实现的功能为:配置硬件工作参数 、调用 VGA 显示部分的函数来显示两幅静态页面 、初始化游戏、初始化屏幕显示和 识别用户输入的控制信号并传输给游戏核心部分。 硬件工作参数包括GPIO 通道的数据传输方向 、 显存基地址 和 TFT 扫描方式 。 GPIO 用于获取用户输入的控制信息,因此方向为输入 TRI 寄存器的值配置为 0 x1F 。显存基地址为0x 87 E 00000 ,大小为 2MB ,该信息写入 AR 寄存器 。 TFT 显示控制器的工作参数为从左到右扫描、开启显示输出,相应地把 0x 1 写入 CR 寄存器。 程序开始执行时,首先调用VGA 显示部分的两个函数分别 2~ 65536 共 16 种不同数字方格的棋盘。 然后,调用函数开始一局新游戏并在屏幕上预先绘制好不需要更新的棋盘区域底框、“得分”提示信息和显示分数的区域的底框。 主程序使用查询的方式不断获取 GPIO 寄存器提供的用户输入信息。当有输入时,调用游戏核心部分的函数更新“棋盘”信息。 显示部分 该部分程序按照一定的规则向显存写入数据以在显示屏上显示不同的内容。这些内容包括 2~ 65536 共 16 种数字方格的棋盘、得分信息、游戏进行时的棋盘和提示信息。 2~ 65536 共 16 种数字方格的棋盘在程序刚开始执行时显示,每幅画面大约显示 5 秒,用软件延时粗略控制。随着游戏的进行, VGA 显示部分不断读取“棋盘”,并把代表相应数字的图片绘制到显示器上。同时,它还读取得分信息,并绘制到预先设定的位置。如果“棋盘”上出现了“ 2048 ”,它输出“赢”的提示信息。如果“棋盘”上的方格均不能移动且没有出现“ 2048 ”,则显示“输”的提示信息。 4.游戏核心部分 游戏核心部分主要涉及对“棋盘” 的处理 ,程序把它抽象为 4 × 4 的二维数组。这部分的功能包括: 游戏初始化、 方块四个方向 的移动和合并策略、向棋盘添加一个新的方块、检查游戏的状态、计算得分和获取游戏的状态信息。 游戏初始化把得分清零,并向棋盘添加两个数字。方块四个方向的移动和合并策略与我们之前体验过的2048 游戏完全一致。方块移动后,“棋盘”上一定会增加一个新的方块,可能是2 或 4 ,概率为 9:1 。之后,程序检查“棋盘”上是否出现过 2048 。如果出现过(“棋盘”上至少有一个不小于“ 2048的方格),则游戏结束,通知 VGA 绘图部分显示“赢”的提示信息。如果没有出现过,则检查棋盘上的空余位置数量数量以以及方块是否还能移动。如果没有空余位置且方块不能继续移动,及方块是否还能移动。如果没有空余位置且方块不能继续移动,则游戏失败,通知则游戏失败,通VGA显示部分显示部分输出“输”的提示信息。接下来,输出“输”的提示信息。接下来,程序将通知程序将通知VGA显示部显示部分更新“棋盘”和得分的显示。分更新“棋盘”和得分的显示。 三、设计运行效果 运行效果如下图

做个毕设100分就有人做?真是值得怀疑?

机顶盒上游戏开发可以么,也是用C语言写的目 录第一章 绪论 机顶盒的产生背景 机顶盒的发展及其现状 游戏模块设计的必要性 模块设计需要解决的问题 3第二章 系统开发环境及相关技术介绍 XX-XX硬件平台 XX操作系统 内核 任务机制 消息队列 信号量 C语言的特点 7第三章 开发流程 功能需求分析 可行性分析 模块设计 编码 测试 11第四章 系统设计 游戏模块接口设计 游戏的初始化 游戏的按键读取和转化 游戏的暂停、恢复和退出 游戏算法设计 推箱子游戏设计 俄罗斯方块游戏设计 黑白棋游戏设计 14结 论 16谢 辞 17参 考 文 献 18附录 推箱子游戏源程序 19

相关百科

热门百科

首页
发表服务