当前位置:文档之家› 编译原理课程设计实验报告

编译原理课程设计实验报告

编译原理课程设计实验报告
编译原理课程设计实验报告

编译原理课程设计实验报告

班级:软件班

姓名:王玮

学号:

指导老师:易萍雯

完成日期:

实验目的

通过实践掌握编译程序的设计原理和实现算法,构造词法分析、语法分析及语义分析和中间代码产生程序。

实验要求

对某特定高级程序语言,

1、构造其词法规则。该语言的单词符号包括(如下表所示):保留字、标识符、(字母大小写不敏感)、整型常数、界符及运算符。

实现识别该语言的词法分析器;

按单词符号出现的顺序,返回二元组序列;

出现的标识符存放在标识符表,整型常数存放在常数表;

可以正确处理注释,包括:段注释(* *),行注释();

为便于后续的出错处理,应以适当方式保留单词所在行号。

、构造其语法规则。实现识别该语言的语法分析器。(可以选用:细化的递归下降程序,或预测分析程序等)

按语法单位出现的顺序,返回识别出的语法单位序列;

出现的语法错误,可以指出错误位置,及错误原因;

出现的标识符存放在标识符表,整型常数存放在常数表。

、在其语法规则的基础上,构造其属性文法。实现识别该语言的语义分析器。对语言的每种语言成分,均可以正确分析,并产生相应的四元式序列;

四元式可以区分出:用户自定义变量,临时变量;

对控制语句,拉链处理()正确;

出现的语义错误,可以指出错误位置,及错误原因;

出现的标识符存放在标识符表,整型常数存放在常数表。

该语言的语法单位如下:

序号语言成分具体内容

程序程序名定义语句序列复合语句

定义语句序列多条定义语句,定义语句形如: ;

算术表达式带有:、*、括号等运算

布尔表达式带有:与、或、非、比较、括号等运算

语句赋值语句例

分支语句(,)

循环语句()

复合语句 (、扩起的多条语句) ,语句之间以“;”号隔开

实验内容描述及分析

.该语言文法的形式化描述(方式)

待分析的简单语言的语法描述(用扩充的范式表示)如下:

<程序> ;<定义变量语句><语句块>

<定义变量语句> <标识符串>

<标识符串><标识符>{,<标识符>}

<语句块><语句>{;<语句>}

<语句><赋值语句><选择语句><选择语句><循环语句><复合语句> 空

<赋值语句> <表达式>

<选择语句><布尔表达式><语句>

<选择语句><布尔表达式><语句><语句>

<循环语句><布尔表达式><语句>

<复合语句><语句块>

<布尔表达式><布尔表达式> <布尔表达式><布尔表达式> <布尔表达式><布尔表达式> <布尔表达式> <表达式> <关系> <表达式>

<关系> >><<<>

<表达式><项>{<项>}

<项><因子>{*<因子>}

<因子>(<表达式>)

注:其中表示标识符,表示整形常数。

.该语言的语义规则(属性文法)

产生式语义规则

{ (, , —,()) }

→{ ;

(,,,) }

→*{ ;

(*,,, ) }

→-{ ;

( ,,—, ) }

→ (){ }→{ () }

→{ ();

();

( ,(),—, );

( ,—,—, ) }

→{ ();

();

( ,(),(), );

( ,—,—, ) }

→┐{ ;

; }

→ ( ) { ;

; } →ε{ ; }

→∧{ (, ); ;

(. )}

→∨{ (. , ); (. , . ); . }

→{ (, ); (, ) }

→ε

{ ();

( , — , — , ) }

→{ (, );

(, );

(,

, ) }

→{ (, );

( , — , — , ); (, );

}

→{ }

→;{ (, ); }

3.运行环境介绍

是通过语言来编写的该程序,该程序的运行环境为 .

.关键算法的流程图及文字解释

本程序先进行词法分析,调用()函数,将词法分析的结果存储在一个结构体数组中,也就是缓冲区。之后通过缓冲区进行语法分析及语义分析。本程序采用的是LR分析,保存了三个LR分析表,分别为语句的分析表、赋值表达式的分析表和布尔表达式的分析表。其中关键的函数为(),进行语句处理及语义分析;函数()进行赋值表达式的语义分析;函数()进行布尔表达式的语义分析。

下面就函数()的大致流程作一下说明:

首先,根据当前状态栈的栈顶元素及输入符号的信息,查询赋值表达式的LR分析表(LR分析表为事先计算好的),得到其action值,如果这个值为-1,则表示出错;如果这个值大于等于0,小于10,则进行“移进”操作,将当前符号进入赋值表达式的符号缓冲区sstack;如果这个值大于等于100,小于105,则进行“归约”操作,产生新的临时变量,并产生相应的四元式,弹出相应符号进行归约,将产生式左入栈,将新的变量如符号缓冲区。

算数表达式语义分析过程流程图如下所示:

5.程序之间的衔接

首先读入源程序,调用词法分析程序进行词法分析,词法分析完成之后,将词法分析的结果存入结构体数组作缓冲区。然后利用词法分析的结果进行语法分析及语义分析,对相应语句、赋值表达式及布尔表达式进行归约,并产生中间代码四元式。

测试报告

测试用例

;

;

* *

()*(*);

;

;

> <

;

> *;

< ;

<> ;

.

测试结果

实验总结

在前两次词法分析、语法分析实验的基础上,加入语义分析,进行了本次实验。能够产生中间代码序列。通过此次实验我对编译程序实现的基本理论、算法有了更为深入的理解和掌握。尤其对语句的归约和四元式的产生算法和基本原理更为了解。对C++语言也更为熟悉。最后感谢易萍雯老师的指导。

附实验源程序

""

;

("");

************************

* *

* *

*********************************

'\'; *从字符缓冲区读取当前字符* ; *词法分析结果缓冲区计数器* []{""}; *存放识别的字*

[]{""}; *一行字符缓冲区,最多个字符* *; *字符缓冲区指针*

[][]; *变量名表,共项,每项长度*

{

; *真值*

; *假值*

}[]; *在布尔表达式中保存有关布尔变量的真、假值* ; *指向的指针*

{ *存放临时变量的表的定义*

[];

;

};

*(保留字表)匹配表的结构,用来与输入缓冲区中的单词进行匹配* *匹配表初始化,大小为*

[]{{""},

{""},

{""},

{""},

{""},

{""},

{""},

{""},

{""},

{""}};

{

; *存放名字*

; *存放名字所对应的地址*

}[], *词法分析结果缓冲区*

, *读取二元式的当前字符*

, *当前表达式中的字符*

, *非终结符*

[], *算术或布尔表达式加工处理使用的符号栈*

[], *算术或布尔表达式使用的缓冲区*

[]; *语法分析加工处理使用的符号栈*

; *四元式中空白位置*

{

[];

;

;

;

}[]; *四元式的结构定义*

; *指向栈指针*

*; *指向词法分析缓冲区的指针*

; *词法分析中记录单词的长度*

; *源程序行数记数,源程序长度*

; *变量名表指针*

; *临时变量计数器*

; *指向下一个形成的四元式的地址*

*每次执行()时,地址自动增*

; *扫描分析表过程中保存的当前状态值*

; *扫描分析表或表所保存的当前状态值*

; *查找分析表时状态栈的栈顶指针*

[]; *状态栈的定义*

; *状态栈的栈顶指针*

; *算术或布尔表达式缓冲区指针*

{

; *记录下一条四元式的地址*

; *真值链*

; *假值链*

}[]; *记录语句嵌套层次的数组,*

*即记录嵌套中每层的布尔表达式的首地址* []; *记录语句嵌套层次的数组,*

*即记录每层之前的四元式地址*

, *数组指针*

; *数组指针*

; *,为赋值语句;,为布尔表达式。*

**************程序语句分析表********************* [][]

** {{},

** {},

** {},

** {},

** {},

** {,},

** {},

** {},

** {},

** {},

** {},

** {},

** {},

** {},

** {},

** {},

** {},

** {}};

**************算术表示式的分析表************************ [][]

** {{},

** {},

** {},

** {},

** {},

** {},

** {},

** {},

** {},

** {}};

*************布尔表示式的分析表********************

[][]

** {{},

** {},

** {},

** {},

** {},

** {},

** {},

** {},

** {},

** {},

** {},

** {},

** {},

** {},

** {},

** {}};

*************从文件读一行到缓冲区*************

()

