/CS-Homework

这是本人在本科阶段所做的作业,一是为了保留纪念,等以后再看自己的作业会不会害羞和自己当年多菜;二是给以后的师弟一些参考

Primary LanguageC++

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资源管理器,此外还有进程管理,文件监控,文件多线程搜索的功能
  • 运行截图如下: