《软件课程设计》报告.docx
- 文档编号:13050558
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:18
- 大小:195.29KB
《软件课程设计》报告.docx
《《软件课程设计》报告.docx》由会员分享,可在线阅读,更多相关《《软件课程设计》报告.docx(18页珍藏版)》请在冰点文库上搜索。
《软件课程设计》报告
编号:
()字号
《软件课程设计》报告
班级:
姓名:
学号:
指导老师:
职称:
讲师
中国矿业大学计算机科学与技术学院
二〇〇八年
软件课程设计任务书
专业年级:
学生姓名:
任务下达日期:
2008年12月27日
课程设计日期:
2008年10月10日至2009年01月03日
课程设计题目:
类别
题目序号
面向过程
1,2,3,4,5,6
面向对象
1,2,3,4,5,6
图形界面
1,3
数据结构
1,2,4,8
前言
==================================
继C++之后,又一门编程课《软件课程设计》开设了。
该课程分为四大部分:
面向过程、面向对象、可视化编程、数据结构。
前两部分在学习C++的时候就已经接触过了,有了一定的基础。
但那时不是很注重实践,理论知识学的比较多。
这门可以让你将理论化为实践,亲自体会编程的快乐。
后面两部分是新内容,需要好好学习,否则很有可能不会。
这需要我们自己去查阅资料,去分析,去总结。
这样,我们才算自己掌握了。
只有我们努力过了,才知道有没有收获。
试想一下,一道很复杂的编程题被自己解决了,肯定很有成就感。
我们会从中获取很大的快乐。
2009年01月02日
中国矿业大学
第一部分面向过程
1基础题_2.求整数n与其反序数之和
1.1需求分析:
该程序用来求一正整数与其倒序数的和。
1.2概要设计:
输入正整数,就可进行计算,如果输入错误,就需重新输入。
1.3详细设计与编码:
见上传程序。
1.4调试分析:
程序本身没错误,运行正常。
1.5测试分析:
1.6设计心得:
该题目比较简单,以前就接触过此类题目,算法并不复杂,程序也很简单。
只要有个整体框架就可以写好。
2基础题_4.求n元人民币的最佳组合
2.1需求分析:
如果提供一人民币钱数,用该程序分析求得人民币的最佳组合。
2.2概要设计:
提供一个数字,写一个程序可以将数字进行分析,分出一百,五十,二十,十,五,二,一等,然后综合分析将所需结果显示出来。
2.3详细设计与编码:
见上传程序。
2.4调试分析:
此程序也比较简单,不需要一步步调试分析,运行正常。
2.5测试分析:
2.6设计心得:
该程序属于基础类的,没有复杂的语言,都是最简单的,让我复习了一下以前学过的知识。
第二部分面向对象
1基础题_1.完成两个复数的加减运算
1.1需求分析:
提供两个复数,完成两数之间的运算。
1.2概要设计:
1.main()完成程序操作
2.Complex(){real=0;imag=0;}构造函数
3.Complex(doubler,doublei):
real(r),imag(i){};构造函数
4.voidcomplex_add(Complex&c2);完成加法运算
5.voidcomplex_sub(Complex&c2);完成减法运算
1.3详细设计与编码
见上传程序。
1.4调试分析:
运行正常。
1.5测试分析:
1.6设计心得:
该程序运用了类,进一步加深了我对程序语言运用的理解,使我巩固了以前的知识,对以后的学习打下了基础。
2基础题_完成对两个日期的比较及相差天数的输出以及输入日期当月日历的输出
2.1需求分析:
该程序用来完成对两个日期的比较及相差天数的输出以及输入日期当月日历的输出。
2.2概要设计:
1.main()完成各种提示与主操作输入输出
2.classDateType包含各数据及函数
3.DateType:
:
DateType(inty,intm,intd)构造函数
4.voidequal(DateType&dt2)完成两个日期的比较
5.voiddisplay_calender()完成当月日历的输出
2.3详细设计与编码:
见上传程序。
2.4调试分析:
该程序运行正常。
2.5测试分析:
2.6设计心得:
该程序运用了一些较复杂的算法,使用了布尔函数,调用了较多的类,类和对象的运用加强了数据隐蔽性和程序安全性。
第三部分可视化编程
1基础题_计算器
1.1需求分析:
设计任务:
用你熟悉的一种可视化编程语言实现如下图所示的计算器。
该计算器需要实现基础的数学运算,如加,减,乘,除。
实现过程:
1.加法的实现,如6+10=16的操作如下:
2.减法的实现略
3.乘法的实现,如4*9=36的操作如下:
4.除法的实现略。
1.2概要设计:
程序是用C++Builder制作,在进入C++Builder时选择基本对话框来建立工程,然后根据题目图形的需求,在工作区的Resourceview中的Dialog进行框架的设计,如上图所示的图形进行按钮的拖放,当按钮都拖放完毕后就进行按钮函数的设计。
1.3详细设计与编码:
见上传程序
1.4调试分析:
当将程序写完后,在调试时出现的问题就是不能显示点击的数字和结果,发现是在写函数的成员变量上出现了问题,由于将Dialog里面的成员变量写成了私有的变量,使得不能出现程序结果。
1.5设计心得:
复习了以前学C++Builder时所学到的知识,以前对图形界面的学习并没有太多的应用,这次使我进一步了解了可视化编程。
3汉诺塔演示程序
2.1需求分析:
设计任务:
用你熟悉的一种可视化编程语言实现以下汉诺塔演示程序(可以参考附件中的程序代码)。
实现过程:
1.开始的时程序出现一个选择对话框,选择要演示的汉诺塔盘子数。
2.然后点击下一步。
如下:
3.移动完成,可选择重新选择开始下一轮或选择退出
2.2概要设计:
本程序的功能实现部分为窗口过程函数,主要是设计图形界面,然后输入正确的汉诺塔程序,运行并不断调试,直到达到最好状态为止。
2.3详细设计与编码:
见上传程序。
2.4调试分析:
在运行时没有出现错误,运行正常。
2.5设计心得:
在书写这个程序前我花了一段时间复习了C++Builder程序设计方面知识,为以后进一部学习奠定了基础。
第四部分数据结构
1基础题_用链表和数组两种方式分别实现栈的出栈、入栈、取栈顶元素、判空、查找等操作
1.1需求分析:
用数据结构的方法实现数据的出栈入栈,取栈顶元素,判空,查找等操作。
1.2概要设计:
链表方法实现时,用指针完成各项操作。
数组方法实现时,对整个栈的数据进行遍历。
1.3详细设计与编码:
见上传程序。
1.4调试分析:
该程序运行正常。
1.5测试分析:
1.6设计心得:
通过学习数据结构,了解了更多关于程序方面的知识。
通过该程序深入了解了栈的有关知识。
2基础题_删除链表中结点的前驱结点
2.1需求分析:
要删除指针所指定链表中节点的前驱节点。
2.2概要设计:
运用指针找到所指节点的前驱节点,删除前驱节点,将此节点与前驱的前驱连接
2.3详细设计与编码:
见上传程序。
2.4调试分析:
该程序运行正常。
2.5测试分析:
2.6设计心得:
此程序题目给出的设计要求不难,但程序可以做一定的拓展
设计总结:
软件课程设计这门课,开设的意义非常大。
我们在初步了解C++之后对软件编程有了一些了解,也能编一些较简单的程序。
但仅仅如此,是不够的。
我们需要向更高层次发展,于是这门课的用处就体现出来了。
编程是一门博大精深的学问,软件课程设计的学时较少,需要我们课下花大量的时间看书学习,弄懂相关的知识,掌握相关技能。
在学习的过程中,不仅将面向过程和面向对象的相关知识进行了复习巩固,还对其有了进一步了解。
尤其对面向对象编程的能力有了更深的认识,更加深刻的认识了C++这门语言的博大精深。
通过这门课程,我们初步了解了可视化编程的知识,虽然对其中的很多知识还是一知半解,但是只要我们坚持不懈的努力学习,还是能将知识吸收并运用。
软件课程设计指导教师评阅书
指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力;③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题等):
成绩:
指导教师签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件课程设计 软件 课程设计 报告