广东工业大学PL0扩充课程设计报告陈

广东工业大学PL0扩充课程设计报告陈
广东工业大学PL0扩充课程设计报告陈

课程设计

课程名称编译原理

题目名称 PL/0编译器的扩充

学生学院计算机学院

专业班级计算机科学与技术(7)学号3110006131

学生姓名陈日燊

指导教师林志毅

2011 年1 月8 日

一.课程设计目的与要求

1、课程设计目的:

在分析理解一个教学型编译程序(如PL/0)的基础上,对其词法分析程序、语法分析程序和语义处理程序进行部分修改扩充。达到进一步了解程序编译过程的基本原理和基本实现方法的目的。

2、课程设计要求:

对PL/0作以下修改扩充:

(1)增加单词:保留字ELSE,FOR,TO,DOWNTO,RETURN

运算符+=,-=,++,--,

(2)修改单词:不等号# 改为<>

(3)增加条件语句的ELSE子句,要求:写出相关文法,语法图,语义规则。二.实验环境与工具

(1)计算机及操作系统:PC机,WindowsXP

(2)程序设计语言:VC++ 6.0,C/C++语言

(3)教学型编译程序:PL/0

三.结构设计方案

1、结构设计说明:

PL/0的编译程序以语法分析程序为核心,词法分析程序和代码生成程序都作为一个独立的过程,当语法分析需要读单词时就用词法分析程序,而当语法分析正确需生成相应的目标代码时,则调用代码生成程序。此外,用表格管理程序建立变量,常量和过程标识符的说明与引用之间的信息联系。用出错处理程序对词法和语法分析遇到的错误给出在源程序中出错的位置和错误性质。

2、各功能模块图示:

3.各功能模块作用表:

3. 符号名字表结构:

struct tablestruct

{

char name[al]; /*名字*/

enum object kind; /*类型:const,var,array or procedure*/ int val; /*数值,仅const使用*/

int level; /*所处层,仅const不使用*/

int adr; /*地址,仅const不使用*/

int size; /*需要分配的数据区空间,仅procedure使用*/ };

4. 保留关键字枚举结构:

enum symbol{

nul, ident, number, plus, minus,

times, slash, oddsym, eql, neq,

lss, leq, gtr, geq, lparen,

rparen, comma, semicolon, period, becomes,

beginsym, endsym, ifsym, thensym, whilesym,

writesym, readsym, dosym, callsym, constsym,

varsym, procsym, elsesym, forsym, tosym,

downtosym, returnsym, pluseql, minuseql, plusplus,

minusminus, };

5.名字表中标识符枚举类型:

enum object{

constant, /*常量*/

variable, /*变量*/

procedur, /*过程*/

};

6.虚拟机

enum fct{ /* 虚拟机代码*/

lit, opr, lod,

sto, cal, inte,

jmp, jpc,

};

struct instruction /* 虚拟机代码结构*/

{

enum fct f; /* 虚拟机代码指令*/

int l; /* 引用层与声明层的层次表*/

int a; /* 根据f的不同而不同*/

};

7. 扩充部分语法描述图:

8.运行时存储组织和管理

对于源程序的每一个过程(包括主程序),在被调用时,首先在数据段中开辟三个空间,存放静态链SL、动态链DL和返回地址RA。静态链记录了定义该过程的直接外过程(或主程序)运行时最新数据段的基地址。动态链记录调用该过程前正在运行的过程的数据段基址。返回地址记录了调用该过程时程序运行的断点位置。对于主程序来说,SL、DL和RA的值均置为0。静态链的功能是在一个子过程要引用它的直接或间接父过程(这里的父过程是按定义过程时的嵌套情况来定的,而不是按执行时的调用顺序定的)的变量时,可以通过静态链,跳过个数为层差的数据段,找到包含要引用的变量所在的数据段基址,然后通过偏移地址访问它。

在过程返回时,解释程序通过返回地址恢复指令指针的值到调用前的地址,通过当前段基址恢复数据段分配指针,通过动态链恢复局部段基址指针。实现子过程的返回。对于主程序来说,解释程序会遇到返回地址为0的情况,这时就认为程序运行结束。

解释程序过程中的base函数的功能,就是用于沿着静态链,向前查找相差指定层数的局部数据段基址。这在使用sto、lod、stoArr、lodArr等访问局部变量的指令中会经常用到。

类PCODE代码解释执行的部分通过循环和简单的case判断不同的指令,做出相应的动作。当遇到主程序中的返回指令时,指令指针会指到0位置,把这样一个条件作为终至循环的条件,保证程序运行可以正常的结束。

9.扩充赋值运算:+= 和-= 设计:

对于+=、-=、*=和/=赋值运算符,在程序中出现的情况只有如下一种,文法的EBNF 表示为:

赋值语句::= <标识符> [ += | -= ] <表达式>

(1)扩充的语法描述见结构设计中的PL/0 分程序和主要语句的语法描述中的描述图;

(2)分析区别赋值运算符采用:读标识符后再读一个字符,后根据读到的字符转去不同的赋值语句执行。

(3)中间代码生成情况:+=运算符,其他赋值运算符架构是一样的,只是执行加法改为相应的算数运算。

else if(sym==pluseql) //检测到+=符号

{

i=position(id,*ptx); //把类x+=3的x的地址取出来

gendo(lod,lev-table[i].level,table[i].adr); /*找到变量地址并将其值入栈*/ getsymdo;

if(sym==semicolon)

{

getsymdo;

}

memcpy(nxtlev,fsys,sizeof(bool)* symnum);

expressiondo(nxtlev,ptx,lev);

gendo(opr,0,2);

if(i!=0)

{

gendo(sto,lev-table[i].level,table[i].adr);

}

}

else if(sym==minuseql) //检测到-=符号

{

i=position(id,*ptx); //把类x-=3的x的地址取出来

gendo(lod,lev-table[i].level,table[i].adr); /*找到变量地址并将其值入栈*/ getsymdo;

if(sym==semicolon)

{

getsymdo;

}

memcpy(nxtlev,fsys,sizeof(bool)* symnum);

expressiondo(nxtlev,ptx,lev);

gendo(opr,0,3);

if(i!=0)

{

gendo(sto,lev-table[i].level,table[i].adr);

}

}

10.扩充语句(Pascal的FOR语句):

①FOR <变量>:=<表达式> TO <表达式> DO <语句>

②FOR <变量>:=<表达式> DOWNTO <表达式> DO <语句>

其中,语句①的循环变量的步长为1,

语句②的循环变量的步长为-1

For i:= E1 to E2 do S1 循环语句ALGOL等价于:

i:= E1;

goto OVER;

AGAIN :i:= i+1

OVER :if i

Begin S1;

goto again end;

注意程序中基础用到循环控制变量i,因此entry(i)必须被保存下来,而Pascal 这样的语言中,循环变量在循环外也是可见的,本次扩充约定循环步长为1或者-1。具体需要在程序staement()添加for的句法判断:

else if(sym==forsym) //检测到for语句

{

getsymdo;

if(sym==ident)

{

i=position(id,*ptx);

if(i==0) error(11);

else

{

if(table[i].kind!=variable) //赋值语句中,赋值号左部标识符属性应是变量

{

error(12);i=0;

}

else

{

getsymdo;

if(sym!=becomes) error(13); //赋值语句左部标识符后应是赋值号:=

else getsymdo;

memcpy(nxtlev,fsys,sizeof(bool)*symnum);

nxtlev[tosym]=true; //后跟符to和downto

nxtlev[downtosym]=true;

expressiondo(nxtlev,ptx,lev); //处理赋值语句右部的表达式E1

gendo(sto,lev-table[i].level,table[i].adr); //保存初值

switch(sym)

{

case tosym: //步长为的向上增加

getsymdo;

cx1=cx; //保存循环开始点

//将循环判断变量取出放到栈顶

gendo(lod,lev-table[i].level,table[i].adr);

memcpy(nxtlev,fsys,sizeof(bool)*symnum); //处理表达式E2

nxtlev[dosym]=true; //后跟符do

expressiondo(nxtlev,ptx,lev);

/*判断循环变量条件,比如for

i:=E1 to E2 do S中,判断i是否小

于E2,如小于等于,继续循环,大

于的话,跳出循环*/

gendo(opr,0,13); //生成比较指令,i是否小于等于E2的值

cx2=cx; //保存循环结束点

//生成条件跳转指令,跳出循环,跳出的地址未知

gendo(jpc,0,0);

if(sym==dosym) //处理循环体S

{

getsymdo;

statement(fsys,ptx,lev); //循环体处理

//增加循环变量步长为

//将循环变量取出放在栈顶

gendo(lod,lev-table[i].level,table[i].adr);

gendo(lit,0,1); //将步长取到栈顶

gendo(opr,0,2); //循环变量加步长

//将栈顶的值存入循环变量

gendo(sto,lev-table[i].level,table[i].adr);

gendo(jmp,0,cx1); //无条件跳转到循环开始点

/*回填循环结束点的地址,cx为else后语句执行

完的位置,它正是前面未定的跳转地址*/

code[cx2].a=cx;

}

else

{

error(29); //for语句中少了do

}

break;

case downtosym: //步长为的向下减少

getsymdo;

cx1=cx; //保存循环开始点

//将循环判断变量取出放到栈顶

gendo(lod,lev-table[i].level,table[i].adr);

memcpy(nxtlev,fsys,sizeof(bool)*symnum); //处理表达式E2

nxtlev[dosym]=true; //后跟符do

expressiondo(nxtlev,ptx,lev);

/*判断循环变量条件,比如for i:=E1 downto

E2 do S中,判断i是否大于等于E2,如大于等

于,继续循环,小于的话,跳出循环*/

gendo(opr,0,11); //生成比较指令,i是否大于等于E2的值

cx2=cx; //保存循环结束点

//生成条件跳转指令,跳出循环,跳出的地址未知

gendo(jpc,0,0);

if(sym==dosym) //处理循环体S

{

getsymdo;

statement(fsys,ptx,lev); //循环体处理

//增加循环变量步长为

//将循环变量取出放在栈顶

gendo(lod,lev-table[i].level,table[i].adr);

gendo(lit,0,1); //将步长取到栈顶

gendo(opr,0,3); //循环变量加步长

//将栈顶的值存入循环变量

gendo(sto,lev-table[i].level,table[i].adr);

gendo(jmp,0,cx1); //无条件跳转到循环开始点

/*回填循环结束点的地址,cx为else后语句

执行完的位置,它正是前面未定的跳转地址

*/

code[cx2].a=cx;

}

else

{

error(29);//for语句中少了do

}

break;

}

}

}

}

else

{

error(19); //for语句后跟赋值语句,赋值语句左部是变量,缺少变量}

}

11.增加运算:++ 和-- :

对于++和--运算符,扩充时要注意存在++,--有两个情况:1、作为语句的时候;2、作为表达式中的因子的时候.

(1) 作为语句的时候,有四种情况:

A++ ++A A-- --A

文法的EBNF 表示形式为:

<自增自减语句>::=<标识符>[ ++ | -- ] | [ ++ | -- ]<标识符>

(2) 作为因子的时候,有两种情况

a++和a--作为因子,比如:b:=a++*a--;语句

++a 和--a 作为因子,比如:b:= --a+2*++a;语句

文法的EBNF 表示形式为:

<表达式>::=...[ ++ | -- ]<标识符>|<标识符>[ ++ | -- ]...

其中的...表示前后都可以有其他的项或因子

(1)作为语句++ -- 符号分为以下两种情况考虑:

情况1对于自增自减符号置后的只需要在判断+= -=后面添加句法分析即可:

/*************后置自增符号a++ a--类型添加代码****************************/ else if(sym==plusplus) //检测到后置++符号

{

gendo(lit,0,1);

gendo(lod,lev-table[i].level,table[i].adr); /*找到变量地址并将其值入栈*/

gendo(opr,0,2); //执行加操作,

if(i!=0)

{

gendo(sto,lev-table[i].level,table[i].adr);

}

getsymdo;

}

else if(sym==minusminus) //检测到后置--符号

{

gendo(lod,lev-table[i].level,table[i].adr); /*找到变量地址并将其值入栈*/

gendo(lit,0,1);

gendo(opr,0,3); //执行减操作,

if(i!=0)

{

gendo(sto,lev-table[i].level,table[i].adr);

}

getsymdo;

}

情况2对于++ --前置的需要添加因子开始符号:

facbegsys[plusplus]=true; /***增加符号++开始因子plusplus***/

facbegsys[minusminus]=true; /***增加符号--开始因子minusminus***/

/***************前置自增符号++a - -a类型添加代码****************************/ if(sym==plusplus)

{

getsymdo;

if(sym==ident) //后面跟的是变量

{

i=position(id,*ptx);

if(i==0)

{

error(11);

}

else

{

if(table[i].kind!=variable) //++后没跟变量,出错

{

error(12);

i=0;

}

else//++后跟变量,处理生成中间代码

{

if(table[i].kind==variable)

{

gendo(lod,lev-table[i].level,table[i].adr);//先取值到栈顶

gendo(lit,0,1); //将值为入栈

gendo(opr,0,2); //加法,即+1,栈顶加次栈顶

gendo(sto,lev-table[i].level,table[i].adr);//出栈取值到内存

getsymdo;

}

}

}

}

}

else if(sym==minusminus)

{

getsymdo;

if(sym==ident) //后面跟的是变量

{

i=position(id,*ptx);

if(i==0)

{

error(11);

}

else

{

if(table[i].kind!=variable) //--后没跟变量,出错

{

error(12);

i=0;

}

else//--后跟变量,处理生成中间代码

{

if(table[i].kind==variable) //后跟变量

{

gendo(lod,lev-table[i].level,table[i].adr);//先取值到栈顶

gendo(lit,0,1); //将值为入栈

gendo(opr,0,3); //加法,即-1,栈顶减次栈

gendo(sto,lev-table[i].level,table[i].adr);//出栈取值到内存

getsymdo;

}

}

}

}

}

(2)作为因子的时候也有两种情形考虑:

添加int factor(bool*fsys,int *ptx,int lev)函数如下:/********************如果因子可能出现b:=a++或b:=a--类型的处理******************/

if(sym==plusplus)

{

gendo(lit,lev-table[i].level,1); //将值为入栈

gendo(opr,lev-table[i].level,2); //加法,即+1,栈顶加次栈顶

gendo(sto,lev-table[i].level,table[i].adr); //出栈取值到内存

gendo(lod,lev-table[i].level,table[i].adr); //取值到栈顶

gendo(lit,0,1);

gendo(opr,0,3); //栈顶值减

getsymdo;

}

else if(sym==minusminus)

{

gendo(lit,lev-table[i].level,1); //将值为入栈

gendo(opr,lev-table[i].level,3); //减法,即-1,栈顶减次栈顶

gendo(sto,lev-table[i].level,table[i].adr); //出栈取值到内存

gendo(lod,lev-table[i].level,table[i].adr);

gendo(lit,0,1);

gendo(opr,0,2); //栈顶值加

getsymdo;

} /********************************************************************************/

/************如果因子是表达式的时候,则有可能是包含++a或者--a,如b:=++a或b:=--a ********/ else if(sym==plusplus)

{

getsymdo;

if(sym==ident)

{

getsymdo;

i=position(id,*ptx);

if(i==0)

{

error(11);

}

else

{

if(table[i].kind==variable) //变量

{

//先加后再用a

gendo(lod,lev-table[i].level,table[i].adr);//先取值到栈顶

gendo(lit,0,1);//将值为入栈

gendo(opr,0,2);//加法,即+1,栈顶加次栈顶

gendo(sto,lev-table[i].level,table[i].adr);//出栈取值到内存

gendo(lod,lev-table[i].level,table[i].adr); //取值到栈顶

}

}

}

}

else if(sym==minusminus)

{

getsymdo;

if(sym==ident)

{

getsymdo;

i=position(id,*ptx);

if(i==0)

{

error(11);

}

else

{

if(table[i].kind==variable) //变量

{

//先减后再用a

gendo(lod,lev-table[i].level,table[i].adr);//先取值到栈顶

gendo(lit,0,1); //将值为入栈

gendo(opr,0,3); //减法,即-1,栈顶减次栈顶

gendo(sto,lev-table[i].level,table[i].adr);//出栈取值到内存

gendo(lod,lev-table[i].level,table[i].adr); //取值到栈顶

}

}

}

testdo(fsys,facbegsys,23); /*因子后有非法符号*/ }

/************************结束**********************************************/ 四.程序测试

1.扩充赋值运算:+= 和-=

测试文件“test3.pl”

运行结果:

结果分析:

a = 9 ,

b = 3 , a+=b 结果为12,正确,扩充成功!

2.扩充语句(Pascal的FOR语句):测试文件“test4.pl0”

运行结果:

结果分析:

For i=1 to 5 do “sum+=iwrite(i)”结果i= 1,2,3,4,5, Sum= 6 For i=5 downto 1 do write(i) 结果i= 5,4,3,2,1

For循环功能扩充成功!

3.增加运算:++ 和--。

测试文件“test5.pl0”

运行结果:

结果分析:

a = 9

b = 8

c = 7

d = 6

f = a++ 故输出write(f)= 9,输出write(a)= 10

++b 输出write(b)= 9

c-- 输出write(c)= 6

e = - -d 输出write(e)= 5,输出write(d)= 5

++ --功能符号测试通过!

五.实验总结

本次课程设计主要是在读懂课本附带的PL/0 编译器程序C语言版本后进行扩展和修改相关程序功能。

通过课程设计,我对编译器的工作原理和实现机制有了实际的了解和认识,进一步培养的编译技术的设计思想,仔细阅读PL/0 的编译程序C语言版本代码,对词法分析,句法分析在编程技巧和实际意义有了深刻的理解,从枯燥的理论学习到现在实际应用过程对于我自身知识面的提升是巨大的。语法分析、句法分析在编译原理中处于核心的地位,如何正确有效的对它们分析提取决定了编译后期工作方向,当然中间代码的如何有效的生成在编译中也是个不小的难题,特别是其中堆栈的运用,当然在理论上对于它们的理解程度大小也是决定设计调试难度的高低。

扩展+= -= 符号相对比较简单,只需要在语句分析模块接着赋值符号的判断添加就可以,对于for循环也是类似,只需要在语句分析模块添加对于for关键字的判断,当然要注意后继符号to 还是downto的判断以决定步长递增还是递减。完成了基本功能扩展,我尝试了++ --符号的添加,这两个符号添加比较复杂,大体讲有两个用途情况,一个就是用在用户标识符,另一个就是在因子上也可能用到该功能,需要添加因子的功能判断,具体来讲这两个符号又有两种实现形式,分别是后置符号和前置符号,后置符号类似前面的+= -= 直接添加判断即可,前置符号则除了要添加++ --的开始因子符号集外,还得在语句分析模块添加功能处理!

总的来说,经历了数次的调试,功能扩展算是完成了,这次课程设计使我受益匪浅,除了更深了解了编译技术,还培养了发现问题、分析问题、解决问题的能力!

广工桥梁课程设计

课程设计 课程名称:桥梁工程 专业:道路与桥梁工程 年级班级: 12路桥(1)班 学号: 3112003638 姓名:胡涵 指导教师:黄娟 2015 年6 月25 日 广东工业大学课程设计任务书

一、课程设计的内容 1、教学目的: 学生通过桥梁工程设计的训练,可以进一步掌握在桥梁工程课本中所学到理 论知识,并经过亲自做桥梁工程设计来熟悉设计方法、计算理论、计算公式,熟悉在桥梁设计中如何运用桥梁规范,为今后的毕业设计及走上工作岗位打 下一个良好的专业基础。 2、设计基本资料: 说明:学生共分为四个小组,每个小组基本资料不同,简支梁主梁高H分别取为:132CM、134CM、136CM、138CM,见图1。 1)桥面净宽:净7+2×0.75M 2)设计荷载:汽车“公路—Ⅰ级,人群荷载:3KN/M2 3)材料:主筋:Ⅱ级,构造筋:Ⅰ级 混凝土:桥面铺装:C25,主梁:C30 4)结构尺寸:详见图1、图2 主梁:计算跨径:L=1950cm 全长:L=1996cm 人行道、栏杆每延米(两侧)重2.0KN/m(为每片主梁分到的值)。

