程序设计课程设计
《程序设计课程设计》
信息与计算专业,信09A-12
指导教师:陈小光
2011 年 6~7 月 第19-21周,第一实验楼315
周一
第1-2节 第3-4节 信08-12
周二
数08-12 数08-12
周三
信09-12
信10-12
周四
数08-12 数08-12
周五
信10-12 信08-12
信09-12
信10-12 信10-12
第5-6节 第7-8节
网络安全 网络安全
信08-12 信08-12
网络安全 网络安全
信09-12 信09-12
内容概要
• 一、课程介绍
– 相关信息、上机安排、先修课程、课程目标、 编程要求、分组说明、课程评价、课设报告书 格式
• 二、题目介绍
– Matlab, 可视化,C/C++,数据库等
• 三、其它
19
P3. 可视化编程:对话框和标准控件
• Visual C++ 面向对象编程教材(第2版),王育 坚 编著。 • 在一个应用程序里,完成 “第6章 对话框和标准 控件”的如下几个习题: 6-41 编制一个使用组合框的对话框应用程序, 在组合框中选择学生姓名后,可以浏览并编辑 学生的数学、英语和语文成绩;在组合框中输 入学生姓名后,如果组合框中不存在该学生, 则添加该学生姓名,并进入成绩输入状态。 6-42 完善习题6-41中程序的功能,在程序退出 后再重新运行时,对话框能显示以前输入的信 息。
• 计算圆周率π尽可能准确的近似值,(曾经)是 数学家们的/f?kz=4625126
• 题目要求: – 设计并编程实现一种计算π的方法,要求可精 确到小数点后几百几千几万或更多位。 – 可采用几何、微积分、概率等方法。 • 可参考如下网页:
> TextStat.exe input.txt result.txt
– 要求统计单字符、双字符、三字符的出现频率,并给出排序结果 – 统计结果写到文件 – 提示1:可用C里的fopen等或C++里的iofstream来进行文件读写 – 提示2:可用数组或C++里的map,vector等容器来存储统计信息 – 提示3:可用C的qsort() 或 C++的 std::quicksort()进行排序
网络安全 网络安全
信09-12 信09-12
• Important Dates
– 19周,周一:课程介绍及题目讲解 – 20周,周五:组长中期汇报 – 21周,周五:分组总结汇报及提交成果
6
先修课程
第1学期
高等代数(1)
数学分析(1) 解析几何
第2学期
高等代数(2)
数学分析(2)
第3学期
常微分方程
• 第4部分 结果与分析
– 给出具体的运行结果,并加以分析
• 第5部分 总结
– 完成情况,任务分工,心得体会等
• 第6部分 参考文献
– 参考文献
第7部分 附录
-- 程序代码等
12
二、课设题目介绍
• P1. Matlab编程:数学问题求解
题
目 列
• P2. 可视化编程:鼠标、绘图与状态栏 • P3. 可视化编程:对话框和标准控件 • P4. C/C++编程:矩阵运算 • P5. C/C++编程:大整数运算 • P6. C/C++编程:文本统计 • P7. 数据库编程:班级信息管理系统 • P8. 数据库编程:毕设选题系统 • • • • P9. 趣味编程:圆周率π的计算 P10. 趣味编程:验证码图片生成 P11. 趣味编程:排序算法可视化 P12. 趣味编程:24点游戏
数学分析(3)
第4学期
数值分析
数学建模
大学物理Ⅵ(1) 大学物理Ⅵ(2)
文献检索与利用
大学计算机基础 C++程序设计 可视化程序设计 数据库应用基础
7
课程目标
• 首先,在用 C/C++/VC/Matlab 等编程语言 完成给定题目的程序设计过程中:
– 初步了解软件设计相关知识及步骤 – 进一步理解结构化和面向对象程序设计的思想 – 更全面地掌握这些编程语言的相关知识 – 了解较大型程序的调试方法等
– 说明:请考虑系统的合理高效、操作的简捷方便等因 素
27
08级课设结果
28
P8. 数据库编程:毕设选题系统
• 本系毕设选题流程:
– – – – 1. 老师给出毕设题目及相关要求,并汇总 2. 所有毕业班同学通过抽签排序 3. 按排序前后顺序依次选择个人“中意”的题目 4. 师生确认,若有必要则可修改题目
12345678901234×987654321=.... 100!=....
24
P6. C/C++编程:文本统计
• 文本统计有广泛应用,如搜索引擎里网页分析,密码学中 密文破解等 • 题目要求:
– 写一个 Win32 Console 程序,实现对指定英文文本文件的文本统 计分析 – 命令行调用方式(举例):
20
08级课设结果
21
C/C++编程
说明:C或C++均可, 不限 IDE/编译器
P4. C/C++编程:矩阵运算
• 参考:《高等代数》 • 题目要求:
– 采用C的数组/Struct或C++的vector或valarray或自定义 类来表示矩阵 – 实现矩阵的加减乘等常见运算 – 注:若实现矩阵求逆运算可加分
14
表
Matlab编程
P1. Matlab编程:数学问题求解
• 参考:Matlab R2007 基础教程,刘慧颖 编著 • 完成“第5章 Matlab的数学运算”的如下习题:
1.计算下列积分。 (1) x x x dx
3 5 1 1 x 2
( 2)
10
1
sin x cos xdx
4. 有如下数据: x y 1 1.0000 1.1 1.23368 1.2 1.55271 1.3 1.99372 1.4 2.61170
利用本章介绍的几种插值方法对其进行插值,得到每隔 0.05 的结果。
17
可视化编程
说明: VC/VB/Java均可, 若VC,以下IDE均可 Visual Studio 6.0/2005/2008/2010
25
数据库编程
说明:不限数据库(Access, MySQL, SQL Server 均可), 亦可做成网站网页形式
P7. 数据库编程:班级信息管理系统
• 题目要求:
– 建立一个数据库系统,实现班级相关信息的存储和处 理(添加、修改、删除、查询等) – 请创建各种 table,如:
• • • • 人员基本信息(学号、姓名、电话、生日、籍贯等) 选课信息(人员、课程、成绩等) 奖励信息(人员、奖学金、荣誉称号等) 活动信息(人员、活动内容等)
10
课程评价
• 需提交
– 程序源代码、可执行文件、测试用例 (电子版) – 课程设计报告书 (电子版、打印版)
– ~电子版提交到多模式教学网~ • 评价标准
– 基本考查点:
• 出勤情况、相关知识掌握程度、 • 程序编写情况、实验结果、 • 报告书撰写情况等
– 适当考虑题目的难易程度 – ★加分条件:有创意,有创新★
• 其次,培养自主学习、资料收集和编程实 践的能力,为后续专业课程打下基础;同 时,培养团以下过程进行:
– (1) 首先,进行系统分析,对问题进行模块划分或 对象分析,进行总体设计,画出程序结构图及各种 模块流程图(或对象类的结构图);
– (2) 然后,进行详细设计、编程实现、程序调试;
31
P10. 趣味编程:验证码图片生成
• 不少网站为了防止用户利用机器人自动注册、登录、灌水, 都采用了验证码技术。
• 所谓验证码,就是将一串随机产生的数字或符号,生成一 幅图片,图片里加上一些干扰象素(防止OCR),由用户 肉眼识别其中的验证码信息,输入表单提交网站验证,验 证成功后才能使用某项功能。
33
• 题目要求:
– 请设计一个数据库系统,实现上述毕设选题流程。 – 各种 table,如:题目信息、学生信息、选题结果信息 等 – 说明:也可把此问题当作数学建模问题来做,即深入 分析,建立最优(或相对较优)模型,并进行仿真实 验,给出模型评价和改进等。
29
趣味编程
说明:不限编程语言,尽情发挥
P9. 趣味编程:圆周率π的计算
– (3) 最后,撰写课程设计报告书。
9
分组说明
• 分组原则
– 分组,每组人数为 3~4 人 – 建议采用“组长-组员”双向选择方式 – 允许跨班组合
• 组长负责
– 统筹安排本组所有事务 – 与老师交流沟通
• 组员分工
– 原则:任务分摊、职责明确、团队合作 – 任务:问题分析、方案设计、资料查找、代码编写、 程序测试、文档撰写等
(3)
6
2
e dx ( 4)
10
1
x dx 4 x x
2.求下列函数的极值。 (1)z x 2 ( y 1)2 (2)z ( x y 1) 2 0 x
(3)z sin x cos y cos(x y )
2
, 0 x
2
16
3.求下列函数的解,并绘制图形。 (1) y e x x 5 , 初始点为 x 8 (2) y x sin x
– 好书推荐
2
一、课程介绍
相关信息
• 授课教师:陈小光