课程设计报告1

合集下载

学生选课信息系统数据库课程设计报告(1)

学生选课信息系统数据库课程设计报告(1)

学生选课信息系统数据库课程设计报告(1)学生选课信息系统数据库课程设计报告一、设计背景学生选课是高校本科教育的重要环节之一,选课过程需要学生、教师和管理员之间的良好合作。

为了方便学生选课,提高教学质量,开发一个适合本校实际需求的学生选课信息系统是非常有必要的。

二、系统需求1. 前台系统学生登录系统后可以进行选课、退课和查询课程信息等操作。

系统提供课程介绍和授课教师信息,方便学生选择。

2. 后台系统管理员需要对系统的课程信息、学生选课信息进行管理,包括添加、删除、修改课程信息,管理选课限制,查询学生选课情况等。

3. 数据库设计系统需要设计数据库,存储学生、教师和课程信息,以及学生选课信息的记录。

三、系统功能1. 学生功能(1)学生登录系统进行选课、退课操作。

(2)学生可以查看选课情况、课程信息和授课教师信息。

2. 教师功能(1)教师登录系统可以查看自己的授课情况和课程信息。

(2)教师可以对自己的课程信息进行修改。

3. 管理员功能(1)管理员登录系统可以添加、删除、修改课程信息。

(2)管理员可以设置课程选课限制,管理学生选课情况和课程信息。

四、系统实现1. 前台系统使用HTML、CSS、JavaScript等技术进行开发,实现学生、教师等用户操作界面。

2. 后台系统使用PHP或Java等技术进行开发,实现管理员对系统各个功能的管理操作。

3. 数据库使用MySQL或Oracle等关系型数据库进行设计,存储学生、教师和课程信息、学生选课记录等。

五、系统优化为了提高系统的性能和可用性,需要对系统进行优化,包括:1. 对数据库进行索引优化,提高查询速度。

2. 在前台系统中进行数据缓存,减少对后台系统的请求次数,提高系统响应速度。

3. 对系统进行安全性优化,防止非法入侵和数据泄漏。

六、系统测试在开发完成后,需要进行系统测试,包括功能测试和性能测试。

针对测试中发现的问题和缺陷,进行修复和优化,最终达到高质量的系统交付效果。

数据库课程设计报告范例1:在线考试系统在线考试系统

数据库课程设计报告范例1:在线考试系统在线考试系统

目录1 引言 (1)1.1课程设计选题 (1)1.2课程设计的目的 (1)1.3本选题的设计背景 (1)2 系统分析与设计 (1)2.1 功能及性能分析 (1)2.1.1 功能需求 (1)2.1.2 性能需求 (2)2.1.3 数据流图 (2)2.2 系统的开发运行环境 (3)2.3 系统总体设计 (3)3 数据库设计 (4)3.1 数据库概念结构 (4)3.2 数据库逻辑结构 (5)3.2.1 关系模型及优化 (5)3.2.2 视图的设计 (5)3.3 数据库的实现 (6)3.3.1表 (6)3.3.2 安全性设计 (7)3.3.3 一致性设计 (7)3.3.4触发器的设计 (8)4 详细设计与实现 (9)4.1 登录模块 (9)4.2 考生注册模块 (9)4.3 在线考试模块 (10)4.4 后台功能模块 (13)I4.4.1试题管理模块 (13)4.4.2考生管理模块 (13)4.4.3成绩管理模块 (14)结论 (15)参考文献 (15)II1 引言1.1课程设计选题《在线考试系统》1.2课程设计的目的通过数据库系统课程设计,熟悉了SQL SERVER数据库管理系统的结构与组成;掌握了SQL SERVER数据库管理系统的应用技术和的使用;应用ASP开发工具实践了《在线考试系统》的数据库应用系统的设计方法、开发过程和SQL SERVER数据库的管理与维护。

最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。

1.3本选题的设计背景随着计算机技术的发展和互联网时代的到来,人们已经进入了信息时代,亦或是数字化时代。

在数字化的网络环境下,学生希望得到个性化的满足,根据自己的情况进行学习,同时希望能够得到科学的评价;教育机构也希望给网上的学生提供更灵活的服务。

在线考试系统正是迎合这一需求而开发的,它旨在探索一种以互联网为基础的考试模式。

通过这种新的模式,为考生创造一种新的考试环境,提高考试工作效率和标准化水平。

80c51单片机交通灯课程设计报告1.pdf

80c51单片机交通灯课程设计报告1.pdf

80C51单片机交通灯课程设计报告目录第一章引言 (3)第二章单片机概述 (4)第三章芯片介绍 (6)3.1AT89S51单片机介绍 (6)3.1.1简介 (6)3.1.2主要管脚介绍 (6)3.274LS164介绍 (8)3.3共阳数码管介绍 (8)3.3.1分类简介 (8)图3.3LED数码管引脚定义 (9)3.3.2驱动方式 (9)3.3.3主要参数 (10)3.3.4应用范围 (10)第四章系统硬件设计 (11)4.1硬件设计要求 (11)4.2硬件设计所用元器件 (11)4.3硬件设计图 (11)4.4设计流程图 (12)第五章系统软件设计 (13)5.1流程图 (13)5.2程序设计 (14)第六章结论 (16)参考文献 (18)第一章引言在今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。

但这一技术在19世纪就已出现了。

1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。

这是世界上最早的交通信号灯。

1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。

它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。

1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。

1914年,电气启动的红绿灯出现在美国。

这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。

红灯亮表示“停止”,绿灯亮表示“通行”。

智能的交通信号灯指挥着人和各种车辆的安全运行,实现红、黄、绿灯的自动指挥是城乡交通管理现代化的重要课题.在城乡街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红、黄、绿交通信号灯,其中红灯亮,表示该条道路禁止通行;黄灯亮,表示该条道路上未过停车线的车辆停止通行,已过停车线的车辆继续通行;绿灯亮,表示该条道路允许通行.交通灯控制电路自动控制十字路口两组红、黄、绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口城乡交通管理自动化。

中南大学计算机基础本科生课程设计(实践)设计报告[1]5

中南大学计算机基础本科生课程设计(实践)设计报告[1]5

大学计算机基础课程设计(实践)设计报告1.任务内容网页的主题为印象山城——本溪。

本溪是我国著名的钢铁城市, 旧名“本溪湖”, 这里矿藏丰富, 被誉为“地质博物馆”, 以产优质焦煤、低磷铁、特种钢而著称。

主要旅游景点有本溪湖、本溪水洞以及东北道教名山——九顶铁刹山等。

山野菜、人参、鹿茸、冻梨等是当地著名的风味特产。

由于近几年国家重视老工业基地的发展, 本溪开始实施棚户区改造、绿化带的修建等, 使这个老工业城市又焕发新的光彩, 这是靠全本溪人民的共同努力。

截至2010年末, 本溪已完全年850亿元GDP的总量, 人均5.5万, 增长16.3%。

地方财政一般预算收入完成75亿元, 增长27.4%。

本溪县8000人口的高官镇, 以一镇之力单独创造了43.2亿的GDP 量值, 人均52.3万, 相当于深圳市人均GDP的五倍。

1.网页主要从本溪简介、本溪气候、人文历史、自然资源、旅游五个方面介绍本溪,Powerpoint则是主要从本溪简介、历史风韵、旅游信息三方面简要介绍。

2.设计的步骤①网页制作介绍本溪的城市风貌、人文历史、旅游信息, 它含有大量的图片, 故主页设计应包含“简介”、“本溪气候”、“自然资源”、“历史沿革”、“旅游信息”“风光展现”、“PPT欣赏”等字样, 每项均可制成单独的网页(由于时间关系, 仅完成其中几项), 每个单独的网页上部分应相同, 方便网页间切换。

②主页以城市的整体风貌为背景, 标题为山城印象——本溪, 左侧为目录,主页正中设有以本溪城市风貌为主题的Flash(自己制作)。

左侧的目录点击相应的文字就会弹出相对应的网页介绍。

③幻灯片制作3.幻灯片采用总分结构, 第一页设计为总标题“枫叶之都——本溪”。

第二页为总起目录页, 列出“地理位置”、“历史风韵”、“旅游风向标”。

每项均设超链接到其单独介绍的新幻灯片中。