3、设计计算内容: 1)计算行车道板内力,并据此计算和配置翼板主筋。 行车道板按铰接板计算; 汽车荷载:按车辆荷载计算。 2)主梁设计计算: ①、计算主梁1#、2#、3#在汽车、人群荷载作用下的横向分布系数。 支点用杠杆法,跨中用G —M 法。 ②、桥梁沿跨长纵向按IL(影响线)布载求活载内力。 ③、计算活载跨中弯矩时,不考虑横向分布系数沿桥长方向的变化,计算 支点活载剪力时,要计入横向分布系数沿跨长方向的变化的影响。 ④、主梁控制截面:M 中 、M 1/4 、Q 支点 ⑤、主梁跨中截面受拉主筋计算(其余钢筋不算)。 ⑥、计算活载挠度及预拱度。参见教材第172页公式。 3)横隔梁内力计算,并据此计算配置主筋(按T 形截面配置下缘受拉主筋)。 说明:①、横隔梁内力计算采用“偏心法”,取中横隔梁计算。 ②、控制截面:M 3、M 2-3、Q 1右、Q 1-2 4、绘图内容: 1)上部构造纵、横剖面图(纵断面只画主梁,参见教材第152页,图2-5-55,但尺寸要改变)。 2)主梁配筋图(参考教材第81页,图2-4-15绘制,但主筋按自己计算值配制,梁高按各组的H 值计)。 二、课程设计的要求与数据 1、必须严格执行各桥梁设计规范,每一设计步骤都必须按规范的要求进行, 要训练会查规范、会用规范。 2、设计中多参阅有关资料,特别是对于没有设计经验的初学者来讲,更应多 借鉴前人的设计经验和实例。 3、绘制桥梁设计图时必须按桥梁设计图纸的规定进行绘制,从线形、布置、 图 2

KTV点歌系统广工数据库课程设计

课程设计 课程名称数据库系统 题目名称___ 卡拉OK点歌系统___ 学生学院计算机学院 专业班级 2010级计算机科学与技术四班学号 3110006015 学生姓名张法光 指导教师路璐 2013年1 月12 日成绩

评价标准分数比例 (%) 成绩 论文论文结构包含: 1、相关技术介绍、需求分析、 2、概念结构设计(涉及的实体至少三个以上)、 3、逻辑结构设计(有完整性约束说明)、 4、数据库物理设计、 5、数据库完整性设计(违反实体、参照完整性时的解决办法,比 如触发器、存储过程等) 5、数据库安全性设计、 6、数据库实施、系统测试方案和测试报告、 7、系统的主要功能和使用说明、系统安装说明。 要求论文完整、内容详细,格式规范。 40 程序1、系统运行正确; 2、功能完善:有增、删、改、查功能,输入、输出功能; 3、有基本的统计、报表功能 4、有多表连接查询、自身连接查询、字符串匹配查询、模糊查询、 分组查询等。 5、工作量饱满; 6、系统实现技术的难度。 30 数据库设计E-R图设计正确,至少3个实体; 数据库逻辑结构设计规范化; 数据库物理设计合理。 30 总评成绩优良中及格不及格总分

