源程序清单流程图(1)
- 格式:doc
- 大小:37.56 KB
- 文档页数:2
.修道士与野人问题这是一个古典问题。
假设有n个修道士和n个野人准备渡河,但只有一条能容纳c人的小船,为了防止野人侵犯修道士,要求无论在何处,修道士的个数不得少于野人的人数(除非修道士个数为0)。
如果两种人都会划船,试设计一个算法,确定他们能否渡过河去,若能,则给出一个小船来回次数最少的最佳方案。
要求:(1)用一个三元组(x1,x2,x3)表示渡河过程中各个状态。
其中,x1表示起始岸上修道士个数,x2表示起始岸上野人个数,x3表示小船位置(0——在目的岸,1——在起始岸)。
例如(2,1,1)表示起始岸上有两个修道士,一个野人,小船在起始岸一边。
采用邻接表做为存储结构,将各种状态之间的迁移图保存下来。
(2)采用广度搜索法,得到首先搜索到的边数最少的一条通路。
(3)输出数据若问题有解(能渡过河去),则输出一个最佳方案。
用三元组表示渡河过程中的状态,并用箭头指出这些状态之间的迁移:目的状态←…中间状态←…初始状态。
若问题无解,则给出“渡河失败”的信息。
(4)求出所有的解。
1.需求分析有n个修道士和n个野人准备渡河,但只有一条能容纳c人的小船,为了防止野人侵犯修道士,要求无论在何处,修道士的个数不得少于野人的人数,否则修道士就会有危险,设计一个算法,确定他们能否渡过河去,若能,则给出一个小船来回次数最少的最佳方案。
用三元组(x1,x2,x3)来表示渡河过程中各个状态,其中,x1表示起始岸上修道士个数,x2表示起始岸上野人个数,x3表示小船位置(0——在目的岸,1——在起始岸)。
若问题有解(能渡过河去),则输出一个最佳方案。
用三元组表示渡河过程中的状态,并用箭头指出这些状态之间的迁移:目的状态←…中间状态←…初始状态,若问题无解,则给出“渡河失败”的信息。
2.设计2.1 设计思想(1)数据结构设计逻辑结构设计: 图型结构存储结构设计: 链式存储结构采用这种数据结构的好处:便于采用广度搜索法,得到首先搜索到的边数最少的一条通路,输出一个最佳方案,采用图的邻接表存储结构搜索效率较高。
河北工业大学软件工程课程实验实验报告题目:专业:班级:组:组长:成员:指导教师:完成日期:目录1项目开发计划书 (3)2软件需求规格说明书 (6)3设计规格说明书 (22)4 源程序清单 (35)5测试报告 (45)6用户手册 (48)一、项目开发计划书完成人:1.引言(Introduction)1.1项目概述(Project Summary)教学评估是教学管理的一项重要内容,如何科学地、全面地、客观公正地评估教师的师德水平和业务素质,是一项理论上和实践上都十分重要的工作。
教师测评系统通过学校学生对某一位教师的教学质量进行民主评估,评估结果和分析报表可以帮助学校领导及时全面的掌握全校教师教学业务状况,帮助教师进一步的改进教学方法,提高教学质量。
该系统充分利用学校现有的网络和教学资源,通过校园网络实现数据的采集和成绩的发布,是适合于高校的数据处理系统。
1.2 术语定义(Terms Glossary)文档中采用的专门术语的定义及缩略词简要如下:TMS:Teacher Evaluation System,教师测评系统。
1.3 相关文档(Related Documents)[1] 软件需求规格说明书[2] 设计规格说明书2.软件生存周期(Software Life Cycle)(1)项目生存期框图(2)项目生存期说明1.需求描述通过咨询系统用户建立系统的服务、约束和目标。
并对其详细定义从而成为系统描述服务。
2.组件分析给出需求描述,然后搜寻能满足需求的组件。
通常情况是,没有正好合适的组件以供使用,能得到的组件往往只提供所需要的部分功能。
3.需求修改在这个阶段,根据得到的组件信息来分析需求,然后修改需求以反映可得到的组件。
当不允许修改的时候。
组建分析活动可能要重新进行,以寻求其他可能的代替方案。
4.使用复用的系统设计在这个阶段,开始设计系统的框架,或者重复使用一个已存在的框架。
设计者分析这些被重复使用的组件并设计一个框架来组织这些组件。
课程设计一、实验目的1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。
2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。
3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。
二、实验要求1.问题描述准确、规范。
2.程序结构合理,调试数据准确、有代表性.。
3.界面布局整齐,人机交互方便。
4.输出结果正确。
5.正确撰写实验报告。
三、实验内容编写一个GUI程序实现日历的功能。
一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。
可以实现显示时钟,时钟能进行整点报时。
可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。
四、实验步骤1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。
2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。
3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。
4. 根据实验结果,写出合肥工业大学实验报告。
实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。
5.详细的上机实验步骤见任务分工及程序设计进度表。
五、实验结果经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。
程序设计流程图程序设计流程图程序设计的基本过程(1)分析需求:了解清楚程序应有的功能。
(2)设计算法:根据所需的功能,理清思路,排出完成功能的具体步骤,其中每一步都应当是简单的、确定的。
这一步也被称为“逻辑编程”。
(3)编写程序:根据前一步设计的算法,编写符合C++语言规则的程序文本。
(4)输入与编辑程序:将程序文本输入到计算机内,并保存为文,文名后缀为“.cpp”。
至此,产生了完整的程序文本,被称为源程序或源代码。
保存源程序的文(例如前面的c:\student\ch1_01.cpp)称为源程序文,简称源文,文名的后缀是“.cpp”。
(5)编译(pile):把C++程序编译成机器语言程序。
编译产生的程序称为目标程序,目标程序被自动保存为文,这一文称为目标文,文名的后缀是“.obj”。
VC++进行编译的依据是源程序,如果源程序中的符号、词语、整体结构等有差错,超出了VC++的“理解能力”,VC++就无法完成编译,这样的差错称为语法错误。
一旦发现语法错误,VC++就不生成目标文,并在窗口下方列出错误;如果没有语法错误,则显示“0 error(s)”,并生成目标文,允许继续进行后面的步骤。
编译没有出现错误,仅仅说明程序中没有语法错误。
(6)生成执行程序:从目标文进一步连接生成Windows环境下的可执行文,即文名后缀为“.exe”的文。
由于可执行文是由若干个文拼接而成的,其中不但有目标文,还有另一些标准的库文,一些规模较大的程序还会有多个目标文,所以这一步骤又被称为连接(Link)。
(7)运行:在Windows环境中使用可执行文。
这是程序设计的最终目的。
这一步也常被称为“Run”。
程序设计流程图。
目录1引言 (1)1.1标题 (1)1.2模块开发情况表 (1)2模块1(标识符) (3)2.1功能说明 (3)2.2原代码清单(标识符) (3)2.2.1子模块(Server) (3)2.2.2子模块(Login) (11)2.2.3子模块(MainWindow ) (14)3.模块2(标识符) (23)3.1功能说明 (23)3.2原代码清单 (23)3.2.1子模块1(TransInforR) (23)3.2.2子模块2(SelectFriends) (28)3.2.3子模块3(AddFriends) (31)4模块3(标识符) (35)4.1功能说明 (35)4.2原代码清单(标识符) (35)4.2.1子模块1(ChangeInfo) (35)4.2.2子模块2(ChangePwd) (40)4.2.3子模块3(Enrol) (43)4.2.4子模块4(AddUserid) (47)5号宋体(西文times new roman)1.5倍行距1引言1.1标题软件系统名称和标识符模块名称和标识符(如果本卷宗包含多于一个的模块,则用这组模块的功能标识代替模块名)1.2模块开发情况表扼要说明本模块(或本组模块)的功能,主要是输入、要求的处理、输出。
可以从系统设计说明书中摘录。
(自制表格,说明模块名称和标识符、程序编制员签名、修改完成日期)注意所有新章换页。
图的要求如下:图1-1 ××××××××图名居中,位于图下方,两级标号:章节号-序列号。
每章序号升序排列。
表的要求如下:表1-1 ××××××××表名居中,位于表上方,两级标号:章节号-序列号。
每章序号升序排列。
非异性表格的一律使用三线表。
如表格换页请拆分表格后加续表表头。
全文关于图表的要求同上。
概要设计说明书1.导言1.1 目的本文档的目旨在推动软件工程的规范化,对本系统的业务流程、软件架构、功能模块设计、数据库设计、接口设计等做了分析和说明,使设计人员遵循统一的软件设计规范,降低系统实现的风险,做到系统设计文档的规范性与全面性,以利于整个系统的实现、测试、维护等。
1.2 范围本文档用于软件设计阶段的概要设计,它的依据的基线是《需求分析规格书》,它的下游是《详细设计说明书》,并为《详细设计说明书》提供测试的依据。
软件概要设计的范围是:软件系统业务流程分析、总体结构设计、全局数据库和数据结构设计、外部接口设计、主要部件功能分配设计、部件之间的接口设计等方面的内容。
该范围应覆盖《需求规格说明书》中的功能点列表、性能点列表。
1.3 命名规则1.3.1 变量对象命名规则:1、局部变量:采用驼峰式命名规则,第一单词全小写,其他单词首字母大写。
例如:userName。
2、全局变量:首字母为大写的P,后面与局部变量的命名一致。
例如:PuserName。
3、函数名:。
采用驼峰式命名规则,第一单词全小写,其他单词首字母大写例如:addUser()。
4、常量:所有字母均要小写。
例如:name。
5、类:首字母为大写的C,其他的单词首字母都大写。
例如:CUser。
6、对象:与局部变量命名规则一致。
例如:userOne。
1.3.2数据库对象命名规则:1、数据库表名:采用驼峰式命名规则。
例如:cpInfo。
2、字段名:表名首字母小写加下划线加相应单词小写。
若表名首字母相同的,则在字段名的前两个字母为表名的前两个字母小写。
例如:u_name。
3、索引名:“index_”加相应的名称。
例如:index_name。
4、视图名:首字母为大写的V,后面加相应的名称。
例如:Vpest。
1.4 术语定义术语定义如表1所示。
表1 术语定义表1.5 参考资料[1] 用户需求报告[2] 软件开发合同[3] 数据库设计规范[4] 命名规范1.6 相关文档[1] 《详细设计说明书》[2] 源程序清单[3] 测试计划及报告[4] 《用户使用手册》2.业务流程分析2.1 业务流程分析依据前面的需求分析说明书,我们从整个系统中提取了普通用户和管理员两实体(操作员)。
目录实验一P1口输入、输出实验 (2)实验二继电器控制实验 (8)实验三音频控制实验 (11)实验四程序调试 (14)实验五5LED静态串行显示实验 (16)实验六6LED动态扫描显示实验 (21)实验七查询式键盘实验 (28)实验八阵列式键盘实验 (36)实验九计数器实验 (47)实验十定时器实验 (49)实验十一外部中断实验 (54)实验一P1口输入、输出实验一、实验目的1、学习P1口的使用方法2、学习延时子程序的编写和使用二、实验说明P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。
三、实验内容及步骤实验(一):用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。
1、使用单片机最小应用系统1模块。
关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加P1_A.ASM源程序,进行编译,直到编译无误。
4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管显示情况。
发光二极管单只从右到左轮流循环点亮。
实验(二):用P1.0、P1.1作输入接两个拨断开关,P1.2、P1.3作输出接两个发光二极管。
程序读取开关状态,并在发光二极管上显示出来。
1、用导线分别连接P1.0、P1.1到两个拨断开关,P1.2、P1.3到两个发光二极管。
2、添加 P1_B.ASM源程序,编译无误后,运行程序,拨动拨断开关,观察发光二极管的亮灭情况。
向上拨为熄灭,向下拨为点亮。
四、流程图及源程序1.流程图2.源程序:(一)实验一ORG 0000HLJMP STARTORG 0030HSTART: MOV A, #0FEHMOV R2,#8OUTPUT: MOV P1,ARL AACALL DELAYDJNZ R2,OUTPUTLJMP STARTDELAY: MOV R6,#0MOV R7,#0DELAYLOOP:;延时程序DJNZ R6,DELAYLOOPDJNZ R7,DELAYLOOPRETEND(二)实验二KEYLEFT BIT P1.0 ;定义KEYRIGHT BIT P1.1LEDLEFT BIT P1.2LEDRIGHT BIT P1.3ORG 0000HLJMP STARTORG 0030HSTART: SETB KEYLEFT ;欲读先置一SETB KEYRIGHTLOOP: MOV C,KEYLEFTMOV LEDLEFT,CMOV C,KEYRIGHTMOV LEDRIGHT,CLJMP LOOPEND五、思考题(1)对于本实验延时子程序Delay: MOV R6,0MOV R7, 0DelayLoop:DJNZ R6,DelayLoopDJNZ R7,DelayLoopRET如使用12MHz晶振,粗略计算此程序的执行时间为多少?六、电路图实验二继电器控制实验一、实验目的1、学习I/O端口的使用方法2、掌握继电器的控制的基本方法3、了解用弱电控制强电的方法二、实验说明现代自动控制设备中,都存在一个电子电路的互相连接问题,一方面要使电子电路的控制信号能控制电气电路的执行元件(电动机,电磁铁,电灯等),另一方面又要为电子线路和电气电路提供良好的电气隔离,以保护电子电路和人身的安全。
实验五――电子秒表显示器中国石油大学(北京)单片机原理及应用试验。
电子秒表显示器!中国石油大学(北京)实验课程:实验名称:实验报告单片机原理及应用实验五――电子秒表显示器中国石油大学(北京)单片机原理及应用试验。
电子秒表显示器!一、实验目的掌握定时/计数器的工作原理,熟悉定时/计数器中断法编程与调试内容。
二、实验内容1、按照教材图A.65,绘制实验五电路原理图;2、采用12MHz晶振,50ms T0定时方式1+中断(20次中断为1s)法编程;3、实现如下功能:程序启动时显示“00”,以后每隔1秒显示值加1,显示到59后,自动从“00”开始,如此无限往复。
3、观察仿真结果,完成实验报告。
三、实验要求提交的实验报告中应包括:电路原理图,T0定时方式1工作原理阐述,源程序(编程思路说明与源程序),仿真效果(运行截图与讨论),实验小结(结论与体会)。
其中讨论内容为:当前编程方案的不足之处?可以如何改进?提交实验报告的电子邮件主题及存盘文件名格式如,20XX 年0*****马晓明实验五。
中国石油大学(北京)单片机原理及应用试验。
电子秒表显示器!1、电路原理图图1 电路原理图2、T0定时方式1工作原理阐述T1T0脚T0TF0查询/中断TR0图2 T0定时/计数方式1逻辑结构图CT原理时,T0为定时器工作方式。
逻辑开关CT向上接通,此时以振荡器的12分频信号作为T0的计数信号。
若GATE=0,定时器T0的启动和停止完全由TR1的状态决定,而与INT0无关。
中国石油大学(北京)单片机原理及应用试验。
电子秒表显示器!已知T0方式1由高8位THx和低8位TLx组成一个16位的加一计数器。
若想要产生一个长度为t的定时,则需要为计数器赋初值a。
a = 216 C t* fos / 12 ,将a值得高8位赋给THx,低8位赋给TLx。
如此,当晶振产生时间长度为t的脉冲时,计时器发生溢出,使得TF0=1,从而触发了中断响应。
程序设计流程图程序设计流程图程序设计的基本过程(1)分析需求:了解清楚程序应有的功能。
(2)设计算法:根据所需的功能,理清思路,排出完成功能的具体步骤,其中每一步都应当是简单的、确定的。
这一步也被称为逻辑编程。
(3)编写程序:根据前一步设计的算法,编写符合C++语言规则的程序文本。
(4)输入与编辑程序:将程序文本输入到计算机内,并保存为文件,文件名后缀为.cpp 。
至此,产生了完整的程序文本,被称为源程序或源代码。
保存源程序的文件(例如前面的c:\student\ch1_01.cpp)称为源程序文件,简称源文件,文件名的后缀是.cpp 。
(5)编译(Compile):把C++程序编译成机器语言程序。
编译产生的程序称为目标程序,目标程序被自动保存为文件,这一文件称为目标文件,文件名的后缀是.obj 。
VC++进行编译的依据是源程序,如果源程序中的符号、词语、整体结构等有差错,超出了VC++的理解能力,VC++就无法完成编译,这样的差错称为语法错误。
一旦发现语法错误,VC++就不生成目标文件,并在窗口下方列出错误;如果没有语法错误,则显示0 error(s) ,并生成目标文件,允许继续进行后面的步骤。
编译没有出现错误,仅仅说明程序中没有语法错误。
(6)生成执行程序:从目标文件进一步连接生成Windows环境下的可执行文件,即文件名后缀为.exe 的文件。
由于可执行文件是由若干个文件拼接而成的,其中不但有目标文件,还有另一些标准的库文件,一些规模较大的程序还会有多个目标文件,所以这一步骤又被称为连接(Link)。
(7)运行:在Windows环境中使用可执行文件。
这是程序设计的最终目的。
这一步也常被称为Run 。
程序设计流程图:1.程序设计的流程图2.程序结构流程图3.程序算法描述流程图4.程序算法流程图5.浅谈程序设计的心得温州市国有企业采购投标报名申请表日期年月日招标项目名称2019年下半年候车廊建设工程监理招标编号ZJCJ-F19101401投标申请单位名称项目联系人手机联系电话传真E-mail 邮政编码通信地址招标文件领取确认我单位已下载或购买本项目招标文件。
汇编语言编程实验报告学号:姓名:成绩:目录一、实验一: ......................................................错误!未定义书签。
二、实验二: (4)三、实验三: (8)四、实验四: (10)五、实验五: ......................................................错误!未定义书签。
六、实验六: (19)七、汇编实验总结 (23)实验一一. 实验题目【汇编语言补充作业T20T20】编写完整程序,利用】编写完整程序,利用DOS 系统功能调用,从键盘输入一个字符串,并将该字符串从屏幕上换行后并输出。
二. 程序流程及思路实现字符串输入,需要分成三个步骤:实现字符串输入,需要分成三个步骤:1、在数据段中定义一个缓存区为存放字符串做准备;2、DOS 系统功能调用0AH 号子功能,(DS:DX DS:DX))= = 输入缓冲区首址;输入缓冲区首址;输入缓冲区首址;3、在输入的字符串尾加上‘、在输入的字符串尾加上‘$$’字符,以作为输出结束条件。
’字符,以作为输出结束条件。
实现字符串输出,则需要注意的问题是:实现字符串输出,则需要注意的问题是:1、缓冲区第三个字节才开始存放输入的字符,前两个字节分别存放缓冲区长度和字符串实际字符数;和字符串实际字符数;2、输出回车换行可利用字符串:、输出回车换行可利用字符串:CR DB 0AH,0DH,CR DB 0AH,0DH,CR DB 0AH,0DH,’’$’。
’。
三. 源程序清单DATA SEGMENTN EQU 50MAXLEN DB N ;MAXLEN DB N ;缓冲区字符的最大长度缓冲区字符的最大长度缓冲区字符的最大长度ACTLEN DB ? ;ACTLEN DB ? ;实际字符个数实际字符个数实际字符个数STRING DB N DUP(?) ;STRING DB N DUP(?) ;字符空间字符空间字符空间CR DB 0AH,0DH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXLEA DX,MAXLENMOV AH,0AHINT 21H ;字符串输入字符串输入MOV AH,09HLEA DX,CRINT 21H ;回车换行回车换行MOV BL,MAXLEN+1 ;取实际的字符长度取实际的字符长度MOV BH,0LEA SI,MAXLEN+2 ;取字符开始的首地址取字符开始的首地址MOV BYTE PTR [SI+BX],'$' ;输出结尾要加上输出结尾要加上$ $MOV DX,SI ;把开始存放字符的首地址赋给DX(注:以下程序采用b方法)方法)。
程序流程图规范1.引言国际通用的流程图形态和程序:开始(六角菱型)、过程(四方型)、决策(菱型)、终止(椭圆型)。
在作管理业务流程图时,国际通用的形态:方框是流程的描述;菱形是检查、审批、审核(一般要有回路的);椭圆一般用作一个流程的终结;小圆是表示按顺序数据的流程;竖文件框式的一般是表示原定的程序;两边文件框式的一般是表示留下来的资料数据的存储。
2.符号用法程序流程图用于描述程序内部各种问题的解决方法、思路或算法。
图标准程序流程图符号1)数据:平行四边形表示数据,其中可注明数据名、来源、用途或其它的文字说明。
此符号并不限定数据的媒体。
2)处理:矩形表示各种处理功能。
例如,执行一个或一组特定的操作,从而使信息的值,信息形式或所在位置发生变化,或是确定对某一流向的选择。
矩形内可注明处理名或其简要功能。
3)特定处理:带有双纵边线的矩形表示已命名的特定处理。
该处理为在另外地方已得到详细说明的一个操作或一组操作,便如子例行程序,模块。
矩形内可注明特定处理名或其简要功能。
4)准备:六边形符号表示准备。
它表示修改一条指令或一组指令以影响随后的活动。
例如,设置开关,修改变址寄存器,初始化例行程序。
5)判断:菱形表示判断或开关。
菱形内可注明判断的条件。
它只有一个入口,但可以有若干个可供选择的出口,在对符号内定义各条件求值后,有一个且仅有一个出口被激活,求值结果可在表示出口路径的流线附近写出。
6)循环界限:循环界限为去上角矩形或去下角矩形,分别表示循环的开始和循环的结束。
一对符号内应注明同一循环标识符。
可根据检验终止循环条件在循环的开始还是在循环的末尾,将其条件分别在上界限符内注明(如:当A>B)或在下界限符内注明(如:直到C<D)。
图1-2给出了当终止条件成立时进入循环和直到终止条件成立退出循环的两种不同的表示。
图两种循环表示7)连接符:圆表示连接符,用以表明转向流程图的它处,或从流程图它处转入。
它是流线的断点。
重大危险源控制流程图
编制部门:监理三部
按设计文件识别重大危险源类型、范围
列出重大危险源清单
报建设主管部门备案
总承包单位编制重大危险源专项方案
(第一次)
报项目总监审批(重点审批:总包专项方案审批程序、
方案的可行性,安全技术控制措施是否到位等)
总承包单位对第一次审批通过的专项方案
组织不少于5位专家组进行方案论证
总承包单位结合专家论证意见完善方案后
报专家组组长签认
总承包单位将经专家组组长签认的方案报总监审批
(第二次)
监理机构编制重大危险源专项监理实施细则
总承包单位对班组形成针对性交底文件
监理安全管理工程师检查重大危险源实施单位的资质是否符合要求;
特种作业人员上岗证是否齐全;所需复试材料是否复试合格
具备条件后,按方案实施
安全监理人员的巡视检查、旁站形成记录
检查中发现安全隐患开具监理工程师通知单
(安全类)
整改完成并通过复查后由监理人员
报相应主管部门验收
重大危险源工程施工完毕销号。
学院名称《数据结构》课程设计报告题目——航班信息查询与检索班级:姓名:时间:2012/12/29—-—2013/1/5二○一二年十二月二十九日课程设计任务书及成绩评定课题名称航班信息查询与检索Ⅰ、题目的目的和要求:1、设计目的巩固和加深对数据结构的理解,通过上机实验、调试程序,加深对课本知识的理解,最终使学生能够熟练应用数据结构的知识写程序.(1)通过本课程的学习,能熟练掌握几种基本数据结构的基本操作。
(2)能针对给定题目,选择相应的数据结构,分析并设计算法,进而给出问题的正确求解过程并编写代码实现。
2、设计题目要求:问题描述:该设计要求对飞机航班信息进行排序和查找。
可按航班的航班号、起点站、到达站、起飞时间以及到达时间等信息进行查询。
任务要求:对于本设计,可采用基数排序法对一组具有结构特点的飞机航班号进行排序,利用二分查找法对排好序的航班记录按航班号实现快速查找,按其他次关键字的查找可采用最简单的顺序查找方法进行,因此他们用得较少。
每个航班记录包括八项,分别是:航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号以及票价等,假其中K0和K1的输入值是航空公司的别称,用两个大写字母标示,后4位为航班号,这种航班号关键字可分成两段,即字母和数字。
其余七项输入内容因为不涉及本设计的核心,因此除了票价为数值型外,均定义为字符串即可。
Ⅱ、设计进度及完成情况Ⅲ、主要参考文献及资料[1] 严蔚敏数据结构(C语言版)清华大学出版社 1999[2] 严蔚敏数据结构题集(C语言版)清华大学出版社 1999[3]谭浩强 C语言程序设计清华大学出版社[4] 与所用编程环境相配套的C语言或C++相关的资料Ⅳ、成绩评定:设计成绩:(教师填写)指导老师:(签字)二○一三年一月五日目录一、概述 (6)二、系统分析 (6)三、概要设计 (6)四、详细设计 (7)1。
定义数据类型 (7)2.算法实现 (8)五、测试数据 (10)六、收获与体会 (13)七、参考文献 (13)八、附录 (14)5一、概述课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。
三.源程序清单import java.util.*;import java.io.*;import javax.swing.*;import java.awt.event.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;import javax.swing.tree.*;import javax.swing.event.*;class MyFrame extends Frame implements ActionListener{Label lab1,lab2; //首先对用户登录框对进行设计TextField text1,text2;Button button;MyFrame(String s){super(s);setSize(400,120);setVisible(true);setForeground(Color.blue);setBackground(Color.pink);setLayout(new GridLayout(3,2,8,8));lab1=new Label("用户名");lab2=new Label("密码");text1=new TextField(10);text2=new TextField(10);button=new Button("登录");add(lab1);add(text1);add(lab2);add(text2);add(button);button.addActionListener(this);}public void actionPerformed(ActionEvent e){ if(e.getSource()==button){ button.setLabel("登录成功"); //用户名和密码正确后显示登陆成功 Mytree fr=new Mytree();fr.validate();}}}class Mytree extends JFrame implements TreeSelectionListener{JTree tree=null;JPanel text=new JPanel() ;JSplitPane splitPane;Mytree(){Container con=getContentPane();DefaultMutableTreeNode root=new DefaultMutableTreeNode("图书管理系统" );DefaultMutableTreeNode t1=new DefaultMutableTreeNode("显示所有图书 ");DefaultMutableTreeNode t3=new DefaultMutableTreeNode("添加");DefaultMutableTreeNode t2=new DefaultMutableTreeNode("查询 ");root.add(t2); root.add(t3);root.add(t1);tree=new JTree(root);JScrollPane scrollPane=new JScrollPane(text) ;splitPane=new JSplitPane (JSplitPane.HORIZONTAL_SPLIT,true,tree,text);splitPane=new JSplitPane (JSplitPane.HORIZONTAL_SPLIT,true);splitPane.add(tree,0);tree.addTreeSelectionListener(this);con.add(splitPane);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});setVisible(true);setBounds(100,100,500,500);}public void valueChanged(TreeSelectionEvent e){if(e.getSource()==tree){DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();if( node.getUserObject().toString().equals("添加")){show fr=new show( );text.add(fr);splitPane.add(text);}else if( node.getUserObject().toString().equals("查询")){ MyFrame1 my1=new MyFrame1();text.add(my1);splitPane.add(text);}else if( node.getUserObject().toString().equals("显示所有图书")){ MyFrame2 my2=new MyFrame2();text.add(my2); splitPane.add(text);}}}}class tianjia //定义一个“添加图书”的类{ String 书名,作者,出版社,内容简介;tianjia(String 书名, String 作者, String 出版社, String 内容简介){this.书名=书名;this.作者=作者;this.出版社 =出版社 ;this.内容简介=内容简介;}}class show extends Panel implements ActionListener{LinkedList 书单=null;JTextField 书名文本框=new JTextField();JTextField 作者文本框=new JTextField();JTextField 出版社文本框=new JTextField();JTextField 内容简介文本框=new JTextField(); JButton badd=new JButton("添加图书");show(){书单=new LinkedList();setLayout(new GridLayout(5,2));setSize(300,300);add(new Label("输入书名:"));add(书名文本框);add(new Label("输入作者:"));add(作者文本框);add(new Label("输入出版社:"));add(出版社文本框);add(new Label("输入内容简介:"));add(内容简介文本框);add(new Label("点击添加"));add(badd);badd.addActionListener(this) ;setBackground(Color.pink);setBackground(Color.pink);}public void actionPerformed(ActionEvent e){ if(e.getSource()==badd){String shuming=null; String zuozhe=null;String chubanshe=null; String neirongjianjie=null;shuming=书名文本框.getText();zuozhe=作者文本框.getText();chubanshe=出版社文本框.getText();neirongjianjie=内容简介文本框.getText();tianjia tj=new tianjia(shuming,zuozhe,chubanshe,neirongjianjie);书单.add(tj);try{FileOutputStream file=new FileOutputStream("shudan.txt");ObjectOutputStream out=new ObjectOutputStream(file);out.writeObject(书单);out.close();}catch(IOException event){System.out.print("找不到书单"); }}}}class chaxun //定义查询的类{String 书名,作者,出版社,内容简介;chaxun(String 书名, String 作者, String 出版社, String 内容简介){this.书名=书名;this.作者=作者;this.出版社 =出版社 ;this.内容简介=内容简介;}}class MyFrame1 extends Panel implements ActionListener{ Button button ;TextArea text;TextField t;Label lab1,lab2,lab3;LinkedList l=null;MyFrame1(){l=new LinkedList();lab1=new Label("请输入要查询的书名");lab2=new Label("点击查询");lab3=new Label("查询结果");button=new Button("查询");text=new TextArea(20,20); //查询框的设置t=new TextField(10);setLayout(new FlowLayout() );setBackground(Color.pink);setBackground(Color.pink);add(lab1);add(t);add(lab2);add(button);add(lab3);add(text);button.addActionListener(this);setSize(300,300);setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==button){String sh=t.getText();try { FileInputStream comein=new FileInputStream("shudan.txt");ObjectInputStream in=new ObjectInputStream(comein);l=(LinkedList)in.readObject();in.close();}catch(ClassNotFoundException event){ }catch(IOException event){System.out.print("找不到书单"); }for(int i=0;i<l.size();i++){chaxun c=(chaxun)l.get(i);if(c.书名.equals(sh)){text.append("书名"+c.书名+" ");text.append("作者 "+c.作者 +" ");text.append("出版社 "+c.出版社 +" ");text.append("内容简介 "+c.内容简介 +" ");text.append("\n");text.setBackground(Color.cyan);}}}else{text.append("找不到"); }}}class tianjia1{String 书名,作者,出版社,内容简介;tianjia1(String 书名, String 作者, String 出版社, String 内容简介){this.书名=书名;this.作者=作者;this.出版社 =出版社 ;this.内容简介=内容简介;}}class MyFrame2 extends Panel implements ActionListener{ LinkedList 书单= null;TextArea text ;Button button;MyFrame2( ){ LinkedList 书单=new LinkedList();text=new TextArea(20,20);button=new Button("查询");setLayout(new FlowLayout() );add(text); add(button);button.addActionListener(this);setSize(400,120);setVisible(true);setForeground(Color.blue); setBackground(Color.pink);}public void actionPerformed(ActionEvent e){ if(e.getSource()==button){ try { FileInputStream comein=new FileInputStream("shudan.txt");ObjectInputStream in=new ObjectInputStream(comein);书单=(LinkedList)in.readObject();}catch(ClassNotFoundException event){ }catch(IOException event){System.out.print("找不到书单"); }Iterator iter= 书单.listIterator();while (iter.hasNext()){tianjia tj=(tianjia)iter.next();text.append("书名"+tj.书名+" ");text.append("作者 "+tj.作者 +" ");text.append("出版社 "+tj.出版社 +" ");text.append("内容简介 "+tj.内容简介 +" ");text.append("\n");}}}}public class a{public static void main(String args[]){ MyFrame f=new MyFrame("欢迎登录图书管理系统");f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});f.validate();}}。