自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (2)
  • 收藏
  • 关注

原创 编译原理 课程总结

       学习编译原理的目的是学习设计与构造程序设计语言编译程序的原理与方法。编译器就是一个程序,它读入用某种语言编写的源程序,并翻译成一个与之等价的另一种语言编写的源程序。编译程序的工作,从输入源程序开始,到输出目标程序结束,与自然语言之间的翻译有很多相似之处。        第一章讲编译器的基本结构                词法分析是识别出句子中的单词            语法分析...

2018-06-16 21:12:22 2688

原创 编译原理 第七章 语义分析和中间代码的产生

一、知识总结      首先是语义分析。语义分析的任务是审查每一个语法结构的静态语义,即验证语法正确的结构是否有意义。几种常用的中间语言形式有:逆波兰表示法、图表示法、三元式、间接三元式、四元式。 波兰表示是一种既不须考虑优先关系、又不用括号的一种表示表达式的方法(前缀式)。图表示法又包括抽象语法树和无循环有向图(DAG)。三元式由三个部分组成:算符:OP,第一运算分量:ARG1,第二运算分量:A...

2018-06-16 20:32:33 440

原创 编译原理 第六章 属性文法和语法制导翻译

一、知识总结        首先学习了属性文法,属性文法是在上下文无关文法的基础上为每个文法符号(终结符或非终结符)配备若干个相关的“值”,称为“属性”。属性分为综合属性和继承属性。综合属性用于“自下而上”传递信息,在语法树中,一个结点的综合属性的值,由其子结点的属性值确定。继承属性用于“自上而下”传递信息。在语法树中,一个结点的继承属性由此结点的父结点和/或兄弟结点的某些属性确定。语义规则是属性...

2018-06-16 19:31:52 812

原创 编译原理 第五章 语法分析----自下而上分析

一、知识总结               自下而上分析是从输入串开始,逐步进行规约,直至规约到文法的开始符号,就是一种“移进-规约”法。自上而下分析的中心问题是怎样判断栈订单符号串的可归约性以及如何规约。解决方案是规范规约。所谓规范规约就是每一步都把句柄换成它对应的产生式的左部符号,句柄就是最左直接短语,此处涉及短语和直接短语的概念。对于规范规约,我个人的理解是:句子中相对最左的可以组成某个产生式...

2018-05-19 13:46:16 997

原创 编译原理----第四章 语法分析(自上而下分析)

一、感受及总结        语法分析是编译过程的核心部分,语言的语法结构是用上下文无关描述的。因为自上而下分析可能会存在两大问题,左递归和回溯,所以产生了消除左递归和克服回溯的方法----LL(1)分析法。使用LL(1)分析法要涉及FIRST集和FOLLOW集,这是重点。当一个文法满足LL(1)条件时,就可以构造递归下降分析器,预测分析程序是另一种使用一张分析表和一个栈实现LL(1)分析的有效方...

2018-04-24 22:36:26 936