目录 1 引言 (7) 1.1课题来源 (7) 1.2课题研究主要内容 (7) 1.3主要工作 (8) 2 需求分析 (8) 2.1信息要求分析 (8) 2.2处理要求分析 (8) 2.3数据字典及安全性、完整性要求分析 (9) 3 概念结构设计 (10) 3.1数据实体描述及分ER图 (10) 3.2整体ER图 (13) 4 系统概要设计 (14) 4.1数据库逻辑结构设计 (14) 4.2数据库物理设计 (16) 4.3系统总体框架 (17) 5 系统详细设计 (17) 5.1数据库实施 (17) 5.2数据库的数据完整性设计 (29) 5.3数据的安全设计 (31) 5.4系统功能模块的设计与实现 (31) 5.5系统功能测试 (32) 5.6数据库性能检测与备份设计 (49) 5.7系统安装使用说明 (49) 6 回顾与展望 (50) 7 参考文献 (50)

广工模电课程设计报告

课程设计 课程名称模拟电子技术基础课程设计 题目名称波形发生电路 学生学院物理与光电工程学院 专业班级 12级电子科学与技术 学号3112008399 学生姓名 big stupie brother 指导教师 miss zhu 2013-12-7

目录 1.摘要和关键词 2.设计任务与技术指标 3.电路设计及其原理 1)方案比较 2)单元电路设计 ①RC桥式正弦振荡电路 ②射极跟随器电路 ③方波产生电路 ④三角波产生电路 3)元件选择 4)电路工作原理总结 4.电路调试与结果 5.设计不足和存在问题 6.实验总结 7.参考文献 8.附录

1.摘要和关键词 【摘要】: 用RC桥式正弦波振荡电路产生正弦波,正弦波频率可通过调节电阻R及电容C实现100HZ—20KHZ的变换,再通过电压跟随器输出正弦波,电压跟随器起到保护前级不受后级影响。正弦波通过过零比较器,整形为方波,同样经过电压跟随器输出方波。方波通过积分运算电路,整形为三角波,同样经过电压跟随器输出三角波,方波、三角波的频率与正弦波频率相同。 【关键词】:RC桥式振荡电压跟随器过零比较器积分运算电路 2.设计任务与技术指标 要求:设计并制作用分立元件和集成运算放大器组成的能产生正弦波、方波和三角波波形发生器。 基本指标:1、输出的各种波形基本不失真; 2、频率范围为50HZ~20KHZ,连续可调; 3、方波和正弦波的电压峰峰值VPP>10V,三角波的VPP>20V。 3.电路设计及其原理 1)方案比较 方案一先通过压控方波振荡电路产生方波信号,方波信号经过积分运算电路整形为三角波,三角波通过低通滤波器整形为正弦波。 方案二用RC桥式正弦波振荡电路产生正弦波,正弦波频率可通过调节电阻R 及电容C实现100HZ—20KHZ的变换,再通过电压跟随器输出正弦波。正弦波通过过零比较器,整形为方波,同样经过电压跟随器输出方波。方波通过积分运算电路,整形为三角波。 方案二同方案一比较,有较为明显的优势,首先,由于是采用滤波方式产生正弦波,高低频特性较差,可实现的波形频率范围较窄。方案二采用RC桥式正弦振荡电路产生正弦波,频率范围较宽,用过零比较器整形为方波,更容易实现幅度的调节。由于方案二的优势,本设计采用方案二。 方案二原理框图如下

广工_操作系统_课程设计_源代码

课程设计 课程名称________操作系统___ ____ 题目名称_多用户多级目录文件系统的实现_ 学生学院________计算机学院____________ 专业班级______ _________ 学号________ ___________ 学生姓名_________ _____________ 指导教师__________林穗______________ 2011年1月18日

广东工业大学课程设计任务书 题目名称多用户多级目录文件系统的实现 学生学院计算机学院 专业班级08软件工程一班 姓名 学号 一、课程设计的内容 本课程设计要求设计一个模拟的多用户多级目录的文件系统。通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 二、课程设计的要求与数据 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多目录的文件系统。 2.文件物理结构可采用显式链接或其他方法。 3.磁盘空闲空间的管理可选择位示图或其他方法。如果采用位示图来管理文件存储空间,并采用显式链接分配方式,则可以将位示图合并到FAT中。4.文件目录结构采用多用户多级目录结构,每个目录项包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。目录组织方式可以不使用索引结点的方式,但使用索引结点,则难度系数为1.2。 5.设计一个较实用的用户界面,方便用户使用。要求提供以下相关文件操作:(1)具有login (用户登录)

(2)系统初始化(建文件卷、提供登录模块) (3)文件的创建:create (4)文件的打开:open (5)文件的读:read (6)文件的写:write (7)文件关闭:close (8)删除文件:delete (9)创建目录(建立子目录):mkdir (10)改变当前目录:cd (11)列出文件目录:dir (12)退出:logout 6.系统必须可实际演示,选用程序设计语言:C++、C等。 三、课程设计应完成的工作 1.充分理解设计的任务,完成设计的基本要求。然后根据自己的基础和能力选择不同难度的算法和实现方式,以取得更高的分数。 2. 独立独立完成系统的分析、设计、编码、测试工作。 3.完成设计报告的撰写。 4.以光盘(以班为单位刻录)方式提交已调试通过的完整的相关源程序和能够运行的执行文件;提交“课程设计报告”的书面和电子两种版本。 四、课程设计进程安排

桥梁工程课程设计(完整版)

桥梁工程课程设计报告书 一、设计资料 1 桥面净宽净-7 +2×1.5m人行道 2 主梁跨径及全长 标准跨径 l=21.70m(墩中心距离) 计算跨径l=21.20m(支座中心距离) 主梁全长l =21.66m(主梁预制长度) 全 3 设计荷载 公路—I级;人群荷载3.02 kN/ m 4 设计安全等级 二级 5 桥面铺装 沥青表面处厚5cm(重力密度为233 kN/),混凝土垫层厚6cm(重力密度为 m 243 m m kN/ kN/),T梁的重力密度为253 6 T梁简图如下图

主梁横截面图 二、 设计步骤与方法 Ⅰ. 行车道板的力计算和组合 (一)恒载及其力(以纵向 1m 宽的板条进行计算) 1)每延米板上的恒载 g 沥青表面 1g : 0.05×1.0×23 1.15kN m / 混凝土垫层 2g : 0.06×1.0 ×24 1.44kN m / T 梁翼板自重3g :30.080.14g 1.025 2.752+= ??=kN m / 合计:g=g 5.34i =∑kN m / 2)每米宽板条的恒载力 悬臂板长 ()0160180.712l m -= = 弯矩 2211 5.34(0.71) 1.3522 Ag M gl =-=-??=-·kN m 剪力 0 5.340.71 3.79Ag Q gl ==?=kN (二)汽车车辆荷载产生的力

60 50 1)将车辆荷载后轮作用于铰缝轴线上,后轴作用力为 140kN ,轮压分布宽度如图 5 所示,车辆荷载后轮着地长度为 a 2 0.20m ,宽度 b 2 0.60m , 则得: a 1 a 2 2H 0.2 2×0.11 0.42m b 1 b 2 2H 0.6 2× 0.11 0.82m 荷载对于悬臂梁根部的有效分布宽度: 12l 0.421.420.71 3.24m o a a d =++=++?= 2)计算冲击系数μ 结构跨中截面的惯矩c I : 翼板的换算平均高度:()1814112 h =?+=cm 主梁截面重心位置:()()11130 1601811130182241.18160181113018 a -??+??==-?+?cm 则得主梁抗弯惯矩: ()()22 326411111301601811160181141.2181813041.2 6.6310122122c I m ????=?-?+-??-+??130+??-=? ? ????? 结构跨中处单位长度质量c m : 3 315.4510 1.577109.8 c G m g ?===? 22/Ns m 混凝土弹性模量E :

广工 EDA课程设计

i 课 程 设 计 课程名称___VHDL 与集成电路设计___ 题目名称___电子钟VHDL 设计______ 学生学院___物理与光电工程学院___ 专业班级___ __________ 学 号_____________ 学生姓名___ ______________ 指导教师_______________ 2014 年 12 月 19 日

目录 一、前言 (1) 1.1 EDA技术简介 (1) 1.2 EDA的发展前景 (1) 二、设计内容及要求 (1) 2.1设计内容 (1) 2.2 设计要求 (1) 2.3 实验目的 (2) 三、设计原理及框图 (2) 3.1设计原理 (2) 3.2 设计框图 (2) 四、模块程序设计 (4) 4.1 秒、分模块程序及仿真 (4) 4.2 时模块程序及仿真 (6) 4.3 消抖模块 (7) 4.4 顶层文件设计 (8) 五、调试 (11) 六、心得总结 (12) 参考文献 (12) ii

一、前言 1.1 EDA技术简介 电子系统设计自动化(EDA: Electronic Design Automation)已成为不可逆转的潮流,它是包含CAD、CAE、CAM等与计算机辅助设计或设计自动化等相关技术的总称。随着信息时代的到来,信息电子产品已不断地向系统高度集成化和高度微型化发展,使得传统的手工设计和生产技术无法满足信息产品的社会和市场需要,因此,人们开始借助于EDA技术进行产品的设计和开发。目前EDA 技术主要是以计算机软件工具形式表现出来的,对于现代复杂的电子产品设计和开发来说,一般需要考虑“自上而下”三个不同层次内容的设计(即:系统结构级设计,PCB板级设计和IC集成芯片级设计)。Protel DXP软件系统是一套建立在IBM兼容PC环境下的CAD电路集成设计系统,它是世界上第一套EDA环境引入到Windows环境的EDA开发工具,具有高度的集成性和可扩展性。本设计就是利用Protel DXP 进行原理图设计、PCB布局布线、进行电路仿真测试。通过本设计充分了解到Protel DXP的特点并且充分掌握了Protel DXP的设计系统的基础知识。 1.2 EDA的发展前景 随着微电子技术和计算机技术的不断发展,在涉及通信、国防、航天、工业自动化、仪器仪表等领域工作中,EDA技术的含量以惊人的速度上升,从而使它成为当今电子技术发展的前言之一。 由于在电子系统设计领域中的明显优势,基于大规模可编程器件解决方案的EDA技术及其应用在近年中有了巨大的发展,将电子发展技术再次推向了又一崭新的历史阶段。这些新的发展大致包含了这样6个方面:1.新器件;2.新工具软件;3.嵌入式系统设计;4.DSP系统设计;5.计算机处理器设计;6.与ASIC市场的竞争技术。 二、设计内容及要求 2.1设计内容 设计一个电子钟,要求可以显示时、分、秒,用户可以设置时间。 2.2 设计要求 ①设计思路清晰,整体设计给出框图,提供顶层电路图; ②应用vhdl完成各次级模块设计,绘出具体设计程序; 1

数据库课程设计超市管理系统(广工)

课程名称数据库系统 题目名称小型超市管理系统学生学院计算机学院 专业班级 学号 学生姓名 指导教师 2013 年 1 月

目录 1 引言 (1) 1.1课题来源 (1) 1.2课题研究主要内容 (1) 1.3主要工作 (1) 2 开发工具和平台 (1) 3 命名约定 (1) 4 需求分析 (2) 4.1信息要求分析 (2) 4.2处理要求分析 (2) 5 概念结构设计 (3) 5.1数据实体描述及分ER图 (3) 5.2整体ER图 (3) 6 系统概要设计 (4) 6.1数据库逻辑结构设计 (4) 6.2数据库物理设计 (6) 6.3系统总体框架 (7) 7 系统详细设计 (7) 7.1数据库实施 (7) 7.2数据库的数据完整性设计 (9) 7.3数据的安全设计 (10) 7.4系统功能模块的设计与实现 (11) 7.5系统安装使用说明 (21) 8 回顾与展望 (21) 参考文献 (22)

1 引言 1.1课题来源 到超市购物是一种较为频繁的生活事件。由于人们的超市购物行为越来越频繁,超市规模越来越大,商品种类数目与之俱增,超市商品的管理变得更加困难。显然手工的管理方式是不合适的。因此利用数据库相关技术开发一个规模适当、操作方便、功能完备的超市管理系统显得很有必要。 1.2课题研究主要内容 使用数据库管理系统和应用程序实现小型超市管理系统的商品销售结算,销售情况管理,商品信息管理,库存管理,权限管理等功能。 1.3主要工作 先对小型超市管理系统的设计进行需求分析,建立数据流图和数据字典。进行概念结构设计,作出E-R图并进行优化。进行逻辑结构设计,建立数据关系模型。进行物理结构设计,选择适当的存取方法。利用数据库管理系统按前面的分析设计作出若于基本表,根据应用程序和用户的需要建立视图。最后进行应用程序的设计、调试、运行。 2 开发工具和平台 数据库管理系统:Microsoft SQL Server 2008 程序设计语言:Java 1.6 应用程序开发工具:eclipse 测试平台 Windows 7 64bit 3 命名约定 表名和属性名的首字母大写(虽然SQL语言不分大小写,但设计过程仍遵守这一约定), 1

11年软件工程课程设计-课程设计报告(广东工业大学)

课程设计 课程名:管理信息系统 题目名称:学生学籍管理系统学生学院:轻工化工学院 专业班级:07生物工程(1)班学号:3107002327 学生姓名:郑欣鹏 指导教师:武悦博士 20010年1月13日

摘要 本报告论述的学生学籍管理是必不可少的管理查询系统,该系统主要解决了学生信息查询管理在实践中的问题。 本报告论述了学生学籍管理系统开发的目标和实现的功能,并重点介绍了系统分析、系统设计、系统测试和系统实施的全过程。在描述系统分析和系统设计过程中,为了使该系统的开发过程具有规范化,为此,本报告确定了开发系统的指导思想:一、运用了规范化的设计思想。二、从实际应用出发,为求实用。三、以VFP(Visual Foxpro)的数据库应用程序的设计和开发为主,开发一个适应学生学籍信息查询管理的系统。 本报告分为四章编写,第一章是系统分析,系统分析是对系统的现状进行分析。根据系统的目标、需求分析和功能分析,制定和选择一个较好的系统方案,从而达到一个合理的优化系统。第二章是数据库设计和结构创建,数据库设计的全过程,可以相应地分成三个阶段:第一个阶段为数据库需求分析阶段,第二个阶段为建立概念性数据模型,第三个阶段为逻辑设计阶段。第三章是系统设计,系统设计的目的是最大限度地运用系统分析的结果,设计出能最大限度地满足要求的系统。第四章是系统测试和系统运行,系统测试的目的是为了找出错误,修正错误,使系统真正达到要求。

目录 概述 (1) 一.系统分析 (1) 1.1 用户需求 (1) 1.2 信息需求分析 (2) 1.3 系统功能分析 (2) 1.4 功能分析 (2) 二.数据库概念模型设计 (3) 2.1 构思ERD的4条原则 (3) 2.2 设计E-R图 (3) 三.数据库逻辑模型设计 (4) 3.1 一般逻辑模型设计 (4) 3.11 由ERD导出一般关系模型的四条原则 (4) 3.12 数据库初步的关系框架 (5) 3.2 具体逻辑模型设计 (5) 四. 数据库物理设计与数据库保护设计 (7) 4.1 设计索引 (7) 4.2 设计表间关系 (8) 五.处理功能设计 (8) 5.1 主控模块设计 (8) 5.2 子模块设计 (9) 5.21 设计输入 (9) 5.22学生信息录入表单 (12) 5.23学生信息修改表单 (14) 六. 数据库应用系统的实现 (16) 6.1 数据库及其表结构的建立 (16)

广东工业大学 操作系统 真题 附答案