各幻灯片以文字为主, 穿插相应图片, 分别插入层并设计动作效果, 方便演示, 应用演示模板到全部幻灯片, 添加动作按钮, 动作按钮可回到第二页总目录处, 以许嵩的宿敌为幻灯片音乐。

(2023)红外线感应开关电子技术课程设计报告(一)

(2023)红外线感应开关电子技术课程设计报告(一)

(2023)红外线感应开关电子技术课程设计报告(一)(2023)红外线感应开关电子技术课程设计报告课程背景红外线感应开关是一种常用的电子元件,其主要作用是在人或物体接近时感应并触发信号输出,广泛应用于安防、自动控制、智能家居等领域。

本课程旨在通过学习红外线感应开关电路原理、主要参数及应用实例,掌握基础电路设计及实际应用能力。

课程内容1.红外线感应开关电路原理1.1 红外线原理及应用1.2 红外线感应开关的基本结构2.红外线感应开关主要参数2.1 探测距离的选择与计算2.2 感应时间及灵敏度的调节3.红外线感应开关的应用实例3.1 门禁系统中的应用3.2 智能家居中的应用3.3 工业自动化中的应用课程目标通过本课程的学习,学生能够掌握红外线感应开关的电路原理,了解其主要参数及应用实例,并能够独立完成基础电路设计及实际应用。

课程评估本课程采用考试与实验结合的方式进行评估,其中考试占40%,实验占60%。

考试主要涵盖课程内容的理论部分,实验主要涉及基础电路设计及实际应用能力的考核。

参考资料1.《电子技术基础》(第三版),赵xx,清华大学出版社,2016年。

2.《单片机原理与接口技术》(第二版),高xx,机械工业出版社,2018年。

3.《自动控制原理及实践》(第五版),李xx,高等教育出版社,2019年。

总结本课程旨在培养学生的基础电路设计及实际应用能力,通过掌握红外线感应开关的电路原理、主要参数及应用实例,提高学生的综合能力和实践操作技能,为未来的科技研究奠定基础。

实验内容本课程的实验主要分为两个部分,第一部分是基础实验,旨在让学生掌握红外线感应开关的电路基础原理和实验操作技能;第二部分是应用实验,通过应用实验让学生了解并掌握红外线感应开关在实际应用中的使用方法和注意事项。

基础实验1.组装并调试红外线感应开关电路学生需使用给定的元器件,自行组装红外线感应开关电路,并进行电路调试。

2.测量红外线感应开关参数学生需使用示波器等测量仪器,测量红外线感应开关的探测距离、感应时间及灵敏度等参数。

数据结构课程设计实验1_城市链表

数据结构课程设计实验1_城市链表

数据结构课程设计实验报告实验一链表部分选题为:2.4.3—城市链表1、需求分析(1)创建一个带有头结点的单链表。

(2)结点中应包含城市名和城市的位置坐标。

(3)对城市链表能够利用城市名和位置坐标进行有关查找、插入、删除、更新等操作。

(4)能够对每次操作后的链表动态显示。

2、概要设计为了实现以上功能,可以从以下3个方面着手设计。

(1)主界面设计为了实现城市链表相关操作功能的管理,设计一个含有多个菜单项的主控菜单子程序以系统的各项子功能,方便用户使用本程序。

本系统主控菜单运行界面如下所示。

(2)存储结构设计本系统主要采用链表结构类型来表示存储在“城市链表”中的信息。

其中链表结点由4个分量组成:城市名name、城市的横坐标posx、城市的纵坐标posy、指向下一个结点的指针next。

(3)系统功能设计本程序设计了9个功能子菜单,其描述如下:①建立城市链表。

由函数creatLink()实现。

该功能实现城市结点的输入以及连接。

②插入链表记录。

由函数insert()实现。

该功能实现按坐标由小到大的顺序将结点插入到链表中。

③查询链表记录。

由searchName()函数和searchPos()函数实现。

其中searchName()实现按照城市名查询的操作,searchPos()实现按照城市坐标查询的操作。

④删除链表记录。

由delName()函数和delPos()函数实现。

其中delName()函数实现按照城市名删除的操作,delPos()函数实现按照城市坐标删除的操作。

⑤ 显示链表记录。

由printList ()函数实现。

该功能实现格式化的链表输出操作,可以显示修改后的链表状态。

⑥ 更新链表信息。

由update ()函数实现。

该功能实现按照城市名更新城市的坐标信息。

⑦ 返回城市坐标。

由getPos ()函数实现。

该功能实现给定一个已存储的城市,返回其坐标信息的操作。

⑧ 查看与坐标P 距离小于等于D 的城市。

由getCity ()函数实现。

红外线防盗报警器课程设计报告(1)

红外线防盗报警器课程设计报告(1)

红外线防盗报警器课程设计报告(1)红外线防盗报警器课程设计报告一. 研究背景随着社会的发展,人们的生活越来越丰富多彩,安全问题也越来越受到人们的关注。

特别是在公共场所、商店、仓库等场所,恶意破坏、盗窃事件时有发生。

因此,开发一种高效可靠的防盗报警器具有重要意义。

二. 设计目标本课程设计的目标是:通过设计红外线防盗报警器,使学生在实践中掌握红外线传感器的原理,熟悉单片机的基本应用和API函数使用,并且能够制作一款功能可靠的红外线防盗报警器。

三. 设计原理红外线传感器是一种常见的接近传感器,通过接收红外线信号,判断物体是否靠近。

当有人接近时,红外线传感器会输出一个信号,触发单片机启动报警器,产生报警信号。

这样就实现了红外线防盗报警器的基本功能。

四. 硬件设计1. 红外线传感器:使用红外线接收头模块,将其VCC连接到单片机的VCC,GND连接到单片机的GND,输出引脚连接到单片机的P0口。

2. 报警器:使用蜂鸣器模块,将其正极连接到单片机的P1口,负极连接到单片机的GND。

五. 软件设计1. 采用Keil C51单片机开发平台编写程序。

通过单片机编程,实现红外线传感器的数据采集和报警器的工作控制。

2. 主要操作流程:初始化系统、启动红外线传感器、采集红外线信号、判断物体距离、开启/关闭蜂鸣器。

六. 实验步骤1. 设计电路板,布置红外线传感器和蜂鸣器的位置。

2. 打通等重要连线,将硬件组装好。

3. 在Keil C51单片机开发平台编写代码。

4. 将编好的程序烧录进单片机中。

5. 接通电源,测试红外线防盗报警器的工作状态。

七. 实验结果本设计实现了红外线防盗报警器的基本功能。

当有人接近红外线传感器时,蜂鸣器会立即发出报警声,提醒周围的人。

经过多次测试,本防盗报警器的报警响应时间极快,能够及时发出报警声,可靠性较高。

八. 结束语本课程设计通过手工制作红外线防盗报警器,使学生明白了红外线传感器的原理,掌握了单片机的基本编程思想和API函数使用方法,让学生在实践中提高了动手能力和创新意识。

数控脉冲宽度调制信号发生器课程设计报告1

数控脉冲宽度调制信号发生器课程设计报告1

摘要:本设计采用EDA技术,通过FPGA芯片实现了数控脉冲宽度调制信号发生器的设计,本文采用Verilog 硬件描述语言来说明电路,完成对电路的功能仿真。

通过D触发器及两个可加载8位计数器lcnt8.v实现本设计。

与传统的设计方式相比,本设计由于采用了FPGA芯片来实现,它将大量的电路功能集成到一个芯片中,并且可以由用户自行设计逻辑功能,提高了系统的集成度和可靠性。

