附录一 程序清单
流水灯 单片机 实验报告
课程设计报告(论文)设计课题:流水灯专业班级:学生姓名:指导教师:设计时间:单片机技术课程设计课程设计任务书姓名:专业:班级:指导教师:职称:课程设计题目:流水灯已知技术参数和设计要求:要求电路开启后:led灯逐个亮,逐个灭以中间四点为中心,向外扩散四个灯顺时针亮灯顺时针亮从左往右亮从下往上亮上半部分亮下半部分亮所需仪器设备:计算机一台单片机最小系统一套成果验收形式:设计成果现场验收、回答提问、课程设计报告参考文献:单片机课程教材时间安排指导教师:教研室主任:注:本表下发学生一份,指导教师一份,栏目不够时请另附页。
课程设计任务书装订于设计计算说明书(或论文)封面之后,目录页之前。
内容摘要电子技术实验是一门重要的实践性技术基础课程。
开设本课程的目的在于使学生理论联系实际,在老师的指导下完成大纲规定的实验任务。
通过实验熟悉电工.电子技术的应用中常用的设备和电子器件,熟悉常用仪器的使用方法,掌握正确记录.处理实验数据、绘制曲线、分析实验结果的方法,从而开发学生分析问题或解决问题的能力,培养学生具有严谨的工作作风,实事求是的科学态度,刻苦钻研、勇于探索和创新的开拓精神以及遵守纪律、团结协作和爱护公物的优良品质,为今后从事专业科研工作和工程技术工作打下良好的基础。
流水灯是一串按一定的规律像流水一样连续闪亮。
流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。
索引关键词:流水灯循环亮灭目录一概述 (1)二方案设计与论证 (1)三单元电路设计与参数计算 (2)四总原理图及元器件清单 (3)五安装与调试 (4)(一般分静态调试与动态调试两大内容)六性能测试与分析 (4)(要围绕设计要求中的各项指标进行)七结论 (4)八心得体会 (4)九参考文献 (4)附录:程序一、概述要求电路开启后,灯在时钟信号作用下按以下规律转换状态。
电路开启后:led灯逐个亮,逐个灭,以中间四点为中心,向外扩散,四个灯顺时针亮,灯顺时针亮,从左往右亮,从下往上亮,上半部分亮,下半部分亮二、方案设计与论证实现单片机流水灯很简单,但是我们不能说P1.0你变低,它就变低了。
附录1 标准程序流程图的符号及使用约定(GB1525-89)
附录1 标准程序流程图的符号及使用约定(GB1525-89)一引言程序流程图(Program flowchart)作为一种算法表达工具,早已为各国计算机工作者和广大计算机用户十分熟悉和普通使用。
然而它的一个明显缺点在于缺乏统一的规范化符号表示和严格的使用规则。
国家标准局批准的国家标准(GB1525-89)<<信息处理——数据流程图,程序流程图,系统流程图,程序网络图和系统资源图的文件编制符号及约定>>为我们推荐了一套标准化符号和使用约定。
由于该标准是与国际标准化组织公布的标准ISO5807--85 Information processing--Documentation symbols and conventions for data,program and system flowcharts,program network charts and system resources charts是一致的,这里将其中程序流程图部分摘录出来,并做了一些解释,供同学们参考。
根据这一标准画出的程序流程图我们称为标准流程图。
二符号程序流程图表示了程序的操作顺序。
它应包括:(1)指明实际处理操作的处理符号,包括根据逻辑条件确定要执行的路径的符号。
(2)指明控制流的流线符号。
(3)便于读写程序流程图的特殊符号。
以下给出标准流程图所用的符号及其简要说明,请参看图1。
图1 标准程序流程图符号1、数据——平行四边形表示数据,其中可注明数据名,来源,用途或其它的文字说明。
此符号并不限定数据的媒体。
2、处理——矩形表示各种处理功能。
例如,执行一个或一组特定的操作,从而使信息的值,信息形式或所在位置发生变化,或是确定对某一流向的选择。
矩形内可注明处理名或其简单功能。
3、特定处理——带有双纵边线的矩形表示已命名的特定处理。
该处理为在另外地方已得到详细说明的一个操作或一组操作,便如子例行程序,模块。
矩形内可注明特定处理名或其简要功能。
2、附录一 江西省园林绿地养护概算定额费用标准
附录一江西省园林绿化养护概算定额费用标准一、说明1、《江西省园林绿化养护概算定额费用标准》(以下简称“费用定额”)与《江西省园林绿化养护概算定额》配套使用。
2、《江西省园林绿化养护概算定额费用标准》的费用组成依据住房城乡建设部、财政部《关于印发<建筑安装工程费用项目组成>的通知》(建标[2013]44号)文件。
3、费用定额中的费率,既适用于工程量清单计价,也适用于概算定额计价。
4、施工单位在养护承诺期内对新扩改建园林绿化工程的养护管理不适用本概算定额。
二、园林概算总价费用园林养护概算总价费用由人工费、材料费、施工机具使用费、总价措施费、企业管理费、利润、规费和税金组成。
(一)人工费:指按工资总额构成规定,支付给养护工人的各项费用。
内容包括:1、计时工资或计件工资:是指按计时工资标准和工作时间或对已做工作按计件单价支付给个人的劳动报酬。
2、奖金:是指对超额劳动和增收节支支付给个人的劳动报酬。
如节约奖、劳动竞赛奖等。
3、津贴补贴:是指为了补偿职工特殊或额外的劳动消耗和因其他特殊原因支付给个人的津贴,以及为了保证职工工资水平不受物价影响支付给个人的物价补贴。
如流动施工津贴、特殊地区施工津贴、高温(寒)作业临时津贴、高空津贴等。
4、加班加点工资:是指按规定支付的在法定节假日工作的加班工资和在法定日工作时间外延时工的加点工资。
5、特殊情况下支付的工资:是指根据国家法律、法规和政策规定,因病、工伤、产假、计划生育假、婚丧假、事假、探亲假、定期休假、停工学习、执行国家或社会义务等原因按计时工资标准或计时工资标准的一定比例支付的工资。
(二)材料费:指绿地养护过程中耗费的原材料、辅助材料、构配件、零件、半成品或成品、工程设备的费用。
内容包括:1、材料原价:是指材料、工程设备的出厂价格或商家供应价格。
2、运杂费:是指材料、工程设备自来源地运至工地仓库或指定堆放地点所发生的全部费用。
3、运输损耗费:是指材料在运输装卸过程中不可避免的损耗。
ISO9001:2015版质量手册《附录清单》
程序文件目录
适用的法律法规及其他要求清单
JL-Q-4.1-01
附录3
作业文件清单
附录4
主要记录清单
附录5:
质量手册管理
4.4.1手册的编写
(1)本手册是公司质量管理体系手册,由公司管理者组织体系文件编写组进行编写,经总经理批准,颁布实施。
(2)本手册依据GB/T19001-2016 IDT ISO9001:2015《质量管理体系要求》标准并结合公司实际情况编制,作为质量管理的依据,以取信国内外顾客,并向顾客提供符合法律法规要求的产品和服务。
4.4.2手册的管理
(1)本手册的解释权归公司管理者代表。
(2)手册的发放范围由工程品质部提出,经管理者代表批准后,行政部负责组织发放、回收、销毁和作废。
(3)手册封面加盖“受控”或“非受控”标识。
“受控”手册为公司内部使用的有效版本,并向第三方认证机构报送;“非受控”手册经管理者代表批准,可用于投标或向认证咨询机构备案。
(4)手册实施后,由工程品质部定期组织有关部门对手册的适应性和有效性进行评审,并按《文件控制程序》中的规定对手册进行修改完善。
(5)“受控”手册修改时,由工程品质部统一负责;“非受控”手册不再跟踪修改。
(6)手册持有者应对手册进行妥善保管,不得损坏、丢失、随意涂改。
未经管理者代表批准,任何人不得将手册借给公司以外人员。
(7)手册持有者因岗位变动或调离本公司时,应将手册交回行政部并办理移交手续。
课程设计报告排版格式要求
课程设计报告格式要求一、课程设计提交报告的组成1.课程设计任务书(填上学号、姓名、课程编号);2.课程设计报告,20页以上,包括:封面(取用任务书封面,“任务书”三个字改成“报告”)、目录、正文内容、小结、参考文献、附录;3图纸一张(A3或A4,有图框,图例,图名,绘图人)二、课程设计报告格式(一)封面(统一)(二)目录(单独成页)“目录”二字用黑体小二号并位于页面上方居中;目录要求列出一、二级标题,一级标题用黑体四号,二级标题用宋体小四号,同时要在各级标题后列出页码;目录设置段前为0磅,段后为12磅。
(三)正文1、每一章另起页。
章节采用三级标题,用阿拉伯数字连续编号,例如1,1.1,1.1.1。
章名为一级标题,位于一页的首行居中。
章名用黑体小二号,段前距为0磅,与紧接其后的文字或二级标题间距为12磅。
二级标题用宋体四号,左对齐,段前距12磅,段后距0磅。
三级标题用黑体小四号,左对齐,段前距12磅,段后距0磅。
2、正文用宋体小四号。
正文中所有非汉字均用Times New Roman体;字间距设置为“标准”;段落设置为“多倍行距:1.25”。
3、表名位于表的正上方,用宋体五号粗体;图名位于图的正下方,用宋体五号粗体;图表按章编号,例如表2.7为第2章第七个表;图3.1为第3章第1个图;公式用公式编辑器,如Math type或Word自带编辑器,按章编号,如11cosP Sψ=⨯(1-1)表示第一章第一个公式。
(四)参考文献参考文献另起一页,但与正文连续编页码。
“参考文献”居中,用黑体小二号,段前设置为0磅,段后设置为12磅,著录的用宋体小四号,著录的内容应符合国家标准,主要格式如下:期刊:[序号]作者(用逗号分隔).题名.刊名.出版年,卷号:(期号),起始页码~终止页码书籍:[序号]作者(用逗号分隔).书名.版本号(初版不写).出版地:出版社,出版年(五)附录1、程序流程图:符合软件流程图规范。
2、程序清单:关键代码,带注释。
附录1程序文件清单8.1
C4
产品交付
YN-QP(A)-18
产品交付控制程序
销售部
C5
顾客反馈
YN-QP(A)-20
顾客满意度控制程序
销售部
程序文件清单(附录1)
文件编号
YN-QM(A)-2017
版本
A0
页码
59/68
过程编号
过程名称
程序文件编号
程序文件名称
过程拥有者
备注
支持过程
S1
文件记录
YN-QP(A)-01
文件控制程序
最高管理者
M3
内部审核
YN-QP(A)-21
内部审核控制程序
品质部
M4
纠正预防与改进
YN-QP(A)-24
持续改进控制程序
最高管理者
YN-QP(A)-25
纠正预防措施控制程序
品质部
顾客导向过程
C1
订单评审
YN-QP(A)-13
顾客要求过程控制程序
销售部
C2
设计开发
YN-QP(A)-10
产品质量先期策划控制程序
YN-QP(A)-22
产品监视和测量过程控制程序
品质部
YN-QP(A)-17
数据分析和使用控制程序
品质部
S7
不合格品
YN-QP(A)-23
不合格品控制程序
品质部
程序文件清单(附录1)
文件编号
YN-QM(A)-2017
版本
A0
页码
58/68
过程编号
过程名称
程序文件编号
程序文件名称
过程拥有者
备注
管理过程
M1
经营计划
理工科本科毕业论文写作格式要求(模版)
... 本科毕业论文写作格式要求(模版)1. 基本要求理工科类本科毕业论文不少于6000字(不含图∕表)。
摘要部分应有200~300字,关键词4~5个,参考文献5~8篇,其中含2篇以上英文参考文献。
2. 打印要求论文一律用A4标准复印纸打印,论文正文及设计任务书采用双面打印(其中任务书封面采用单面打印),论文封面、开题报告、目录采用单面打印。
上述材料用塑料封皮夹住,不得自己装订,论文将由学校统一装订。
版面页边距上空2.5cm,下空2.5cm,左空2.5cm,右空2.5cm,装订线1cm,装订线位置:左边。
页码位于页面底端(页脚),居中对齐,首页显示页码,页码标记由正文第一页开始。
行距为1.5倍行距,字符间距为标准。
毕业论文章、节的编号一律按阿拉伯数字分级编号。
3. 计量单位使用要求须采用1984年2月27日国务院发布的《中华人民共和国法定计量单位》。
4. 论文装订顺序毕业论文封面→开题报告→目录→正文→指导教师评阅意见→评阅教师评阅意见→成绩评定表→设计任务书。
附有图纸的论文,图纸按A4大小折叠。
5. 摘要写作要求摘要是论文内容不加注释和评论的简短陈述,应以第三人称陈述。
它应具有独立性和自含性,即不阅读论文的全文,就能获得必要的信息。
摘要的内容应包含与论文同等量的主要信息,供读者确定有无必要阅读全文。
摘要一般应说明研究工作目的、试验研究方法、结果和最终结论等。
摘要中一般不用图、表、公式等,不用非公知公用的符号、术语和非法定的计量单位。
6. 参考文献要求文献类型的标识代码:普通图书M ;会议录 C ;汇编G ;报纸N ;期刊J;学位论文D;报告R ;标准S ;专利P;数据库DB ;计算机程序CP ;电子公告EB电子文献载体和标志代码: 磁带(magnetic tape )MT ;磁盘(disk)DK;光盘(CD-ROM)CD;联机网络(online)OL7.写作格式要求(见后范例)...安徽农业大学毕业论文(设计)论文题目智能化温度监控系统的研究与设计姓名×××学号××××××院系信息与计算机学院专业计算机科学与技术指导教师×××职称×××××中国·合肥二o××年六月... 安徽农业大学学士学位论文(设计)开题报告... 目录(黑体三号、居中)1 引言 (1)2 设计思想 (2)3系统的硬件设计 (3)3.1模拟量采集模块 (4)3.2模-数转换模块 (7)3.3串行通信模块 (8)3.4控制面板模块 (9)3.5显示模块 (10)3.6报警模块 (10)3.7控制模块 (10)3.8电源模块 (11)3.9电路图的绘制 (12)3.9.1 电路原理图的绘制 (12)3.9.2 电路PCB图的绘制 (12)4 系统的软件设计 (13)4.1通信协议设计 (13)4.2单片机程序设计 (14)4.2.1主程序设计 (5)4.2.2 定时中断模块 (15)4.2.3 串口中断模块 (15)4.3PC机串口程序设计 (16)5单片机程序调试及其遇到的问题 (17)6 结束语 (18)参考文献 (18)英文摘要 (19)致谢 (19)附录1 (19)附录2 (20)附录3 (21)...智能化温度监控系统的研究与设计(黑体三号、居中)学生:×××,指导教师:×××(宋体小四号、居中)(安徽农业大学信息与计算机学院合肥230036)(宋体小四号、居中)摘要(宋体小四号、加粗、顶格):本文介绍了基于AT89C51单片机的智能化温度监控系统。
欧盟发布新版GMP附录一《无菌产品生产》
附录1 无菌产品生产文件日期:2020-02-20目录•文件结构图• 1 范围• 2 原则• 3 药品质量体系(PQS)• 4 厂房• 5 设备• 6 公共设施•7 人员•8 生产和具体技术•9 活性微粒及非活性微粒的环境监测和工艺监测•10 质量控制(QC)•11.术语1 范围无菌产品的生产涵盖多种无菌产品类型(原料药,无菌辅料,内包装材料和成品制剂),包装规格(单剂量到多剂量),工艺(从高度自动化系统到手动工艺)和技术(如生物技术,传统小分子生产和密闭系统)。
本附录提供了运用质量风险管理(QRM)原则的所有无菌产品生产应施用的一般性指导,以确保最终产品中无微生物、微粒和热原污染。
QRM缩写适用于本文件全文,不会在具体段落中加以说明。
在列出具体限度或频率时,这些限度或频率应视为最低要求。
这些陈述是由于监管历史经验,即曾出现这些问题并影响了患者的安全。
本附录的目的是为无菌产品的生产提供指导。
然而,一些原则和指导,例如污染控制策略、厂房设计、洁净室分类、确认、监测和人员更衣,可用于支持其它非无菌、但有必要控制和减少微生物、微粒和热原污染的产品(例如某些液体、乳膏、软膏和低生物负荷的生物中间体)的生产。
如果生产商选择将本指南应用于非无菌产品,生产商应清楚地记录已施用了哪些原则,并应证明符合这些原则。
2 原则2.1 无菌产品的生产应符合特殊要求,以尽量降低微生物、微粒和热原污染的风险。
应考虑以下关键领域:i.应按照药品生产质量管理规范(GMP)指南的相关章节优化、确认和验证设施、设备和工艺设计。
应考虑使用适当的技术(例如,限制进入隔离系统(RABS),隔离器,自动系统,快速微生物检测和监测系统),以增强对产品的保护,防止潜在的外来微粒和微生物污染源(例如人员、物料和周围环境),并帮助快速检测环境和产品中的潜在污染物。
ii.人员应具备合适的资质和经验,培训和态度,尤其是生产、包装和发运过程中无菌产品保护所涉及的原则。
微机原理课设,数据计算处理
武汉理工大学《微机原理与接口技术》课程设计说明书课程设计任务书学生姓名:专业班级:指导教师:工作单位:题目: 计算程序初始条件:按下列要求编程:(1)从键盘输入两个四位十六进制数。
(2)将这两个数以二进制形式输出,要求输出的0 和1 颜色交替变化。
(3)找出这两个数中的偶数,若有则以十进制输出,若无,输出“NO”。
(4)计算这两个数的平方和。
(5)数据的输入和结果的输出都要有必要的提示,且提示独占一行。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)设计任务及要求分析(2)方案比较及认证说明(3)系统原理阐述(4)硬件设计课题需要说明:硬件原理,电路图,采用器件的功能说明(5)软件设计课题需要说明:软件思想,流程图,源程序及程序注释(6)调试记录及结果分析(7)总结(8)参考资料(9)附录:芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图时间安排:1月2日~1月3日:收集资料,方案选择1月4日~1月7日:整体流程,程序细节1月8日~1月10日:调试程序,报告撰写1月10:交设计报告,程序演示,答辩指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (1)1任务要求分析 (2)2方案比较及认证说明 (3)3系统原理 (4)3.1整体设计原理 (4)3.2 DOS和BIOS部分功能调用说明 (4)4硬件及程序设计 (6)4.1硬件说明 (6)4.2主程序设计 (6)4.3功能一子程序设计 (9)4.4功能二子程序设计 (12)4.5功能三子程序设计 (14)4.6功能四子程序设计 (18)4.7完成退出程序 (20)5结果分析 (21)6程序调试过程中遇到的问题 (21)心得体会 (22)参考文献 (23)摘要本设计通过调用DOS0AH功能调用实现从键盘上输入两个四位的16进制数,然后通过逻辑移位指令实现16进制数转换成二进制数,再调用BIOS9号功能调用,设置颜色在当前光标位置显示字符,为了判断输入16进制数的奇偶性,主要通过对数值某位操作,实现对数值奇偶性的判断。
欧盟GMP附录1《无菌产品生产》-2020版解读!
欧盟GMP附录1《无菌产品生产》-2020版解读!•扩大了适用范围,不限于无菌药品,无菌活性物质(无菌原料药)、辅料、内包材和制剂。
•不再仅仅是EU GMP,还适用于PIC/S和WHO。
•强调无菌产品生产的风险管理目标,不单单是微生物相关的风险,还包括微粒(可见异物)、热原。
•QRM 适用于本文件的全部内容,而不是在某一段落提及。
在写明具体限度或频率时,应将这些限制或频率视为最低要求。
这些声明来自以前发现的问题并影响了患者安全的监管历史经验。
•如果制造商选择将本指南应用于非无菌产品,制造商应明确记录已应用的原则,并应证明符合这些原则。
•引入新技术,如RABS、隔离器、快速转移系统、机器人系统、快速微生物测试等•QRM应首先考虑设施,设备和工艺的良好设计,然后实施设计合理的程序,最后才是监测系统,以表明设计和程序已正确实施并持续符合预期。
只采取监测或测试不能保证无菌。
”•关于污染控制策略,新增要求:定义所有关键控制点,并评估所有控制(设计、程序、技术和组织)的有效性,以及用于管理污染相关风险的监控措施'。
•强调需要书面的CCS(污染控制策略),还需要不断保持更新。
•强调CCS应考虑污染控制的各个方面并在其生命周期内持续和定期审查,以在质量体系内进行适当更新。
•多处将“风险评估”改为“风险管理”,体现不仅仅要求一份书面的风险评估,而是实质性的风险管理过程。
•强调制定和维护CCS时需要运用风险管理原则。
•控制和监测应科学合理,并能够评估用于物料和设备传递的洁净室、气闸和传递窗的环境状况。
强调环境监测对象包括传递窗。
•限制进入屏障系统(RABS)和隔离器在确保所需条件并最大程度减少与关键区域中的直接人工干预相关的微生物污染方面非常有益。
在CCS中应考虑使用它们。
使用RABS或隔离器以外的任何其他方法都应进行论证。
•强调应使用RABS和隔离器,如不使用应进行论证。
•删除“只有C级洁净区才能与B级无菌生产区域对接”的要求。
毕业设计任务书目录
毕业设计选题毕业设计题目1: 基于单片机的十字路口交通灯控制系统设计------毕业设计题目2: 基于单片机的4位数字频率计设计------毕业设计题目3: 低频信号发生器设计------毕业设计题目4: 基于单片机的电子万年历设计----毕业设计题目5: 基于单片机的遥控电子钟系统设计----毕业设计题目6: 基于单片机控制的电子秤设计----毕业设计题目7: 基于单片机控制的竟能抢答器设计----毕业设计题目8:多路温度采集系统电路设计----毕业设计题目9:语音录放系统电路设计----毕业设计题目10:LED点阵广告牌电路设计----毕业设计题目11: 基于单片机的学校电铃自动控制系统设计----毕业设计题目12: 路灯控制器电路设计---毕业设计题目13: 基于单片机的电器遥控器设计----毕业设计题目14: 单片机脉搏测量仪----毕业设计题目15: 基于单片机的数字电压表设计----毕业设计题目16: 基于单片机的电子密码锁设计---毕业设计题目17: 单片机控制红外线报警系统----毕业设计题目18: 红外温度发烧检测门系统设计----毕业设计题目19: 数字温度计设计----毕业设计题目20: 酒精浓度检测仪的设计---毕业设计题目21: 单片机控制的多功能窗的设计----毕业设计题目22: 智能红外遥控电风扇的设计----毕业设计题目1: 基于单片机的十字路口交通灯控制系统设计方案要求:以C51单片机为核心芯片,通过控制三色LED的亮灭来控制各干道的通行。
①电源:220VAC±10%,50Hz±10%②剩余时间显示:两位数码管。
③每次绿灯变红灯时,要求黄灯先亮3秒钟。
④主干道每次放行45秒;支干道每次放行30秒。
论文格式要求: (题目用3号字加粗,一级标题小四号字加粗,内容五号字不加粗)一.设计题目二.中英文摘要三.目录四.整体构思五.具体实现:画出总体方框图和电路原理图并给出说明.电路原理图、印制板图用Protel软件绘制(放在在附录1中)。
附录程序清单及注释
附录程序清单及注释菜单窗体Option ExplicitDim sql As StringDim blnView As BooleanConst MeWidth As Integer = 9216Const MeHeight As Integer = 6600'caidan.Width = 9216'caidan.Height = 6600Private Sub about_Click()Form2.ShowEnd SubPrivate Sub TSJ_Click()find1.Showcaidan.HideEnd SubPrivate Sub clean_Click()Dim mydb As DatabaseDim dbpath As StringDim sql As Stringdbpath = App.Path & "\SJK.mdb"If MsgBox("此功能将清除库中所有记录,你确定要执行吗?", vbOKCancel) = vbOK Then Set mydb = OpenDatabase(dbpath)sql = "delete * from house"mydb.Execute sqlsql = "delete * from room"mydb.Execute sqlsql = "delete * from student"mydb.Execute sqlsql = "delete * from cleaner"mydb.Execute sqlMsgBox ("清库完毕!")End IfEnd SubPrivate Sub datacopy_Click()Dim db As DatabaseDim dt As New TableDefIf MsgBox("是否备份", vbYesNo, "备份") = vbYes Then Set db = OpenDatabase(App.Path & "\SJK.mdb")Set dt = db.CreateTableDef("backup1")db.TableDefs.Delete "backup1"db.Execute "select house.* into backup1 from house " db.TableDefs.Delete "backup2"db.Execute "select * into backup2 from room"db.TableDefs.Delete "backup3"db.Execute "select * into backup3 from student"db.TableDefs.Delete "backup4"db.Execute "select * into backup4 from cleaner"db.CloseElse: Exit SubEnd IfEnd SubPrivate Sub datasave_Click()Dim db As DatabaseDim dt As New TableDefIf MsgBox("是否还原", vbYesNo, "还原") = vbYes Then Set db = OpenDatabase(App.Path & "\SJK.mdb")db.TableDefs.Delete "house"db.Execute "select backup1.* into house from backup1 " db.TableDefs.Delete "room"db.Execute "select * into room from backup2"db.TableDefs.Delete "student"db.Execute "select * into student from backup3"db.TableDefs.Delete "cleaner"db.Execute "select * into cleaner from backup4"db.CloseElseExit SubEnd IfEnd SubPrivate Sub exit_Click()'清表Dim mydb As DatabaseDim sql As StringIf MsgBox("注意!" + Chr(13) + "此操作将清所有临时除库中所有记录,你确定要执行吗?", vbOKCancel, "提示") = vbOK ThenSet mydb = OpenDatabase(App.Path & "\SJK.mdb")sql = "delete * from 查询汇总表"mydb.Execute sqlsql = "delete * from 材料总表"mydb.Execute sqlsql = "delete * from 总标准件表"mydb.Execute sqlsql = "delete * from 总外购件表"mydb.Execute sqlsql = "delete * from 总外协件表"mydb.Execute sqlsql = "delete * from 总图号册表"mydb.Execute sqlMsgBox ("清库完毕!")ElseExit SubEnd IfEndEnd SubPrivate Sub QXSZ_Click()gly_f.ShowEnd SubPrivate Sub Form_Resize()'if minimized then exitIf Me.WindowState = vbMinimized Then Exit Sub'if lower the standard values resetIf Me.Height < MeHeight Then Me.Height = MeHeightIf Me.Width < MeWidth Then Me.Width = MeWidth'setup list1 & msflexgrid1caidan.ScaleEnd SubPrivate Sub SJHY2_Click()Form4.Showcaidan.HideEnd Sub查询窗体Option ExplicitDim sql As StringDim findstring As StringDim cancelflag As BooleanDim db As DatabaseDim db1 As DatabaseDim rst As RecordsetDim rst1 As RecordsetDim Tn As LongDim count1 As IntegerPrivate Sub BZJ_Click()sql = "select * from 材料总表 where 特性 = 'GB'"Data1.RecordSource = sqlData1.RefreshIf MsgBox("是否将此记录添加到总标准件中?", 64, "") = vbOK ThenSet db = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\sjk.mdb") Set rst = db.OpenRecordset("总标准件表", dbOpenDynaset)Set rst1 = db.OpenRecordset(Data1.RecordSource, dbOpenDynaset)rst1.MoveLastcount1 = rst1.RecordCountrst1.MoveFirstDim a As IntegerFor a = 1 To count1rst.AddNewrst.Fields("图号") = rst1.Fields("图号")rst.Fields("标准") = rst1.Fields("标准")rst.Fields("名称") = rst1.Fields("名称")rst.Fields("规格") = rst1.Fields("规格")rst.Fields("尺寸") = rst1.Fields("尺寸")rst.Fields("材料") = rst1.Fields("材料")rst.Fields("特性") = rst1.Fields("特性")rst.Fields("类") = rst1.Fields("类")rst.Fields("数量") = rst1.Fields("数量")rst.Fields("单重") = rst1.Fields("单重")rst.Fields("单价") = rst1.Fields("单价")rst.Fields("工时") = rst1.Fields("工时")rst.Fields("总重") = rst1.Fields("总重")rst.Fields("备注") = rst1.Fields("备注")rst.Updaterst1.MoveNextNext arst.Closedb.CloseEnd IfEnd SubPrivate Sub Command10_Click()Data1.DatabaseName = App.Path & "\sjk.mdb"Data1.RecordSource = "总外协件表"Data1.RefreshEnd SubPrivate Sub Command4_Click()Call Prnt36End SubPrivate Sub Command5_Click()Dim mydb As DatabaseDim dbpath As StringDim sql As Stringdbpath = App.Path & "\SJK.mdb"If MsgBox("此功能将清除库中所有记录,你确定要执行吗?", vbOKCancel) = vbOK Then Set mydb = OpenDatabase(dbpath)sql = "delete * from 查询汇总表"mydb.Execute sqlMsgBox ("清库完毕!")Data1.DatabaseName = App.Path & "\sjk.mdb"Data1.RecordSource = "查询汇总表"Data1.RefreshEnd IfEnd SubPrivate Sub Command7_Click()Data1.DatabaseName = App.Path & "\sjk.mdb"Data1.RecordSource = "总图号册表"Data1.RefreshEnd SubPrivate Sub Command8_Click()Data1.DatabaseName = App.Path & "\sjk.mdb"Data1.RecordSource = "总外购件表"Data1.RefreshEnd SubPrivate Sub Command9_Click()Data1.DatabaseName = App.Path & "\sjk.mdb"Data1.RecordSource = "总标准件表"Data1.RefreshEnd SubPrivate Sub Form_Load()DBGrid1.AllowUpdate = FalseCommand2.Enabled = FalseData1.DatabaseName = App.Path & "\sjk.mdb"sql = "select * from 材料总表"Data1.RecordSource = sqlData1.RefreshDim num As IntegerFor num = 0 To Data1.Recordset.Fields.Count - 1 Combo1.AddItem Data1.Recordset.Fields(num).Name Next numEnd SubPrivate Sub Combo2_Click()Dim temp As StringSelect Case Combo2.ListIndexCase 0temp = "等于"Case 1temp = "大于等于"Case 2temp = "大于"Case 3temp = "小于"Case 4temp = "小于等于"Case 5temp = "不等于"Case 6temp = "包含"End Select'laboperate.Caption = tempEnd SubPrivate Sub Command1_Click()Dim fieldname As StringDim operate As StringDim value As StringSelect Case Combo2.ListIndexCase 0operate = "="Case 1operate = ">="Case 2operate = ">"Case 3operate = "<"Case 4operate = "<="Case 5operate = "<>"Case 6operate = "LIKE"End SelectIf Combo1.Text <> "" And Combo2.Text <> "" And Text1.Text <> "" Thenfieldname = Combo1.Textvalue = Text1.TextSelect Case Combo1.ListIndexCase 0, 1, 2, 3, 5, 6, 7, 13 ', 4, 8, 9, 10, 11, 12findstring = fieldname & operate & "'" & value & "'"Case 4, 8, 9, 10, 11, 12findstring = Val(fieldname) & operate & Val(Text1.Text)End Selectsql = "select * from 材料总表 where" & " " & findstringElseIf MsgBox("输入条件不当,请重新输入.", vbYes, "信息提示") = vbYes Then Exit SubEnd IfIf operate = "LIKE" Thenfindstring = fieldname & operate & "'*" & value & "*'"sql = "select * from 材料总表 where " & fieldname & " " & operate & " " & "'*" & value & "*'"End IfCommand2.Enabled = TrueData1.RecordSource = sqlData1.Refresh'DAO查询方法Set db = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\sjk.mdb")Set rst1 = db.OpenRecordset(Data1.RecordSource, dbOpenDynaset)If Not (rst1.BOF And rst1.EOF) Thenrst1.MoveLastMe.Caption = "总共找到" & CStr(rst1.RecordCount) & " 记录"Else: MsgBox "未找到符合条件的纪录!", 64, "数据查询": Exit SubEnd IfEnd SubPrivate Sub Command2_Click()DBGrid1.AllowUpdate = TrueCommand2.Enabled = FalseCommand4.Enabled = FalseData1.DatabaseName = App.Path & "\sjk.mdb"sql = "select * from " & biaostringData1.RecordSource = sqlData1.RefreshEnd SubPrivate Sub Command3_Click()'清汇总表Dim mydb As DatabaseDim sql As StringSet mydb = OpenDatabase(App.Path & "\SJK.mdb")sql = "delete * from 查询汇总表"mydb.Execute sql'开始汇总Set db = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\sjk.mdb") Set rst = db.OpenRecordset("查询汇总表", dbOpenDynaset)Set rst1 = db.OpenRecordset(Data1.RecordSource, dbOpenDynaset)rst1.MoveLastcount1 = rst1.RecordCountrst1.MoveFirstDim a As IntegerFor a = 1 To count1rst.AddNewrst.Fields("图号") = rst1.Fields("图号")rst.Fields("标准") = rst1.Fields("标准")rst.Fields("名称") = rst1.Fields("名称")rst.Fields("规格") = rst1.Fields("规格")rst.Fields("尺寸") = rst1.Fields("尺寸")rst.Fields("材料") = rst1.Fields("材料")rst.Fields("特性") = rst1.Fields("特性")rst.Fields("类") = rst1.Fields("类")rst.Fields("数量") = rst1.Fields("数量")rst.Fields("单重") = rst1.Fields("单重")rst.Fields("单价") = rst1.Fields("单价")rst.Fields("工时") = rst1.Fields("工时")rst.Fields("总重") = rst1.Fields("总重")rst.Fields("备注") = rst1.Fields("备注")rst.Updaterst1.MoveNextNext arst.Closedb.CloseSet db = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\sjk.mdb") Set rst = db.OpenRecordset("查询汇总表", dbOpenDynaset)Dim i, j, p As Integer'mc=名称 gg=规格 bz=标准 cl=材料 sl=数量 DZ=单重 zz=总重Dim gg1, bz1, cl1, gm1, sl1, zz1, dz1, gg2, bz2, cl2, gm2, sl2, zz2, dz2 As Stringrst.MoveLastp = rst.RecordCountrst.MoveFirstFor i = 0 To p - 2gg1 = rst.Fields("规格"): bz1 = rst.Fields("标准"): cl1 = rst.Fields("材料"): sl1 = rst.Fields("数量"): zz1 = rst.Fields("总重"): dz1 = rst.Fields("单重")For j = i + 1 To p - 1rst.Move 1gg2 = rst.Fields("规格"): bz2 = rst.Fields("标准"): cl2 = rst.Fields("材料"): sl2 = rst.Fields("数量"): zz2 = rst.Fields("总重"): dz2 = rst.Fields("单重")If gg1 = gg2 And bz1 = bz2 And cl1 = cl2 And dz1 = dz2 Thensl1 = Val(sl1) + Val(sl2): zz1 = Val(zz1) + Val(zz2): rst.Delete: p = p - 1: rst.MovePrevious End IfNext jrst.AbsolutePosition = irst.Editrst.Fields("数量") = sl1rst.Fields("总重") = zz1rst.UpdateData1.RefreshIf i + 1 <= p - 2 Thenrst.Move 1ElseExit ForEnd IfNext irst.CloseData1.DatabaseName = App.Path & "\sjk.mdb"Data1.RecordSource = "查询汇总表"Data1.RefreshEnd SubPrivate Sub GB_Click()sql = "select * from 材料总表 where 类 = '钢板'"Data1.RecordSource = sqlData1.RefreshEnd SubPrivate Sub GG_Click()sql = "select * from 材料总表 where 类 = '钢管'"Data1.RecordSource = sqlData1.RefreshEnd SubPrivate Sub JXG_Click()sql = "select * from 材料总表 where 类 = '矩型管'"Data1.RecordSource = sqlData1.RefreshEnd SubPrivate Sub Label4_Click()caidan.ShowUnload MeEnd SubPrivate Sub Prnt36()Dim Lnst1, Lnst2, Lnst3, Lnst4, Lnst5 As StringDim Lnst6, Lnst7, Lnst8, prdate As StringDim i, j, Pg As Integerprdate = CStr(Date)Lnst1 = "┏━━━━━━━┯━━━━━━┯━━━━━━━━━━┯━━━━━━┯━━━━┯━━━━┯━━┯━━┯━━┯━━━━┯━━━━━━┓"Lnst2 = "┃图号│名称│规格│标准│材料│数量│单重│单价│工时│购买方式│备注┃"Lnst3 = "┠───────┼──────┼──────────┼──────┼────┼────┼──┼──┼──┼────┼──────┨"' ┃12345678901234│123456789012│12345678901234567890│123456789012│12345678│12345678│1234│5678│1234│12345678│123456789012┃"Lnst4 = "┗━━━━━━━┷━━━━━━┷━━━━━━━━━━┷━━━━━━┷━━━━┷━━━━┷━━┷━━┷━━┷━━━━┷━━━━━━┛"Tn = InputBox("请输入每页记录数!")Printer.FontSize = 12Printer.Print Lnst5Printer.Print Lnst1Printer.Print Lnst2j = 0Pg = 0Data1.Recordset.MoveFirstFor i = 1 To Data1.Recordset.RecordCountPrinter.Print Lnst3Lnst6 = "┃"If IsNull(Trim(Data1.Recordset(0))) = False ThenLnst6 = Lnst6 + Trim(Data1.Recordset(0)) + Space(14 - LenB(Trim(Data1.Recordset(0))) / 2) + "│"ElseLnst6 = Lnst6 + Space(14) + "│"End IfIf IsNull(Trim(Data1.Recordset(1))) = False ThenLnst6 = Lnst6 + Trim(Data1.Recordset(1)) + Space(12 - LenB(Trim(Data1.Recordset(1)))) + "│"ElseLnst6 = Lnst6 + Space(12) + "│"End IfIf IsNull(Trim(Data1.Recordset(2))) = False ThenLnst6 = Lnst6 + Trim(Data1.Recordset(2)) + Space(20 - LenB(Trim(Data1.Recordset(2))) / 2) + "│"ElseLnst6 = Lnst6 + Space(20) + "│"End IfIf IsNull(Trim(Data1.Recordset(3))) = False ThenLnst6 = Lnst6 + Trim(Data1.Recordset(3)) + Space(12 - LenB(Trim(Data1.Recordset(3))) / 2) + "│"ElseLnst6 = Lnst6 + Space(12) + "│"If IsNull(Trim(Data1.Recordset(4))) = False ThenLnst6 = Lnst6 + Trim(Data1.Recordset(4)) + Space(8 - LenB(Trim(Data1.Recordset(4))) / 2) + "│"ElseLnst6 = Lnst6 + Space(8) + "│"End IfIf IsNull(Trim(Data1.Recordset(5))) = False ThenLnst6 = Lnst6 + Trim(Data1.Recordset(5)) + Space(8 - LenB(Trim(Data1.Recordset(5))) / 2) + "│"ElseLnst6 = Lnst6 + Space(8) + "│"End IfIf IsNull(Trim(Data1.Recordset(6))) = False ThenLnst6 = Lnst6 + Trim(Data1.Recordset(6)) + Space(4 - LenB(Trim(Data1.Recordset(6))) / 2) + "│"ElseLnst6 = Lnst6 + Space(4) + "│"End IfIf IsNull(Trim(Data1.Recordset(7))) = False ThenLnst6 = Lnst6 + Trim(Data1.Recordset(7)) + Space(4 - LenB(Trim(Data1.Recordset(7))) / 2) + "│"ElseLnst6 = Lnst6 + Space(4) + "│"End IfIf IsNull(Trim(Data1.Recordset(8))) = False ThenLnst6 = Lnst6 + Trim(Data1.Recordset(4)) + Space(4 - LenB(Trim(Data1.Recordset(8)))) + "│"ElseLnst6 = Lnst6 + Space(4) + "│"End IfIf IsNull(Trim(Data1.Recordset(9))) = False ThenLnst6 = Lnst6 + Trim(Data1.Recordset(9)) + Space(8 - LenB(Trim(Data1.Recordset(9))) / 2) + "│"ElseLnst6 = Lnst6 + Space(8) + "┃"End IfIf IsNull(Trim(Data1.Recordset(10))) = False ThenLnst6 = Lnst6 + Trim(Data1.Recordset(10)) + Space(12 - LenB(Trim(Data1.Recordset(9))) / 2) + "│"ElseLnst6 = Lnst6 + Space(12) + "┃"End IfPrinter.Print Lnst6j = j + 1If j = Tn ThenPg = Pg + 1Printer.Print Lnst4j = 0Printer.NewPagePrinter.Print Lnst5Printer.Print Lnst1Printer.Print Lnst2End IfData1.Recordset.MoveNextNextPg = Pg + 1Printer.Print Lnst4Printer.EndDocEnd SubPrivate Sub THC_Click()sql = "select * from 材料总表 where 图号 LIKE '*TLY*'"Data1.RecordSource = sqlData1.RefreshIf MsgBox("是否将此记录添加到总图号册中?", 64, "") = vbOK ThenSet db = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\sjk.mdb")Set rst = db.OpenRecordset("总图号册表", dbOpenDynaset)Set rst1 = db.OpenRecordset(Data1.RecordSource, dbOpenDynaset)rst1.MoveLastcount1 = rst1.RecordCountrst1.MoveFirstDim a As IntegerFor a = 1 To count1rst.AddNewrst.Fields("图号") = rst1.Fields("图号")rst.Fields("标准") = rst1.Fields("标准")rst.Fields("名称") = rst1.Fields("名称")rst.Fields("规格") = rst1.Fields("规格")rst.Fields("尺寸") = rst1.Fields("尺寸")rst.Fields("材料") = rst1.Fields("材料")rst.Fields("特性") = rst1.Fields("特性")rst.Fields("类") = rst1.Fields("类")rst.Fields("数量") = rst1.Fields("数量")rst.Fields("单重") = rst1.Fields("单重")rst.Fields("单价") = rst1.Fields("单价")rst.Fields("工时") = rst1.Fields("工时")rst.Fields("总重") = rst1.Fields("总重")rst.Fields("备注") = rst1.Fields("备注")rst.Updaterst1.MoveNextNext arst.Closedb.CloseEnd IfEnd SubPrivate Sub WGJ_Click()sql = "select * from 材料总表 where 特性 = 'WG'"Data1.RecordSource = sqlData1.RefreshIf MsgBox("是否将此记录添加到总外购件表中?", 64, "") = vbOK Then Set db = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\sjk.mdb")Set rst = db.OpenRecordset("总外购件表", dbOpenDynaset)Set rst1 = db.OpenRecordset(Data1.RecordSource, dbOpenDynaset)rst1.MoveLastcount1 = rst1.RecordCountrst1.MoveFirstDim a As IntegerFor a = 1 To count1rst.AddNewrst.Fields("图号") = rst1.Fields("图号")rst.Fields("标准") = rst1.Fields("标准")rst.Fields("名称") = rst1.Fields("名称")rst.Fields("规格") = rst1.Fields("规格")rst.Fields("尺寸") = rst1.Fields("尺寸")rst.Fields("材料") = rst1.Fields("材料")rst.Fields("特性") = rst1.Fields("特性")rst.Fields("类") = rst1.Fields("类")rst.Fields("数量") = rst1.Fields("数量")rst.Fields("单重") = rst1.Fields("单重")rst.Fields("单价") = rst1.Fields("单价")rst.Fields("工时") = rst1.Fields("工时")rst.Fields("总重") = rst1.Fields("总重")rst.Fields("备注") = rst1.Fields("备注")rst.Updaterst1.MoveNextNext arst.Closedb.CloseEnd IfEnd SubPrivate Sub WXJ_Click()sql = "select * from 材料总表 where 特性 = 'WX'"Data1.RecordSource = sqlData1.RefreshIf MsgBox("是否将此记录添加到总外协件表中?", 64, "") = vbOK ThenSet db = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\sjk.mdb") Set rst = db.OpenRecordset("总外协件表", dbOpenDynaset)Set rst1 = db.OpenRecordset(Data1.RecordSource, dbOpenDynaset)rst1.MoveLastcount1 = rst1.RecordCountrst1.MoveFirstDim a As IntegerFor a = 1 To count1rst.AddNewrst.Fields("图号") = rst1.Fields("图号")rst.Fields("标准") = rst1.Fields("标准")rst.Fields("名称") = rst1.Fields("名称")rst.Fields("规格") = rst1.Fields("规格")rst.Fields("尺寸") = rst1.Fields("尺寸")rst.Fields("材料") = rst1.Fields("材料")rst.Fields("特性") = rst1.Fields("特性")rst.Fields("类") = rst1.Fields("类")rst.Fields("数量") = rst1.Fields("数量")rst.Fields("单重") = rst1.Fields("单重")rst.Fields("单价") = rst1.Fields("单价")rst.Fields("工时") = rst1.Fields("工时")rst.Fields("总重") = rst1.Fields("总重")rst.Fields("备注") = rst1.Fields("备注")rst.Updaterst1.MoveNextNext arst.Closedb.CloseEnd IfEnd SubPrivate Sub HG_Click()sql = "select * from 材料总表 where 类 = 'H型钢'"Data1.RecordSource = sqlData1.RefreshEnd Sub数据加载窗体Private Sub Command1_Click()Dim Tn As IntegerDim c As IntegerDim cnt As IntegerDim db As DatabaseDim db1 As DatabaseDim a As IntegerDim b As IntegerDim rst As RecordsetDim rst1 As RecordsetDim TN1, TN2, TN3 As Integer'建表TN1 = Val(Text1.Text): TN2 = Val(Text2.Text): TN3 = (Text3.Text)If TN1 <> 0 And TN2 <> 0 And TN3 <> 0 ThenSet db = DBEngine.Workspaces(0).OpenDatabase(App.Path & "/sjk.mdb") Set db1 = DBEngine.Workspaces(0).OpenDatabase(App.Path & "/sjk.mdb") Set rst = db1.OpenRecordset("材料总表", dbOpenDynaset)Set rst1 = db.OpenRecordset("升降提升", dbOpenDynaset)rst1.MoveLastcnt = rst1.RecordCountrst1.MoveFirstFor a = 1 To cntrst.AddNewrst.Fields("图号") = rst1.Fields("图号")rst.Fields("标准") = rst1.Fields("标准")rst.Fields("名称") = rst1.Fields("名称")rst.Fields("规格") = rst1.Fields("规格")rst.Fields("尺寸") = rst1.Fields("尺寸")rst.Fields("材料") = rst1.Fields("材料")rst.Fields("特性") = rst1.Fields("特性")rst.Fields("类") = rst1.Fields("类")rst.Fields("数量") = rst1.Fields("数量")rst.Fields("单重") = rst1.Fields("单重")rst.Fields("单价") = rst1.Fields("单价")rst.Fields("工时") = rst1.Fields("工时")rst.Fields("备注") = rst1.Fields("备注")rst.Updaterst1.MoveNextNext a'数据计算rst.MoveFirstFor b = 1 To rst1.RecordCountrst.Editc = Val(rst.Fields("数量"))rst.Fields("总重") = Val(rst.Fields("单重")) * TN1 * TN3 * c rst.Fields("数量") = TN1 * TN3 * crst.Updaterst.MoveNextNext bSet rst2 = db.OpenRecordset("升降横移")rst2.MoveLastcnt = rst2.RecordCountrst2.MoveFirstrst.MoveFirstFor a = 1 To cntrst.AddNewrst.Fields("图号") = rst2.Fields("图号")rst.Fields("标准") = rst2.Fields("标准")rst.Fields("名称") = rst2.Fields("名称")rst.Fields("规格") = rst2.Fields("规格")rst.Fields("尺寸") = rst2.Fields("尺寸")rst.Fields("材料") = rst2.Fields("材料")rst.Fields("特性") = rst2.Fields("特性")rst.Fields("类") = rst2.Fields("类")rst.Fields("数量") = rst2.Fields("数量")rst.Fields("单重") = rst2.Fields("单重")rst.Fields("单价") = rst2.Fields("单价")rst.Fields("工时") = rst2.Fields("工时")rst.Fields("备注") = rst2.Fields("备注")rst.Updaterst2.MoveNextNext a'数据计算rst.AbsolutePosition = rst1.RecordCount - 1For b = 1 To rst2.RecordCountrst.Editc = Val(rst.Fields("数量"))rst.Fields("总重") = Val(rst.Fields("单重")) * TN2 * TN3 * c rst.Fields("数量") = TN2 * TN3 * crst.Updaterst.MoveNextNext bElseMsgBox "输入错误,请确认后从新输入", vbOKEnd Iffind1.ShowMe.HideEnd SubPrivate Sub Command2_Click()caidan.ShowMe.HideEnd Sub权限窗体Private Sub Command1_Click()DataGrid1.AllowAddNew = TrueDataGrid1.AllowUpdate = TrueAdodc1.Recordset.AddNewEnd SubPrivate Sub Command2_Click()DataGrid1.AllowUpdate = FalseDataGrid1.AllowAddNew = FalseAdodc1.Recordset.Update'Adodc1.RefreshEnd SubPrivate Sub Command3_Click()caidan.ShowUnload MeEnd SubPrivate Sub Command4_Click()If Adodc1.Recordset.BOF ThenMsgBox "已无记录可删!"Exit SubElseIf Adodc1.Recordset(0) = Adodc1.Recordset.RecordCount Then Adodc1.Recordset.DeleteMsgBox "最后一条记录已删除!"Exit SubElseAdodc1.Recordset.DeleteMsgBox "一条记录已删完!"While Not Adodc1.Recordset.EOFAdodc1.Recordset.MoveNextWendAdodc1.Recordset.MoveLastEnd IfEnd IfEnd SubPrivate Sub Command5_Click()DataGrid1.AllowUpdate = TrueEnd SubPrivate Sub Form_Load()'DataGrid1.Enabled = FalseAdodc1.Enabled = FalseIf quanxian = "1" ThenAdodc1.RecordSource = "select * from 管理员 where ID='" & glymc & "'" Adodc1.RefreshCommand1.Enabled = FalseCommand4.Enabled = FalseElseIf quanxian = "0" Thensql = "select * from 管理员"Adodc1.RecordSource = sqlAdodc1.RefreshEnd IfEnd Sub登陆窗体Dim conn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim X As IntegerPrivate Sub CMDOK_Click()TEXT1.Text = Replace(TEXT1.Text, "'", "")TEXT1.Text = Replace(TEXT1.Text, Chr(34), "")TEXT2.Text = Replace(TEXT2.Text, "'", "")TEXT2.Text = Replace(TEXT2.Text, Chr(34), "")If TEXT1.Text = "HD00001" And TEXT2.Text = "HD00001" Thenglymc = "HD00001"quanxian = "0"Unload Mecaidan.ShowEnd Ifsql = "select * from 管理员 where ID='" & TEXT1.Text & "' and PASSWD= '" & TEXT2.Text & "'"Set rs = conn.Execute(sql)If rs.EOF Or rs.BOF ThenMsgBox "帐号口令错误,请检查后从新进入!", 0, "信息提示": X = X + 1Elseglymc = rs("ID")quanxian = rs("QX")Unload Me'pic.Showcaidan.ShowEnd IfIf X = 3 ThenMsgBox "三次密码错误,退出系统": EndEnd IfEnd SubPrivate Sub CMDCANCEL_Click()Unload Me'Print Chr(34)End SubPrivate Sub Form_Load()conn.Open connstrEnd SubPrivate Sub Form_Unload(Cancel As Integer)Set conn = NothingSet rs = NothingEnd Sub。
DM实验报告
实验报告
课程数据挖掘与知识发现学院计算机学院
专业
班级
姓名
指导教师宋华珠
2013 年06 月17 日
实验1有关数据的实验
(2013/6/19,2-6pm, 10楼研究生实验室) 一、实验目的
//自己填写
二、实验内容
包括数据预处理、相似性和相异性的度量。
三、实验环境
需要一台计算机,其中安装有Matlab软件。
四、算法思路
五、实验设计
六、调试过程及实验结果
七、总结
附录(源程序清单)
实验2aprior算法的实现与改进(2013/6/21,2-6pm, 10楼研究生实验室) 一、实验目的
//自己填写
二、实验内容
编程实现原始的aprior算法;然后对其进行分析与改进,并对改进算法进行研究与实现。
三、实验环境
需要一台计算机,其中安装有Matlab软件。
四、算法思路
五、实验设计
六、调试过程及实验结果:
七、总结
附录(源程序清单):
实验3聚类算法
(2013/6/25,2-6pm, 10楼研究生实验室) 一、实验目的
//自己填写
二、实验内容
研究、学习,并编程实现2种聚类算法,然后对其进行比较。
三、实验环境
需要一台计算机,其中安装有Matlab软件。
四、算法思路
五、实验设计
六、调试过程及实验结果:
七、总结
附录(源程序清单):。
数值计算方法实验指导(Matlab版)
《数值计算方法》实验指导(Matlab版)学院数学与统计学学院计算方法课程组《数值计算方法》实验1报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验1 算法设计原则验证(之相近数相减、大数吃小数和简化计算步骤) 2. 实验题目(1) 取1610=z ,计算z z -+1和)1/(1z z ++,验证两个相近的数相减会造成有效数字的损失.(2) 按不同顺序求一个较大的数(123)与1000个较小的数(15310-⨯)的和,验证大数吃小数的现象.(3) 分别用直接法和九韶算法计算多项式n n n n a x a x a x a x P ++++=--1110)(在x =1.00037处的值.验证简化计算步骤能减少运算时间.对于第(3)题中的多项式P (x ),直接逐项计算需要2112)1(+=+++-+n n n 次乘法和n 次加法,使用九韶算法n n a x a x a x a x a x P ++++=-)))((()(1210则只需要n 次乘法和n 次加法. 3. 实验目的验证数值算法需遵循的若干规则. 4. 基础理论设计数值算法时,应避免两个相近的数相减、防止大数吃小数、简化计算步骤减少运算次数以减少运算时间并降低舍入误差的积累.两相近的数相减会损失有效数字的个数,用一个大数依次加小数,小数会被大数吃掉,乘法运算次数太多会增加运算时间. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab6. 实验过程(1) 直接计算并比较;(2) 法1:大数逐个加1000个小数,法2:先把1000个小数相加再与大数加; (3) 将由高次项到低次项的系数保存到数组A[n]中,其中n 为多项式次数.7. 结果与分析 (1) 计算的z z -+1= ,)1/(1z z ++.分析:(2) 123逐次加1000个6310-⨯的和是 ,先将1000个6310-⨯相加,再用这个和与123相加得.分析:(3) 计算次的多项式:直接计算的结果是,用时;用九韶算法计算的结果是,用时.分析:8. 附录:程序清单(1) 两个相近的数相减.%*************************************************************%* 程序名:ex1_1.m *%* 程序功能:验证两个相近的数相减会损失有效数字个数 *%*************************************************************z=1e16;x,y======================================================================(2) 大数吃小数%*************************************************************%* 程序名:ex1_2.m *%* 程序功能:验证大数吃小数的现象. *%*************************************************************clc; % 清屏clear all; % 释放所有存变量format long; % 按双精度显示浮点数z=123; % 大数t=3e-15; % 小数x=z; % 大数依次加小数% 重复1000次给x中加上ty=0; % 先累加小数% 重复1000次给y中加上ty=z + y; % 再加到大数x,y======================================================================(3) 九韶算法%*************************************************************%* 程序名:ex1_3.m *%* 程序功能:验证九韶算法可节省运行时间. *%*************************************************************clc; % 清屏clear all; % 释放所有存变量format long; % 按双精度显示浮点数A=[8,4,-1,-3,6,5,3,2,1,3,2,-1,4,3,1,-2,4,6,8,9,50,-80,12,35,7,-6,42,5,6,23,74,6 5,55,80,78,77,98,56];A(10001)=0; % 扩展到10001项,后面的都是分量0% A为多项式系数,从高次项到低次项x=1.00037;n=9000; % n为多项式次数% 直接计算begintime=clock; % 开始执行的时间 % 求x的i次幂% 累加多项式的i次项endtime=clock; % 完毕执行的时间time1=etime(endtime,begintime); % 运行时间disp('直接计算');disp(['p(',num2str(x),')=',num2str(p)]);disp([' 运行时间: ',num2str(time1),'秒']);% 九韶算法计算begintime=clock; % 开始执行的时间% 累加九韶算法中的一项endtime=clock; % 完毕执行的时间time2=etime(endtime,begintime); % 运行时间disp(' ');disp('九韶算法计算');disp(['p(',num2str(x),')=',num2str(p)]);disp([' 运行时间: ',num2str(time2),'秒']);《数值计算方法》实验1报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验1 算法设计原则验证(之数值稳定性) 2. 实验题目 计算定积分⎰==-1110,1,0,d n x e xI x nn ,分别用教材例1-7推导出的算法A 和B ,其中:算法A :⎩⎨⎧≈-=-6321.0101I nI I n n 算法B :⎪⎩⎪⎨⎧≈-=-0)1(1101I I nI n n 验证算法不稳定时误差会扩大.3. 实验目的验证数值算法需遵循的若干规则. 4. 基础理论设计数值算法时,应采用数值稳定性好的算法.数值稳定的算法,误差不会放大,甚至会缩小;而数值不稳定的算法会放大误差. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab6. 实验过程分别用数组IA[ ]和IB[ ]保存两种算法计算的结果. 7. 结果与分析 运行结果:(或拷屏)8. 附录:程序清单%*************************************************************%* 程序名:ex1_4.m *%* 程序功能:验证数值稳定性算法可控制误差. *%*************************************************************clc; % 清屏clear all; % 释放所有存变量format long; % 按双精度显示浮点数I=[0.856, 0.144, 0.712, 0.865, ...0.538, 0.308, 0.154, 0.938, ...0.492, 0.662, 0.843];% 保留14位小数的精确值, …是Matlab中的续行符% 算法AIA(1) = 0.6321; % Matlab下标从1开始,所以要用IA(n+1)表示原问题中的I(n)% 算法Bdisp('n 算法A 算法B 精确值');for n=1:11fprintf('%2d %14.6f %14.6f %14.6f\n',n-1,IA(n),IB(n),I(n));end% n显示为2位整数, 其它显示为14位其中小数点后显示6位的小数《数值计算方法》实验1报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验1 算法设计原则(除数绝对值不能太小) 2. 实验题目将线性方程组增广矩阵利用初等行变换可化为⎪⎪⎭⎫⎝⎛→-⎪⎪⎭⎫ ⎝⎛→-⎪⎪⎭⎫ ⎝⎛''0'0''02221112'12221121112222211121122121121b a b a r r b a b a a r r b a a b a a a a a a由此可解得'/',/'22221111a b x a b x ==.分别解增广矩阵为161011212-⎛⎫ ⎪⎝⎭和162121011-⎛⎫⎪⎝⎭的方程组,验证除数绝对值远小于被除数绝对值的除法会导致结果失真. 3. 实验目的验证数值算法需遵循的若干规则. 4. 基础理论设计数值算法时,应避免除数绝对值远小于被除数绝对值的除法,否则绝对误差会被放大,使结果失真. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab6. 实验过程用二维数组A 和B 存放方程组的增广矩阵,利用题目所给初等行变换求解方程组. 7. 结果与分析第1种顺序的方程组的解为x =,y =;第2种顺序的方程组的解为x =,y =. 分析:8. 附录:程序清单%************************************************************* %* 程 序 名:ex1_5.m * %* 程序功能:验证除数的绝对值太小可能会放大误差. * %*************************************************************clc;A=[1e-16, 1, 1; 2, 1, 2];B=[2, 1, 2; 1e-16, 1, 1]; % 增广矩阵% 方程组A% m = - a_{21}/a_{11} 是第2行加第1行的倍数% 消去a_{21}% m = - a_{12}/a_{22} 是第1行加第2行的倍数% 消去a_{12}, 系数矩阵成对角线% 未知数x1的值% 未知数x2的值disp(['方程组A的解: x1=',num2str(A(1,3)),', x2=',num2str(A(2,3))]); disp(' ');% 方程组B% m = - b_{21}/b_{11} 是第2行加第1行的倍数% 消去b_{21}% m = - b_{12}/b_{22} 是第1行加第2行的倍数% 消去b_{12}, 系数矩阵成对角线% 未知数x1的值% 未知数x2的值disp(['方程组B的解: x1=',num2str(B(1,3)),', x2=',num2str(B(2,3))]);《数值计算方法》实验2报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验2 非线性方程的迭代解法(之简单迭代法) 2. 实验题目用简单迭代法求方程010423=-+x x 在区间[1,2]的一个实根,取绝对误差限为410-.3. 实验目的掌握非线性方程的简单迭代法. 4. 基础理论简单迭代法:将方程0)(=x f 改写成等价形式)(x x ϕ=,从初值0x 开始,使用迭代公式)(1k k x x ϕ=+可以得到一个数列,若该数列收敛,则其极限即为原方程的解.取数列中适当的项可作为近似解. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程7. 结果与分析8. 附录:程序清单《数值计算方法》实验2报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验2 非线性方程的迭代解法(之Newton 迭代法) 2. 实验题目用Newton 迭代法求方程010423=-+x x 在区间[1,2]的一个实根,取绝对误差限为410-.3. 实验目的掌握求解非线性方程的Newton 迭代法. 4. 基础理论Newton 迭代法:解方程0)(=x f 的Newton 迭代公式为)(')(1k k k k x f x f x x -=+.5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程7. 结果与分析8. 附录:程序清单《数值计算方法》实验2报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验2 非线性方程的迭代解法(之对分区间法) 2. 实验题目用对分区间法求方程310x x --=在区间[1, 1.5]的一个实根,取绝对误差限为410-. 3. 实验目的掌握求解非线性方程的对分区间法. 4. 基础理论对分区间法:取[a ,b ]的中点p ,若f (p ) ≈ 0或b – a < ε,则p 为方程0)(=x f 的近似解;若f (a ) f (p ) < 0,则说明根在区间取[a ,p ]中;否则,根在区间取[p ,b ]中.将新的有根区间记为 [a 1,b 1],对该区间不断重复上述步骤,即可得到方程的近似根. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程用宏定义函数f (x );为了循环方便,得到的新的有根区间始终用[a ,b ]表示;由于新的有根区间可能仍以a 为左端点,这样会反复使用函数值f (a ),为减少运算次数,将这个函数值保存在一个变量fa 中;同样在判断新的有根区间时用到函数值f (p ),若新的有根区间以p 为左端点,则下一次用到的f (a )实际上就是现在的f (p ),为减少运算次数,将这个函数值保存在一个变量fp 中.算法的伪代码描述:Input :区间端点a ,b ;精度要求(即误差限)ε;函数f (x );最大对分次数N Output :近似解或失败信息7. 结果与分析8. 附录:程序清单说明: 源程序中带有数字的空行,对应着算法描述中的行号%**********************************************************%* 程序名:Bisection.m *%* 程序功能:使用二分法求解非线性方程. *%**********************************************************f=inline('x^3-x-1'); % 定义函数f(x)a=input('有根区间左端点: a=');b=input('右端点:b=');epsilon=input('误差限:epsilona=');N=input('最大对分次数: N=');1 % 对分次数计数器n置12 % 左端点的函数值给变量fafprintf('\n k p f(p) a(k) f(a(k))'); fprintf(' b(k) b-a\n');% 显示表头fprintf('%2d%36.6f%12.6f%12.6f%12.6f\n',0,a,fa,b,b-a);% 占2位其中0位小数显示步数0, 共12位其中小数6位显示各值3% while n≤ N 4 % 取区间中点p5% 求p 点函数值给变量fpfprintf('%2d%12.6f%12.6f',n,p,fp); % 输出迭代过程中的中点信息p 和f(p)6 % 如果f(p)=0或b-a 的一半小于误差限εfprintf('\n\n 近似解为:%f\n',p);% 则输出近似根p (7)return;% 并完毕程序 (7)89 % 计数器加110% 若f(a)与f(p)同号11% 则取右半区间为新的求根区间, 即a 取作p 12 % 保存新区间左端点的函数值 13% 否则14 % 左半区间为新的求根区间, 即b 取作p 15fprintf('%12.6f%12.6f%12.6f%12.6f\n',a,fa,b,b-a); %显示新区间端点与左端函数值、区间长度 16fprintf('\n\n 经过%d 次迭代后未达到精度要求.\n',N); % 输出错误信息(行17)《数值计算方法》实验2报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验2 非线性方程的迭代解法(之Aitken-Steffensen 加速法) 2. 实验题目用Aitken-Steffensen 加速法求方程010423=-+x x 在区间[1,2]的一个实根,取绝对误差限为410-.3. 实验目的熟悉求解非线性方程的Aitken-Steffensen 加速法. 4. 基础理论将方程0)(=x f 改写成等价形式)(x x ϕ=,得到从初值0x 开始的迭代公式)(1k k x x ϕ=+后,基于迭代公式)(1k k x x ϕ=+的Aitken-Steffensen 加速法是通过“迭代-再迭代-加速”完成迭代的,具体过程为kk k k k k k k k k k x y z z y x x y z x y +---===+2)(),(),(21ϕϕ. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程为了验证Aitken-Steffensen 加速法可以把一些不收敛的迭代加速成迭代收敛,我们使用将方程组变形为31021x x -=,取迭代函数31021)(x x -=ϕ,并利用宏定义出迭代函数.由于不用保存迭代过程,所以用x0表示初值同时也存放前一步迭代的值,y 和z 是迭代过程中产生的y k 和z k ,x 存放新迭代的结果.算法的伪代码描述:Input :初值x 0;精度要求(即误差限)ε;迭代函数φ(x );最大迭代次数N7. 结果与分析8. 附录:程序清单%************************************************************* %* 程 序 名:Aitken_Steffensen.m * %* 程序功能:用Aitken-Steffensen 加速法求方程. * %************************************************************* clc;clear all;phi=inline('0.5 * sqrt( 10 - x^3)'); % 迭代函数x0=input('初值: x0 = ');epsilon=input('误差限: epsilon='); N=input('最大迭代次数: N=');disp(' n 迭代中间值y(n-1) 再迭代结构z(n-1) 加速后的近似值x(n)'); fprintf('%2d%54.6f\n',0,x0);% 占2位整数显示步数0, 为了对齐, 占54位小数6位显示x01 % n 是计数器2 % while n<=Ny= 3 ; % 迭代 z= 3 ; % 再迭代 x= 3 ; % 加速% x0初值与前一步的近似值, y 和z 是中间变量, x 是下一步的近似值fprintf('%2d%18.6f%18.6f%18.6f\n',n,y,z,x);%显示中间值和迭代近似值6 % 如果与上一步近似解差的绝对值不超过误差限 fprintf('\n\n 近似解 x≈x(%d)≈%f \n',n,x);% 则输出近似根 (7), 可简略为: fprintf('\n\n 近似解 x=%f',x); return; % 并完毕程序(7) 8 % 相当于endif9 % 计数器加110 % 新近似值x 作为下一次迭代的初值 11fprintf('\n 迭代%d 次还不满足误差要求.\n\n',N); %输出错误信息(12)《数值计算方法》实验2报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验2 非线性方程的迭代解法(之Newton 下山法) 2. 实验题目用Newton 下山法求方程010423=-+x x 在区间[1,2]的一个实根,取绝对误差限为410-.3. 实验目的熟悉非线性方程的Newton 下山法. 4. 基础理论Newton 下山法:Newton 下山法公式为)(')(1k k kk k x f x f x x λ-=+,使|)(||)(|1k k x f x f <+,其中10≤<k λ.5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程定义函数f(x)和df(x),其中df(x)是f(x)的导函数.每步迭代时先取下山因子为1,尝试迭代,判断尝试结果是否满足下山因子,若满足则作为这步的迭代结果;否则将下山因子减半,然后再尝试.为防止当前的x k 是极小值点,附近不会有满足下述条件的其它点,使尝试陷入死循环,同时计算机中能表示出的浮点数也有下界,因此我们设置了最大尝试次数.当超过最大尝试次数时,不再进行下山尝试.由于反复尝试迭代且要判断下山条件,所以f (x 0)和f ‘(x 0)会反复使用,为避免重复计算浪费运行时间,将这两个值分别保存在变量fx0和dfx0.而尝试产生的节点,判断下山条件时要用到它的函数值,若尝试成功,这个点会作为下一步的初值再使用,所以把该点的函数值也保存在变量fx 中.算法的伪代码描述:Input :初值x 0;精度要求(即误差限)ε;函数与其导函数f (x )和f’(x);最大迭代次数N ;K 下山尝试最大次数Output :近似解或失败信息7. 结果与分析8. 附录:程序清单%*************************************************************%* 程序名:NewtonDownhill.m *%* 程序功能:用Newton下山法求解非线性方程. *%*************************************************************clc;clear all;f=inline('x^3-x-1'); % 函数f(x)df=inline('3*x^2-1'); % 函数f(x)的导函数x0=input('初值: x0 = ');epsilon=input('误差限: epsilon=');N=input('最大迭代次数: N=');K=input('最大下山尝试次数: K=');1 % 迭代次数计数器2 % 存x0点函数值fprintf('\n\n n x(n) f(x(n))\n'); % 显示表头fprintf('%2d%14.6f%14.6f\n',0,x0,fx0); % 2位整数显示0, 共14位小数6位显示x0和fx03 % while n≤ Ndisp(''); % 换行显示下山尝试过程的表头disp(' 下山因子尝试x(n) 对应f(x(n)) 满足下山条件');disp('');4 % 存x0点导数值, 每次下山尝试不用重新计算ifdfx0==0 % 导数为0不能迭代disp(‘无法进行Newton迭代’);return;endlambda=1.0; % 下山因子从1开始尝试k=1; % k下山尝试次数计数器while k<=K % 下山最多尝试K次% 下山公式fx=f(x); % 函数值fprintf('%22.6f%14.6f%14.6f',lambda,x,fx); % 显示尝试结果if (abs(fx)<abs(fx0)) % 判断是否满足下山条件fprintf(' 满足\n');break; % 是, 则退出下山尝试的循环elsefprintf(' 不满足\n');endlambda=lambda/2; % 不是, 则下山因子减半k=k+1; % 计数器加1endif k>Kfprintf('\n 下山条件无法满足, 迭代失败.\n\n');return;endfprintf('%2d%14.6f%14.6f\n',n,x,fx);% 2位整数显示步数n, 共14位小数6位显示下步迭代结果22 % 达到精度要求否fprintf('\n\n 方程的近似解为: x≈%f\n\n',x); % (23)return; % 达到, 则显示结果并完毕程序(23) end % (24)% 用x0,fx0存放前一步的近似值和它的函数值, 进行循环迭代25262728fprintf('\n 迭代%d次还不满足误差要求.\n\n',N);《数值计算方法》实验2报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验2 非线性方程的迭代解法(之弦截法) 2. 实验题目用弦截法求方程010423=-+x x 在区间[1,2]的一个实根,取绝对误差限为410-. 3. 实验目的熟悉非线性方程的弦截法. 4. 基础理论将Newton 迭代法中的导数用差商代替,得到弦截法(或叫正割法)公式)()()(111k k k k k k k x f x f x f x x x x --+---=.5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程不保存迭代过程,所以始终以x 0和x 1分别存放x k -1和x k ,而x 存放新产生的迭代值x k +1,这样,下一次迭代时需要把上一步的x 1(即x k )赋值于x 0(做新的x k -1).这些点的函数值会重复用到,在迭代公式中也要用到,上一步的x 1作为下一步的x 0也会再一次用它的函数值,为减少重新计算该点函数值的运行时间,将x 1点的函数值保存在变量fx1中.算法的伪代码描述:Input :初值x 0,x 1;精度要求(即误差限)ε;函数f (x );最大迭代次数N7. 结果与分析8. 附录:程序清单%*************************************************************%* 程序名:SecantMethod.m *%* 程序功能:用弦截法求解非线性方程. *%*************************************************************clc;clear all;f=inline('2*x^3-5*x-1'); % 函数f(x)x0=input('第一初值: x0 = ');x1=input('第二初值: x1 = ');epsilon=input('误差限: epsilon=');N=input('最大迭代次数: N=');fprintf('\n n x(n)\n'); % 显示表头fprintf('%2d%14.6f\n', 0, x0); % 占2位显示步数0, 共14位其中小数6位显示x0fprintf('%2d%14.6f\n', 1, x1); % 占2位显示步数1, 共14位其中小数6位显示x11 % 存x0点函数值2 % 存x1点函数值3 % 迭代计数器4 % while n≤ N% 弦截法公式fprintf('%2d%14.6f\n', n, x); %显示迭代过程6 % 达到精度要求否fprintf('\n\n 方程的近似解为: x≈%f\n\n', x);return; % 达到, 则显示结果并完毕程序89 % 原x1做x0为前两步的近似值10 % 现x做x1为一两步的近似值11 % x0点函数值12 % 计算x1点函数值, 为下一次循环13 % 计数器加1 14fprintf('\n 迭代%d 次还不满足误差要求.\n\n',N);《数值计算方法》实验3报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验3 解线性方程组的直接法(之Gauss 消去法) 2. 实验题目用Gauss 消去法求解线性方程组⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛--000.3000.2000.1643.5072.1000.2623.4712.3000.1000.3000.2001.0321x x x . 3. 实验目的掌握解线性方程组的Gauss 消去法. 4. 基础理论Gauss 消去法是通过对增广矩阵的初等行变换,将方程组变成上三角方程组,然后通过回代,从后到前依次求出各未知数.Gauss 消去法的第k 步(1≤k≤n -1)消元:若0≠kk a ,则依次将增广矩阵第k 行的kk ik a a /-倍加到第i 行(k+1≤i≤n),将第k 列对角线下的元素都化成0.5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程7. 结果与分析8. 附录:程序清单《数值计算方法》实验3报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验3 解线性方程组的直接法(之Gauss 列主元消去法) 2. 实验题目用Gauss 列主元消去法求解线性方程组⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛--000.3000.2000.1643.5072.1000.2623.4712.3000.1000.3000.2001.0321x x x . 3. 实验目的掌握解线性方程组的Gauss 列主元消去法. 4. 基础理论Gauss 列主元消去法也是通过对增广矩阵的初等行变换,将方程组变成上三角方程组,然后通过回代,从后到前依次求出各未知数.Gauss 列主元消去法的第k 步(1≤k≤n -1)消元:先在nk k k kk a a a ,,,,1 +中找绝对值最大的,将它所在的行与第k 行交换,然后将第k 行的kk ik a a /-倍加到第i 行(k+1≤i≤n),将第k 列对角线下的元素都化成0. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程7. 结果与分析8. 附录:程序清单《数值计算方法》实验3报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验3 解线性方程组的直接法(之Doolittle 分解) 2. 实验题目对矩阵A 进行Doolittle 分解,其中⎪⎪⎪⎪⎪⎭⎫⎝⎛----=3101141101421126A .3. 实验目的掌握矩阵的Doolittle 分解. 4. 基础理论矩阵的Doolittle 分解是指将矩阵n n ij a A ⨯=)(可以分解为一个单位下三角矩阵和一个上三角矩阵的乘积.若设⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=nn n n n n n n u u u u u u u u u u U l l ll l l L000000,1010010001333223221131211321323121则可依如下顺序公式计算⎪⎪⎩⎪⎪⎨⎧++=-=+=-=∑∑-=-=1111,,2,1,/)(,,1,,k t kk tk it ik ik k r rj kr kj kj nk k i u u l a l nk k j u l a u其中k = 1,2,…,n .5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程(1)按计算公式依次计算一行u 同时计算一列l ;(2)因为计算完u ij (或l ij )后,a ij 就不再使用,为节省存储空间,将计算的u ij (和l ij )仍存放在矩阵A 中的相应位置;(3)使用L 矩阵和U 矩阵时需要根据元素所在位置取固定值或A 中相应位置的值.L 对角线上的元素为1,上三角部分为0,下三角部分为A 中对应的元素;U 的下三角部分为0,上三角部分为A 中对应的元素.算法的伪代码描述: Input :阶数n ;矩阵A7. 结果与分析8. 附录:程序清单%****************************************************% 程序名: Doolittle.m *% 程序功能: 矩阵LU分解中的Doolittle分解. *%****************************************************clc;clear all;n=4; % 矩阵阶数A=[6 2 1 -1;2 4 1 0; 1 1 4 -1; -1 0 -1 3]disp('A=');disp(A);% LU分解(Doolittle分解)for k=1:n% 计算矩阵U的元素u_{kj}% (可参照下面l_{ik}的公式填写)% 计算矩阵L的元素l_{ik}% L 在A 下三角, U 在上三角(对角线为1) enddisp('分解结果:'); disp('L='); for i=1:n for j=1:nif i>j % 在下三角部分, 则取A 对于的元素显示 fprintf(' %8.4f',A(i,j));elseif i==j % 在对角线上, 则显示1 fprintf(' %8d',1);else % 在上三角部分, 则显示0 fprintf(' %8d',0); end endfprintf('\n'); % 换行 enddisp('U='); for i=1:n for j=1:nif i<=j % 在上三角部分或对角线上, 则取A 对于的元素显示 fprintf(' %8.4f',A(i,j));else % 在下三角部分, 则显示0 fprintf(' %8d',0); end endfprintf('\n'); % 换行 end《数值计算方法》实验3报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验3 解线性方程组的直接法(之LU 分解法) 2. 实验题目用LU 分解(Doolittle 分解)法求解线性方程组⎪⎩⎪⎨⎧=++=++=++104615631552162321321321x x x x x x x x x 3. 实验目的熟悉解线性方程组LU 分解法.4. 基础理论若将矩阵A 进行了Doolittle 分解,A = LU ,则解方程组b x A=可以分解求解两个三角方程组b y L=和y x U =.它们都可直接代入求解,其中b y L=的代入公式为∑-==-=11,,2,1,k j j kj k k n k y l b y而y x U=的代入公式为∑+=-=-=nk j kk j kjk k n n k u x uy x 11,,1,,/)( .5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程(1)Doolittle 分解过程依次计算一行u 同时计算一列l 完成,并将计算的u ij (和l ij )仍存放在矩阵A 中的相应位置;(2)求解方程组的代入公式中用到的u ij 和l ij 都直接在A 的相应位置取值即可. 算法的伪代码描述:Input :阶数n ;矩阵A ;常数项向量b7. 结果与分析8. 附录:程序清单%**************************************************** % 程序名: LinearSystemByLU.m *% 程序功能: 利用LU分解(Doolittle分解)解方程组. *%****************************************************clc;clear all;n=3; % 矩阵阶数A=[1 2 6; 2 5 15; 6 15 46];b=[1;3;10];% LU分解(Doolittle分解)for k=1:n% 计算矩阵U的元素u_{kj}% (可参照下面l_{ik}的公式填写)% 计算矩阵L的元素l_{ik}% L在A下三角, U在上三角(对角线为1) endfor k=1:n % 用代入法求解下三角方程组Ly=by(k)=b(k);3 %∑-==-=11,,2,1,kjj kjk knkylby33enddisp('方程组Ly=b的解:y=');disp(y');for k=n:-1:1 % 回代求解上三角方程组Ux=y x(k)=y(k);6 %∑+=-=-=nkjj kjk knnkxuyx11,,1,,666 enddisp('原方程组的解:x='); disp(x');《数值计算方法》实验3报告班级: 20##级####x 班 学号: 20##2409#### : ##X成绩:1. 实验名称实验3 解线性方程组的直接法(之Cholesky 分解) 2. 实验题目对矩阵A 进行Cholesky 分解,其中⎪⎪⎪⎪⎪⎭⎫⎝⎛----=3101141101421126A . 3. 实验目的理解矩阵的Cholesky 分解. 4. 基础理论矩阵的Cholesky 分解是指将矩阵n n ij a A ⨯=)(可以分解为一个下三角矩阵L 和L 转置的乘积,即A =LL T,其中L 各元素可依如下顺序公式计算⎪⎪⎩⎪⎪⎨⎧++=-=-=∑∑-=-=11112,,2,1,/)(k t kktk it ik ik k r kr kk kk nk k i l l l a l l a l其中k = 1,2,…,n .5. 实验环境操作系统:Windows xp ; 程序设计语言:VC++ 6. 实验过程(1)按计算公式依次先计算一列对角线上的元素l kk ,再计算这列其他元素l ik ,且对称位置的元素也取同一个值;(2)因为计算完l ij 后,a ij 就不再使用,为节省存储空间,将计算的l ij 仍存放在矩阵A 中的相应位置;(3)使用L 矩阵时需要根据元素所在位置取固定值或A 中相应位置的值.L 上三角部分为0,对角线和下三角部分为A 中对应的元素.算法的伪代码描述:Input :阶数n ;矩阵AOutput :矩阵L (合并存储在数组A 中)行号 伪代码注释1 for k ← 1 to n2∑-=-=112k r krkk kk l a l3 for i ← k to n4 ∑-=-=11/)(k t kk tk it ik ik l l l a l计算结果存放在a ij5 endfor6 endfor7return L输出L7. 结果与分析8. 附录:程序清单%************************************************************* %* 程 序 名:Cholesky.m * %* 程序功能:对称正定矩阵的Cholesky 分解. * %*************************************************************n=4; % 矩阵阶数 A=[6,2,1,-1; 2,4,1,0; 1,1,4,-1; -1,0,-1,3];disp('A ='); for i=1:n for j=1:nfprintf('%10.4f',A(i,j)); % 共占14位endfprintf('\n');% 一行完毕换行end% Cholesky 分解 for k=1:n % 计算对角线上的l _{kk}% 计算其他的l _{ik} % 和l _{ki}end % L 在A 下三角, L^T 在上三角disp('分解结果:'); disp('L='); for i=1:n for j=1:n if i>=j % 在下三角部分或对角线上, 则取A 对于的元素显示fprintf('%10.4f',A(i,j));else % 在上三角部分, 则显示0 fprintf('%10d',0); end endfprintf('\n'); % 换行 end《数值计算方法》实验3报告班级: 20##级####x 班 学号: 20##2409#### : ##X成绩:1. 实验名称实验3 解线性方程组的直接法(之改进的Cholesky 分解) 2. 实验题目对矩阵A 进行改进的Cholesky 分解,其中⎪⎪⎪⎪⎪⎭⎫⎝⎛----=3101141101421126A .3. 实验目的理解矩阵改进的Cholesky 分解. 4. 基础理论矩阵的改进的Cholesky 分解是指将矩阵n n ij a A ⨯=)(可以分解为一个单位下三角矩阵L 和对角矩阵D 与L 转置的乘积,即A =LDL T,其中L 和D 各元素可依如下顺序公式计算⎪⎪⎩⎪⎪⎨⎧++=-=-=∑∑-=-=11112,,2,1,/)(k t k kt it t ik ik k r kr r kk k nk k i d l l d a l l d a d其中k = 1,2,…,n .5. 实验环境操作系统:Windows xp ; 程序设计语言:VC++ 6. 实验过程(1)按计算公式依次先计算D 的一个元素d k ,再计算L 中这列的元素l ik ,且对称位置的元素也取同一个值;(2)因为计算完d k 和l ij 后,a kk 或a ij 就不再使用,为节省存储空间,将计算的a kk 或l ij 仍存放在矩阵A 中的相应位置;(3)使用L 矩阵时需要根据元素所在位置取固定值或A 中相应位置的值.L 对角线和上三角部分为0,下三角部分为A 中对应的元素;D 对角线为A 中对应的元素,其余都是0.算法的伪代码描述: Input :阶数n ;矩阵AOutput :矩阵L (合并存储在数组A 中)7. 结果与分析8. 附录:程序清单%************************************************************* %* 程 序 名:ImprovedCholesky.m * %* 程序功能:对称正定矩阵的改进的Cholesky 分解. * %*************************************************************n=4; % 矩阵阶数A=[6,2,1,-1; 2,4,1,0; 1,1,4,-1; -1,0,-1,3];disp('A =');for i=1:nfor j=1:nfprintf('%10.4f',A(i,j)); % 共占14位endfprintf('\n'); % 一行完毕换行end% Cholesky分解for k=1:n% 计算D对角线上的u_{kk}% 计算L的元素l_{ik}% 和L转置的元素l_{ki} end % L在A下三角, D在对角线disp('分解结果:');disp('L=');for i=1:nfor j=1:nif i>j % 在下三角部分, 则取A对于的元素显示fprintf('%10.4f',A(i,j));elseif i==j % 在对角线上, 则显示1fprintf('%10d',1);else % 在上三角部分, 则显示0fprintf('%10d',0);endendfprintf('\n'); % 换行enddisp('D='); for i=1:n for j=1:n if i==j % 在对角线上, 则取A 对于的元素显示fprintf('%10.4f',A(i,j));else % 其余显示0fprintf('%10d',0); end endfprintf('\n'); % 换行 end《数值计算方法》实验3报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验3 解线性方程组的直接法(之追赶法) 2. 实验题目用追赶法求解线性方程组⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎭⎫ ⎝⎛-----101053001210023100124321x x x x 3. 实验目的熟悉解线性方程组的追赶法. 4. 基础理论对于系数矩阵为三对角矩阵的方程组,其Crout 分解可分解为⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=------11111211122111122211n n nn n n nn n n t t t s a s a s a s b a c b a c b a c b A这样,解方程组可以由如下2步完成:“追”:,,,3,2,/)(,,/,/,1111111111n i s y a f y t a b s s c t s f y b s i i i i i i i i i i i i =-=-====-----其中:Tn f f ),,(1 为方程组的常数项,n t 没用;“赶”:.1,,2,1,,1 --=-==+n n i x t y x y x i i i i n n5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程在“追”的过程中,向量s 和y 都有n 个元素,t 只有n -1个元素,又1s 和1y 的计算公式与其它i s 和i y 不同,所以先单独计算1s 和1y ,然后在一个n -1次循环中,求其它i s 和i y 以与i t .由于在“追”的过程中,i b ,i c 和i f 在分别计算完对应的i s ,i t 和i y 后就不再使用,所以借用数组b ,c 和f 存储向量s ,t 和y ;同样在“赶”的过程中,i y 在计算完对应的i x 后就不再使用,所以再一次借用数组f 存储向量x .追赶法算法的伪代码描述:Input :阶数n ;三对角矩阵的三条对角线向量a ,b ,c ,常数项向量f Output :方程组的解x改进的追赶法算法的伪代码描述:Input :阶数n ;三对角矩阵的三条对角线向量a ,b ,c ,常数项向量f Output :方程组的解x7. 结果与分析8. 附录:程序清单%*************************************************************%* 程序名:ChaseAfter.m *%* 程序功能:用追赶法求解三对角线性方程组. *%*************************************************************clc;clear all;n=4;a=[0,-1,-1,-3];b=[2, 3, 2, 5];c=[-1, -2, -1, 0];f=[0, 1, 0, 1];% "追"s(1) = b(1);y(1) = f(1); % 先单独求s_1和y_1 for k = 1 : n-1% 再求t_i(i=1,2,…,n-1)% s_i(i=2,3,…,n)% y_i(i=2,3,…,n)end% "赶"x(n) = y(n); % 先单独求x_nfor k = n-1 : -1 : 1% 再求x_i(i=n-1,n-2, (1)endx=x' % 输出解向量-------------------------------------------------------------------------------------------------------------------改进的程序:%*************************************************************%* 程序名:ChaseAfter.m *%* 程序功能:用追赶法求解三对角线性方程组. *%*************************************************************clc;clear all;n=4;a=[0,-1,-1,-3];b=[2, 3, 2, 5];c=[-1, -2, -1, 0];f=[0, 1, 0, 1];% "追"% b(1)=b(1); % s_1仍在b_1中,不用重新计算y(1)=f(1)/b(1); % 先单独y_1for k=1:n-1% 再求t_i(i=1,2,…,n-1)% s_i(i=2,3,…,n)% y_i(i=2,3,…,n)end% "赶"% f(n)=f(n); % x_n等于y_n仍在f_n中for k=n-1:-1:1% 再求x_i(i=n-1,n-2, (1)endx=f' % 输出解向量《数值计算方法》实验4报告班级:20##级####x班学号:20##2409####:##X 成绩:1. 实验名称实验4 解线性方程组的迭代法(之Jacobi迭代)2. 实验题目用Jacobi迭代法求解线性方程组1231231232251223x x x x x x x x x +-=⎧⎪++=⎪⎨++=⎪⎪⎩任取3. 实验目的掌握解线性方程组的Jacobi 迭代法. 4. 基础理论将第i (n i ≤≤1)个方程i n in i i b x a x a x a =+++ 2211移项后得到等价方程ii n in i i i i i i i i i a x a x a x a x a b x /)(11,11,11------=++--便可构造出Jacobi 迭代公式,1,0,/)()()(11,)(11,)(11)1(=------=++--+k a x a x a x a x a b x ii k n in k i i i k i i i k i i k i . 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程7. 结果与分析8. 附录:程序清单《数值计算方法》实验4报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验4 解线性方程组的迭代法(之Gauss-Seidel 迭代) 2. 实验题目用Gauss-Seidel 迭代法求解线性方程组。
《C语言程序设计》课程设计报告格式
《C语言程序设计》课程设计报告(2011— 2012学年第 1 学期)题目:专业:计算机科学与技术班级:1班姓名学号:XX1107012150指导教师:XX成绩:计算机科学与技术系2011 年12月31日目录一、课程设计的目的与要求………………………………………页码二、方案实现与调试……………………………………………页码2.1大优惠…………………………………………………页码2.2汽车加油……………………………………………………………2.3金币……………………………………………………页码2.4缩印…………………………………………………………………三、课程设计分析与总结…………………………………………页码附录程序清单…………………………………………………页码(报告正文部分的格式):(要求:正文部分一律用五号字,宋体,单倍行距。
一级大标题靠左,四号,宋体,加粗。
二级大标题靠左,小四,宋体,不加粗。
)课程设计的内容及格式如下:一、课程设计的目的与要求(含设计指标)(参见课程设计要求)二、方案实现与调试2.1大优惠•2.1.1 题目内容的描述中国移动推出最新的手机资费优惠方案,按照这个方案Tom的手机每天消费1元,每消费K元就可以获赠1元,一开始Tom有M元,问最多可以用多少天?输入的测试数据为一行,实例包括2个整数M, K(2 <= K <= M <= 1000)。
输出一个整数,表示M元可以用的天数。
•2.1.2输入数据类型、格式和内容限制和输出数据的说明•2.1.3主要模块的算法描述–以程序流程图的方式给出–简要的语言描述2.1.4调试过程及实验结果详细记录程序在调试过程中出现的问题及解决方法。
记录程序执行的结果。
2.2汽车加油•2.2.1题目内容的描述一辆汽车加满油后可行驶n公里。
旅途中有若干个加油站。
设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。
输入:第一行有2 个正整数N和K(1 <= N <= 100,1 <= K< = 100),表示汽车加满油后可行驶N公里,且旅途中有K个加油站。
附录1全过程工程咨询服务清单
附录1全过程工程咨询服务清单清单编制和审核在工程建设阶段,我们提供了多种造价咨询服务,包括工程量清单编制、设计概算编制和审核、投资估算编制和审核、合同价款咨询、造价风险分析及建议、审核工程预付款和进度款、变更、签证及索赔管理、材料设备的询价和核价、审核工程结算等。
这些服务旨在帮助客户控制项目成本,降低风险,并提供有力的决策支持。
在施工准备阶段,我们提供了勘察方案编制和审查、初步勘察、详细勘察、勘察报告编制和审查等服务。
在勘察设计阶段,我们提供了方案设计及优化、初步设计及优化、施工图、深化设计及优化、施工图设计技术审查等服务。
在采购阶段,我们提供了招标采购咨询,包括编制招标采购方案、编制招标文件、编制工程量清单、编制最高投标限价和合同条款、发布招标公告、组织答疑和澄清、组织开标、评标工作、协助编制评标报告、发送中标通知书、协助合同谈判和签订等服务。
在工程施工阶段,我们提供了设计交底和图纸会审、重大施工方案的合理化建议、设计变更管理、施工技术服务工作、地基验槽、基础分部验收、主体结构验收等服务。
在竣工验收阶段和运营维护阶段,我们提供了竣工结算审核、工程技术经济指标清单编制和审核、项目动态造价分析等服务。
此外,我们还提供了项目策划管理、项目报批、勘察管理、设计管理、合同管理、进度管理、投资管理、组织协调管理、质量管理、安全生产管理、信息管理、风险管理、收尾管理、后评价、运营维护管理等项目管理服务。
我们的服务旨在全面支持客户在工程建设过程中的各个阶段,确保项目顺利完成,达到客户的期望和要求。
在工程建设阶段,我们提供以下服务内容:1、项目监理规划和实施细则的编制;2、进度、质量和安全生产监理的控制和执行;3、合同和信息管理,以及协调工程建设相关方;4、工程验收策划和参与专项验收,包括技术验收和单位工程验收;5、竣工资料的收集和整理,以及工程质量缺陷管理。
在施工准备阶段,我们提供BIM咨询服务,包括:1、采用BIM使方案与财务分析工具集成;2、修改相应参数,实时获得项目各方案投资收益指标。
2023年欧盟附录1:无菌药品生产之CCS启动计划和CCS差距分析
2
计划时间xxxx-xxxx
CCS报告
3 计划时间xxxx-xxxx
• 1、CCS流程及工作计划及工作安排
序号 1 2 3 4
要素
厂房 设备 公用系统 人员
5
生产和具体技术
章节
第4章 第5章 第6章 第7章
负责人
第8章
QA支持
条款
备注
6
洁净室环境和工艺 监测
第9章
7
质量控制要素
第10章
• 2、CCS差距分析范围
量标准相关的参数和属性,及相关的监控的方法及频次
热原:可以引起患者身体发热反应的物质。 内毒素:革兰氏阴性细菌细胞壁中存在的致热产物(即脂多糖)。内毒 素能导 致接受注射的患者发热至死亡的反应。
微生物:一切肉眼看看不到或看不清楚,需要借助显微镜观察到的微小生 物。 微生物影响两方面: (1)对产品质量影响:药物性状改变,产生有害物质,产品成分改变。 (2)对人体危害:中毒、过敏反应、药源性感染,由于污染产品引起的感染。
10.1-10.11
2、CCS差距分析
目录
1 CCS流程及工作计划介绍
2 CCS差距分析范围 ➢ 工艺流程
➢ 工艺信息收集
3 CCS差距分析考量点
4
CCS差距分析举例
5 CCS差距分析后处理
• 1、CCS流程及工作计划及工作安排
CCS要素识别
1 计划时间xxxx-xxxx
CCS要素差距分析
CCS
• 2 、CCS工作流程
CCS
CCS要素识别
1
参考的文件: ➢ 欧盟GMP附录一:无菌药品生产为指导; ➢ CCS管理规程、 CCS要素识别表
CCS要素差距分析
基于单片机的电风扇模拟控制设计
目录一:绪论 (4)1.1 选题背景及设计目的 (4)1.2 课题完成功能 (4)1.3 课程完成的内容和要求 (4)二:系统设计总体方案 (5)2.1设计方案特点 (5)2.2关于最小系统AT89S51 (5)2.3 AT89S51单片机主要功能部件 (8)三:系统硬件设计 (9)3.1系统硬件设计电路图 (9)3.2单片机复位电路和时钟电路 (9)3.3 AT89S5电源电路 (11)3.4 74LS245功能 (11)3.5 74LS06功能 (12)3.6SM420364 4位置数码管 (13)3.7 稳压芯片H7805 (14)3.8 直流电机 (15)四:系统软件设计 (16)4.1 占空比 (16)五:系统软硬件联合调试 (21)5.1 软件仿真 (21)5.2硬件安装与调试 (21)5.3 焊接注意事项及焊接顺序 (21)5.4 软件调试步骤 (22)5.5软硬件联调步骤 (23)5.6 烧录程序的步骤 (23)结论 (26)致谢 (27)参考文献 (27)附录 (28)毕业论文(设计)摘要、关键词学习单片机的最有效方法就是理论与实践并重,现在我把单片机控制电风扇设计作为一个毕业课程设计,需要更深的去了解单片机的很多功能,努力的去查找资料,当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
关键词:LED 单片机控制系统电风扇模拟控制1绪论1.1选题背景及设计目的背景介绍:电风扇曾一度被认为是空调产品冲击下的淘汰品,其实并非如此,市场人士称,家用电风扇并没有随着空调的普及而淡出市场,近两年反而出现了市场销售复苏的态势。
附录1 MSP430F169单片机简介
附录1 MSP430F169单片机简介1.1 MSP430F169概述MSP430F169是TI公司进入中国市场的MSP430F系列单片机中功能最强的芯片。
MSP430F169单片机为64引脚封装,符号及引脚位置图如图1-1所示。
图1-1 符号及引脚位置图1.2 MSP430F169片内结构MSP430F169片内结构框图如图1-2所示。
16位CPU通过总线连接到存储器和外围模块。
只读存储器60KB,随机存储器4KB。
图1-2 MSP430F169芯片的结构框图外围模块(片内外设):经过MAB、MDB、中断服务及请求线与CPU相连。
时钟模块可外接两个晶振,低速选用32768Hz晶振,高速晶振最高可选到8MHz。
在使用高速时钟和端口时要根据需要将其初始化。
看门狗、定时器A、比较器A等与MSPF413单片机使用方法相同,但无液晶驱动器。
MSP430F169片内增加了8路快速12 位ADC模数转换模块,双路12 位DAC数模转换模块,两个通用连续同步/异步通信接口(USART)模块,I2C模块,DMA数据传送模块和硬件乘法器模块等。
1.3 ADC模块的使用MSP430F169单片机内部集成了8通道12位的A/D转换器。
通过读取A/D 转换器寄存器得到转换结果。
A/D转换的主要特点:采样速度快,最高可达200ksps;12位的转换精度,1位非线性微分误差,1位非线性积分误差。
转换器使用:进行A/D转换通常需要设置的内容有:转换通道、采样保持、参考电压、转换时钟、转换模式、结果缓存。
例1:8路A/D转换器的使用本例中ADC12使用片内2.5V稳压源作为参考电压,执行A0至A7八个通道的A/D转换。
每次转换结果分别存于ADC12MEM0至ADC12MEM7存储寄存器中。
读A/D转换结果时,将转换结果存于变量中,在下面的程序中随意使用。
ADC12初始化程序清单如下:P6SEL = 0xff; // 使能A/D输入通道ADC12CTL0 = ADC12ON+MSC+SHT0_8+REFON+REF2_5V; // 接通ADC12ADC12CTL1 = SHP+CONSEQ_3; // 使用采样定时器ADC12MCTL0 = INCH_0+SREF_1; // 片内参考源ADC12MCTL1 = INCH_1+SREF_1; // 片内参考源…ADC12MCTL7 = INCH_7+SREF_1+EOS; // 片内参考源ADC12CTL0 |= ENC; // 使能转换ADC12CTL0 |= ADC12SC; // 启动转换读出A/D转换数据程序清单:NUM_AD0 = ADC12MEM0;NUM_AD1 = ADC12MEM1;…NUM_AD7 = ADC12MEM7;1.4 DAC模块的使用目前,只有MSP430F15/16X系列单片机具有DAC(数模转换)模块,可以将MSP430运算处理的数字量转换为模拟量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附录一程序清单Network 1 // 网络标题// 网络注释LD I0.6A I0.7A I1.0A I1.1A I1.2A I1.3= Q0.4Network 2LD I2.4A I3.1A I2.5A I2.6A I2.7A I3.0= Q2.1Network 3LD I4.0A I4.1A I4.2A I4.3A I4.4A I4.5= Q3.7Network 4LD I5.5A I5.6 A I5.7 A I5.4 A I6.0 A I6.1 = Q3.7 Network 5 LD Q0.4 CALL SBR0 Network 6 LDN Q0.4 CALL SBR1 Network 7 LD Q2.1 CALL SBR2 Network 8 LDN Q2.1 CALL SBR3 Network 9 LD Q3.0 CALL SBR4 Network 10 LDN Q3.0 CALL SBR5 Network 11 LD Q3.7 CALL SBR6 Network 12 LDN Q3.7 CALL SBR7LD M0.0 O I0.3 AN I0.0 AN Q0.3 = Q0.2 Network 14 LD M0.1 O I0.4 AN I0.0 AN Q0.2 = Q0.3 Network 15 LD M0.2 O I2.1 AN I1.4 AN Q2.0 = Q1.1 Network 16 LD M0.3 O I2.2 AN I1.4 AN Q1.1 = Q2.0 Network 17 LD M0.4 O I3.5 AN I3.2 AN Q2.7 = Q2.6LD M0.5O I3.6AN I3.2AN Q2.6= Q2.7Network 19LD M0.6O I5.1AN I4.6AN Q3.6= Q3.5Network 20LD M0.7O I5.2AN I4.6AN Q3.5= Q3.6END_ORGANIZATION_BLOCK SUBROUTINE_BLOCK SBR_0:SBR0 TITLE=子程序注释BEGINNetwork 1 // 网络标题// 网络注释LD I0.1O M0.0AN I0.0AN I0.2AN M0.1= M0.0LD I0.2O M0.1AN I0.0AN I0.1AN M0.0= M0.1 Network 3LD Q0.2O Q0.3TON T39, 50 Network 4LDN T39AN Q0.1= Q0.0 Network 5LD T39AN Q0.0= Q0.1 Network 6LD Q0.4TON T40, 1728 Network 7LD T40LD I0.0CTU C1, 1000 Network 8LD C1TON T41, 600 Network 9LDN T41A C1= Q0.6END_SUBROUTINE_BLOCK SUBROUTINE_BLOCK SBR_1:SBR1 TITLE=子程序注释BEGINNetwork 1 // 网络标题// 网络注释LD I0.5SEG VB40, AC0Network 2LD I0.6SEG VB41, AC0Network 3LD I0.7SEG VB42, AC0Network 4LD I1.1SEG VB43, AC0Network 5LD I1.2SEG VB44, AC0Network 6LD I1.3SEG VB45, AC0Network 7LDN Q0.4MOVW AC0, QW0Network 8Network 9 // 网络标题// 网络注释END_SUBROUTINE_BLOCK SUBROUTINE_BLOCK SBR_2:SBR2 TITLE=子程序注释BEGINNetwork 1 // 网络标题// 网络注释LD I1.5O M0.2AN I1.4AN I2.0AN M0.3= M0.2Network 2LD I2.0O M0.3AN I1.4AN I1.5AN M0.2= M0.3Network 3LD Q1.1O Q2.0TON T42, 50Network 4LDN T42AN Q1.0= Q0.7Network 5LD T42AN Q0.7= Q1.0Network 6LD Q2.1TON T43, 1728Network 7LD T43LD I1.4CTU C2, 1000Network 8LD C2TON T44, 600Network 9LDN T44A C2= Q2.3Network 10 // 网络标题// 网络注释END_SUBROUTINE_BLOCK SUBROUTINE_BLOCK SBR_3:SBR3 TITLE=子程序注释BEGINNetwork 1 // 网络标题// 网络注释LD I2.4SEG VB46, AC1Network 2LD I2.5SEG VB47, AC1LD I2.6SEG VB48, AC1Network 4LD I2.7SEG VB49, AC1Network 5LD I3.0SEG VB50, AC1Network 6LD I3.1SEG VB41, AC1Network 7LDN Q2.1MOVW AC1, QW1Network 8Network 9 // 网络标题// 网络注释END_SUBROUTINE_BLOCK SUBROUTINE_BLOCK SBR_4:SBR4 TITLE=子程序注释BEGINNetwork 1 // 网络标题// 网络注释LD I3.3O M0.3AN I3.2AN I3.4AN M0.4= M0.3LD I3.4O M0.4AN I3.2AN I3.3AN M0.3= M0.4 Network 3LD Q2.6O Q2.7TON T45, 50 Network 4LDN T45AN Q2.5= Q2.4 Network 5LD T45AN Q2.4= Q2.5 Network 6LD Q3.0TON T46, 1728 Network 7LD T46LD I3.2CTU C3, 1000 Network 8LD C3TON T47, 600 Network 9LDN T47A C3= Q3.2Network 10 // 网络标题// 网络注释END_SUBROUTINE_BLOCK SUBROUTINE_BLOCK SBR_5:SBR5 TITLE=子程序注释BEGINNetwork 1 // 网络标题// 网络注释LD I4.0SEG VB52, AC2Network 2LD I4.1SEG VB53, AC2Network 3LD I4.2SEG VB54, AC2Network 4LD I4.3SEG VB55, AC2Network 5LD I4.4SEG VB56, AC2Network 6LD I4.5SEG VB56, AC2Network 7LDN Q3.0MOVW AC0, QW2Network 8Network 9 // 网络标题// 网络注释END_SUBROUTINE_BLOCK SUBROUTINE_BLOCK SBR_6:SBR6 TITLE=子程序注释BEGINNetwork 1 // 网络标题// 网络注释LD I4.7O M0.6AN I4.6AN I5.0AN M0.7= M0.6Network 2LD I5.0O M0.7AN I4.6AN I4.7AN M0.6= M0.7Network 3LD Q3.5O Q3.6TON T48, 50Network 4LDN T48AN Q3.6Network 5LD T48AN Q3.5= Q3.6Network 6LD Q3.7TON T49, 1728Network 7LD T49LD I4.6CTU C4, 1000Network 8LD C4TON T50, 600Network 9LDN T50A C4= Q4.1Network 10 // 网络标题// 网络注释END_SUBROUTINE_BLOCK SUBROUTINE_BLOCK SBR_7:SBR7 TITLE=子程序注释BEGINNetwork 1 // 网络标题// 网络注释LD I5.4SEG VB58, AC3Network 2SEG VB59, AC3 Network 3LD I5.6SEG VB60, AC3 Network 4LD I5.7SEG VB61, AC3 Network 5LD I6.0SEG VB62, AC3 Network 6LD I6.1SEG VB63, AC3 Network 7LDN Q3.7MOVW AC3, QW3 Network 8Network 9 // 网络标题// 网络注释END_SUBROUTINE_BLOCK。