学院: 专业: 学号: 姓名: 装 订 线 广东工业大学考试试卷 ( A ) 课程名称: 操 作 系 统 考试时间: 第 周星期 ( 年 月 日) 题 号 一 二 三 四 五 总分 评卷得分 评卷签名 复核得分 复核签名 一、 填空题:(每空1分,共20分) 1. 操作系统有多种类型:(1)允许多个用户以交互方式使用计算机的操作系统,称 为 ;(2)允许多个用户将若干个作业提交给计算机系统集中处理的操作系统称为 ;(3)使计算机系统能及时处理由过程控制反馈的数据并作出响应的操作系统称为 。 2. 进程是对正在运行程序的一次抽象。有时进程必须相互作用,这种相互作用会导致 竞争条件,为了避免竞争条件,OS 引进了 的概念,它是满足如下条件的一段代码: 在这段代码中某一时刻只有一个进程访问共享区域。 3. 产生死锁的原因是: ; 。 4. 固定式分区产生 零头,可变式分区产生 零头。 5. 四种I/O 控制方式是 、 、 、 和 。 6. 在设计I/O 软件时,一个关键的概念是 ,它的基本含义是应用程序 独立于具体使用的物理设备. 7. 文件的物理结构有三种: 、 、 。 8. 完成一个磁盘服务请求的总时间由 、 、 组成。 9. 在UNIX 系统中,可通过系统调用 来创建进程。

二、单项选择题:(每题1分,共10分)Array 1. 操作系统是对 ( ) 进行管理的软件。 A.软件 B.硬件 C.计算机资源 D.应用程序 1.分配到必要的资源但未获得处理机时的进程状态是 ( ) 。 A.就绪状态 B.执行状态 C.阻塞状态 D.撤销状态 2.( )是操作系统中最重要、最基本的概念之一,它是系统分配资源的基本单位, 是一个具有独立功能的程序段对某个数据集的一次执行活动。 A. 程序 B. 作业 C. 进程 D. 线程 3.下面 ( ) 算法不是进程调度算法。 A.LRU B.FCFS C.SJF D.HPF 4.关于存储器管理,以下说法错误的是()。 A.虚拟存储器是由指令的寻址方式所决定的进程寻址空间,由内外存共同组成。 B.覆盖、交换、请求式调入和预调入都是操作系统控制内存和外存数据流动的方式。 C.内存信息保护方法有:上下界保护法、保护键法、软件法等。 D.内存分配算法中,最佳适应算法比首次适应算法具有更好的内存利用率。 5.位示图法可用于()。 A.文件目录的查找 B.分页式存储管理中主存空闲块的分配和回收 C. 页式虚拟存储管理中的页面置换 D. 可变式存储管理中空闲区的分配和回收 6.现有三个作业同时到达,每个作业的计算时间均为2小时,它们在一台处理机上按单 道方式运行,则平均周转时间为() A.2小时 B.3小时 C.4小时 D.6小时 7.进程控制块是描述进程状态和特性的数据结构,一个进程()。 A.可以有多个进程控制块 B.可以和其他进程共用一个进程控制块 C.可以没有进程控制块 D.只能有惟一的进程控制块 8.在可变式分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区 合并,为此需修改空闲区表,造成空闲区数加1的情况是( ) A.无上邻空闲区,也无下邻空闲区 B.有上邻空闲区,但无下邻空闲区 C.有下邻空闲区,但无上邻空闲区 D.有上邻空闲区,也有下邻空闲区 9.用户程序通过系统调用creat来创建一新文件时,在执行creat()的过程中,用户进 程运行在下。 A.系统态 B.用户态 C.系统态或用户态 D.目态 三、判断题(每题 1 分,共 10 分) 1.实时系统在响应时间、可靠性及交互作用能力等方面一般都比分时系统要求高。() 2.多个进程可以对应于同一个程序,且一个进程也可以执行多个程序。() 3.系统处于不安全状态也可能不会产生死锁。( ) 4.虚拟存储器是一个假想的地址空间,因而这个地址的大小是没有限制的。() 5.设备独立性是指系统具有使用不同设备的能力。() 6.隐式链接结构可以提高文件存储空间的利用率,但不适合文件的随机存取。() 7.为了提高磁盘对换空间的利用率,一般对其使用离散的分配方式。( ) 8.线程是调度的基本单位,但不是资源分配的基本单位。( ) 9.访问控制矩阵比访问控制表更节约空间。( ) 10.在UNIX文件系统中,文件的路径名和磁盘索引结点之间是一一对应的。( )

桥梁工程课程设计

广东工业大学课程设计任务书 一、课程设计的内容 1、教学目的: 学生通过桥梁工程设计的训练,可以进一步掌握在桥梁工程课本中所学到理论知识,并经过亲自做桥梁工程设计来熟悉设计方法、计算理论、计算公式,熟悉在桥梁设计中如何运用桥梁规范,为今后的毕业设计及走上工作岗位打下一个良好的专业基础。 2、设计基本资料: 说明:学生共分为四个小组,每个小组基本资料不同,简支梁主梁高H 分别取为:130CM、133CM、135CM、139CM,见图1。 1)桥面净宽:净7+2×0.75M 2)设计荷载:汽车“公路—Ⅰ级,人群荷载:3KN/M2 3)材料:主筋:Ⅱ级,构造筋:Ⅰ级 混凝土:桥面铺装:C25,主梁:C30 4)结构尺寸:详见图1、图2 主梁:计算跨径:L=1950cm 全长:L=1996cm 人行道、栏杆每延米(两侧)重2.0KN/m(为每片主梁分到的值)。 沥青混凝土厚2cm

3、设计计算内容: 1)计算行车道板内力,并据此计算和配置翼板主筋。 行车道板按铰接板计算; 汽车荷载:按车辆荷载计算。 2)主梁设计计算: ①、计算主梁1#、2#、3#在汽车、人群荷载作用下的横向分布系数。 支点用杠杆法,跨中用G —M 法。 ②、桥梁沿跨长纵向按IL(影响线)布载求活载内力。 ③、计算活载跨中弯矩时,不考虑横向分布系数沿桥长方向的变化,计 算支点活载剪力时,要计入横向分布系数沿跨长方向的变化的影响。 ④、主梁控制截面:M 中 、M 1/4 、Q 支点 ⑤、主梁跨中截面受拉主筋计算(其余钢筋不算)。 ⑥、计算活载挠度及预拱度。参见教材第172页公式。 3)横隔梁内力计算,并据此计算配置主筋(按T 形截面配置下缘受拉主筋)。 说明:①、横隔梁内力计算采用“偏心法”,取中横隔梁计算。 ②、控制截面:M 3、M 2-3、Q 1右、Q 1-2右 4、绘图内容: 1)上部构造纵、横剖面图(纵断面只画主梁,参见教材第152页,图2-5-55,但尺寸要改变)。 2)主梁配筋图(参考教材第81页,图2-4-15绘制,但主筋按自己计算值配制,梁高按各组的H 值计)。 二、课程设计的要求与数据 1、 必须严格执行各桥梁设计规范,每一设计步骤都必须按规范的要求进行,要训练会查规范、会用规范。 2、 设计中多参阅有关资料,特别是对于没有设计经验的初学者来讲, 更应多借鉴前人的设计经验和实例。 3、 绘制桥梁设计图时必须按桥梁设计图纸的规定进行绘制,从线形、 布置、到标注方式都力求准确无误,不得自行、随意设定图中的各项参 图 2

[精编]数据库课程设计(酒店管理系统)

计算机与通信工程学院 数据库课程设计(酒店 管理系统)

数据库系统课程设计报告题目: 酒店管理系统 课程代号:0680036 课程名称:数据库系统课程设计 学号: 姓名: 班级: 指导教师 完成日期:2011年4月 目录 第一章引言 第二章系统分析与设计 2.1需求分析 2.2结构设计 2.3数据库设计 第三章系统开发及实现

3.1创建主窗体 3.2创建子窗体 3.3建立公共模块 第四章总结 参考文献 附录(附部分源代码) 第一章引言 酒店管理系统是现代服务行业不可缺少的一个组成环节。 酒店管理信息系统是一个由人、计算机和数据库组成的进行酒店经营管理的系统,通过对信息的收集、传递、整理、加工、维护和使用,提高管理水平和效率,从而实现酒店管理的自动化、规范化和人性化。 本文简要介绍了基于Microsoft和VB程序语言开发实现的酒店管理系统,着重阐述了该系统开发实现过程,从系统的需求分析、方案论证、模块设计、数据设计、详细设计到系统测试等各个环节都进行了较为详尽的分析和描述。 关键词:酒店管理系统、Access、数据库、VB 第二章系统分析与设计 2.1需求分析 在进行一个项目的设计之前,首先要进行必要的需求分析。酒店需要管理各种人员和入住信息,希望实现酒店的信息化管理,通过建立一个酒店管理系统来管理酒店的日常业务。其完成功能如下: 1、能够实现对客人的登记信息查询,包括逐个浏览,以及对客人资料的增加、删除和编辑操作。

