【原】上一学年的课程设计

在过去的一学年里,我们一共做了9个课程设计。

一:3个认真做并得了优的:计算机网络、操作系统、密码学

计算机网络给定的题目是用socket实现一个局域网聊天工具,实现传文件就可以了,意义不大。我们做的是自选的题目,基于SNMP和ICMP的网络拓扑发现。原理是Ping主机所在网段,TTL判断设备、SNMP读取交换机上子网信息、Ping目标网段、通过IP数据包的记录路由选项发现设备等等,最终绘制出一张包含三层设备的网络逻辑拓扑图。这个算法是我们自己设计的,由于当时对网络理解不深,又没有实验环境,这个算法是存在很大问题的,要是现在做可能会好一些(前些日子学校的专业实习课上配了半个月的交换机、路由器……)。不过结构简单的小型网络的话,结果还比较准确。

做这个东西学到了不少知识,TCPIP理论方面的、RawSocket、C++与C#面向对象的不同等等,也遇到一些问题,然后解决、提高。

在宿舍运行的结果:

1

后来,MSTC的师弟们把我们这个拓扑发现模块整合到他们做的一个小工具中,加了个MFC的壳:

2

操作系统的课程设计做的是存储管理,实现页式和段页式存储管理。我们自定义了一种“汇编语言”,仅有MOV和ADD,自定义一种“可执行文件”格式,然后模拟程序加载到内存后每执行一条指令的寻址过程。实际上是很简易很简易的演示80x86的工作原理。为了方便做界面,用了winform,结果到后面发现C#做底层确实痛苦……

3

4

密码学课程设计做的密码学演示系统。老师的要求是这个系统要有很好的接口,也就是把框架搭好,然后做一两个加密算法的演示,然后后面的师弟们可以用这个框架做更多的算法展示。这次用C++做面向对象比上次做网络那个要熟悉多了,就把注意力放到了GUI展示上。我一直认为好的软件要有漂亮大方易用的用户界面,挑战一下,考虑WPF和XNA都不能运行在教室的电脑上,也为了学习下D3D的API,就用Direct3D做界面了!我所做的就是在DXUT的基础上,再封装一套用于算法演示的“控件”,其他人使用控件演示各种加密算法。时间太仓促,演示效果不怎么理想,不过,这个控件库我还会接着做,老师还等我发他新版本呢,哈哈。

Keyword加密法:

keyword

流加密最后异或的过程:

stream

 

二:3个不擅长的:Java、数据库、软件工程

Java课程设计也是认真做的,我提了个设想,没怎么写代码。没得优的原因是我老毛病又犯了,设想的太好,实现不了。我们做的校园寻路系统:MYSQL数据库,几张简单的表,GF做了A*寻路算法,WR同学做了JSP前台,本想把寻路核心放到Web Service里,整了半天,实在对Java和Web不感冒,放弃了。没得优的原因还有那个老师就是搞J2EE的,本来就没做好又撞枪口了,要是做个手机小游戏肯定就优了,呵呵。

数据库的课程设计是教学管理辅助系统,只要数据库的设计,但从需求分析到最终的表必须齐全。我跟WR同学用PowerDesigner画了画,感觉挺难的,这个系统太大了,超出我们能力范围。结果老师说这个题目要做完善了能卖上百万了,我们的不错,还给了个优~

软件工程课程设计跟数据库差不多,只是对文档要求更高,我当时做操作系统就没参与这个。

 

三:2个偏硬件的:接口技术、计算机组成原理

接口技术的课程设计是做个交通灯,用汇编控制实验箱上几个芯片。我没选这个课,课程设计是必修,做一下倒是蛮好玩的~

组成原理的课程设计是写微指令,实现加法及格,再实现减法满分。那个老师不早说减法要每次循环减不同的值,害我们没得优……

 

四:1个很郁闷的:计算机网络安全

那个课上讲中医的老师给的题目是socks5代理服务器,然后说你们做了我也不看,课程设计成绩按考试成绩打,我X!

这个老师以前教过C++,一学期下来大部分同学还不知什么叫OOP,这次教网络安全,每节课就是google一些东西来念,还叫我们也google一些上课讲,讲课的考试加分!更悲剧的是这学期又教我们专业课!眼看着当年选这个专业时喜欢的课在选课表上,就因为她不敢选啊……

posted @ 2009-09-22 17:24  柒笑侠  阅读(633)  评论(0编辑  收藏  举报