程序设计课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《程序设计课程设计》信息与计算专业,信09A-12指导教师:陈小光2011年6~7月第19-21周,第一实验楼315周一周二周三周四周五第1-2节信08-12数08-12信09-12数08-12信10-12第3-4节信09-12数08-12信10-12数08-12信08-12第5-6节信10-12网络安全信08-12网络安全信09-12第7-8节信10-12网络安全信08-12网络安全信09-122内容概要•一、课程介绍–相关信息、上机安排、先修课程、课程目标、编程要求、分组说明、课程评价、课设报告书格式•二、题目介绍–Matlab,可视化,C/C++,数据库等•三、其它–好书推荐一、课程介绍4相关信息•授课教师:陈小光–办公室:四教西204–Email:chenxg[at]ncut.edu.cn•课程主页–请登陆多模式教学网–可下载课设题目要求、课设报告书模板等5上机安排(1)•本课程设计为每位同学提供24学时的上机安排,以便能及时收集资料、编写程序实现算法、测试程序和完成设计报告。•非上机时间,学生可以在教室、图书馆、宿舍等场所完成资料查阅、系统设计、编程调试等工作。6上机安排(2)•ImportantDates–19周,周一:课程介绍及题目讲解–20周,周五:组长中期汇报–21周,周五:分组总结汇报及提交成果第19-21周,第一实验楼315周一周二周三周四周五第1-2节信08-12数08-12信09-12数08-12信10-12第3-4节信09-12数08-12信10-12数08-12信08-12第5-6节信10-12网络安全信08-12网络安全信09-12第7-8节信10-12网络安全信08-12网络安全信09-127先修课程第1学期第2学期第3学期第4学期高等代数(1)数学分析(1)解析几何大学计算机基础高等代数(2)数学分析(2)C++程序设计常微分方程数学分析(3)大学物理Ⅵ(1)可视化程序设计数据库应用基础数值分析数学建模大学物理Ⅵ(2)文献检索与利用8课程目标•首先,在用C/C++/VC/Matlab等编程语言完成给定题目的程序设计过程中:–初步了解软件设计相关知识及步骤–进一步理解结构化和面向对象程序设计的思想–更全面地掌握这些编程语言的相关知识–了解较大型程序的调试方法等•其次,培养自主学习、资料收集和编程实践的能力,为后续专业课程打下基础;同时,培养团队合作的精神。9编程要求•程序设计请按以下过程进行:–(1)首先,进行系统分析,对问题进行模块划分或对象分析,进行总体设计,画出程序结构图及各种模块流程图(或对象类的结构图);–(2)然后,进行详细设计、编程实现、程序调试;–(3)最后,撰写课程设计报告书。10分组说明•分组原则–分组,每组人数为3~4人–建议采用“组长-组员”双向选择方式–允许跨班组合•组长负责–统筹安排本组所有事务–与老师交流沟通•组员分工–原则:任务分摊、职责明确、团队合作–任务:问题分析、方案设计、资料查找、代码编写、程序测试、文档撰写等11课程评价•需提交–程序源代码、可执行文件、测试用例(电子版)–课程设计报告书(电子版、打印版)–~电子版提交到多模式教学网~•评价标准–基本考查点:•出勤情况、相关知识掌握程度、•程序编写情况、实验结果、•报告书撰写情况等–适当考虑题目的难易程度–★加分条件:有创意,有创新★12“课设报告书”基本格式•封面页–题目、小组成员等•第1部分问题描述•第2部分分析与设计–对问题或任务的分析,需要用哪些技术,程序由几个模块组成,每个模块实现什么功能等•第3部分程序实现–给出关键代码,要求有详细的注释•第4部分结果与分析–给出具体的运行结果,并加以分析•第5部分总结–完成情况,任务分工,心得体会等•第6部分参考文献第7部分附录–参考文献--程序代码等1.请从多模式教学网上课程主页里下载“课设报告书模板”。2.严格要求格式规范!二、课设题目介绍14题目列表•P1.Matlab编程:数学问题求解•P2.可视化编程:鼠标、绘图与状态栏•P3.可视化编程:对话框和标准控件•P4.C/C++编程:矩阵运算•P5.C/C++编程:大整数运算•P6.C/C++编程:文本统计•P7.数据库编程:班级信息管理系统•P8.数据库编程:毕设选题系统•P9.趣味编程:圆周率π的计算•P10.趣味编程:验证码图片生成•P11.趣味编程:排序算法可视化•P12.趣味编程:24点游戏Matlab编程16P1.Matlab编程:数学问题求解•参考:MatlabR2007基础教程,刘慧颖编著•完成“第5章Matlab的数学运算”的如下习题:1014622x1011153)4()3(cossin)2(1.1dxxxxdxexdxxdxxxx)(计算下列积分。20,20)cos(cossin3)1(2)1(1.2222xxyxyxzyxzyxz)()()(求下列函数的极值。17sin)2(8,)1(.35xxyxxeyx初始点为制图形。求下列函数的解,并绘4.有如下数据:利用本章介绍的几种插值方法对其进行插值,得到每隔0.05的结果。x11.11.21.31.4y1.00001.233681.552711.993722.61170可视化编程说明:VC/VB/Java均可,若VC,以下IDE均可VisualStudio6.0/2005/2008/201019P2.可视化编程:鼠标、绘图与状态栏•参考:VisualC++面向对象编程教材(第2版),王育坚编著。•在一个单文档应用程序里,完成“第5章文档与视图”的如下几个习题:5-35编写一个应用程序,当在视图中单击鼠标时,在单击处输出鼠标的坐标。5-36设计一个应用程序,当双击鼠标后弹出一个信息框,显示鼠标双击的次数。5-42编写一个应用程序,实现在状态栏显示当前时间的功能。5-43编写一个应用程序,程序能在状态栏显示鼠标的坐标。20P3.可视化编程:对话框和标准控件•VisualC++面向对象编程教材(第2版),王育坚编著。•在一个应用程序里,完成“第6章对话框和标准控件”的如下几个习题:6-41编制一个使用组合框的对话框应用程序,在组合框中选择学生姓名后,可以浏览并编辑学生的数学、英语和语文成绩;在组合框中输入学生姓名后,如果组合框中不存在该学生,则添加该学生姓名,并进入成绩输入状态。6-42完善习题6-41中程序的功能,在程序退出后再重新运行时,对话框能显示以前输入的信息。2108级课设结果C/C++编程说明:C或C++均可,不限IDE/编译器23P4.C/C++编程:矩阵运算•参考:《高等代数》•题目要求:–采用C的数组/Struct或C++的vector或valarray或自定义类来表示矩阵–实现矩阵的加减乘等常见运算–注:若实现矩阵求逆运算可加分24P5.C/C++编程:大整数运算•大整数有广泛应用,如密码学里的RSA算法。•题目要求:1.分析大整数运算的困难性,并给出大整数运算的编程实现方案;2.编程实现大整数的有效表示方式、输入输出以及四则运算;3.编程实现基于大整数运算的阶乘计算。4.Win32Console程序即可–例如12345678901234×987654321=....100!=....25P6.C/C++编程:文本统计•文本统计有广泛应用,如搜索引擎里网页分析,密码学中密文破解等•题目要求:–写一个Win32Console程序,实现对指定英文文本文件的文本统计分析–命令行调用方式(举例):TextStat.exeinput.txtresult.txt–要求统计单字符、双字符、三字符的出现频率,并给出排序结果–统计结果写到文件–提示1:可用C里的fopen等或C++里的iofstream来进行文件读写–提示2:可用数组或C++里的map,vector等容器来存储统计信息–提示3:可用C的qsort()或C++的std::quicksort()进行排序数据库编程说明:不限数据库(Access,MySQL,SQLServer均可),亦可做成网站网页形式27P7.数据库编程:班级信息管理系统•题目要求:–建立一个数据库系统,实现班级相关信息的存储和处理(添加、修改、删除、查询等)–请创建各种table,如:•人员基本信息(学号、姓名、电话、生日、籍贯等)•选课信息(人员、课程、成绩等)•奖励信息(人员、奖学金、荣誉称号等)•活动信息(人员、活动内容等)–说明:请考虑系统的合理高效、操作的简捷方便等因素2808级课设结果29P8.数据库编程:毕设选题系统•本系毕设选题流程:–1.老师给出毕设题目及相关要求,并汇总–2.所有毕业班同学通过抽签排序–3.按排序前后顺序依次选择个人“中意”的题目–4.师生确认,若有必要则可修改题目•题目要求:–请设计一个数据库系统,实现上述毕设选题流程。–各种table,如:题目信息、学生信息、选题结果信息等–说明:也可把此问题当作数学建模问题来做,即深入分析,建立最优(或相对较优)模型,并进行仿真实验,给出模型评价和改进等。趣味编程说明:不限编程语言,尽情发挥31P9.趣味编程:圆周率π的计算•计算圆周率π尽可能准确的近似值,(曾经)是数学家们的奋斗目标…有了计算机就容易多了!•百度贴吧“圆周率的计算历程”:–=4625126•题目要求:–设计并编程实现一种计算π的方法,要求可精确到小数点后几百几千几万或更多位。–可采用几何、微积分、概率等方法。•可参考如下网页:––––趣味编程:验证码图片生成•不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。•所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。•百度百科上的词条:验证码、CaptchaCAPTCHA:CompletelyAutomatedPublicTuringTesttoTellComputersandHumansApart(全自动区分计算机和人类的图灵测试)33目标:让计算机自动识别(很)难,让人来识别(很)容易。3408级课设结果(Matlab编程)(VC编程)35•题目要求:–编程实现生成(简单的)验证码图片–图片的内容可以为随机整数、字符或其它–干扰因素:随机噪声、几何对象(线段/圆等)、随机颜色、图像扭曲/缩放等–提示:可用VC里的绘图(CDC类)或Matlab里的图像处理工具箱里的函数来进行绘图操作36P11.趣味编程:排序算法可视化•维基百科上的“排序算法”词条:在计算机科学与数学中,一个排序算法是一种能将一串资料依照特定排序方式的一种算法。最常用到的排序方式是数值顺序以及字典顺序。有效的排序算法在一些算法(例如搜寻算法与合并算法)中是重要的,如此这些算法才能得到正确解答。排序算法也用在处理文字资料以及产生人类可读的输出结果。•考虑这些排序算法:选择排序、插入排序、冒泡排序、快速排序37•题目要求:–实现选择、插入、冒泡、快速四种排序算法中的1~2种;(这部分可采用现成的代码)–实现图形界面演示程序,可视化显示整个排序过程;•提示:每一次数据比较后,都显示当前整个数组,从而可视化地显示排序算法执行的整个过程–生成随机数据进行测试;–根据测试结果,尝试分析比较不同算法的优劣。。–注:可视化界面部分可

1 / 44
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功