2、能够的酒店人员值班情况进行管理。 3、管理人员也可以直接增加和删除用户信息。 系统功能模块图如图1所示。 图1系统的功能模块图 根据功能模块图设计划出的实体有散客入住实体、团队入住实体、投诉管理实体、值班管理实体。 散客入住实体E-R如图2所示。 团队入住实体E-R如图3所示 投诉管理实体E-R图如图4所示 值班管理实体E-R图如图5所示 2.2 统Access即可。他们之间的关系如图6所示。

广东工业大学信息安全课程设计

网络与信息安全实验报告 学院计算机学院 专业计算机科学与技术班级08级计科5 班学号3108006629 姓名蒋子源 指导教师何晓桃 2011年12 月

实验一数字证书的创建 实验项目名称:数字证书的创建 实验项目性质:验证型 所属课程名称:《网络与信息安全》 实验计划学时:2 一、实验目的 1、理解数字证书的概念; 2、掌握创建数字证书的创建; 3、掌握数字证书的签发; 二、实验内容和要求 1、使用Java中Keytool工具创建数字证书 2、使用Keytool工具显示及导出数字证书 3、使用Java程序签发数字证书 三、实验主要仪器设备和材料 1.计算机及操作系统:PC机,Windows 2000/xp; 2.JDK1.5 四、实验方法、步骤及结果测试 创建两个数字证书:使用别名、指定算法、密钥库和有效期的方式创建两个数字证书。 显示并且导出已创建的数字证书的内容。 签发数字证书。 1、创建数字证书: (1)使用Keytool直接从密钥库显示证书详细信息 (2)使用Keytool将数字证书导出到文件 (3)在Windows中从文件显示证书 实现代码及截图:

3、Java程序签发数字证书

五、实验中出现的问题及解决方案 六、思考题 1、数字证书的功能是什么? 答:数字证书的四大功能: 数字证书功能一:信息的保密性 网络业务处理中的各类信息均有不同程度的保密要求。 数字证书功能二:网络通讯双方身份的确定性 CA中心颁发的数字证书可保证网上通讯双方的身份,行政服务中心、银行和电子商务公司可以通过CA认证确认身份,放心的开展网上业务。 数字证书功能三:不可否认性 CA中心颁发的所有数字证书类型都确保了电子交易通信过程的各个环节的不可否认性,使交易双方的利益不受到损害。 数字证书功能四:不可修改性 CA中心颁发的数字证书也确保了电子交易文件的不可修改性,以保障交易的严肃和公正。2、k eytool –genkey 所产生证书的签发者是谁? 答:证书认证中心(CA)。

数据库实验报告大全 广工 蔡延光版

自动化学院自动化专业班学号 姓名实验时间2011.3.14 教师评定 实验题目数据定义 实验报告一 一、实验目的与要求 目的:使用SQL语言实现数据库的创建、删除;基本表的创建、删除、更新工作;以及索引的创建、删除工作。 要求:1、在SQL SERVER 2000查询分析器中,利用SQL语言中CREATE、DROP 命令实现数据库的创建及删除工作。 2、在SQL SERVER 2000查询分析器中,利用SQL语言中CREATE、ALTER及DROP命令进行基本表的创建、更新、删除工作,并实现基本表中各类完整性约束条件的限定。 3、在SQL SERVER 2000查询分析器中,利用SQL语言中CREATE、ALTER及DROP命令进行基本表中索引的创建、更新、删除工作。 4、完成上述工作后,在SQL SERVER 2000企业管理器中,查看是否成功创建实验所要求数据库、基本表、各类完整性约束条件及索引等内容。 二、实验方案 所有实验内容必须在SQL Server 2000的查询分析器中完成,设置查询分析器的结果区为Standard Execute(标准执行)或Executed Grid(网格执行)方式.发布执行命令.并在结果区中查看查询结果,如果结果不正确则需要进行修改,直到正确为止。要求完成如下内容: 1.定义数据库 定义一个借阅数据库,要求所定义的数据库大小为1M,且数据库名称为Labery_学号。 2.定义下列数据库基本表 在所定义的借阅数据库Labery_学号中,按要求定义如下数据库表: 1)书(book)

列名别名类型及长度是否可为空书号bno char(8)否 类别category varchar(10)否 书名title varchar(40)否 出版社press varchar(30)是 年份book_year Int否 作者author char(20)是 价格price decimal(7,2)否 总藏书量book_total Int否 2)借书证(card) 列名别名类型及长度是否可为空卡号cno char(7)否 姓名name char(8)否 单位department varchar(40)是 类别type char(1)否 3)借书记录(borrow) 列名别名类型及长度是否可为空卡号cno char(7)否 书号bno char(8)否 借书日期borrow_date smalldatetime否 还书日期return_date smalldatetime是 3.完整性约束条件: 主要内容为: 1)确定各基本表的主码; 2)确定各基本表的外码; 3)要求在定义各基本表的同时,确定如下完整性约束条件 1、定义各基本表主码,并且要求主属性不能为空; 2、如果有外码,定义各基本表外码; 3、要求检查借书证中属性Type的值是否为('T','G','U','F')); 4、借书记录borrow基本表中borrow_date默认日期为当前时间。4)确定各基本表哪些字段需要建立索引。

学生信息管理系统数据库课程设计

1概述 学生信息管理系统是学校管理的重要工具,是学校不可或缺的部分。随着在校大学生人数的不断增加,教务系统的数量也不断的上涨,。学校工作繁杂、资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。并且这种传统的方式存在着很多的弊端,如:保密性差、查询不便、效率低,很难维护和更新等。然而,本系统针对以上缺点能够极大地提高学生信息管理的效率,也是科学化、正规化的管理,与世界接轨的重要条件。所以如何自动高效地管理信息是这些年来许多人所研究的。 随着这些年电脑计算机的速度质的提高,成本的下降,IT互联网大众趋势的发展。我们使用电脑的高效率才处理数据信息成为可能。学生学籍管理系统的出现,正是管理人员与信息数据,计算机的进入互动时代的体现。友好的人机交互模式,清晰简明的图形界面,高效安全的操作使得我们对成千上万的信息的管理得心应手。通过这个系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量?毋庸置疑,切实有效地把 计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有 着显著意义? 2需求与功能分析 学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强。该系统实现的大致功能:用户登陆。提供了学生学籍信息的查询,相关科目的成绩查询和排名,修改登录密码等功能。教师管理。提供了对学生学籍信息的查询,添加,修改,删除;学生成绩的录入,修改,删除,查询班级排名。修改密码等功能。管理员管理。拥有最高的权限。允许添加教师信息和课程信息等。其提供了简单、方便的操作。 3 概要设计 3.1功能模块图 功能模块图,如下图3.1所示

广东工业大学课程设计-1

