- 1. 基本要求(每位同学选择下列其中一题,每题100分):
- 1. PE类型文件的搜索器
- 2. 简易进程查看器和属性修改工具
- 4. 基于网卡的注册码生成器工具
- 5. 基于CPU的注册码生成器工具
- 6. URL网页链接监听器
- 7. 键盘钩子和记事本监控程序
- 8. 文本文件的格式批量转换工具 ASCII格式和UTF8格式互转
- 9. 基于内存映射文件方式文件加解密工具
- 10. 基于内存映射文件Hash值计算
- 11. 模运算ActiveX控件
- 12. 时钟ActiveX控件
- 13. 绘制公章ActiveX控件
- 14. 模拟Windows文件复制功能,完成一个文件复制的功能(如图12)。
- 15. 线性代数矩阵和向量基本计算工具
- 16. 远程计算机器工具
- 17. 画图绘制工具
- 18. 多线程排序程序实现
- 19. 简单图片拼图程序
以下为Windows核心编程期末考试的试题内容,也可作为Windows编程联系题目,至于有想借鉴我考试题目的可以私聊找我
1. 基本要求(每位同学选择下列其中一题,每题100分):
1. PE类型文件的搜索器
题目具体要求:
(1)完成某文件目录下,PE类型文件查找,并写成动态链接库方式DLL。并采用多线程技术。程序至少有两个线程(界面主线程,DLL调用采用另外一个线程)。
(2)DLL调用界面可以采用Win控制台程序,Win32平台或者MFC、C#,
java,win32 窗口、VC,javascript,php等相关编程语言。
(3)DLL的编写可以用Win32平台或者MFC
(4)若采用Win32控制台程序,可以不完成图中可视化界面
平台要求:DLL编写 Win32平台或者MFC,界面可以其他编程语言
人员要求:每人选择1题,不超过4人
2. 简易进程查看器和属性修改工具
界面列举出当前系统运行所有进程,在界面输入某进程名字,能查看到该进程详细信息(进程ID、进程名字、用户名,cpu,内存,句柄数,描述等)。图1-图2参考界面;若选中某进程,可以杀死该进程;若选中某进行,可以改变此进程优先级。
题目具体要求:
(1)进程查看采用Windows API编程,并写成动态链接库方式DLL。
并采用多线程技术,程序至少有两个线程(界面主线程,DLL调用采用另外一个线程)。
(2)DLL调用界面可以采用Win控制台程序,Win32平台或者MFC、
C#,java,win32 窗口、VC,javascript,php等相关编程语言。
(3)DLL的编写可以用Win32平台或者MFC
(4)若采用Win32控制台程序,可以不完成图中可视化界面
平台要求:DLL编写 Win32平台或者MFC,界面可以其他编程语言
人员要求:每人选择1题,不超过4人
4. 基于网卡的注册码生成器工具
通过Netbios函数获取网卡的序列号,网卡序列号一般为3段,在
程序中分别将这三段存储在3个char中,然后该数组中的字符转换为成它们所对应的整形数值,在将数据通过加密算法得出另外数值并转换为ASCII字符,最后将所有ASCII字符合并就形成注册码。
题目具体要求:
(1)密码算法加密算法写成DLL。然后调用DLL完成加密算法
(2)程序至少有两个线程(界面主线程,DLL调用采用另外一个线程)。
(3)DLL调用界面可以采用Win控制台程序,Win32平台或者MFC、
C#,java,win32 窗口、VC,javascript,php等相关编程语言。
(4)密码算法可以选择DES、3DES、AES、RC4、SM4、IDEA等
密码算法中一种密码算法实现加密。
人员要求:每人选择1题,选择该题目同学,各自实现的密码算法必须不同
5. 基于CPU的注册码生成器工具
提取CPU序列号的第13位第8位,顺序连接形成一个10个字符的字符串,该字符串就是机器码,通过机器码计算注册号,主要是计算出机器码字符串中对应十进制,以该十进制作为索引在数组中选择字符,然后合并所有字符,然后采用加密算法对字符加密形成注册码,最后将注册码字符串分成4组显示在编辑框中。
题目具体要求:
(1)密码算法加密算法写成DLL。然后调用DLL完成加密算法
(2)程序至少有两个线程(界面主线程,DLL调用采用另外一个线程)。
(3)DLL调用界面可以采用Win控制台程序,Win32平台或者MFC、
C#,java,win32 窗口、VC,javascript,php等相关编程语言。
(4)密码算法可以选择DES、3DES、AES、RC4、SM4、IDEA等
密码算法中一种密码算法实现加密。
人员要求:每人选择1题,选择该题目同学,各自实现的密码算法必须不同
6. URL网页链接监听器
使用了一个剪切板钩子(HOOK),使用它监控任何拷贝到剪切板中的文字,如果复制了一个URL网页链接或者是一个URL的图片等链接,程序会立即弹出一个对话框让你配置下载任务。 用户可以通过设置文件名和文件大小,来下载整个站点的资源,或限制下载图片等等。并完成调用DLL的演示程序。并且还是实现任务栏托盘显示。
题目具体要求:
(1)创建一个DLL,采用HOOK技术剪贴板构造,完成对URL网页链接的监控。
(2)监控之后获取URL地址后,出一个对话框让你配置下载任务。 用户可以通过设置文件名和文件大小,来下载整个站点的资源,或限制下载图片等等。
(3)程序至少有两个线程(界面主线程,DLL调用采用另外一个线程)。
(4)DLL调用界面可以采用Win控制台程序,Win32平台或者MFC、C#,java,win32 窗口、VC,javascript,php等相关编程语言。
(5)DLL的编写可以用Win32平台或者MFC
人员要求:每人选择1题,不超过3人
7. 键盘钩子和记事本监控程序
打开记事本,采用HOOK技术,采用消息拦截完成对键盘消息监控,并记录用户所有程序的键盘操作,并记录在记事本中。当记事本写入文本时,则完成对记事本输出文本的监控,并输出提示“键盘消息和记事本已经被监控”具体完成如下功能:
(1)创建一个DLL,采用HOOK技术全局钩子,完成对监视和记录用户所有程序的键盘操作,并记录到记事本中。
(2)采用HOOK API技术,完成对记事本输出显示函数监控;然后拦截记事本输出函数,调用MessageBox函数输出“记事本被监控”类似消息。
(3)DLL调用界面可以采用Win控制台程序,Win32平台或者MFC、C#,java,win32 窗口、VC,javascript,php等相关编程语言。
(4)DLL的编写可以用Win32平台或者MFC
(5)若采用Win32控制台程序,可以不完成图中可视化界面
人员要求:每人选择1题,不超过4人
8. 文本文件的格式批量转换工具 ASCII格式和UTF8格式互转
实现文本文件ASCII转换为UTF8的格式批量转换。要求读写文件方式采用内存映射文件方式。
题目具体要求如下:
(1)ASCII与UTF8互转,以及内存映射文件读写文件功能编写DLL完完成。
(2)程序至少有三个线程(界面主线程,ASCII转换UTF8调用一个线程,UTF8转换为ASCII调用一个线程)。
(3)DLL调用界面可以采用Win控制台程序,Win32平台或者MFC、C#,java,win32 窗口、VC,javascript,php等相关编程语言。
(4)DLL的编写可以用Win32平台或者MFC。
(5)若采用Win32控制台程序,可以不完成图中可视化界面。
人员要求:每人选择1题,不超过3人
9. 基于内存映射文件方式文件加解密工具
采用内存映射文件方式,完成密码算法实现文件加密和解密算法。
题目具体要求:
(1)加密的明文和密文文件读写采用内存映射文件方式进行读写
(2)密码算法加密算法和解密算法写成DLL。然后调用DLL完成加密
和解密。
(3)程序至少有两个线程(界面主线程,DLL调用采用另外一个线程)。
(4)DLL调用界面可以采用Win控制台程序,Win32平台或者MFC、
C#,java,win32 窗口、VC,javascript,php等相关编程语言。
(5) 密码算法可以选择DES、3DES、AES、RC4、SM4、IDEA等;也可以选择古典密码算法仿射密码、维吉尼亚密码、希尔密码、Playfair等古典密码,其中一种密码算法实现加密和解密。
人员要求:每人选择1题,选择该题目同学,各自实现的密码算法必须不同
10. 基于内存映射文件Hash值计算
采用内存映射文件方式,完成文件Hash值计算。
题目具体要求:
(1)Hash函数的输入必须文件读取,读写采用内存映射文件方式进行读写。
(2)Hash函数写成DLL。然后调用DLL完成Hash函数。
(3)程序至少有两个线程(界面主线程,DLL调用采用另外一个线程)。
(4)DLL调用界面可以采用Win控制台程序,Win32平台或者MFC、C#,java,win32 窗口、VC,javascript,php等相关编程语言。
(5)Hash算法可以选择MD5、SHA-1、SHA-256、SHA-384、SHA-526等哈希算法中一种哈希算法实现hash值计算
人员要求:每人选择1题,选择该题目同学,各自实现的Hash函数必须不同
11. 模运算ActiveX控件
采用ActiveX控件编程技术,完成数论中基本模运算ActiveX控件。
(1)图形化完成求两个数最大公约数gcd(a,b)的ActiveX控件,如下图8所示。并进行ActiveX控件调用演示。
(2) 图形化完成求 a 模b 逆元的ActiveX控件,并进行ActiveX控件调用演示。
(3)图形化完成 求两数最小公倍数的ActiveX控件,并进行ActiveX控件调用演示。
(4) 图形化完成求贝祖定理的贝祖数a和b的ActiveX控件,并进行ActiveX控件贝祖定理:若设a,b是整数,则存在整数x,y,使得ax+by=(a,b)
(5)要求能控件能通过属性设置背景颜色,控件标题,字体等相关属性;控件界面可以类似于下图所示。
(6)要求完成上述(1)、(2)、(3)、(4)种功能中至少任意三个功能,并要有测试ActiveX控件的测试程序。
平台要求:采用 MFC ActiveX编写,界面可以其他编程语言
人员要求:每人选择1题,不超过5人
12. 时钟ActiveX控件
采用ActiveX控件编程技术,完成时钟和数字时钟的ActiveX控件。
(1)图形化完成类似下图的时钟ActiveX控件,并进行ActiveX控件调用演示,如图9所示。
(2)图形化完成类似下图的数字时钟ActiveX控件,并进行ActiveX控件调用演示,如图10所示
(3)要求能控件能通过属性设置背景颜色,控件标题,字体等相关属性
(4)要求完成上述(1)、(2)功能,并要有测试ActiveX控件的测试程序。
平台要求:采用 MFC ActiveX编写,界面可以其他编程语言
人员要求:每人选择1题,不超过5人
13. 绘制公章ActiveX控件
采用ActiveX控件编程技术,完成印章的ActiveX控件。
(1)图形化完成类似下图的印章ActiveX控件,并进行ActiveX控件调用演示,如图11所示。
(2)通过控件属性设置,可以改变印章内容
(3)要求能控件能通过属性设置背景颜色,控件标题,字体等相关属性
(4)要求完成上述(1)、(2)功能,并要有测试ActiveX控件的测试程序。
平台要求:采用 MFC ActiveX编写,界面可以其他编程语言
人员要求:每人选择1题,不超过4人
14. 模拟Windows文件复制功能,完成一个文件复制的功能(如图12)。
题目具体要求:
(1)文件复制采用Windows API编程,并写成动态链接库方式DLL。并采
用多线程技术,程序至少包含三线程,一线程负责界面,另外两线程分别一个负责文件读取,另外一个线程负责文件的写入。两线程通过线程同步技术(如信号量,事件等),当写线程运行时通过线程同步机制写线程进入等待状态,当写线程运行时,读取线程进入等待状态。
(2)DLL调用界面可以采用Win控制台程序,Win32平台或者MFC、C#,
java,win32 窗口、VC,javascript,php等相关编程语言。
(3)DLL的编写可以用Win32平台或者MFC
(4)若采用Win32控制台程序,可以不完成图中可视化界面
平台要求:DLL编写 Win32平台或者MFC,界面可以其他编程语言
人员要求:每人选择1题,不超过4人
15. 线性代数矩阵和向量基本计算工具
线性代数矩阵和向量基本计算工具,要求完成矩阵的相乘,相加,相减、相除、转置、求矩阵的行列式,各列向量方差、以及协方差等相关功能。
题目具体要求:
(1)矩阵和向量各种运算采用Windows API编程,并写成动态链接库方式DLL。并采用多线程技术。程序至少有两个线程(界面主线程,DLL调用采用另外一个线程)。
(2)DLL调用界面可以采用Win控制台程序,Win32平台或者MFC、C#,java,win32 窗口、VC,javascript,php等相关编程语言。
(3)DLL的编写可以用Win32平台或者MFC
(4)若采用Win32控制台程序,可以不完成图中可视化界面
平台要求:DLL编写 Win32平台或者MFC,界面可以其他编程语言
人员要求:每人选择1题,不超过4人
16. 远程计算机器工具
采用网络编程技术C/S模式,实现一个可以同时为多个客户端提供服务的远程算术运算程序。程序分为服务器和客户端两个部分。客户端向服务器发送算术表达式,服务器收到表达式后,计算该表达式,并将该结果返回客户端。
题目要求如下:
(1)服务器设计以多线程式工作,以接受多个客户端的算术运算请求。建立一个用于接受客户端请求的线程,等待客户端的连接。为每一个接受的客户端都建立一个接收数据线程和一个发送数据线程。当接收线程收到数据后,先计算算数表达式的结果,然后使用事件通知发送数据线程。发送数据线程接收到事件后,将计算结果发送数据给客户端。服务器主线程用于接收用户的输入和显示信息。
(2)客户端设计为多线程工作方式,主线程显示用户的输入和数据的计算结果,子线程接收和发送数据。主线程用于所有的界面显示和接收用户的输入。建立一个数据发送线程。当数据打包后,通知该线程向服务器发送数据。建立一个数据接收线程。当该线程接收到服务器发送的数据后,由该线程完成对数据的解包,并通知主线程显示计算结果。所有的子线程都必须自动退出。在所有的子线程都退出后,主线程最后退出。
(3)可以采用Win控制台程序,Win32平台或者MFC、C#,java,win32 窗口、VC,javascript,php等相关编程语言。若实现可视化,则界面设计如图13所示。
(4)若采用Win32控制台程序,可以不完成图中可视化界面
人员要求:每人选择1题,不超过8人
图13 服务器和客户端界面设计
图13 服务器和客户端界面设计
17. 画图绘制工具
实现快速画出直线、圆,矩形,三角,多边形、扇形、五角星、六边形等常见的图形以及各种曲线。
题目具体要求如下:
(1) 绘图工具编写DLL完成,提供各种绘图接口。
(2)程序至少有二个线程(界面主线程,另外一线程调用绘图DLL)。
(3)DLL调用界面可以采用Win32平台或者MFC、C#,java,win32 窗口、VC,javascript,php等相关编程语言。
(4)DLL的编写可以用Win32平台或者MFC。
(5)必须完成可视化界面,采用 win32平台或者MFC编写。
人员要求:每人选择1题,不超过3人
18. 多线程排序程序实现
动态随机生成一组的数据,数据长度超过1000,然后同时使用几种排序方法排序(冒泡、选择、插入、归并、快速、堆排序、希尔排序),比较各种排序的运行时间。
题目要求如下:
(1)排序功能写成DLL,通过DLL调用各种不同排序方法,题目要求的每种排序都必须提供。
(2)程序至少有二个线程(界面主线程,另外一线程调用排序DLL)。
(3)DLL调用界面可以采用Win控制台程序,Win32平台或者MFC、C#,java,win32 窗口、VC,javascript,php等相关编程语言。
(4)DLL的编写可以用Win32平台或者MFC。
(5)若采用Win32控制台程序,可以不完成图中可视化界面。
人员要求:每人选择1题,不超过3人
19. 简单图片拼图程序
编写一个图片拼图游戏,图片被分割为2_2,4_4,88等。基本要求:
(1)可以选择一张图片,然后分割为2_2,4_4,88等不同等份
(2)分割的图片随机显示在界面上
(3)用户通过键盘上下左右键,图片可以上下左右移动,完成图片拼图功能。
题目编程具体要求:
(1)图片分割采用Windows API编程,并采用内存映射文件方式进行读取,程序至少有三个线程(界面主线程,图片随机显示在界面是一线程,图片拼图是一线程)。
(2)界面设计要求采用Win32 SDK或者MFC进行编写
平台要求:DLL编写 Win32平台或者MFC,界面可以其他编程语言
人员要求:每人选择1题,不超过5人
20、可以参照前面1-16自拟题目,但自拟题目要求编写程序应用到的技术至少要多线程、内存映射文件、动态链接的任意两项,或者ActiveX控件技术。
备注:1-19题每题,需要采用进程、线程、windows内存结构、虚拟内存、堆栈、动态链接、ActiveX控件等多个知识点的编程知识。每道题中涉及每个知识点具体分值:
(1)采用Win32平台编码方式、10分
(2)进程 10分
(3)线程(或多线程) 18分
(4)windows内存结构 8分
(5)虚拟内存 8 分
(6)堆栈 10 分
(7)动态链接(或ActiveX控件) 30分
其中 第3、第4、第5涉及编程知识点为动态链接,其余题目涉及知识点为动态链接。