# CS-Homework
**Repository Path**: KALI666/CS-Homework
## Basic Information
- **Project Name**: CS-Homework
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-04-04
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# CS-Homework
这是本人在本科阶段所做的作业。目的是:1.为了保留纪念,等以后再看自己的作业会不会害羞和骂自己当年多菜:-);2.供师弟参考,因为做这几个作业还是挺费时的.
# 这些作业有参考网络上的一些代码,拿来进行一些修改用了。感谢他们的分享,原谅不能一一列出(因为时间太久,我也不记得了)
## 编译原理
* 实验一:C++源代码单词扫描程序(词法分析)
一、实验内容及要求:
(1). C++源代码扫描程序识别C++记号。C++语言包含了几种类型的记号:标识符,关键字,数(包括整数、浮点数),字符串、注释、特殊符号(分界符)和运算符号等。
(2). 打开一个C++源文件,打印出所有以上的记号。
(3). 要求应用程序应为Windows界面。
(4). 选作部分:为了提高C++源程序的可读性,C++程序在书写过程中加入了空行、空格、缩进、注释等。假设你想牺牲可读性,以节省磁盘空间,那么你可以存贮一个删除了所有不必要空格和注释的C++源程序的压缩文本。因此,程序中还应该有这样的压缩功能。
(5). 选作部分:进一步思考或实现——如何进一步实现减小源文件大小的压缩功能。
(6). 应该书写完善的软件文档。
* 实验一运行截图如下(单词分割):

* 实验二:XLEX生成器
一、实验内容:
设计一个应用软件,以实现将正则表达式-->NFA--->DFA-->DFA最小化-->词法分析程序
二、实验要求:
(1). 要提供一个源程序编辑界面,让用户输入正则表达式(可保存、打开源程序)
(2). 需要提供窗口以便用户可以查看转换得到的NFA(用状态转换表呈现即可)
(3). 需要提供窗口以便用户可以查看转换得到的DFA(用状态转换表呈现即可)
(4). 需要提供窗口以便用户可以查看转换得到的最小化DFA(用状态转换表呈现即可)
(5). 需要提供窗口以便用户可以查看转换得到的词法分析程序(该分析程序需要用C语言描述)
(6). 应该书写完善的软件文档
* 实验二运行截图如下(词法分析):




* 实验三:TINY扩充语言的语法分析
一、实验内容:
扩充的语法规则有:实现 while、do while、for语句、大于>比较运算符号以及求余计算式子,具体文法规则自行构造。
可参考:P97及P136的文法规则。
(1). While-stmt --> while exp do stmt-sequence endwhile
(2). Dowhile-stmt-->do stmt-sequence while(exp);
(3). for-stmt-->for identifier:=simple-exp to simple-exp do stmt-sequence enddo 步长递增1
(4). for-stmt-->for identifier:=simple-exp downto simple-exp do stmt-sequence enddo 步长递减1
(5). 大于>比较运算符号以及求余计算式子的文法规则请自行组织。
(6). 把TINY语言原有的if语句书写格式
if_stmt-->if exp then stmt-sequence end | if exp then stmt-sequence else stmt-sequence end
改写为:if_stmt-->if(exp) stmt-sequence | if(exp) stmt-sequence else stmt-sequence
* 实验三运行截图如下(语法分析):

# 五子棋人机对战
* This small project is a Gomoku game with graphical human-machine interaction written in Java language.
这是一个使用Java语言编写的五子棋-人机对战桌面应用。(一个作业)
* 运行截图如下:
* 
# Web投票系统
* 这是使用Java+servlet+jsp+Jquery编写的一个web网站
* 运行截图如下:
* 

# 仿Windows资源管理器
* 这是使用MFC编写的仿Windows资源管理器,此外还有进程管理,文件监控,文件多线程搜索的功能
* 运行截图如下:
* 