广东工业大学数控技术课程设计任务书 题目名称数控系统的计算机仿真实现 学生学院机电工程学院专业班级机械设计制造及其自动化 姓名小组1 学 号 一、课程设计的内容 对于给定的一段NC 代码,用VB 或其他高级语言编写程序解释、插补,在PC 机上仿真数控装置,进行图形描绘、坐标值显示、步进电机控制模拟显示及信号输出、冷却液和主轴开关量控制模拟显示及信号输出。 二、课程设计的要求与数据 具体要求如下: (1)NC 代码中包含的代码类型有: G90G54(G92)G00G01G02G03M03M05M08M09M30 例:下面给出一个具体的图形示意图,NC 代码及其加工轨迹图: 图1 工件平面图 %O0000 N106G0G90G54X10.Y20.M03M08N108Z50.N110Z10. N112G1Z-1.N114Y15.0 N118G2X15.Y13.09J7.5N120X20.Y15.I-5.0J5.59N122G1Y20.0N126X10.N128G0Z50.N130M5M09N136M30% (2)、要求根据NC 代码屏幕模拟加工过程,图形显示位置,坐标值显示,辅助功能状态显示(冷却液和主轴开关量控制模拟显示)。 (3)、PC 机模拟加工过程中,要求有实时的驱动三轴步进电机的控制信号、控制冷却液和主轴转动的开关量输出控制信号。假设信号从计算机并行打印口的数据信号线输出,端口地址为0x378。并行口数据线分配如下(低电平有效): 图2加工仿真示意图

表一并行口数据线信号定义 数据线 信号 D0D1D2D3D4D5D6D7 定义PulseX DirX PulseY DirY PulseZ DirZ主轴控制信 号冷却液控制信号 三、课程设计应完成的工作 每个学生应在规定时间内,独立完成所选题目。运用VB编程语言,编写计算机软件在WINDOWS实现数控装置的计算机仿真。要求清楚地分析问题、提出算法、确定人机界面、列出流程图,最后用程序验证,完成软件测试,并且提交程序说明书。 对选择典型零件编程题目的学生,要求用编写计算机软件的方法解决数控过程的一个问题。可以任选用本人熟悉的一种编程语言,要求清楚地分析问题、提出算法、列出流程图,最后用程序验证,并且提交程序说明书。 四、课程设计进程安排 序号设计各阶段内容地点起止日期 11、布置任务,领取课程设计任务书,了解课程设计的目 的、内容和要求;了解课程设计的步骤; 2、理解本课程设计题目的具体内容要求,根据各自不同 情况选择题目; 教室第18周~ 第20周 2了解和掌握有关软件开发的知识,如VB编程、VC编程、软件工程、软件开发的常用技巧及注意事项; 3调查研究,收集资料,查阅文献。学生对所选题目进行论 证及确定设计方案, 4掌握数控结构设计要求,具体技术指标和计算要求;进行机械结构设计或者软件设计; 5进行数控系统和算法的软件编程与开发,初步实现系统的 基本功能 6通过多个实例来验证和改进系统功能,完善软件界面7对所开发的软件程序进行标识和说明 8按要求的格式编制课程设计说明书 9课程设计答辩 五、应收集的资料及主要参考文献

混凝土桥课程设计

混凝土桥课程设计计算书 第一章混凝土桥课程设计任务书 1. 设计题目:客运专线40m预应力混凝土双线简支箱梁设计 2. 设计资料 (1)桥面布置如图1所示,桥面宽度:12.6m; (2)设计荷载:ZK活载; (3)桥面二恒:190KN/m; (4)主梁跨径:主梁全长40m; (5)结构尺寸图,根据预应力混凝土简支箱梁桥的构造要求设计,可参照图1。 图1 桥面布置图 3. 设计依据 (1)《铁路桥涵设计基本规范》(TB10002.1-2005); (2)《铁路桥涵钢筋混凝土和预应力混凝土结构设计规范》TB10002.3-2005);(3)《铁路混凝土结构耐久性设计暂行规定》(铁建设函(2005)157号);(4)《新建铁路桥上无缝线路设计暂行规定》(铁建设函(2003)205号);(5)《高速铁路设计规范(试行)》(TB 10621-2009); 4. 设计内容 (1)进行上部结构的构造布置并初步拟定各部分尺寸。

(2)主梁的设计: <1> 主梁内力计算 <2> 主梁预应力钢筋配置及验算 <3> 行车道板内力计算及设计 <4> 绘制主梁设计图(包括主梁构造图和配筋图) 5. 设计成果要求: 设计计算书:设计计算说明书用Word文档或手写。整个说明书应满足计算过程完整、计算步骤清楚、文字简明、符号规范的要求。封面、任务书和计算说明书用A4纸张打印,按封面、任务书、计算说明书的顺序一起装订成册,交指导老师评阅。 图纸:要求图面整洁美观,比例适当,图中字体采用仿宋体,严格按制图标准作图。图幅为A3图。 第二章主梁纵向计算 一、设计依据及设计资料 1、设计依据: (1)《铁路桥涵设计基本规范》(TB10002.1-2005); (2)《铁路桥涵钢筋混凝土和预应力混凝土结构设计规范》(TB10002.3-2005); (3)《京沪高速铁路设计暂行规定》(铁建设函(2004)157号)。 2、设计条件: (1)线路情况:有砟桥面,双线,线间距5.8m;。 (2)环境类别及作用等级:环境作用等级为L1级; (3)施工方法:支架现浇施工。 3.结构形式: (1)截面类型为单箱单室等高度简支箱梁,直线梁,梁端顶板、底板及腹板局部向内侧加强; (2)桥跨布置:梁长为40m,计算跨度为38.5m; (3)桥面宽度:挡砟墙内侧净宽9.6m,挡砟墙宽0.2m;人行道宽1.3m,人行道采用悬臂板方式;上

数据库课程设计学生信息管理系统

数据库程序设计说明书 一.引言 本程序是一个学生信息数据库系统的程序,随着效率和质量提出 了越来越高的要求。学生管理信息系统广泛地应用于各大中院校的学生管理工作过程中,几乎每个进行了信息化建设的学校都建设了学生管理信息系统。 对于大型和结构复杂、内容繁多的学生数据库,都要实现方便的管理。 数据管理离不开数据库系统的支持。由于数据库系统一般用户难以熟悉和正确操作,所以开发数据库连接程序提供友好的界面,方便用户提高效率和操作的准确性。 二.编写目的 本说明数据库程序设计需要解决的问题以及问题的性质、程序目标、程序规模等。并且为了用户对系统的要求,使编程人员可以及时发现软件的缺点和不足,进一步认识问题所在。该说明书可供设计人员和开发人员参考,也可供用户阅读,对系统的需求提出意见。 开发本软件的目的是给学生数据库提供一个操作控制系统,可以对数据库进行查询、添加、删除、修改、SQL语言高级操作。 三.背景 学校部门中有着相当庞大的数据内容,而这些数据只是作为单纯数据摆放在电脑里,并没有真正使这些数据起到更大的作用。大量数据的手工操作也会是数据操作错误增加,而且还使得相关的工作更加冗长、繁锁,为了使这些数据为使用者起到更多的作用,为管理人员提供依据与分析,建立起了自己的数据库系统,由计算机管理代替手工操作,进行收集、管理业务数据,从而提高操作人员的工作效率。 数据库技术是当今信息管理的最新技术,其核心就是数据库管理系统(简称DBMS)。DBMS是各类管理信息系统的支撑平台,也是信息化建设中需求量最大、应用最广泛的基础性软件。

四、系统需求分析 1.要求系统可以准确地记录和查询学生信息,包括学生的姓名、单位、年龄、性别等。 2.要求系统可以准确地记录学生地每一次奖惩情况以及每次的缺勤情况。 3.系统可以对课程情况进行管理,包括设置课程名称、修改课程的名称等。 4.系统应该可以对基础数据进行维护。 5.系统应该有很好的可扩展性。 学生成绩管理工作是学校学生管理工作的重要组成部分,现在相当一部分学校的学生成绩管理工作仍沿用手工方式。随着学校规模的扩大、学生人数的增加,效率低下、容易出错的手工方式越来越不适应实际管理工作的需要,按照软件工程原理和数据库技术开发学生成绩管理系统已成为学生管理部门的迫切需要。本实验实现的学生成绩管理系统主要包括以下功能: 1.完成数据的录入和修改,并提交数据库保存。其中的数据包括:学生信 息、课程设置、学生成绩以及操作员信息等; 2.实现信息查询。主要包括:学生信息查询、课程信息查询和成绩查询等; 3.具备一定的安全性管理功能。包括操作员的权限设置、密码设置、重新登 录等功能。

相关文档
最新文档