网络编程聊天室--操作演示文档
我上传的 linux下C语言网络编程会话聊天室 程序对应的操作演示文档
对应的代码在我的下一个上传的资源中
linux下C语言网络编程会话聊天室
linux下的网络编程,使用C语言,实现多人会话聊天室,
具体功能包括:
注册与登录系统,群聊,私聊,在线用户查询,管理员管理账户(踢下线,禁言,提升或降低权限)
apache2.2+php5.4+mysql5.5+phpMyAdmin4.0.5安装文件
apache2.2+php5.4+mysql5.5+phpMyAdmin4.0.5安装文件
比较全套,可以统一下下来安装,博客中有安装配置的具体讲解,可参考。
具体某一个也可以下载最新的版本
c#文件操作和数据库操作DataGridView控件
c#文件操作:将键盘输入的内容写到文件中;将文件中的内容以二进制方式和文本方式读取出来;
c#数据库操作:使用dataGridView控件;对数据进行查询,删除的操作;
比较简单,适合初学者
c#窗体编程(显示鼠标位置;菜单程序;时钟程序)
c#窗体编程
简单,初学者使用
包括显示鼠标位置,菜单程序,时钟程序
用到了ToolTip控件,MenuStrip控件;Timmer控件,label控件,button控件等;
模拟一个电梯的java代码
用java写的一个模拟电梯的程序
有界面
pclint的基本使用
pclint的基本使用
包括用pclint检查代码
对两三个简单程序进行检查,并根据pclit检查的结果更正程序
比较简单,初学者使用
COM/DOCM 进程内/外/远程进程外组件实例
1)使用C++语言实现进程内组件、进程外组件、远程进程外组件,组建提供加、减、乘、除、判断是否素数等计算服务;客户端部分包括录入和查询部分。
2)在VC++环境上利用ATL向导进行开发。
使用VC++的ATL编程实现进程内组件、进程外组件、远程进程外组件。同时实现客户端这些组件的调用。
junit单元测试与Eclemma的使用
Junit单元测试
Eclemma对其进行覆盖率分析
测试用例的设计要分别满足语句覆盖、判定-条件覆盖、条件组合、路径覆盖及基本路径测试等不同的测试标准
合并多次测试覆盖率
JSF简单应用
在MyEclipse环境下JSF的应用
设计一个项目对登录用户名、密码进行验证及对E-mail地址进行格式转换
实现自定义转换器
实现用户登陆进行验证
学生学分综合管理系统
C语言与数据结构实习
实现一个简单的学生学分管理系统
假设每位学生必须完成基础课50学分、专业课50学分、选修课24学分、人文类课程8学分、实验性课程20学分才能够毕业。因此在管理学分时,要考虑每个学分所属于的课程类别。
该程序应该具有下列功能:
(1) 通过键盘输入某位学生的学分;
(2) 给定学号,显示某位学生的学分完成情况;
(3) 给定某个班级的班号,显示该班所有学生学分完成情况;
(4) 给定某位学生的学号,修改该学生的学分信息;
(5) 按照某类课程的学分高低进行排序;
(6) 提供一些统计各类信息的功能。
编译原理综合实习答辩PPT
编译原理综合实习,最后的答辩PPT 主要由while dowhile语句,数组,以及整体代码的设计思路
此实习中用到数组来表示整个的四元式,最后数组输出,即输出四元式
编译原理综合实习代码
能够根据单词的构词规则,完成MiniC语言中的单词的解析(词法分析),如果不符合单词的构词规则,请给出错误信息。如果源语言符合单词的词法规则,请输出二元式。
(注:利用JavaCC实现)
在词法分析的基础上,构造MiniC的LL(1)文法,利用JavaCC实现LL(1)文法,判断源语言是否符合MiniC的语法,如果不符合,请给出语法错误信息。
在语法分析的基础上,根据属性文法制导翻译,进行语义分析,输出四元式。如果源语言不符合MiniC的语义,请指出错误信息。
在平时实习课的基础上,整个编译系统要能够翻译数组(二维)翻译,if..else, for, while,赋值等语句嵌套的分析与翻译
1.整个编译系统利用JavaCC来实现.
2.用流的形式读入要分析的MiniC源程序。
3.语法分析,利用.jjt文件,这样语法分析,可以生成树的层次结构。
4.单词序列、树状的层次结构图、四元式的结果,输出到文件中。
置换密码 古典密码算法
置换密码
置换密码算法的原理是不改变明文字符,而是按照某一规则重新排列消息中的比特或字符顺序,才而实现明文信息的加密。置换密码有时又称为换位密码。
矩阵换位法是实现置换密码的一种常用方法。它将明文中的字母按照给定的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中的字母,从而形成密文。例如,明文为attack begins at five,密钥为cipher,将明文按照每行6个字母的形式排在矩阵中,形成如下形式:
根据密钥cipher中各个字母在字母表中出现的先后顺序,给定一个置换:
根据上面的置换,将原有居住中的字母按照第1列、第4裂、第5裂、第3裂、第2列、第6列的顺序排列,则有下面的形式:
从而得到密文:abatgftetcnvaiikse
其解密过程是根据密钥的字母数作为列数,将密文按照列、行的顺序写出,再根据由 密钥给出的矩阵置换产生新的矩阵,从而恢复明文。
凯撒(Caesar)密码,又叫循环移位密码代码
一种典型的单表替代密码——凯撒(Caesar)密码,又叫循环移位密码。它的加密方法就是将明文中的每个字母用字母表中该字母后的第R个字母来替换,达到加密的目的。它的加密过程可以表示为下面的函数:
其中,m为明文字母在字母表中的位置数;n为字母表中的字母个数;k为密钥; 为密文字母在字母表中对应的位置数。
例如:对于明文字母H,其在字母表中的位置数为8,设,则按照上式计算出来的密文为L,计算过程如下:
E(8)=(M+K)modn=(8+4)mod26=12=L
语义分析代码
采用递归下降语法制导翻译法对算术表达式、赋值语句、条件语句、循环语句进行语义分析生成四元式序列。
实习的输入和输出
1.输入语法分析提供的正确的单词串,输出四元式序列。例如:对于语句串:
float r , h , s;
s=2*3.1416*r*(h+r)
2.输出的四元式序列如下:
(1) (*,2,3.1416,T1)
(2) (*, T1, r, T2)
(3) (+, h, r, T3)
(4) (*, T2, T3, T4)
(5) (=, T4, —, s)
扫描线种子填充算法
实现封闭区域的沿水平扫描线段的种子填充
安装配置GLUT库:
OpenGL提供了一系列的辅助函数,用于简化Windows操作系统的窗口操作,使我们能把注意力集中到图形编程上,这次试验的程序就采用这些辅助函数。 将压缩包内的glut.h拷贝到...\\Microsoft Visual Studio\\VC98\\ Include \\GL目录下(若使用win7和vs2008,则拷贝到C:\Program Files\Microsoft SDKs\Windows\v6.0A \Include\gl);
将glut32.lib拷贝到...\\Microsoft Visual Studio\\VC98\\Lib目录下(若使用win7和vs2008,则拷贝到…\\Microsoft Visual Studio 9.0\VC\lib);
将glut32.dll拷贝到c:\\windows\\system32目录下(win7和vs2008配置过程相同)。
此程序中用到了栈的思想,但是比栈的代码简单很多,更好理解。
计算机图形学 配置 glut.zip
OpenGL提供了一系列的辅助函数,用于简化Windows操作系统的窗口操作,使我们能把注意力集中到图形编程上,程序就采用这些辅助函数。
将压缩包内的glut.h拷贝到...\\Microsoft Visual Studio\\VC98\\ Include \\GL目录下(若使用win7和vs2008,则拷贝到C:\Program Files\Microsoft SDKs\Windows\v6.0A \Include\gl);
将glut32.lib拷贝到...\\Microsoft Visual Studio\\VC98\\Lib目录下(若使用win7和vs2008,则拷贝到…\\Microsoft Visual Studio 9.0\VC\lib);
将glut32.dll拷贝到c:\\windows\\system32目录下(win7和vs2008配置过程相同)。
配置好后,即可用
vc编程
中点画圆算法
计算机图形学 ,OPENGL中用中点画圆算法画圆,需要配置好环境,创建工程,将文件GLUT32.LIB,GLU32.LIB,GLAUX.LIB,OPENGL.LIB添加到工程中,然后添加c++source file ,从而将代码执行
Bresenham算法画圆
实现Bresenham法绘制圆图元;
用Bresenham绘制圆的基本思路如下:
从(0,r)这个坐标开始,一直到x=y,然后其他的利用对称画图,即利用八分法画圆;x每次增加1,即X(i+1)=X+1,而Y(i+1)=Y(i)或者Y(i)-1; 设D(up)=Y(i)2-Y2,D(down)=Y2-(Y(i)-1)2;
令p(i)=D(up)-D(down);
又知,X2+Y2=R2;带入,可得:
P(i)=2(Xi+1)2+Yi2+(Yi-1)2-2R2;
相应递归式为:
P(i+1)=p(i)+4X(i)+6+2(Yi2+1-Yi2)-2(Yi+1-Yi)
pi的初值代入xi=0, yi=r
p1=3-2r
如果pi<0则yi+1=yi,否则yi+1=yi-1
则:
pi<0 则pi+1=pi+4xi+6;
否则 pi+1=pi+4(xi-yi)+10;
语法分析器
设计MiniC的上下文无关文法,利用JavaCC生成调试递归下降分析程序,以便对任意输入的符号串进行分析
利用JavaCC以MiniC语言构造一个不含语义分析的编译器前端,包括词法分析、语法分析,并要考虑语法分析中的错误恢复问题。通过使用JavaCC, 可以体会LL(k)文法的编写特点,掌握编写JavaCC文法规范文件的方法。
利用JavaCC生成一个MiniC的语法分析器;
1.把MiniC转换为文法如下
<程序〉→ main()〈语句块〉
〈语句块〉→{〈语句串〉}
〈语句串〉→〈语句〉;〈语句串〉|〈语句〉;
〈语句〉→〈赋值语句〉|〈条件语句〉|〈循环语句〉
〈赋值语句〉→ ID =〈表达式〉;
〈条件语句〉→ if〈条件〉〈语句块〉
〈循环语句〉→ while〈条件〉〈语句块〉
〈条件〉→(〈表达式〉〈关系符〉〈表达式〉)
〈表达式〉→〈表达式〉〈运算符〉〈表达式〉|(〈表达式〉)|ID|NUM
〈运算符〉→+|-|*|/
〈关系符〉→<|<=|>|>=|=|!>
编译原理 词法分析器
用流的形式读入要分析的C语言程序,或者通过命令行输入源程序。
2. 输出的结果要记录每个token在程序中所在行号。
3.各种单词符号的种别码,如下表1所示,是一种符号一个编码的设计
4.输出结果要输出符号在程序中所在的行号。
5. 在完成分析的基础上,时间充分的情况下,开发出GUI界面,把输出的结果在界面上显示出来,并写到文件中。
如源程序为C语言。输入如下一段:
main()
{
int a,b;
a = 10;
b = a + 20;
}
要求输出下
(2,“main” , “line=1”)
(26,“(” , “line=1”)
(27,“ )” , “line=1”)
(30,“{ ” , “line=2”)
(1,“int” , “line=3”)
(10,“a” , “line=3”)
(32,“,” , “line=3”)
(10,“b” , “line=3”)
(34,“;” , “line=3”)
(10,“a” , “line=4”)
(21,“=” , “line=4”)
(41,“1010” ,“line=4” )整型常量编码为41,值为二进制表示
(34,“;” , “line=4”)
(10,“b” , “line=5”)
(21,“=” , “line=5”)
(10,“a” , “line=5”)
(22,“+” , “line=5”)
(41,“10100”,“line=5” )整型常量编码为41,值为二进制表示
(34,“;” , “line=5” )
(31,“}” , “line=5” )