关键词:EDA技术、FPGA芯片、硬件描述语言、信号发生器Abstract:This design uses the EDA technology, through the FPGA chip to realize numerical control pulse width modulation signal generator design, the use of Verilog hardware description language to describe the circuit circuit, complete function simulation. Through the D trigger and two can be loaded in 8bit counter lcnt8.v to achieve the design. Compared with traditional design methods, the design adopts FPGA chip to achieve, it will be a large number of circuit functions are integrated into one chip, and can be designed by the user logic function, improve the system integration degree and reliability.Keywords:EDA technology, FPGA chips, hardware description language,Signal generator前言目录前言 (1)1 EDA技术发展及VHDL 简介 (2)1.1 EDA技术的介绍 (2)1.2 EDA技术的发展 (2)1.3 EDA技术的发展趋势 (3)1.4 VHDL简介 (3)2 总体方案设计 (4)2.1设计内容 (4)2.2设计方案比较 (4)2.3方案论证 (5)2.4方案选择 (6)3 特殊器件的介绍 (7)3.1 CPLD器件介绍 (7)3.2 FPGA器件介绍 (7)3.3 EP1K30TC144器件介绍 (8)4 单元模块设计 (9)4.1 供电电路 (9)4.2 PS配置电路 (10)4.3有源晶振电路 (11)4.4 八位计数器输入电路 (11)4.5 D触发器电路 (12)5 最小系统原理图 (13)6 软件实现 (14)6.1软件设计 (14)6.2思考题扩展 (16)7 系统仿真及调试 (20)7.1仿真 (20)7.2 调试 (21)8 总结 (23)9 参考文献 (24)前言随着电子技术的发展,人们的生活水平和质量不断提高,生活设备的智能化程度也越来越高,这些都离不开电子产品的进步。

单片机电子时钟课程设计实验报告(1)

单片机电子时钟课程设计实验报告(1)

单片机电子时钟课程设计实验报告(1)单片机电子时钟课程设计实验报告一、实验内容本次实验的主要内容是使用单片机设计一个电子时钟,通过编程控制单片机,实现时钟的显示、报时、闹钟等功能。

二、实验步骤1.硬件设计根据实验要求,搭建电子时钟的硬件电路,包括单片机、时钟模块、显示模块、按键模块等。

2.软件设计通过C语言编写单片机程序,用于实现时钟功能。

3.程序实现(1)时钟显示功能通过读取时钟模块的时间信息,在显示模块上显示当前时间。

(2)报时功能设置定时器,在每个整点时,通过发出对应的蜂鸣声,提示时间到达整点。

(3)闹钟功能设置闹钟时间和闹铃时间,在闹钟时间到达时,发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。

(4)时间设置功能通过按键模块实现时间的设置,包括设置小时数、分钟数、秒数等。

(5)年月日设置功能通过按键模块实现年月日的设置,包括设置年份、月份、日期等。

三、实验结果经过调试,电子时钟的各项功能都能够正常实现。

在运行过程中,时钟能够准确、稳定地显示当前时间,并在整点时提示时间到达整点。

在设定的闹铃时间到达时,能够发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。

同时,在需要设置时间和年月日信息时,也能够通过按键进行相应的设置操作。

四、实验感悟通过本次实验,我深刻体会到了单片机在电子设备中的广泛应用以及C 语言在程序设计中的重要性。

通过实验,我不仅掌握了单片机的硬件设计与编程技术,还学会了在设计电子设备时,应重视系统的稳定性与可靠性,并善于寻找调试过程中的问题并解决。

在今后的学习和工作中,我将继续加强对单片机及其应用的学习与掌握,努力提升自己的实践能力,为未来的科研与工作做好充分准备。

课程设计一:火车售票系统

课程设计一:火车售票系统

数据结构与算法课程实验报告课程设计一:火车售票系统设计及实现姓名:cll班级:学号:一、实验内容:火车售票系统在现实中的应用已经非常普遍,目前通常使用可视化的方法实现,例如采用C/S模式下的程序设计或者采用B/S模式下的程序设计,通常都具有较为友好的界面和较为完善的功能。

火车售票系统的实现过程中,主要涉及到数据格式的设计,也就是数据结构的设计。

通常在采用数据库的情况下,可以运用数据库的设计来实现。

在没有采用数据库情况下需要,单独设计相应数据结构和算法。

二、实验目的:按给定需求,通过查找相关资料,完成火车售票系统设计及实现,在设计过程中充分运用数据结构与算法课程中所学知识,从而熟练地掌握和应用线性表、单链表等重要数据结构和常用算法。

提前熟悉软件需求分析,软件测试等环节,运用相应程序设计语言实现该系统,从而进一步提高程序设计能力。

三、问题描述(1)此系统可以实现售票、退票、车票剩余情况查询等功能。

(2)每张车票包含车次、座位信息。

在售票、退票、查询剩余票等环节中,都必须显示出车票的信息,即车次、座位情况。

(3)退票时,必须是车站售出的车票才能退,否则视为无效票,不能退票。

(4)演示程序以用户和计算机的对话方式进行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入程序中规定的运算命令;相应的输入数据(滤去输入中的非法字符)和运算结果显示在后。

(5)由订票系统的主要功能使程序的命令包括:1)查询;2)订票;3)退票4)退出订票系统四、问题的实现4.1所用的数据结构(包括所用数据结构的抽象数据类型定义和说明)typedef struct LNode{//数据域char name[10];//订票姓名int dnum;//订票数量char dj[50];//证件编号int zhekou; //1代表折扣对象float pay;//付费struct LNode *next;//指针域int zuohao[200];}LNode,*LinkList;//构造单链表(已订票)typedef struct Tickets{char *endname;//终点站名char *hnum;//车次名int fnum;//票价float discut;//折扣int day;//日期int wholenum;//总票额int lastnum;//余票量int tuipiao[100]; //退票处理,记录退票的座位号int tpcs;//记录目前退票次数int mcps;//记录卖出去的票数(包括退票)LinkList la;//已订票链表}Tickets;//构造结构类型(火车票)typedef struct{struct Tickets *elem;//存储空间的基址int length;int listsize;//当前分配的存储容量(以sizeof(Tickets)为单位)}SqList;//构造顺序表4.2主要实现思路1、火车站的火车票采用顺序表表示。

数字电子时钟课程设计报告-1

数字电子时钟课程设计报告-1

目录一、概述 (1)数字钟简介设计目的设计要求二、主要实验器材 (2)三、设计原理及方框图 (3)四、各部分的电路及实现 (5)振荡器电路计数器的设计六十进制电路整点报时电路校时电路五、总体电路图设计 (10)六、安装与调试 (12)七、收获与体会 (12)一、概述1.1数字钟简介20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、集成电路有体积小、功耗小、功能多、携带方便等优点,,因此在许多电子设备中被广泛使用。

电子钟是人们日常生活中常用的计时工具,而数字式电子钟又有其体积小、重量轻、走时准确、结构简单、耗电量少等优点而在生活中被广泛应用,因此本次设计就用数字集成电路和一些简单的逻辑门电路来设计一个数字式电子钟,使其完成时间及星期的显示功能。

多功能数字钟采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。

具有时间显示、走时准确、显示直观、精度、稳定等优点。

电路装置十分小巧,安装使用也方便。

同时在日期中,它以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱设计目的(1).让学生掌握组合逻辑电路、时序逻辑电路及数字逻辑电路系统的设计、安装、测试方法;(2). 进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力;(3). 提高电路布局﹑布线及检查和排除故障的能力;(4).培养书写综合实验报告的能力设计要求(1)设计一个有“时”、“分”、“秒”(12小时59分59秒)显示,且有校时功能的电子钟。

pacs课程设计报告

pacs课程设计报告

pacs课程设计报告一、教学目标本课程的教学目标旨在帮助学生掌握学科核心知识,理解重要概念,并能运用所学知识解决实际问题。

在知识目标上,期望学生能够熟练背诵重点公式,理解并能运用关键理论。

在技能目标上,培养学生的实验操作能力和数据分析能力,使其能够独立完成综合性的实验并熟练使用专业软件。

在情感态度价值观目标上,通过课程学习,使学生树立正确的科学态度,培养团队合作精神和创新思维能力。

二、教学内容根据课程目标,本课程的教学内容选取学科领域的经典教材,以保证内容的科学性和系统性。

教学大纲将按照教材的章节顺序进行安排,确保每个章节的教学内容与课程目标紧密相连。

具体的教学内容将包括基础知识讲解、案例分析、实验操作和小组讨论等多个方面,以适应不同学生的学习需求。

三、教学方法为了达到课程目标,本课程将采用多种教学方法相结合的方式进行教学。

包括讲授法用于传授理论知识,讨论法用于激发学生思考,案例分析法用于培养学生的实际应用能力,以及实验法用于增强学生的实践经验。

通过这些教学方法的灵活运用,旨在激发学生的学习兴趣,培养其自主学习的主动性。

四、教学资源为了支持教学内容和教学方法的实施,本课程将准备丰富的教学资源。

包括教材和参考书籍以供学生自学,多媒体资料用于课堂演示和复习,以及实验设备供学生进行实验操作。

所有教学资源都将精心挑选,以确保其与课程内容的高度相关性,同时能够丰富学生的学习体验。

五、教学评估本课程的评估方式将包括平时表现、作业和考试等多个方面,以全面反映学生的学习成果。

平时表现将通过课堂参与度和团队合作表现进行评估。

作业将包括练习题和小论文,以巩固和加深学生对知识的理解。

考试将包括期中和期末考试,以及实验报告,以检验学生对知识的掌握和应用能力。

所有的评估都将采用客观、公正的标准,确保评估结果的准确性和公平性。

六、教学安排本课程的教学安排将根据学科特点和学生需求进行设计。

教学进度将按照教材的章节进行安排,确保每个章节的教学内容都能得到充分的学习和理解。

计算机图形学课程设计报告1

计算机图形学课程设计报告1

目录1、课程设计目的 (1)2、系统功能介绍 (1)3、程序代码和分析 (2)4、总结 (4)5、参考文献 (4)6.源程序 (4)计算机图形学课程设计报告1.课程设计目的本课程主要内容包括计算机图形学的研究内容、发展与应用,图形输入输出设备,图形显示原理,图形软件标准,基本图形生成算法,图形几何变换与裁剪,自由曲线和曲面,三维实体造型,分形几何造型,分形艺术,隐藏面消除,光照模型,颜色模型,光线跟踪,纹理细节模拟,常用的计算机动画技术和软件等。

在学期期末时按课程要求进行运动,提高学生对计算机图形学知识的了解与运用技巧同时通过此次课程设计提高动手实践能力与学习分析能力这就是本次的课程设计的目的。

2.课程设计描述及要求此次课程设计的课题为利用VC++6.0和插件OPENGL制作三维模型。

本设计主要通过建立MFC工程,在工程里建立一个三维模型然后再进行旋转,飞行等运动,来建立一个动态的三维模型。

主要步骤如下:1:工程的建立2:三维模型的建立和映射3:三维模型的运动一:工程的建立1:系统配置。

先对机子安装VC++6.0.在建立工程前,本实验需要添加OPENGL 插件,故需要在Windows环境下安装GLUT步骤如下:1、将下载的压缩包解开,将得到5个文件2、在“我的电脑”中搜索“gl.h”,并找到其所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC\PlatformSDK\include\gl文件夹”)。

把解压得到的glut.h放到这个文件夹。

3、把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC\lib”文件夹)。

4、把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。

(典型的位置为:C:\Windows\System32)然后建立一个OpenGL工程测试这里以VisualStudio2005为例。

自动化控制原理课程设计报告(一)

自动化控制原理课程设计报告(一)

自动化控制原理课程设计报告(一)自动化控制原理课程设计报告引言•简要介绍自动化控制原理的重要性和应用场景。

•阐述课程设计报告的目的和意义。

课程设计目标•描述本次课程设计的具体目标和要求。

•解释该目标的意义和对学习者的影响。

设计思路•分析课程设计要求,确定设计思路的基本框架。

•阐述设计思路的合理性和可行性。

•介绍所采用的主要方法和技术。

实施步骤1.项目准备阶段–研究相关资料和文献,了解当前的研究进展和应用场景。

–调研市场上已有的自动化控制系统,分析其特点和优缺点。

2.系统设计阶段–定义系统的功能和性能指标。

–利用系统理论和数学模型设计控制策略。

–根据系统需求和参数设计硬件电路和软件程序。

3.系统实施与调试阶段–制作自动化控制系统的原型。

–进行系统实施和集成测试。

–进行系统调试和优化。

4.系统性能评估阶段–测试和评估系统在不同情况下的性能和稳定性。

–分析评估结果,并对系统进行改进和优化。

5.报告撰写和展示阶段–撰写课程设计报告,并整理相关实验数据和图表。

–准备课程设计的展示材料和演示文稿。

–展示和演示课程设计成果,并回答相关问题。

实施结果与分析•分析所设计的自动化控制系统在实际应用中的性能和稳定性。

•对系统的优点和局限性进行分析和总结。

•提出改进和优化的方向和建议。

结论•简要总结整个课程设计的过程和成果。

•强调该课程设计对学习者的价值和意义。

参考文献•列出参考文献的主要信息。

以上是一篇关于自动化控制原理课程设计报告的相关文章,通过标题和副标题的形式来呈现内容。

文章采用markdown格式,按照列点的方式生成,遵守了不出现html字符、网址、图片和电话号码等内容的规则。

希望对您有所帮助!。

shao软件综合课程设计报告1

shao软件综合课程设计报告1

软件综合课程设计报告题目名称:在线员工信息管理班级:计081-3学生学号:200825501322学生姓名:王绍辉同组学生学号:同组学生姓名:指导老师:毕远伟老师程序成绩:报告成绩:总成绩:优良中及格不及格2012/2/201 前言随着网络的发展以及市场竞争的激烈,越多越多的公司注重自己本身的服务,通过提高自身的服务来争抢自身的竞争力。

而为提高自身的服务质量,获得良好的口碑,最终获得更大的利润也都有客户服务的问卷调查系统。

调查系统已经成为各大网站、公司不可或缺的子系统之一。

1.1项目描述:该项目流程按系统架构、需求分析、数据库设计、编码、测试的流程进行,本系统是一套模拟的网上调查系统,目的是改善传统的调查问卷浪费人力物力财力,调查范围、数量有限的情况。

把问卷调查同网络结合在一起,极大的扩展了调查的范围,提高了调查的准确度。

1.2开发工具:windows7 + myeclips8.5.01 + SQL Server2005 + tomcat-6.0.351.3开发语言:该项目的开发利用了java语言。

Java语言是一个支持网络计算的面向对象程序设计语言。

Java语言吸收了Smalltalk语言和C++语言的优点,并增加了其它特性,如支持并发程序设计、网络通信、和多媒体数据控制等。

Java技术Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。

用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动感的web,internate计算。

从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。

另一方面,Java技术也不断更新。

Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。

电气化铁道供电系统与设计课程设计报告1

电气化铁道供电系统与设计课程设计报告1

电气化铁道供电系统与设计课程设计报告班级:电气08*班学号: 200*09***姓名: *******指导教师: *****2011 年月日一、题目某牵引变电所甲采用直接供电方式向复线区段供电,牵引变压器类型为110/27.5kV,三相平衡接线,两供电臂电流归算到27.5kV侧电流如下表所示二、题目分析及解决方案确定因为牵引变压器是牵引供电系统的主要设备,其容量大小关系到能否完成国家交给的运输任务及运营成本,所以进行牵引变压器的容量计算,以便合理选用牵引变压器的额定容量十分重要。

以下将对三相平衡接线方式的牵引变压器的计算容量、校核容量以及安装容量分别进行分析及计算。

2.1设计方案分析目前,我国使用的牵引变压器类型主要有以下几种形式:单相结线变压器、单相V,v结线变压器(三相)、三相YN,d11双绕组变压器、斯科特结线变压器、YN,结线阻抗匹配牵引变压器、YN,结线平衡变压器、非阻抗匹配YN,结线平衡变压器。

针对以上几种牵引变压器的优缺点的分析如下:(1)单相结线变压器优点:容量利用率可达100%;主接线简单,设备少,占地面积小,投资少。

缺点:不能供应地区和牵引变电所三相负荷用电,在电力系统中,单相牵引负荷产生的负序电流较大,对接触网的供电不能实现双边供电。

(2)单相V,v结线变压器(三相)优点:主结线较简单,设备较少,投资较省。

对电力系统的负序影响比单相结线少。

对接触网的供电可实现双边供电。

缺点:当一台牵引变压器故障时,另一台必须跨相供电,即兼供左右两边供电臂的牵引网。

这就需要一个倒闸过程,即把故障变压器原来承担的供电任务转移到正常运行的变压器。

在这一倒闸过程完成前,故障变压器原来供电的供电臂牵引网中断供电,这种情况甚至会影响行车。

即使这一倒闸过程完成后,地区三相电力供应也要中断。

牵引变电所三相自用电必须改用劈相机或单相-三相自用变压器供电。

实质上变成了单相结线牵引变电所,对电力系统的负序影响也随之增大。

C语言课程设计报告—人事管理系统1

C语言课程设计报告—人事管理系统1

人事管理系统前言:现代计算机技术的发展为人们的学习、生活、工作提供了很大的帮助, 各行各业都需要特定计算系统的运用, 我们需要了解这些系统是怎么样为我们服务以及他们是怎样编辑出来的。

我们需要学习C语言编程, 根据课堂讲授内容, 做相应的自主练习, 消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题, 逐渐培养编程能力、用计算机解决实际问题的能力, 能够按照要求编辑一些基本的程序, 提高自己的思维能力。

题目:(1)某高校主要人员有: 在职人员(行政人员、教师、一般员工)、退休人员及临时工。

现在需要储存这些人员的人事档案信息, 内容包括编号、姓名、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。

其中, 人员编号唯一, 不能重复。

(2)添加删除功能:能根据学院人事的变动情况, 添加删除记录。

(3)查询功能: 能根据编号和姓名进行查询。

(4)编辑功能(高级): 根据查询对相应的记录进行修改并记录。

(5)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数, 高学历高职称人数), 统计要求同时显示被统计着的信息。

排序功能: 按照年龄、来院时间进行排序。

保存功能: 能对输入的数据进行相应的存储。

分析:我们编辑的程序要能够满足题目的要求, 可以进行这么多的功能的计算!但是在开始我们运行使用程序的时候必须要知道我们要运用这些功能中的哪一个!这就要求我们可以程序中任意选择我们所需要的功能!很显然我们要编辑存储人员的信息自然要运用到文件!而人员的信息必须要以结构体的形式来表示才能够方便我们提取信息!我们选择了要运行的功能分支之后!这些功能是以主函数以外的被调函数!当有需要时被调函数还可以调用其他的被吊函数!例如我们题目中的统计和查询功能, 就可以用这种方式来编辑程序!方便清楚!设计:很显然主程序要用到SWICTH函数, 这样可以选择要运行的那个功能的函数来执行, 而其他的功能函数则不必运行!三、解题思路1.定义结构struct staff{char num[10];char name[20];char sex[10];int age;char title[20];char p_landscape[30];char Qualifications[30];int Service_time;char come_time[30];char category[30];}staff[100];2.主程序进入主菜单函数void main(){menu();}/*******************主菜单函数**********************/void menu(){char w0;do{system("cls");fflush(stdin); /*清除缓冲区输入*/puts("***********************高校人事管理系统**********************\n\n");puts("\t\t\t\t1)增加人员信息\n"); puts("\t\t\t\t2)删除人员信息 \n"); puts("\t\t\t\t3)查询人员信息\n"); puts("\t\t\t\t4)修改人员信息\n"); puts("\t\t\t\t5)统计人员信息\n"); puts("\t\t\t\t6)对人员排序\n");puts("\t\t\t\t7)保存人员信息\n"); puts("\t\t\t\t8)浏览人员信息\n"); puts("\t\t\t\t9)退出\n");printf("\t\t\t\t 请选择 [ ]\b\b"); w0=getchar();}while(w0<'1'||w0>'9'); switch(w0-48){case 1:add();break;case 2:delete_data();break;case 3:search();break;case 4:modify();break; case 5:stastic();break;case 6:sort();break;case 7:save();break;case 8:browse();break;case 9:break;} }(1)查询功能int search_data()/*{int i,flag; char s[30],w0;system("cls");/*清屏*/ n=load(); do{fflush(stdin); /*清除缓冲区输入*/printf(" 通过1)编号 2)姓名 [ ]\b\b"); w0=getchar(); }while(w0<'1'||w0>'2'); if(w0=='1'){/*按编号查找*/ flag=0;puts("输入人员编号:"); scanf("%s",s); for(i=0;i<n;i++){if(strcmp(s,staff[i].num)==0){printf_face();printf_one(staff[i]); flag=1;break;} else continue; }if(flag==0)puts("该人员不存在!"); }else {/*按姓名查找*/ flag=0;puts("输入人员姓名:"); scanf("%s",s); for(i=0;i<n;i++){if(strcmp(s,staff[i].name)==0){printf_face();printf_one(staff[i]);flag=1;break;}else continue;}if(flag==0) puts("该人员不存在!");}return i;void search(){int k;char w1;loop: k=search_data();do{fflush(stdin); /*清除缓冲区输入*/printf("1)回主菜单 2)退出 3)继续查询 [ ]\b\b"); w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1')menu();else if(w1=='2')exit(0);void add(){char w0,w1;loop: system("cls");puts("请输入编号(如001):");scanf("%s",s.num);if(test(s.num))goto loop;/*编号重复*/puts("请输入姓名:");scanf("%s",);puts("请输入性别(男,女):");scanf("%s",s.sex);puts("请输入年龄:");scanf("%d",&s.age);puts("请输入职务(教授副教授讲师助教学生后勤人员):");scanf("%s",s.duty);puts("请输入职称 (无初级高级 ):");scanf("%s",s.title);puts("请输入政治面貌( 党员非党员 ):");scanf("%s",s.p_landscape);puts("请输入最高学历(小学初中高中大学硕士学位更高):");scanf("%s",s.Qualifications);puts("请输入任职时间:");scanf("%d",&s.Service_time);puts("请输入来院时间(如20050101):");scanf("%s",e_time);puts("请输入人员类别(行政人员教师一般员工退休人员临时工):");scanf("%s",s.category);do{fflush(stdin); /*清除缓冲区输入*/printf("是否保存?1)是 2)否 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');switch(w0){case 1:save(s);break;case 2:break;}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续增加人员信息 2)回主菜单 3)退出 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1')goto loop;else if(w1=='2')menu();else exit(0);}(3)保存信息void save(){char w0;save_all();printf("所有信息已保存!\n");do{fflush(stdin); /*清除缓冲区输入*/printf("1) 回主菜单 2) 退出 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1')menu();else exit(0);}void save_all()/*保存所有数据函数*/{int i;FILE *fp;if((fp=fopen("text.txt","wb"))==NULL){printf("无法打开文件!");exit(0);}for(i=0;i<n;i++){if(staff[i].age!=0)fprintf(fp,"%s %s %s %d %s %s %s %s %d %s %s\n",staff[i].num,staff[i].name, staff[i].sex,staff[i].age,staff[i].duty,staff[i].title,staff[i].p_landscape,sta ff[i].Qualifications,staff[i].Service_time,staff[i].come_time,staff[i].category );else continue;}fclose(fp);}(4)删除人员void delete_data(){int k; char w0,w1;loop: k=search_data();if(k<n){do{fflush(stdin); /*清除缓冲区输入*/printf("确认要删除该人员信息? 1)是 2)否 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1'){staff[k].age=0;save_all();puts("该人员信息已被删除!");} } do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续删除数据 2)回主菜单 3)退出w1=getchar();}while(w1<'1'||w1>'3'); if(w1=='1') goto loop; else if(w1=='2')menu(); else exit(0); }(5)修改人员信息 void modify() {int k=0,w0,g; char h[30],w1,w2; loop: g=search_data(); if(g<n){ do{puts("\t\t\t 修改: 1)编号"); puts("\t\t\t 2)姓名"); puts("\t\t\t 3)性别"); puts("\t\t\t 4)年龄"); puts("\t\t\t 5)职务"); puts("\t\t\t 6)职称"); puts("\t\t\t 7)政治面貌"); puts("\t\t\t 8)最高学历"); puts("\t\t\t 9)任职时间"); puts("\t\t\t 10)来院时间"); puts("\t\t\t 11)人员类别"); printf(" 请选择 : [ ]\b\b"); scanf("%d",&w0);}while(w0<1||w0>11); switch(w0){case 1:puts("请输入新编号:");scanf("%s",h);strcpy(staff[g].num,h);break; case 2:puts("请输入姓名:");scanf("%s",h);strcpy(staff[g].name,h);break; case 3:puts("请输入性别:");scanf("%s",h);strcpy(staff[g].sex,h);break; case 4:puts("请输入年龄:");scanf("%d",&k);staff[g].age=k;break; case 5:puts("请输入职务:");scanf("%s",h);strcpy(staff[g].duty,h);break; case 6:puts("请输入职称:");scanf("%s",h);strcpy(staff[g].title,h);break;scanf("%s",h);strcpy(staff[g].p_landscape,h);break;case 8:puts("请输入最高学历:");scanf("%s",h);strcpy(staff[g].Qualifications,h);break;case 9:puts("请输入任职时间:");scanf("%d",&k);staff[g].Service_time=k;break;case 10:puts("请输入来院时间:");scanf("%s",h);strcpy(staff[g].come_time,h);break;case 11:puts("请输入人员类别:");scanf("%s",h);strcpy(staff[g].category,h);break;}do{fflush(stdin); /*清除缓冲区输入*/printf("是否保存?1)保存 2)否[ ]\b\b");w1=getchar();}while(w1<'1'||w1>'2');if(w1=='1'){save_all(); puts("保存修改成功!");}}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续修改 2)回主菜单 3)退出[ ]\b\b");w2=getchar();}while(w2<'1'||w2>'3');if(w2=='1')goto loop;else if(w2=='2')menu();else exit(0);}(6)统计人员信息void stastic(){int i,count;char w0,w1;n=load();if(n==0){puts("没有数据!");getchar();menu();}loop: system("cls");do{fflush(stdin); /*清除缓冲区输入*/printf("通过1)在职人员 2)党员\n");printf(" 3)女工人数 4)最高学历 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'4');if(w0=='1'){/*统计在职人员*/printf_face();for(i=0,count=0;i<n&&staff[i].age;i++)if(strcmp(staff[i].category,"退休人员")!=0&&strcmp(staff[i].category,"临时工")!=0){count++; printf_one(staff[i]);} printf("\t\t\t\t 共有%d 条记录",count); }else if(w0=='2'){/*统计党员*/ printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].p_landscape,"党员count++; printf_one(staff[i]);} printf("\t\t\t\t 共有%d 条记录",count);}else if(w0=='3'){/*统计女工人员*/ printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].sex,"女")==0){count++; printf_one(staff[i]);}printf("\t\t\t\t 共有%d 条记录",count);}else {/*统计高学历人员*/printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].Qualifications,"硕士学位")==0||strcmp(staff[i].Qualifications,"更高")==0){count++; printf_one(staff[i]);} printf("\t\t\t\t 共有%d 条记录",count);} do{fflush(stdin); /*清除缓冲区输入*/printf("\n1)继续统计 2)回主菜单 3)退出 [ ]\b\b"); w1=getchar();}while(w1<'1'||w1>'3'); if(w1=='1') goto loop; else if(w1=='2')menu(); else exit(0); }(6) 排序功能void sort() {int i,j;char w0,w1; struct staff s1; loop: n=load();system("cls"); do{fflush(stdin); /*清除缓冲区输入*/printf("通过 1)年龄 2)来院时间w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1'){/*按年龄排序*/for(i=0;i<n-1;i++)/*选择法排序*/for(j=i+1;j<n;j++)if(staff[i].age>staff[j].age){s1=staff[i];staff[i]=staff[j];staff[j]=s1;}}else {/*按来院时间排序*/for(i=0;i<n-1;i++)/*选择法排序*/for(j=i+1;j<n;j++)if(strcmp(staff[i].come_time,staff[j].come_time)>0){s1=staff[i];staff[i]=staff[j];staff[j]=s1;}}printf_face();for(i=0;i<n;i++) /*显示排序结果*/printf_one(staff[i]);do{fflush(stdin); /*清除缓冲区输入*/printf("\n1)回主菜单 2)继续排序 3)退出[ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1') menu();else if(w1=='2')goto loop;else exit(0);}四、运行与测试报告*********************************高校人事管理系统******************************1)增加人员信息2)删除人员信息3)查询人员信息4)修改人员信息5)统计人员信息6)对人员排序7)保存人员信息8)浏览人员信息9)退出请选择【 1】请输入编号(如001):20071003335请输入姓名:majianbo请输入性别(男,女):nan请输入年龄:20请输入职务(教授副教授讲师助教学生后勤人员): jiaoshou请输入职称 (无初级高级 ):gaoji请输入政治面貌( 党员非党员 ):danyuan请输入最高学历(小学初中高中大学硕士学位更高): shuoshi请输入任职时间:20070901请输入来院时间(如20050101):20070901请输入人员类别(行政人员教师一般员工退休人员临时工): jiaoshi是否保存?1)是 2)否 [1]该信息已成功保存!1)继续增加人员信息 2)回主菜单 3)退出 [ ]程序:#include<stdlib.h>#include <stdio.h>#include <string.h>struct staff/*定义结构体*/{char num[10];/*编号*/char name[20];/*姓名*/char sex[10];/*性别*/int age;/*年龄*/char duty[20];/*职务*/char title[20];/*职称*/char p_landscape[30];/*政治面貌*/char Qualifications[30];/*学历*/int Service_time;/*任职时间*/char come_time[30];/*来院时间*/char category[30];/*人员类别*/}staff[100];struct staff s;int n;void menu();void printf_face()/*显示数据结构项目函数*/{printf("编号姓名性别年龄职务职称政治面貌学历任职时间来院时间人员类别\n");}void printf_one(struct staff p)/*输出单个数据函数*/{printf("%-4s%-7s%-5s%-3d%-7s%-5s%-8s%-12s%-5d%-12s%-3s\n",p.num,,p.se x,p.age,p.duty,p.title,p.p_landscape,p.Qualifications,p.Service_time,e_tim e,p.category);}int load()/*加载函数*/{int i=0;FILE *fp;if((fp=fopen("text.txt","rb"))==NULL){return 0; exit(0);}for(i=0;!feof(fp);i++){ /*输出数据到结构体*/fscanf(fp,"%s %s %s %d %s %s %s %s %d %s %s\n",staff[i].num,staff[i].name,staff [i].sex,&staff[i].age,staff[i].duty,staff[i].title,staff[i].p_landscape,staff[i ].Qualifications,&staff[i].Service_time,staff[i].come_time,staff[i].category);} fclose(fp);return i;}int search_data()/*查找单个数据函数*/{int i,flag;char s[30],w0;system("cls");/*清屏*/n=load();do{fflush(stdin); /*清除缓冲区输入*/printf(" 通过1)编号 2)姓名 [ ]\b\b");w0=getchar(); }while(w0<'1'||w0>'2');if(w0=='1'){/*按编号查找*/flag=0;puts("输入人员编号:");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,staff[i].num)==0){printf_face();printf_one(staff[i]);flag=1;break;}else continue;}if(flag==0)puts("该人员不存在!");}else {/*按姓名查找*/flag=0;puts("输入人员姓名:");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,staff[i].name)==0){printf_face();printf_one(staff[i]);flag=1;break;}else continue;}if(flag==0) puts("该人员不存在!");}return i;}void save_all()/*保存所有数据函数*/{int i;FILE *fp;if((fp=fopen("text.txt","wb"))==NULL){printf("无法打开文件!");exit(0);}for(i=0;i<n;i++){if(staff[i].age!=0)fprintf(fp,"%s %s %s %d %s %s %s %s %d %s %s\n",staff[i].num,staff[i].name, staff[i].sex,staff[i].age,staff[i].duty,staff[i].title,staff[i].p_landscape,sta ff[i].Qualifications,staff[i].Service_time,staff[i].come_time,staff[i].category );else continue;}fclose(fp);}int test(char h[10])/*检查编号是否重复*/{int i;n=load();for(i=0;i<n;i++)if(strcmp(h,staff[i].num)==0){puts("输入的编号有重复!请重新输入编号!");system("pause");return 1;}return 0;}void single_save(struct staff p)/*保存单个数据函数*/{FILE *fp;if((fp=fopen("text.txt","ab+"))==NULL){printf("无法打开文件!");exit(0);}fprintf(fp,"%s %s %s %d %s %s %s %s %d %s %s\n",p.num,,p.sex,p.age,p.duty ,p.title,p.p_landscape,p.Qualifications,p.Service_time,e_time,p.category);printf("该信息已成功保存!\n");fclose(fp);}/*********************************修改模块**********************************/ void modify(){int k=0,w0,g;char h[30],w1,w2;loop: g=search_data();if(g<n){do{puts("\t\t\t修改: 1)编号");puts("\t\t\t 2)姓名");puts("\t\t\t 3)性别");puts("\t\t\t 4)年龄");puts("\t\t\t 5)职务");puts("\t\t\t 6)职称");puts("\t\t\t 7)政治面貌");puts("\t\t\t 8)最高学历");puts("\t\t\t 9)任职时间");puts("\t\t\t 10)来院时间");puts("\t\t\t 11)人员类别");printf(" 请选择 : [ ]\b\b");scanf("%d",&w0);}while(w0<1||w0>11);switch(w0){case 1:puts("请输入新编号:");scanf("%s",h);strcpy(staff[g].num,h);break;case 2:puts("请输入姓名:");scanf("%s",h);strcpy(staff[g].name,h);break;case 3:puts("请输入性别:");scanf("%s",h);strcpy(staff[g].sex,h);break;case 4:puts("请输入年龄:");scanf("%d",&k);staff[g].age=k;break;case 5:puts("请输入职务:");scanf("%s",h);strcpy(staff[g].duty,h);break;case 6:puts("请输入职称:");scanf("%s",h);strcpy(staff[g].title,h);break;case 7:puts("请输入政治面貌:");scanf("%s",h);strcpy(staff[g].p_landscape,h);break;case 8:puts("请输入最高学历:");scanf("%s",h);strcpy(staff[g].Qualifications,h);break;case 9:puts("请输入任职时间:");scanf("%d",&k);staff[g].Service_time=k;break;case 10:puts("请输入来院时间:");scanf("%s",h);strcpy(staff[g].come_time,h);break;case 11:puts("请输入人员类别:");scanf("%s",h);strcpy(staff[g].category,h);break;}do{fflush(stdin); /*清除缓冲区输入*/printf("是否保存?1)保存 2)否[ ]\b\b");w1=getchar();}while(w1<'1'||w1>'2');if(w1=='1'){save_all(); puts("保存修改成功!");}}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续修改 2)回主菜单 3)退出[ ]\b\b");w2=getchar();}while(w2<'1'||w2>'3');if(w2=='1')goto loop;else if(w2=='2')menu();else exit(0);}/************************保存模块******************************/void save(){char w0;save_all();printf("所有信息已保存!\n");do{fflush(stdin); /*清除缓冲区输入*/printf("1) 回主菜单 2) 退出 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1')menu();else exit(0);}/*************************查找模块*****************************/ void search(){int k;char w1;loop: k=search_data();do{fflush(stdin); /*清除缓冲区输入*/printf("1)回主菜单 2)退出 3)继续查询 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1')menu();else if(w1=='2')exit(0);else goto loop;}/***************************增加模块*****************************/ void add(){char w0,w1;loop: system("cls");puts("请输入编号(如001):");scanf("%s",s.num);if(test(s.num))goto loop;/*编号重复*/puts("请输入姓名:");scanf("%s",);puts("请输入性别(男,女):");scanf("%s",s.sex);puts("请输入年龄:");scanf("%d",&s.age);puts("请输入职务(教授副教授讲师助教学生后勤人员):");scanf("%s",s.duty);puts("请输入职称 (无初级高级 ):");scanf("%s",s.title);puts("请输入政治面貌( 党员非党员 ):");scanf("%s",s.p_landscape);puts("请输入最高学历(小学初中高中大学硕士学位更高):");scanf("%s",s.Qualifications);puts("请输入任职时间:");scanf("%d",&s.Service_time);puts("请输入来院时间(如20050101):");scanf("%s",e_time);puts("请输入人员类别(行政人员教师一般员工退休人员临时工):");scanf("%s",s.category);do{fflush(stdin); /*清除缓冲区输入*/printf("是否保存?1)是 2)否 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');switch(w0-48){case 1:single_save(s);break;case 2:break;}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续增加人员信息 2)回主菜单 3)退出 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1')goto loop;else if(w1=='2')menu();else exit(0);}/*******************************删除模块*****************************/void delete_data(){int k; char w0,w1;loop: k=search_data();if(k<n){do{fflush(stdin); /*清除缓冲区输入*/printf("确认要删除该人员信息? 1)是 2)否 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1'){staff[k].age=0;save_all();puts("该人员信息已被删除!");}}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续删除数据 2)回主菜单 3)退出 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1') goto loop;else if(w1=='2')menu();else exit(0);}/********************************统计模块*******************************/void stastic(){int i,count;char w0,w1;n=load();if(n==0){puts("没有数据!");getchar();menu();}loop: system("cls");do{fflush(stdin); /*清除缓冲区输入*/printf("通过1)在职人员 2)党员\n");printf(" 3)女工人数 4)最高学历 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'4');if(w0=='1'){/*统计在职人员*/printf_face();for(i=0,count=0;i<n&&staff[i].age;i++)if(strcmp(staff[i].category,"退休人员")!=0&&strcmp(staff[i].category,"临时工")!=0){count++; printf_one(staff[i]);}printf("\t\t\t\t共有%d条记录",count);}else if(w0=='2'){/*统计党员*/printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].p_landscape,"党员")==0){count++; printf_one(staff[i]);}printf("\t\t\t\t共有%d条记录",count);}else if(w0=='3'){/*统计女工人员*/printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].sex,"女")==0){count++; printf_one(staff[i]);}printf("\t\t\t\t共有%d条记录",count);}else {/*统计高学历人员*/printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].Qualifications,"硕士学位")==0||strcmp(staff[i].Qualifications,"更高")==0){count++; printf_one(staff[i]);}printf("\t\t\t\t共有%d条记录",count);}do{fflush(stdin); /*清除缓冲区输入*/printf("\n1)继续统计 2)回主菜单 3)退出 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1') goto loop;else if(w1=='2')menu();else exit(0);}/*******************************排序模块***********************************/ void sort(){int i,j;char w0,w1;struct staff s1;loop: n=load();system("cls");do{fflush(stdin); /*清除缓冲区输入*/printf("通过 1)年龄 2)来院时间 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1'){/*按年龄排序*/for(i=0;i<n-1;i++)/*选择法排序*/for(j=i+1;j<n;j++)if(staff[i].age>staff[j].age){s1=staff[i];staff[i]=staff[j];staff[j]=s1;}}else {/*按来院时间排序*/for(i=0;i<n-1;i++)/*选择法排序*/for(j=i+1;j<n;j++)if(strcmp(staff[i].come_time,staff[j].come_time)>0){s1=staff[i];staff[i]=staff[j];staff[j]=s1;}}printf_face();for(i=0;i<n;i++) /*显示排序结果*/printf_one(staff[i]);do{fflush(stdin); /*清除缓冲区输入*/printf("\n1)回主菜单 2)继续排序 3)退出[ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1') menu();else if(w1=='2')goto loop;else exit(0);}/********************************浏览模块**************************************/void browse(){int i;char w0;n=load();system("cls");printf_face();for(i=0;i<n ;i++)printf_one(staff[i]);printf("\t\t\t\t共有%d条人员记录\n",n);do{fflush(stdin); /*清除缓冲区输入*/printf(" 1)回主菜单 2)退出 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1') menu();if(w0=='2') exit(0);}/********************************主菜单函数*************************************/void menu(){char w0;do{system("cls");fflush(stdin); /*清除缓冲区输入*/puts("*********************************高校人事管理系统*******************************\n\n");puts("\t\t\t\t1)增加人员信息\n");puts("\t\t\t\t2)删除人员信息 \n");puts("\t\t\t\t3)查询人员信息\n");puts("\t\t\t\t4)修改人员信息\n");puts("\t\t\t\t5)统计人员信息\n");puts("\t\t\t\t6)对人员排序\n");puts("\t\t\t\t7)保存人员信息\n");puts("\t\t\t\t8)浏览人员信息\n");puts("\t\t\t\t9)退出\n");printf("\t\t\t\t请选择 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'9');switch(w0-48){case 1:add();break;case 2:delete_data();break;case 3:search();break;case 4:modify();break;case 5:stastic();break;case 6:sort();break;case 7:save();break;case 8:browse();break;case 9:break;}}/***********************************主函数****************************************/void main(){menu();}。

中南大学学生信息管理系统课程设计报告.docx1

中南大学学生信息管理系统课程设计报告.docx1

中南大学二○一○~二○一一学年第二学期信息科学与工程学院课程设计报告书课程名称:C语言课程设计班级:电气信息2010级1班学号:姓名:指导教师:季桂树二○一一年六月一.需求分析课题要求编写一个学生信息管理系统。

其中学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。

试设计一学生信息管理系统,使之能提供以下功能:A、系统以菜单方式工作;B、学生信息录入功能(学生信息用文件保存)——输入;C、学生信息浏览功能——输出;D、查询、排序功能——算法;a、按学号查询;b、按姓名查询。

E、学生信息的删除与修改。

其次功能要求:A、界面比较美观;B、有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入。

二. 总体设计是否找到数据文件 读入上次保存的数据YN操作选择浏览学生信息录入学生信息修改学生信息查询学生信息删除学生信息读入数据,新增一个结点按顺序浏览全部学生信息查找到目标结点查找到目标结点,并进行删除查找修改节点,并修改将现有数据写入文件结束开始退出系统三.详细设计结构体:该结构由“学号,姓名,年龄,性别,出生年月,地址,电话,E-mail ”八个成员组成。

功能函数&模块:从键盘读入一个人的信息,并储存入学生信息。