{

;

;

(() '\')

{

*;

;

();

}

*'\';

;

}

*************从缓冲区读取一个字符********************* ()

{

('\'())

{

();

;

}

*;

;

}

***************标识符和关键字的识别****************** ( [])

{

;

;

(()(<))

{

(([])) ;

;

}

() ;

;

}

()

{

;

;

;

{

[];

;

();

}(((>'')(<''))((>'')(<'')));

;

[]'\';

(()(<))

{

(([])) ;

;

}

*关键字匹配*

()

{

[][];

}

{

[];

();

()

{

[];

([]);

;

;

}

[];

}

;

(<) []' ';

}

***********************数字的识别********************** ()

{

;

;

{

'';

*;

();

}((>'')(<''));

[];

[];

;

;

}

******************扫描主函数,进行词法分析************************** ()

{

('')

{

()

{

' ' :

;

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

();

;

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

'' :

();

;

'<' :

();

('')

{

[];

}

{

('>') [];

{

[];

;

}

}

[];

;

;

'>' :

();

('')

{

[];

}

{

[];

;

}

[];

;

;

'(' :

[];

;

;

[];

;

;

'' :

[];

;

;

'' :

[];

;

;

'*' :

[];

;

;

':' :

();

('')

[];

;

;

'' :

[];

[];

;

;

';' :

[];

;

;

}

();

}

[];

}

******************************************************************** ()

{

(>>)

{

>;

>;

;

}

}

****************中间变量的生成************************ ()

{

;

;

}

*********************生成四元式************************* ( [] )

{

([]);

[];

[];

[];

[];

[];

;

;

}

***************布尔表示式的匹配****************

( ) 拉链函数

{

;

() ;

{

;

([]) [];

[];

;

}

}

( ) 返填函数

{

;

;

;

()

{

[];

[];

;

}

}

* ************************************************** * ( )

{

()

{

:

:

;

:

;

:

;

:

;

:

;

:

;

:

;

;

}

}

( )

{

()

{

:

:

;

:

;

:

;

:

;

:

;

:

;

:

;

:

;

:

;

:

;

:

;

;

}

}

*******************赋值语句的分析********************* ( )

{ ;

[[]][()];

()

{

("\算术表达式或赋值语句出错!\");

();

();

}

((<)(>)) 移进

{

;

[];

()

{

;

;

[];

[];

}

[];

[];

();

}

((>)(<)) 归约

{

()

{

:

; >

: >

();

编译原理课程设计

《编译原理》课程设计大纲 课程编号: 课程名称:编译原理/Compiler Principles 周数/学分:1周/1学分 先修课程:高级程序设计语言、汇编语言、离散数学、数据结构 适用专业:计算机科学与技术专业、软件工程专业 开课学院,系或教研室:计算机科学与技术学院 一、课程设计的目的 课程设计是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,设计题中的问题比平时的练习题要复杂,也更接近实际。编译原理这门课程安排的课程设计的目的是旨在要求学生进一步巩固课堂上所学的理论知识,深化理解和灵活掌握教学内容,选择合适的数据逻辑结构表示问题,然后编制算法和程序完成设计要求,从而进一步培养学生独立思考问题、分析问题、解决实际问题的动手能力。 要求学生在上机前应认真做好各种准备工作,熟悉机器的操作系统和语言的集成环境,独立完成算法编制和程序代码的编写。 设计时间: 开发工具: (1) DOS环境下使用Turbo C; (2) Windows环境下使用Visual C++ 。 (3) 其它熟悉语言。 二、课程设计的内容和要求 设计题一:算术表达式的语法分析及语义分析程序设计。 1.目的

通过设计、编制、调试一个算术表达式的语法及语义分析程序,加深对语法及语义分析原理的理解,并实现词法分析程序对单词序列的词 法检查和分析。 2.设计内容及要求: 算术表达式的文法: 〈无符号整数〉∷= 〈数字〉{〈数字〉} 〈标志符〉∷= 〈字母〉{〈字母〉|〈数字〉} 〈表达式〉∷= [+|-]〈项〉{〈加法运算符〉〈项〉} 〈项〉∷= 〈因子〉{〈乘法运算符〉〈因子〉} 〈因子〉∷= 〈标志符〉|〈无符号整数〉|‘(’〈表达式〉‘)’ 〈加法运算符〉∷= +|- 〈乘法运算符〉∷= *|/ (1) 分别选择递归下降法、算符优先分析法(或简单优 先法)完成以上任务,中间代码选用逆波兰式。 (2) 分别选择LL(1)、LR法完成以上任务,中间代码选 用四元式。 (3) 写出算术表达式的符合分析方法要求的文法,给出 分析方法的思想,完成分析程序设计。 (4) 编制好分析程序后,设计若干用例,上机测试并通 过所设计的分析程序。 设计题二:简单计算器的设计 1.目的 通过设计、编制、调试一个简单计算器程序,加深对语法及语 义分析原理的理解,并实现词法分析程序对单词序列的词法检 查和分析。 2.设计内容及要求 算术表达式的文法:

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

单片机电子时钟课程设 计实验报告 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号: 班级:自动化1211 指导老师:阮海容 目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路 PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。 3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位 (例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。

软件质量与测试课程设计实验报告

华中科技大学文华学院 《软件质量与测试》课程设计 软件工程专业07级3班 姓名:曹洪 学号全称:0101 时间:2010年11月12日

《软件质量与测试》课程设计 1、实验目的 掌握软件测试用例的设计 掌握软件缺陷报告的设计 掌握软件缺陷修正报告的设计 2、实验过程 程序preday的基本功能:输入有效的年、月、日,按[计算]按钮,画面输出显示前1天的年,月,日;能对日期非法输入的合理提示等。 程序代码的编写详见preday文件 黑盒软件测试用例的设计 2.2.1等价类划分法 程序的有效输入日期为1800年1月1日到2050年12月31日之间的有效日期。其中, 有效等价类为 1800年1月1日到2050年12月3日之间的日期,其中 年份为1800到2050之间的整数; 月份为1到12之间的整数; 当月份为1、3、5、7、8、10、12时,日为1到31之间的整数,当月份为4、6、9、11时,日为1到30之间的整数,当年份为闰年元份为2时,日为1到29之间的数值,否则为1到28之间的数值。 无效等价类: 1800年1月1日之前的日期; 2050年12月3日之后的日期; 1800年1月1日到2050年12月31日之间的日期,但是月份不为1到12之间的整数;或者当月份为1、3、5、7、8、10、12时,日不为1到31之间的整数,当月份为4、6、9、11时,日不为1到30之间的整数,当年份为闰年元份为2时,日为1到29之间的数值,否则为1到28之间的数值。 最简单的等价类划分直接以输入条件边界来划分,得到的等价类集合见下表,其中Y1-Y3,M1-M3,D1-D3分别是三个输入条件的相应的等价类的编号。 表1:preday问题的等价类划分 等价类年份月份日期 有效等价类 Y1:1800≤年份≤2500 M1:1≤月份≤12 D1:1≤日期≤31 无效等价类 Y2:年份<1800 M2:月份<1 D2:日期<1Y3年>205M3月>1D3日>3

vf课程设计实验报告模板

vf 课程设计实验报告模板 经济管理学院 学生信息管理系统的设计与实现 09年12 月28 日 、课程设计的目的和意义 当今,人类正在步入一个以智力资源的占有和配置,知识生产、分配和使用为最重要因素的知识经济时代,为了适应知识经济时代发展的需要,大力推动信息产业的发展,我们通过对学生信息管理系统的设计,来提高学生的操作能力,及对理论知识的实践能力,从而提高学生的基本素质,使其能更好的满足社会需求。 学生信息管理系统是一个简单实用的系统,它是学校进行学生管理的好帮手。 此软件功能齐全,设计合理,使用方便,适合各种学校对繁杂的学生信息进行统筹管理,具有严格的系统使用权限管理,具有完善的管理功能,强大的查询功能。它可以融入学校的信息管理系统中,不仅方便了学生信息各方面的管理,同时也为教师的管理带来了极大地便利。 我们进行本次课程设计的主要目的是通过上机实践操作,熟练掌握数据库的设 计、表单的设计、表单与数据库的连接、SQL语言的使用和了解它的功能:数据定 义、数据操纵、数据控制,以及简单VF程序的编写。基本实现学生信息的管理, 包括系统的登录、学生信息的录入、学生信息的浏览、学生信息的查询、学生信息的修改和学生信息的删除,并对Visual FoxPro6.0 的各种功能有进一步的了解,为我们更进一步深入的学习奠定基础,并在实践中提高我们的实际应用能力,为我们以后的学习和工作提供方便,使我们更容易融入当今社会,顺应知识经济发展的趋势。 - 1 -

、系统功能设计 通过该系统可以基本实现学生信息的管理,包括系统的登录、学生信息的录 入、学生信息的浏览、学生信息的查询、学生信息的修改和学生信息的删除。系统 功能模块如下图所示。 学生信息管理系统主界面 登录 管理 学学学学学 生生生生生 信信信信信 息息息息息 录查浏修删 入询览改除 三、系统设计内容及步骤 3.1创建项目管理文件 1.启动foxpro 系统,建一个项目管理器,命名为“学生管理”。 哑 目f ■ 也 电 岂同左 矣 氏H. 0 存 JI 蛋誤曾

(完整word版)数据结构课程设计实验报告

设计题目:一 单位员工通讯录管理系统 一、题目要求 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。二、概要设计 本程序通过建立通讯录链表,对员工信息进行记录,并建立一个系统的联系。 三、主要代码及分析 这里面关于链表的主要的操作有插入,查询,删除。则这里只列出这几项的主代码。 1、通过建立通讯录结构体,对信息进行存储,建立链表,建立信息之间 的联系。 typedef struct { }DataType;结构体来存储通讯录中的基本信息 typedef struct node { DataType data; /*结点的数据域*/ struct node *next; /*结点的指针域*/ }ListNode,*LinkList; 2、信息插入操作,将信息查到链表的后面。 void ListInsert(LinkList list){ //信息插入 ListNode *w; w=list->next; while(w->next!=NULL) { w=w->next; } ListNode *u=new ListNode; u->next=NULL; cout<<"员工编号:";cin>>u->data.num; cout<<"员工姓名:";cin>>u->https://www.doczj.com/doc/bc3132984.html,; cout<<"手机号码:";cin>>u->data.call; cout<<"员工邮箱:";cin>>u->data.email; cout<<"办公室电话号码:";cin>>u->data.phone; w->next=u;w=w->next; }

编译原理课程设计报告_LL(1)分析过程模拟

课程设计(论文)任务书 软件学院学院软件工程专业07-1班 一、课程设计(论文)题目LL(1)分析过程模拟 二、课程设计(论文)工作自 2010 年 6 月 22日起至 2010 年 6月 28 日止。 三、课程设计(论文) 地点: 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握LL(1)模块的基本工作原理; (2)培养学生基本掌握LL(1)分析的基本思路和方法; (3)使学生掌握LL(1)的调试; (4)培养学生分析、解决问题的能力; (5)提高学生的科技论文写作能力。 2.课程设计的任务及要求 1)基本要求: (1)分析LL(1)模块的工作原理; (2)提出程序的设计方案; (3)对所设计程序进行调试。 2)创新要求: 在基本要求达到后,可进行创新设计,如改算法效率。 3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写课程设计论文 (2)论文包括目录、绪论、正文、小结、参考文献、附录等 (3)课程设计论文装订按学校的统一要求完成 4)答辩与评分标准: (1)完成原理分析:20分; (2)完成设计过程(含翻译):40分; (3)完成调试:20分;

(4)回答问题:20分。 5)参考文献: (1)张素琴,吕映芝,蒋维杜,戴桂兰.编译原理(第2版).清华大学出版社 (2)丁振凡.《Java语言实用教程》北京邮电大学出版社 6)课程设计进度安排 内容天数地点 构思及收集资料2图书馆 编程与调试4实验室 撰写论文1图书馆、实验室 学生签名: 2009 年6 月22 日 课程设计(论文)评审意见 (1)完成原理分析(20分):优()、良()、中()、一般()、差();(2)设计分析(20分):优()、良()、中()、一般()、差();(3)完成调试(20分):优()、良()、中()、一般()、差();(4)翻译能力(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();(6)格式规范性及考勤是否降等级:是()、否() 评阅人:职称: 年月日

编译原理课程设计

编译原理课程设计报告 课题名称: C-语言编译器设计(scanner和parser) 提交文档学生姓名: 提交文档学生学号: 同组成员名单:无 指导教师姓名:金军 指导教师评阅成绩: 指导教师评阅意见: . . 提交报告时间: 2011年 6 月 17 日

1.课程设计目标 设计C-Minus编译器分为scanner和parser两个部分。scanner主要作用是对目标代码进行扫描,列出关键字,变量等内容;parser主要对语法进行分析并生成语法树。 2.分析与设计 ●实现方法:代码用C语言编译而成。其中scanner为手工实现,主要采用switch-case结构实现 状态转换;parser部分采用递归下降分析方法实现。 ●扫描器:C-的词法如下: 1、语言的关键字:i f el se i nt return void while 2、专用符号:+ - * /< <= > >= == != =; , ( ) [ ] { } /* */ 3、其他标记是变量(ID)和数字(NUM),通过下列正则表达式定义: ID = letter letter* NUM = di git digi t* letter = a|..|z|A|..|Z digi t = 0|..|9 4、空格由空白、换行符和制表符组成。空格通常被忽略,除了它必须分开ID、NUM关键字 5. 注释用通常的C语言符号/ * . . . * /围起来。注释可以放在任何空白出现的位置(即注释不能放在 标记内)上,且可以超过一行。注释不能嵌套 其DFA图如下:

分析器:以下为C-的语法规则BNF:

过程控制系统课程设计报告报告实验报告

成都理工大学工程技术学院《过程控制系统课程设计实验报告》 名称:单容水箱液位过程控制 班级:2011级自动化过程控制方向 姓名: 学号:

目录 前言 一.过程控制概述 (2) 二.THJ-2型高级过程控制实验装置 (3) 三.系统组成与工作原理 (5) (一)外部组成 (5) (二)输入模块ICP-7033和ICP-7024模块 (5) (三)其它模块和功能 (8) 四.调试过程 (9) (一)P调节 (9) (二)PI调节 (10) (三)PID调节 (11) 五.心得体会 (13)

前言 现代高等教育对高校大学生的实际动手能力、创新能力以及专业技能等方面提出了很高的要求,工程实训中心的建设应紧紧围绕这一思想进行。 首先工程实训首先应面向学生主体群,建设一个有较宽适应面的基础训练基地。通过对基础训练设施的 集中投入,面向全校相关专业,形成一定的规模优势,建立科学规范的训练和管理方法,使训练对象获得机械、 电子基本生产过程和生产工艺的认识,并具备一定的实践动手能力。 其次,工程实训的内容应一定程度地体现技术发展的时代特征。为了适应现代化工业技术综合性和多学科交叉的特点,工程实训的内容应充分体现机与电结合、技术与非技术因素结合,贯穿计算机技术应用,以适应科学技术高速发展的要求。应以一定的专项投入,建设多层次的综合训练基地,使不同的训练对象在获得对现代工业生产方式认识的同时,熟悉综合技术内容,初步建立起“大工程”的意识,受到工业工程和环境保护方面的训练,并具备一定的实用技能。 第三,以创新训练计划为主线,依靠必要的软硬件环境,建设创新教育基地。以产品的设计、制造、控制乃至管理为载体,把对学生的创新意识和创新能力的培养,贯穿于问题的观测和判断、创造和评价、建模和设计、仿真和建造的整个过程中。

编译原理课程设计报告(一个完整的编译器)

编译原理程序设计报告 一个简单文法的编译器的设计与实现专业班级:计算机1406班 组长姓名:宋世波 组长学号: 20143753 指导教师:肖桐 2016年12月

设计分工 组长学号及姓名:宋世波20143753 分工:文法及数据结构设计 词法分析 语法分析(LL1) 基于DAG的中间代码优化 部分目标代码生成 组员1学号及姓名:黄润华20143740 分工:中间代码生成(LR0) 部分目标代码生成 组员2学号及姓名:孙何奇20143754 分工:符号表组织 部分目标代码生成

摘要 编译器是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能解读、运行的低阶机器语言的程序。编译是从源代码(通常为高阶语言)到能直接被计算机或虚拟机执行的目标代码(通常为低阶语言或机器语言)的翻译过程。 一.编译器的概述 1.编译器的概念 编译器是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能解读、运行的低阶机器语言的程序。编译器将原始程序作为输入,翻译产生使用目标语言的等价程序。源代码一般为高阶语言如Pascal、C++、Java 等,而目标语言则是汇编语言或目标机器的目标代码,有时也称作机器代码。 2.编译器的种类 编译器可以生成用来在与编译器本身所在的计算机和操作系统(平台)相同的环境下运行的目标代码,这种编译器又叫做“本地”编译器。另外,编译器也可以生成用来在其它平台上运行的目标代码,这种编译器又叫做交叉编译器。交叉编译器在生成新的硬件平台时非常有用。“源码到源码编译器”是指用一种高阶语言作为输入,输出也是高阶语言的编译器。例如: 自动并行化编译器经常采用一种高阶语言作为输入,转换其中的代码,并用并行代码注释对它进行注释(如OpenMP)或者用语

CMinus词法分析和语法分析设计编译器编译原理课程设计报告书

编译原理课程设计报告 课题名称:C- Minus词法分析和语法分析设计 提交文档学生姓名:X X X 提交文档学生学号:XXXXXXXXXX 同组成员名单:X X X 指导教师姓名:X X 指导教师评阅成绩: 指导教师评阅意见: . . 提交报告时间:2015年6月10日

1.课程设计目标 实验建立C-编译器。只含有扫描程序(scanner)和语法分析(parser)部分。 2.分析与设计 C-编译器设计的整体框架,本实验实现扫描处理和语法分析程序(图中粗黑部分)。 2.1 、扫描程序scanner部分 2.1.1系统设计思想 设计思想:根据DFA图用switch-case结构实现状态转换。 惯用词法:

①语言的关键字:else if int return void while ②专用符号:+ - * / < <= > >= == != = ; , ( ) [ ] { } /* */ ③其他标记是ID和NUM,通过下列正则表达式定义: ID = letter letter* NUM = digit digit* letter = a|..|z|A|..|Z digit = 0|..|9 大写和小写字母是有区别的 ④空格由空白、换行符和制表符组成。空格通常被忽略,除了它必须分开ID、NUM 关键字。 ⑤注释用通常的C语言符号/ * . . . * /围起来。注释可以放在任何空白出现的位置(即注释不能放在标记内)上,且可以超过一行。注释不能嵌套 scanner的DFA

说明:当输入的字符使DFA到达接受状态的时候,则可以确定一个单词了。初始状态设置为START,当需要得到下一个token时,取得次token的第一个字符,并且按照DFA与对此字符的类型分析,转换状态。重复此步骤,直到DONE为止,输出token类型。当字符为“/”时,状态转换为SLAH再判断下一个字符,如果为“*”则继续转到INCOMMENT,最后以“*”时转到ENDCOMMENT状态,表明是注释,如果其他的则是字符停滞于当前字符,并且输出“/”。 2.1.2程序流程图

【实验报告】大学物理实验课程设计实验报告

大学物理实验课程设计实验报告北方民族大学 大学物理实验(设计性实验) 实验报告 指导老师:王建明 姓名:张国生 学号:XX0233 学院:信息与计算科学学院 班级:05信计2班 重力加速度的测定 一、实验任务 精确测定银川地区的重力加速度 二、实验要求 测量结果的相对不确定度不超过5% 三、物理模型的建立及比较 初步确定有以下六种模型方案: 方法一、用打点计时器测量

所用仪器为:打点计时器、直尺、带钱夹的铁架台、纸带、夹子、重物、学生电源等. 利用自由落体原理使重物做自由落体运动.选择理想纸带,找出起始点0,数出时间为t的p点,用米尺测出op的距离为h,其中t=0.02秒×两点间隔数.由公式h=gt2/2得g=2h/t2,将所测代入即可求得g. 方法二、用滴水法测重力加速度 调节水龙头阀门,使水滴按相等时间滴下,用秒表测出n个(n取 50―100)水滴所用时间t,则每两水滴相隔时间为t′=t/n,用米尺测出水滴下落距离h,由公式h=gt′2/2可得g=2hn2/t2. 方法三、取半径为r的玻璃杯,内装适当的液体,固定在旋转台上.旋转台绕其对称轴以角速度ω匀速旋转,这时液体相对于玻璃杯的形状为旋转抛物面重力加速度的计算公式推导如下: 取液面上任一液元a,它距转轴为x,质量为m,受重力mg、弹力n.由动力学知: ncosα-mg=0(1) nsinα=mω2x(2) 两式相比得tgα=ω2x/g,又tgα=dy/dx,∴dy=ω2xdx/g, ∴y/x=ω2x/2g.∴g=ω2x2/2y. .将某点对于对称轴和垂直于对称轴最低点的直角坐标系的坐标x、y测出,将转台转速ω代入即可求得g.

软件项目管理课程设计实验报告精

软件项目管理课程设计报告 学院: 专业: 班级: 学号: 姓名: 指导教师: 时间:2013年 1月 目录 1、项目概述 (1) 2、工作任务 (Statement Of Work,SOW书 (1) (一整体要求 (1) (二系统逻辑模型 (2) (三系统功能描述 (3) (四应达到的技术指标和参数 .................................... 3 3、项目进度计划 .. (4) (一分解项目工作 (4) (二项目工作关系表 (5) (三项目甘特图 (6) (四网络进度计划图 (7) (五里程碑计划 ................................................ 9 4、项目规模成本估算 . (9)

(一分解项目工作 (9) (二项目规模估算表 (11) (三计算开发成本 (12) (四计算管理、质量成本 (12) (五直接成本 (12) (六计算间接成本 (12) (七计算总估算成本 (12) (八项目报价 ................................................. 13 5. 项目质量计划 .. (13) (一项目质量保证组织 (13) (二质量目标 (14) (三质量策略 (15) (四质量保证活动 (15) (五质量控制活动 (17) (六质量保证的报告途径 (17) (七记录的收集、维护和保存 ................................... 17 6、软件项目团队 . (17) (一团队组织及职责 (18) (二项目的沟通计划 ........................................... 19 7、软件项目配置管理计划 .. (19) 学校内部职工工资系统项目管理书 1、项目概述 假设学校共有教职工约 1000人, 10个行政部门和 8个系部。每个月 20日前各部门(包括系、部要将出勤情况上报人事处, 23日前人事处将出勤工资、奖金及扣款清单送财务处。财务处于每月月底将教职工的工资表做好并将数据送银行。每月初(3日前将工

(重庆理工大学计算机学院)编译原理课程设计报告

编译原理课程设计报告 实验名称编译原理课程设计 班级 学号 姓名 指导教师 实验成绩 2013 年06月

一、实验目的 通过设计、编写和调试,将正规式转换为不确定的有穷自动机,再将不确定的有穷自动机转换为与之等价的确定的有穷自动机,最后再将确定有穷自动机进行简化。 通过设计、编写和调试构造LR(0)项目集规范簇和LR分析表、对给定的符号串进行LR分析的程序,了解构造LR(0)分析表的步骤,对文法的要求,能够从文法G出发生成LR(0)分析表,并对给定的符号串进行分析。 二、实验内容 正规式——>NFA——>DFA——>MFA 1.正规式转化为不确定的有穷自动机 (1)目的与要求 通过设计、编写和调试将正规式转换为不确定的有穷自动机的程序,使学生了解Thompson算法,掌握转换过程中的相关概念和方法,NFA的表现形式可以是表格或图形。 (2)问题描述 任意给定一个正规式r(包括连接、或、闭包运算),根据Thompson算法设计一个程序,生成与该正规式等价的NFA N。 (3)算法描述 对于Σ上的每个正规式R,可以构造一个Σ上的NFA M,使得L(M)=L(R)。 步骤1:首先构造基本符号的有穷自动机。 步骤2:其次构造连接、或和闭包运算的有穷自动机。

(4)基本要求 算法实现的基本要求是: (1) 输入一个正规式r; (2) 输出与正规式r等价的NFA。(5)测试数据 输入正规式:(a|b)*(aa|bb)(a|b)* 得到与之等价的NFA N

(6)输出结果 2.不确定的有穷自动机的确定化 (1)目的与要求 通过设计、编写和调试将不确定的有穷自动机转换为与之等价的确定的有穷自动机的程序,使学生了解子集法,掌握转换过程中的相关概念和方法。DFA的表现形式可以是表格或图形。(2)问题描述 任意给定一个不确定的有穷自动机N,根据算法设计一个程序,将该NFA N变换为与之等价的DFA D。 (3)算法描述 用子集法将NFA转换成接受同样语言的DFA。 步骤一:对状态图进行改造 (1) 增加状态X,Y,使之成为新的唯一的初态和终态。从X引ε弧到原初态结点, 从原终态结 点引ε弧到Y结点。 (2) 对状态图进一步进行如下形式的改变

编译原理课程设计

编译原理课程设计 自顶向下语法分析器 学院(系):计算机科学与技术学院学生姓名:xxxxxxxxx 学号:xxxxxxxxx 班级:电计1102 大连理工大学 Dalian University of Technology

目录

1 系统概论 语法分析是编译过程的核心部分。它的任务是在词法分析识别出单词符号串的基础上,分析并判定程序的语法结构是否符合语法规则。语法分析器在编译程序中的地位如图1所示: 图1 语法分析器在编译程序中的地位 语言的语法结构是用上下文无关文法描述的。因此,语法分析器的工作本质上就是按文法的产生式,识别输入符号串是否为一个句子。这里所说的输入串是指由单词符号(文法的终结符)组成的有限序列。对一个文法,当给你一串(终结)符号时,怎样知道它是不是该文法的一个句子呢?这就要判断,看是否能从文法的开始符号出发推导出这个输入串。或者,从概念上讲,就是要建立一棵与输入串相匹配的语法分析树。 自顶向下分析法就是语法分析办法中的一类。顾名思义,自顶向下就是从文法的开始符号出发,向下推导,推出句子。这种方法是带“回溯”的。 自顶向下分析的主旨是,对任何输入串,试图用一切可能的办法,从文法开始符号(根结)出发,自上而下地为输入串建立一棵语法树。或者说,为输入串寻找一个最左推导。这种分析过程本质上是一种试探过程,是反复使用不同产生式谋求匹配输入串的过程。 实现这种自顶向下的带回溯试探法的一个简单途径是让每个非终结符对应一个递归子程序。每个这种子程序可作为一个布尔过程。一旦发现它的某个候选与输入串相匹配,就用这个候选去扩展语法树,并返回“真”值;否则,保持原来的语法树和IP值不变,并返回“假”值。 2 需求分析 以前,人们对语法的分析都建立在人工的基础上,人工分析虽然能够做到侧类旁推,但终究人力有限,再精密的分析都会出现或多或少的错误。为减少因人为产生的错误,并加快

南邮课程设计实验报告

课程设计I报告 题目:课程设计 班级:44 姓名:范海霞 指导教师:黄双颖 职称: 成绩: 通达学院 2015 年 1 月 4 日

一:SPSS的安装和使用 在PC机上安装SPSS软件,打开软件: 基本统计分析功能包括描述统计和行列计算,还包括在基本分析中最受欢迎的常见统计功能,如汇总、计数、交叉分析、分类比较、描述性统计、因子分析、回归分析及聚类分析等等。具体如下: 1.数据访问、数据准备、数据管理与输出管理; 2.描述统计和探索分析:频数、描述、集中趋势和离散趋势分析、分布分析与查看、正态性检验与正态转换、均值的置信区间估计; 3.交叉表:计数;行、列和总计百分比;独立性检验;定类变量和定序变量的相关性测度; 4.二元统计:均值比较、T检验、单因素方差分析; 5.相关分析:双变量相关分析、偏相关分析、距离分析; 6.线性回归分析:自动线性建模、线性回归、Ordinal回归—PLUM、曲线估计; 7.非参数检验:单一样本检验、双重相关样本检验、K重相关样本检验、双重独立样本检验、K重独立样本检验; 8.多重响应分析:交叉表、频数表; 9.预测数值结果和区分群体:K-means聚类分析、分级聚类分析、两步聚类分析、快速聚类分析、因子分析、主成分分析、最近邻元素分析; 10. 判别分析; 11.尺度分析; 12. 报告:各种报告、记录摘要、图表功能(分类图表、条型图、线型图、面积图、高低图、箱线图、散点图、质量控制图、诊断和探测图等); 13.数据管理、数据转换与文件管理; 二.数据文件的处理 SPSS数据文件是一种结构性数据文件,由数据的结构和数据的内容两部分构成,也可以说由变量和观测两部分构成。定义一个变量至少要定义它的两个属性,即变量名和变量类型其他属性可以暂时采用系统默认值,待以后分析过程中如果有需要再对其进行设置。在spss数据编辑窗口中单击“变量视窗”标签,进入变量视窗界面,即可对变量的各个属性进行设置。 1.创建一个数据文件数据 (1)选择菜单【文件】→【新建】→【数据】新建一个数据文件,进入数据编辑窗口。窗口顶部标题为“PASW Statistics数据编辑器”。 (2)单击左下角【变量视窗】标签进入变量视图界面,根据试验的设计定义每个变量类型。

软件工程课程设计实验报告

重庆邮电大学 软 件 工 程 课程设计实验报告 ——网上选课系统 姓名:雷雷 学号:08500329 专业:计算机科学与技术 班级:0410801 指导老师:邹洋 教室:S3314 时间:2011-5-30?2011-6-3

一、实验题目:网上选课系统 主要功能描述:系统首先维护校内所有课程的信息;课程分为研究生、本科生;也可以分为必修、选修、辅修。用户以学号和密码登陆,系统显示用户以选的课程、用户有权选但未选的其他课程,并显示具体信息(如学分)。用户选择后,系统根据规则检查用户是否进行正确的选课(如时间冲突、跨专业选课等);如果错误提示用户改,否则修改选课数据库。最后系统应能够向管理员提供查询界面和各类报表,统计每门课的选课情况。 二、实验目的 软件工程课程设计是软件工程专业一个综合性的实践教学环节,其目的在于促进学生复习和巩固计算机软件设计知识,加深对软件设计方法、软件设计技术和设计思想的理解,并能运用所学软件设计知识和面向对象技术进行综合软件设计,提高学生的综合应用能力。通过这次课程设计,要掌握UML (统一建模语言),并能运用UML 在Rational Rose 中建模。 三、实验要求 1. 一人一组。 2. 熟悉Rose 开发环境。 3. 掌握UML 的基本模型元素(如角色、用例、类等)。 4. 熟悉UML ,主要了解UML 中的9 大图:Use case diagram(用例图)、Class diagram (类图)、Sequence diagram(序列图)、Collaboration diagram(协作图)、Statechart diagram(状态图)、Activity diagram(活动图)、Component diagram(组件图)、Deployment diagram(配置图)、datamodel diagram (数据模型图)。 5. 进行系统需求分析与系统功能模块设计,绘出系统详细的业务流程图和数据流程图, 建立完整的系统数据库的逻辑模型 6. 完成对系统的建模实现

编译原理课程设计报告

2011-2012学年第二学期 《编译原理》课程设计报告 学院:计算机科学与工程学院 班级: 学生姓名:学号: 成绩: 指导教师: 时间:2012年5 月

目录 一、课程设计的目的 ---------------------------------------------------------------- - 1 - 二、课堂实验及课程设计的内容 -------------------------------------------------- - 1 - 2.1、课堂实验内容-------------------------------------------------------------- - 1 - 2.2、课程设计内容-------------------------------------------------------------- - 1 - 三、visual studio 2008 简介------------------------------------------------------- - 2 - 四、问题分析及相关原理介绍 ----------------------------------------------------- - 3 - 4.1、实验部分问题分析及相关原理介绍 ---------------------------------- - 3 - 4.1.1、词法分析功能介绍及分析------------------------------------- - 3 - 4.1.2、语法分析功能介绍及分析------------------------------------- - 3 - 4.1.3、语义分析功能介绍及分析------------------------------------- - 4 - 4.2、课程设计部分问题分析及相关原理介绍 ---------------------------- - 5 - 4.2.1、编译程序介绍 ----------------------------------------------------- - 5 - 4.2.2、对所写编译程序的源语言的描述(C语言) -------------- - 6 - 4.2.3、各部分的功能介绍及分析 -------------------------------------- - 7 - 4.3、关键算法:单词的识别-------------------------------------------------- - 8 - 4.3.1、算法思想介绍 ----------------------------------------------------- - 8 - 4.3.2、算法功能及分析 -------------------------------------------------- - 8 - 五、设计思路及关键问题的解决方法 ------------------------------------------ - 10 - 5.1、编译系统------------------------------------------------------------------ - 10 - 5.1.1、设计思路 --------------------------------------------------------- - 10 - 5.2、词法分析器总控算法--------------------------------------------------- - 12 - 5.2.1、设计思路 --------------------------------------------------------- - 12 - 5.2.2、关键问题及其解决方法 --------------------------------------- - 13 - 六、结果及测试分析-------------------------------------------------------------- - 14 - 6.1、软件运行环境及限制--------------------------------------------------- - 14 - 6.2、测试数据说明------------------------------------------------------------ - 14 - 6.3、运行结果及功能说明--------------------------------------------------- - 16 - 6.4、测试及分析说明--------------------------------------------------------- - 16 - 七、总结及心得体会 --------------------------------------------------------------- - 17 - 7.1、设计过程------------------------------------------------------------------ - 17 - 7.2、困难与收获 ------------------------------------------------------------- - 17 - 八、参考文献 ------------------------------------------------------------------------ - 18 -

编译原理课程设计

编译原理: 编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。编译原理是计算机专业设置的一门重要的专业课程。编译原理课程是计算机相关专业学生的必修课程和高等学校培养计算机专业人才的基础及核心课程,同时也是计算机专业课程中最难及最挑战学习能力的课程之一。编译原理课程内容主要是原理性质,高度抽象。 编译原理课程设计: 《编译原理课程设计》是2007年11月浙江大学出版社出版的图书,作者是冯雁、鲁东明、李莹。 内容简介: 本书围绕着编译技术的基本原理和方法,以模拟程序设计语言SPL的编译器的设计和实现为主线,结合词法分析、语法分析、语义分析、代码生成、代码优化、错误处理等各个基本模块,对原理和实现方法进行了详细分析。该编译器可接受SPL的程序,并将其翻译成汇编语言程序,最终实现汇编语言到8086/8088机器语言的翻译。本书为编译技术等相关课程的实验提供了参考。在附件中还提供了三类不同类型和难度的实验题,可供课程实验选择。 第1章引论: 1.1本书介绍 1.2SPL语言的特点及实验安排

1.2.1SPL语言的特点 1.2.2SPL语言编译器的主要结构1.2.3实验安排 1.3平台的选择和介绍 1.3.1LEX简介 1.3.2YACC简介 第2章词法分析: 2.1词法分析器的基本框架 2.2词法分析器的基本原理 2.2.1DFA的构造和实现 2.2.2词法分析的预处理 2.2.3实现词法分析器的注意要点2.3词法分析器的实现 2.3.1SPL语言单词属性字 2.3.2SPL词法分析器的输入和输出2.3.3SPL词法分析器的分析识别第3章语法分析: 3.1语法分析的基本框架 3.1.1上下文无关文法 3.1.2语法分析过程 3.1.3语法分析过程中的数据结构3.2语法分析的基本方法

c课程设计实验报告

c课程设计实验报 告

中南大学 本科生课程设计(实践)任务书、设计报告 (C++程序设计) 题目时钟控件 学生姓名 指导教师 学院交通运输工程学院 专业班级 学生学号 计算机基础教学实验中心 9月7日 《C++程序设计基础》课程设计任务书

对象:粉冶、信息、能源、交通工程实验2101学生时间: .6 2周(18~19周) 指导教师:王小玲 1.课程设计的任务、性质与目的 本课程设计是在学完《C++程序设计基础》课程后,进行的一项综合程序设计。在设计当中学生综合“面向对象程序设计与结构化程序设计”的思想方法和知识点,编制一个小型的应用程序系统。经过此设计进一步提高学生的动手能力。并能使学生清楚的知道开发一个管理应用程序的思想、方法和流程。 2.课程设计的配套教材及参考书 ●《C++程序设计》,铁道出版社,主编杨长兴刘卫国。 ●《C++程序设计实践教程》,铁道出版社,主编刘卫国杨长兴。 ●《Visual C++ 课程设计案例精编》,中国水力电力出版社,严华峰等编著。 3.课程设计的内容及要求 (1)自己任选一个题目进行开发(如画笔、游戏程序、练习打字软件等),要求利用MFC 工具操作实现。 (2)也可选一个应用程序管理系统课题(如:通讯录管理系统;产品入库查询系统;学生成绩管理;图书管理 等);

设计所需数据库及数据库中的数据表,建立表之间的关系。 设计所选课题的系统主封面(系统开发题目、作者、指导教师、日期)。 设计进入系统的各级口令(如系统管理员口令,用户级口令)。 设计系统的主菜单。要求具备下列基本功能: ●数据的浏览和查询 ●数据的统计 ●数据的各种报表 ●打印输出 ●帮助系统 多种形式的窗体设计(至少有查询窗体、输入窗体) 注意:开发的应用程序工作量应保证在2周时间完成,工作量不能太少或太多。能够2人合作,但必须将各自的分工明确。 4.写出设计论文 论文基本内容及撰写顺序要求: ●内容摘要 ●系统开发设计思想 ●系统功能及系统设计介绍 ●系统开发的体会

《软件工程学(UML)》课程设计实验报告

课程设计报告 课程设计名称:软件工程学(UML)课程设计课程设计时间:

课程设计报告(附页) 1.课程设计目的 利用UML 实现一个小型的信息系统的分析和设计。 2.课程设计题目描述和要求 2.1 系统名称:通用无纸化考试系统 2.2 需求分析 2.2.1功能需求分析 本系统主要用于学校内部考生考试使用,目标是实现考试效率的提高、工作量的 减少以及成本的降低,根据实际需要,系统所要实现的系统功能模块如下所示: 各模块要实现的功能说明如下: 1.管理员子系统 用户信息维护是指以系统管理员的身份通过验证后登入系统,并对管理员个人信息 以及教师用户的信息和学生信息进行管理及一些班级信息和科目的设置 (1)用户信息维护 管理员子系统 教师子系统 考生子系统 用户信息维护 用户权限维护 学生信息管理 教师信息管理 个人信息维护 班级管理 系部管理 科目管理 个人信息维护 题库管理 试卷管理 阅卷管理 成绩查询 成绩统计分析 个人信息维护 在线考试 用户注册 自我测试 成绩查询 通用无纸化考试系统

系统管理员可以对自己个人信息进行编辑修改,也可以对教师用户和学生用户进行添加和删除,系统将为添加后的教师用户和学生用户自动分配用户编号 (2)用户权限维护 系统管理员在对教师用户信息进行管理时,可以为其设置相应的权限。 2.教师子系统 教师子系统是指以教师用户的身份通过验证后登入系统,并对个人信息、题库、 试卷信息、考生成绩等信息进行管理。 (1)个人信息维护 教师成功登入系统后可以对自己的用户名,密码等信息进行查看和修改,但不 可以对账号名称进行更改。 (2)题库管理 教师可以在题库中添加、编辑和修改试题,可以为每道试题设置其分值、类型 等信息,系统会自动为添加的试题分配相应的试题编号。 (3)试卷管理 教师用户可以对每次考试的试卷信息进行设置,比如可以设置考试的课程、时 间、总分、各类型题目(单项选择题,多选题,判断题,主观题)的数量等信息。 (4)成绩查询 教师用户可以对考生的成绩进行查看。 (5)考试结果统计 教师用户可以对考生的成绩进行统计和分析,比如最高分,平均分以及每道题的正确率让教师更好的掌握考生的知识点掌握情况。 (6)阅卷管理 教师可以针对考生的主观题信息进行阅卷给出分数 3.考生子系统 考生考试是指以考生用户的身份通过验证后登入系统,可以进行个人注册信息 编辑、自我测试、成绩查看等工作。 (1)考生注册 考生可以进行个人信息的注册,包括姓名,班级,口令等信息,考生用户注册 成功后自动加入考生信息表中,系统会自动为其分配相应的id。 (2)个人信息维护

相关主题
文本预览
相关文档 最新文档