原创 编译原理 第三章 词法分析学习总结

     一.总结       本章我们学习了词法分析的有关知识,编译程序是从单词的级别上来分析和翻译源程序的。词法分析的任务是从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析器。首先是对词法分析器的要求,包括功能、输出形式、作为一个独立子程序。接下来是词法分析器的设计,包括输入、预处理和单词符号的识别(超前...

2018-04-03 21:37:57 1805

原创 《编译原理》 第二章 高级语言及其语法描述学习总结

     注:博客内容是先在Word文档中编辑后,粘贴过来的,语法树的连线和表示空字的希腊字符显示不出来。                                          编译原理学习总结                                                    ——第二章 高级语言及其语法描述一、 知识体系(一)    程序语言的定义1.  语法:是...

2018-03-22 23:57:27 675

Struts2和Hibernate框架实现图书管理系统

一.功能简介 1. 实现一个图书管理系统。图书信息存放到一个数据库中。图书包含信息:图书号、图书名、作者、价格、备注字段。 2. 系统要实现如下的基本管理功能: (1)用户分为两类:系统管理员,一般用户。 (2)提供用户注册和用户登录验证功能;其中登录用户的信息有:登录用户名,登录密码等。 (3)管理员可以实现对注册用户的管理(删除),并实现对图书的创建、查询、修改和删除等有关的操作。 (4)一般用户,只能查询图书,并进行借书、还书操作,每个用户最多借阅8本,即当目前借书已经是8本,则不能再借书了,只有还书后,才可以再借阅。 二.涉及技术 Struts2框架、Hibernate框架、MySQL数据库、C3P0数据池、Jsp、HTML、CSS、JavaScript等技术。 三.设计思路 1. 基于Struts2框架和Hibernate框架进行编程设计,连接MySQL数据库实现数据的增删查改,应用Jsp、HTML、CSS、JavaScript对访问页面进行编写和美化。 2. 分别创建book表和user表,用以存放图书信息和用户数据。其中user表中,设有flag以区分管理员和普通用户。 3. 分别创建Book类和User类,与数据表相对应。每本书和每个用户都有唯一的id与之对应。 4. 创建映射文件User.hbm.xml和Book.hbm.xml。 5. 创建数据库配置文件hibernate.cfg.xml。 6. 创建数据库连接工具类。 7. 设计数据库操作类:UserDao类和BookDao类。UserDao用于实现所有对user表的操作,BookDao用于实现所有对book表的操作。 8. 创建分别对应UserDao类和BookDao类的Action:UserAction和BookAction。采用基于注解的方式进行Action配置。 9. 用户账号分为管理员账号和普通用户账号,注册时加以区分,登录时即可自动判断进入对应的操作主页面。 10. 管理员可实现对用户的查询显示,模糊查询,删除,批量删除,全选和取消全选等功能;可实现对图书的查询显示,模糊查询,添加,删除,批量删除,全选和取消全选等功能。 11. 普通用户可实现借书和还书功能,借书功能通过对book表的查询,将未借出的图书按照id顺序排列显示,点击表格后方的“借阅”按钮,进行确认借阅,将book表中本书的borrowperson列的值改为本用户账号。对于借阅成功的图书可以在“当前借阅”中进行查看。还书功能通过在“当前借阅”中点击“还书”按钮,进行确认还书,将book表中本书的borrowperson列的值改为“空”,本书信息将可以在“借书”界面查看。

2018-02-07

基于Struts2的图书管理系统源代码

一.功能简介 1. 实现一个图书管理系统。图书信息存放到一个数据库中。图书包含信息:图书号、图书名、作者、价格、备注字段。 2. 系统实现如下的基本管理功能: (1)用户分为两类:系统管理员,一般用户。 (2)提供用户注册和用户登录验证功能;其中登录用户的信息有:登录用户名,登录密码等。 (3)管理员可以实现对注册用户的管理(删除),并实现对图书的创建、查询、修改和删除等有关的操作。 (4)一般用户,只能查询图书,并进行借书、还书操作,每个用户最多借阅8本,即当目前借书已经是8本,则不能再借书了,只有还书后,才可以再借阅。 二.涉及技术 Struts2框架、MySQL数据库、C3P0数据池、Jsp、HTML、CSS、JavaScript等技术。 三.设计思路 1. 基于Struts2框架进行编程设计,连接MySQL数据库实现数据的增删查改,应用Jsp、HTML、CSS、JavaScript对访问页面进行编写和美化。 2. 分别创建book表和user表,用以存放图书信息和用户数据。其中user表中,设有flag以区分管理员和普通用户。 3. 分别创建Book类和User类,与数据表相对应。每本书和每个用户都有唯一的id与之对应。 4. 创建C3P0属性文件和数据库连接工具类。 5. 设计数据库操作类:UserDao类和BookDao类。UserDao用于实现所有对user表的操作,BookDao用于实现所有对book表的操作。 6. 创建分别对应UserDao类和BookDao类的Action:UserAction和BookAction。采用基于注解的方式进行Action配置。 7. 用户账号分为管理员账号和普通用户账号,注册时加以区分,登录时即可自动判断进入对应的操作主页面。 8. 管理员可实现对用户的查询显示,模糊查询,删除,批量删除,全选和取消全选等功能;可实现对图书的查询显示,模糊查询,添加,删除,批量删除,全选和取消全选等功能。 9. 普通用户可实现借书和还书功能,借书功能通过对book表的查询,将未借出的图书按照id顺序排列显示,点击表格后方的“借阅”按钮,进行确认借阅,将book表中本书的borrowperson列的值改为本用户账号。对于借阅成功的图书可以在“当前借阅”中进行查看。还书功能通过在“当前借阅”中点击“还书”按钮,进行确认还书,将book表中本书的borrowperson列的值改为“空”,本书信息将可以在“借书”界面查看。 四.存在的问题 1. 原本希望能为每一个用户创建一个对应的以其账号命名的数据表,用以存放用户所借图书信息,但创建表的SQL语句无法在java代码中执行,所以只好在book表中添加一列borrowperson,用来存放借阅本书的用户账号,这样查询用户当前借阅记录时,以“where borrowperson=‘account’”为条件对book表进行查询即可。但是每个用户要当前查询借阅记录时都需要对整个book表进行遍历,效率太低。 2. 模糊查询时,因同时需要进行where筛选,SQL语句无法执行,只好分开查询,先进行模糊查询,查询结果存放到list表中,再通过遍历list表进行判断是否符合where的条件,若符合,则存入另一个list表中。这种方法虽然实现了查询,但效率太低,代码过于繁重。 五.改进预想 这些本不应该是预想,原本希望在本次作业中实现的,但时间不够充分,只能作为下一步的改建预想。 1. 希望实现登录时验证码验证登录; 2. 希望实现查询时,查询结果分页浏览; 3. 进一步优化Action之间的传值方法; 4. 页面进一步优化、美化; 5. 实现用户借书还书时间记录,和借阅时长限制。

2018-02-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除