将数据写入数据文件。

读入文件中的数据,如果有数据文件返回1否则返回0。

菜单选择,返回0~6的含义分别是“退出”、“录入”、“浏览”、“查询”、“删除”、“修改”、“读取”。

从学生信息管理系统中删除一个人的信息。

修改一个人的信息。

struct student { long int num; char name[20]; int age; char sex[4]; char birth[10]; char add[30]; long int tele; char mail[20];struct student *next;};void writeData()void readData() void menu()void del ()void modify() void record()void displayAll()输出所有的记录。

DAC0832波形发生器课程设计实验报告1

DAC0832波形发生器课程设计实验报告1

微机原理与接口技术课程设计报告书题目:DAC0832 波形发生器学院名称:湖南科技大学潇湘学院班级:电子信息工程001班指导老师:欧青立陈君宋芳学号: 0954030110姓名:赵翔目录一、引言 (1)二、设计目的 (2)三、原理说明 (2)四、硬件设计 (4)五、设计原理 (6)六、程序编译 (7)1、输出方波子程序 (7)2、输出三角波子程序 (8)3、输出锯齿波子程序 (8)4、输出正弦波子程序 (9)5、输出梯形波的子程序 (10)6、主程序 (11)七、调试方法与结果 (15)八、心得体会 (16)一.引言波形发生器是一种常用的信号源,广泛的应用于电子电路、自动控制系统和教学实验等领域,是现代测试领域内应用最为广泛的通用仪器之一。

在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都需要有信号源。

由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察。

测量被测仪器的输出响应,以分析确定它们的性能参数。

信号发生器是电子测量领域中最基本、应用最为广泛的一类电子仪器。

它可以产生多种波形信号,如锯齿波、三角波、梯形波等,因而广泛应用于通信、雷达、导航、宇航等领域。

本次课程设计使用的AT89C51单片机构成的发生器可产生三角波,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。

此设计给出了源代码,通过仿真测试,其性能指标达到了设计要求。

二、设计目的1、掌握DAC0832与PC机的接口方法。

2、掌握D/A转换应用程序设计方法。

三、原理说明◆知识简介:DAC0832当今世界在以电子信是8位分辨率的D/A转换集成芯片,与微处理器完全兼容,这个系列的芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到了广泛的应用。

这类D/A转换器由8位输入锁存器,8位DAC寄存器,8位DA转换电路及转换控制电路构成。

◆原理框图:◆硬件设计1、DAC0832的引脚及功能:DAC0832是8分辨率的D/A转换集成芯片。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

选题:希尔、快速、堆排序、
归并排序算法
姓名:顾敏
学号: 19110233
目录
一.题目描述
编程实现希尔、快速、堆排序、归并排序算法。

要求随机产生10000个数据存入磁盘文件,然后读入数据文件,分别采用不同的排序方法进行排序,并将结果存入文件中。

二.算法思想描述
1.读写文件:
(1)以磁盘文件为对象进行输入输出,用于文件操作的文件类有:
ifstream类,它是从istream类派生的。

用来支持从磁盘文件的输入。

ofstream类,它是从ostream类派生的。

用来支持向磁盘文件的输出。

(2)打开文件包括:
(1) 为文件流对象和指定的磁盘文件建立关联,以便使文件流流向指定的
磁盘文件。

一. 调用文件流的成员函数open。

如:
ofstream outfile;//定义ofstream类(输出文件流类)对象outfile
outfile.open(″f1.dat″,ios::out); //使文件流与f1.dat文件建立关联
二.在定义文件流对象时指定参数
在声明文件流类时定义了带参数的构造函数,其中包含了打开磁盘文件的
功能。

因此,可以在定义文件流对象时指定参数,调用文件流类的构造函
数来实现打开文件的功能。

如:
ostream outfile(″f1.dat″,ios::out);
(4)关闭文件用成员函数close。

如:
outfile.close( );//将输出文件流所关联的磁盘文件关闭
(5)对ASCII文件的读写操作可以使用: 流插入运算符“<<”和流提取运算符“>>”输入输出标准类型的数据。

2.随机数的产生:
(1)首先应在开头包含头文件stdlib.h
(2)rand()函数没有输入参数,直接通过表达式rand()来引用。

为了使程序在每次执行时都能生成一个新序列的随机值,通常通过为随机数生成器提
供一粒新的随机种子。

函数srand()(来自stdlib.h)可以为随机数生成器播
散种子。

只要种子不同rand()函数就会产生不同的随机数序列。

srand()
称为随机数生成器的初始化器。

(3)rand()产生伪随机数,srand函数提供种子,种子不同产生的随机数序列也不同,所以通常先调用srand函数time(0)返回的是系统的时间(从
1970.1.1午夜算起),单位:秒,种子不同当然产生的随机数相同几率就
很小。

3.希尔排序:
按一定的间隔将表分成若干子表,每个子表分别进行插入排序。

希尔排序是一种不稳定的排序方法。

4.快速排序:
取待排序列中某个元素的值作为基准值,将待排序列划分为两个部分,左
边部分的所有元素都小于等于这个基准值,而右边部分的所有元素都大于等于
这个基准值。

然后,对左右两个子表用同样的方法(递归)进行划分。

快速排序的记录移动次数不会大于比较次数,所以,快速排序的最坏时间复杂度为O(n*n);最好时间复杂度为O(nlog2n)。

可以证明,快速排序的平均
时间复杂度也是O(nlog2n)。

快速排序是不稳定的排序方法。

5.堆排序:
堆排序的过程是(1)将无序序列建成一个堆。

(2)输出堆顶元素,将剩余元素调整为一个新堆。

堆排序的第一个工作是建堆,即把整个记录数组r[1]到r[n]调整为一个堆。

显然,只有一个结点的树是堆,而在完全二叉树中,所有序号i >= low(n/2)
的结点都是叶子,因此以这些结点为根的子树都已是堆。

这样,我们只需依次
将序号为low(n/2),low(n/2)-1,...,1的结点作为根的子树都调整为堆即
可。

堆排序的时间复杂性为O(n log2n) 。

堆排序空间复杂性为 O(1)。

堆排序是不稳定的排序方法。

6.归并排序:
归并排序就是利用“二路归并”操作实现排序的。

其基本思想是:将待排序列r[0]到r[n-1]看成n个长度为1的有序子序列,把这些子序列两
两归并,便得到(n/2)个有序的子序列。

然后再把这(n/2)个有序的子序列两两
归并,如此反复,直到最后得到一个长度为n的有序序列。

归并排序在第i 趟归并后,有序子文件长度为2i,因此,因此,对于具有n个记录的序列来说,必须做(log2n)趟归并,每趟归并所花的时间为O(n)。

所以,二路归并排序算法的时间复杂度为O (n log2n),辅助数组所需的空间
为O(n)。

归并排序是稳定的排序方法。

三.程序结构
1.读写文件的函数模块:
将随机数存入目标文件:void File(char filepath[])
将结果写入文件中:void WriteFile(char filepath[],int data[])
从文件中读取数据:void ReadFile(char filepath[],int data[])
2.排序的函数模块:
快速排序模块:
堆排序模块:
归并排序模块:
3.各模块之间的关系:
四.测试结果
(1)初始页面:
(2)进行希尔,快速,堆,归并排序,分别存放在文件中:
(3)返回重新输入存放随机数的文件:
(4)排序结果对比:
五.收获与体会
在课程设计中,遇到的主要难点是对于文件的操作,在查找了有关C++文件操作的资料以后,我对文件的操作更加熟练。

其次,在写快速排序、归并排序和堆排序时通过对代码的理解,加深了自己有关这几种排序的影响,不仅仅停留在用画图或者书面上的理解的基础上。

相关文档
最新文档