课程设计报告书正文标准格式_第1页
课程设计报告书正文标准格式_第2页
课程设计报告书正文标准格式_第3页
课程设计报告书正文标准格式_第4页
课程设计报告书正文标准格式_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告书正文标准格式作者:日期:1引言(或绪论)(可作为正文第1章标题,用小3号黑体,加粗,八并留出上下间距为:段前0.5行,段后0. 5行)请留出一个x汉字xxxxxx(小4号宋体 ,20 磅行距)xxxxxxxxxxxxxx 的空间,下同xxxxxxxxxxxxxxxx1 .1 xxxxxx (作为正文2级标题,用4号黑体,加粗) xxxxxxxxx (小 4号宋体,20磅行距)xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx1.1.1 xxxx (作为正文3级标题,用小4号黑体,不加粗) xxxxxxxxx (小4号宋体,2 0 磅行距)xxxxxxxxxxxxxx

2、 xxxxxxxxxxxxx2 xxxxxxx (作为正文第2章标题,用小 3号黑体,加粗,并留出上下间距为:段前0.5行,段后0.5行)xxxxxxxxx (小4号宋体,20 磅行距)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx注:1.正文中表格与插图的字体一律用5号宋体;2. 正文各页的格式请以此页为标准复制。报告中的内容仅为参考字体格式,与本次设计无关!题目内部排序教学软件。1需求分析和说明利用所学C语言和,实现各种内部排,从而达到教学内部排序教学软件的总体目标:在 TU RBO C2. 0的开发环境下, 数据结构的相关知识

3、,开发一个具有良好人机界面的内部排序教学软件 序,并能使用户通过其显示结果对每种排序方法的性能有一个直观的了解 的目的。1.1基本要求(1) 界面友好,易与操作。采用菜单或其它人机对话方式进行选择。(2) 实现各种内部排序。包括冒泡排序,直接插入排序,直接选择排序,希尔排序,快 速排序,堆排序。(3) 待排序的元素的关键字为整数。可用随机数据和用户输入数据作测试比较。比较 的指标为有关键字参加的比较次数和关键字的移动次数 (关键字交换以3次计)。(4) 演示程序以人机对话的形式进行。每次测试完毕显示各种比较指标 的列表,以便比较各种排序的优劣。1. 2各功能模块的功能描述:1. 主函数模块本模

4、块的主要功能是初始化图形界面,调用各模块,实现软件功能。2 .排序功能及输出子模块本模块的主要功能是根据用户的选择进行数组的创建,并对输入数据或者随机产生的数据使用六种排序方法进行排序并统计每种方法的移动次数和比较次数,然后输出以表格形式输出。3. 封面和结束画面子模块本模块的主要功能是当用户打开本软件时模拟软件加载,延时数秒后关闭,并进入图 形界面,在用户退出软件时显示结束画面,延时数秒后关闭程序。4. 图形界面子模块本模块的主要功能是根据用户的选择显示不同的画面,引导用户使用软件所提供的各 种功能,并在用户提供必要数据,并选择排序功能时调用排序模块,并显示结果画面。5 .输入子模块本模块的

5、主要功能是进行光标定位,输出提示文字,并对用户输入数据进行处理,创 建数组。6.鼠标实现模块本模块的主要功能是为用户提供鼠标操作支持,使用户能使用鼠标进行功能的选择。2详细设计2 .1模块调用图主模块i图形界面子模-鼠标实现模块封面和结虑画面子模输入子模块排序功能及输出于模块图1模块调用图2 .2可排序表的抽象数据类型定义ADT O rder a ble 1 ist ?数据对象:D=Ai | Ain, n>= 0 ?数据关系:R=v A i -1,Ai> |A i-1,A基本操作:In tege r, i =1 , 2,,i D ,i=1, 2 ,,n?#defin e MAXSI

6、ZE 200/ *数组最大长度*/i nt MOV _CNT; /* 移动次数 */ int CMP_CNT; /* 比较次数 */ void Exchang e( int n urn , i void S h el 1 Sor t ( int num, i ?v o i d Quic k So r t( i nt p ,nt i,nt n ) /*i n tc, iV o id SIF T( int num , i nt s, i nt?/oid Hea pS ort(?v oid Choo s eSort( int n eSo rt( in t n um, i ntvo i d Inser

7、tsort ( i n t ?/oidSor t( int a rray较次数*/v o id CreatRan( int arr void CreatU p( int a void Creat D own( in tint n u m,u m, i n tn )/*冒泡排序* /n um,int n ),i nt n )in t j ) /希尔排序*/d)/*快速排序*/*调整建堆函数* / 堆排序* /a y , int n ray, in t ar ray,*交换数组元素i , j */ ?i nt n )/*n ) /* 选择排序* / ? voi d Bu bb 1/ *插入排序*/

8、*调用六种排序方法并输出移动次数和比)/*)/*i n t建立随机数组*/建立升序数组*/n ) /*建立降序数组*/i nt I n putLe n ()/*输入数组长度* /a r ray , int n ) /*建立人工输入的数组*/w, in t co 1 )/* 光标定位 * /计算鼠标的样子*/y ) /*鼠标光标显示*/i nt rx ) /*设置鼠标左右边界* /in t dy ) /*设置鼠标上下边界*/y) / *设置鼠标当前位置*/* s t ate )/ *鼠标坐标及按键情v o id In p utArray( int v o id Loca t e( int ro

9、vo id Mous e Math ()/* void Mo use On( i n t x v o id Mou s eSet X( int lx void MouseS e t Y( in ti ntu y,X ,intv oi d Mouses e t XY(inti nt * X , int *in tMouse Status(y, int况*/in tint CS tar t Screen() Mai n Wi n( int1 oseButt on( int/ *开始界面的进度条*x1, i nt y1, i nt x2y 1, i n t x2, intc 1 osey2)/*主窗

10、口 */)/ *关闭按钮*/v oi d But tonbutt on y 2, charV oid C 1 ear ()v o idV oidScreen (C loseS c re e(i nt but t onx 1 , i nt衣 n am e, i nt state/*清屏*/i n t sn )/ * 界面 * /n()/*结束画面*/)/*utto ny1,功能按钮*/int b u t t onx2, into use() /*鼠标事件处理*/ u n( i n tbn, in t sn )/* 功能调用 */i nt Mi nt R2. 3算法思想1. 主函数模块首先调用i

11、n i tgraph函数进行图形驱动的初始化,然后调用S tar t Screen函数显示 进度条,模拟软件加载,然后调用M ouse函数,再调用c 1o segr aph函数关闭图形模式。2. 排序功能及输出子模块在实现排序功能时,每调用一种排序方法前首先应该把原始数组arra y 复制到num,把移动次数M OV_CN T和比较次数CM P_CN置零,然后对num进行一种排序,同 时进行记数,最后进行光标定位,输出次数。这样进行六次,就可以把六种排序方法的移动 次数和比较次数统计出来。再这里,光标的定位是利用软中断方式实现的,这样做可以直接利用sc anf和prin t f 进行输入输出,

12、而不必进行数字和字符串之间的转化。3. 封面和结束画面子模块软件的封面是一个模拟软件加载的一个进度条。其设计思路是,先利用 bar函数画出 一个浅蓝色的矩形条,然后进行光标定位,输出“L oad ing”字符串,然后将分十段将 矩形条用蓝色填充,同时在字符串同一行的右边几个字符的距离输出百分数。由于输出的 是利用字符函数,而非图形函数,字符的背景色会覆盖上一次的数字,造成百分数不断增加进度条不断前进的动画效果。4. 图形界面子模块这个模块是软件最为复杂,开发时间最长,修改次数最多的一个模块。这个界面主要是 仿照传统的W NDO WS界面。主窗口是由四部分组成,蓝色的屏幕背景、灰色的窗体、蓝色的

13、标题栏和关闭按钮。窗 口和按钮的突起效果是现在屏幕上画一浅色形状,再将纵横坐标增加一两点,画深色形状, 从而造成突起效果。为了体现动画的效果,按钮分三种状态,突起状态,平面状态和凹陷状 态。凹陷效果可由深色形状在浅色形状的大小基础上缩小一两个像素点得到。一个界面包 括提示文字和功能按钮。软件一共有6个界面,其中界面 0是用户一开始看到的界面,界面1,2,3, 4分别对应 于功能按钮1, 2,3,4 ,界面5是显示结果的界面。这个模块的关键在于鼠标控制。鼠标状态sta te为0时,没有鼠标键按下,为1时鼠标左键被按下。鼠标在哪个按钮上是利 用鼠标的坐标值是否在按钮的坐标范围内进行判断的。判断用户

14、是否选择了某一功能是利 用鼠标在哪个按钮上同时stat e= =1进行判断的。当鼠标在非按钮区域按下左键时程序 会直接进入下一个循环。界面 0的四个功能按钮名为:“Random” , ” OrderU p” , ” Order D n” , ”I np ut” ,代表产生数组的四种方式随机、升序、降序、人工输入。界面1,2,3,4的两个功能按钮名为:” In pu t ” , ” Stat ic ”,代表确定数 组长度的方式一一人工输入、默认。界面5包含一个“Re st ar t”按钮,用来返回到界面0。5. 输入子模块然后输出提示文字,当用户输入长度后,把值赋给当选择好功能以后,分4种情况,

15、随机数组、升序数组、降序数组、人工输入的数组。 长度分两种,Inp u t是先进行光标定位, n,而St at ic是直接把1 0赋给n。6. 鼠标实现模块,通过BIO S中断INT 33H可以实现。软件的鼠标最初使用的系统自带的样式M 0U se()的流程图3调试报告3 .1遇到的问题1. 同一数组排序六次由于要对同一数组排序六次,必须在排序前先将数组保存起来,每次排序只对数组副本 进行操作。2. 鼠标在WI N20 0 0,X P下不能正常显示赢标使用软中断方式在WI N98下能正常工作,但是更高版本如 WIN2 000,XP下都不能显 示鼠标,即鼠标处于隐形状态。经过思考和查找资料 ,我

16、决定用自已画一个鼠标指针形状, 并根据中断提供的坐标值绘制在屏幕的相应坐标上。当鼠标移动时,先将原始位置的鼠标 消去,然后在新的位置绘制出指针形状。3. 屏幕和按钮不停闪烁经过检查,发现是屏幕重绘频率过快引起的,在每次绘图以后加上一定延时,在有意识的控制循环的频率即可解决。4. 图形界面下输入数据?图形界面下的输入一般为字符串,为了不进行数字和字符串之间的转化,我利用了中断定 位光标,直接利用sc a n f进行输入。5. 在程序显示结果后无法返回界面 0?在结果界面上增加一个按钮 Resta rt ,利用goto语句即可返回到界面0。3.2心得体会4用户手册用户打开软件后,首先见到的是进度条

17、屏幕,如图3所示,随后进入了如图4所示的界 面0o0Please to chgBeUi-derUnJ nixit图4登陆界面界面0的四个功能按钮名为:Rand om”OrderUp ”0 rde rDn” I npu t ”代表产生数组的四种方式随机、升序、降序、人工输入。点选任意一个功能按钮,将会进入如图5所示界面。Inpu t按钮是人工输入数组长度,S tatic按钮是使用默认长度10°当用 户点选In P ut按钮时,进入输入长度的界面。当用户点选S t atic按钮时,进入界面5或输入 数据界面然后进入界面5oO O O O O O亀I JJf卜&jvv i 1 Lp

18、iJI. Lilt: :lli: 1 Inil >xit I<si' 1-J'lC H)图5询冋界面图7输入数组元素界面用户在看到输入长度界面界面后,即可使用键盘输入长度,但要求长度不超过2 00,按回车键确认。同理,用户在看到输入数组元素界面后,即可输入元素,元素之间用空格隔开。最后是结果界面。点击 Rest a rt按钮可回到界面0。点击关闭按钮即可退出。ISoi"L Di311*oJLiI1Jn r; FF:丽口 iL 也rtu'-U hiiinhuF1 gf 逹少 * _1LSHM-14 1H1I hh lrTSnT-+ ftt L T12<=X-t 4 JE- 1. nUElduthi UrhSi rj- r :MV(Jho oseSoit = 1±17-lUIhel IBuj t :X7Uus5测试结果5.1测试数据及运行结果?下面对几组数据进行测试。数组:19, 65,85,7 9, 62 ,33,55, 44,7 7,11排序方法移动次数比较次数堆排序2 713冒泡排序1 354 5插入排序1 89快速排序2 745选择排序279希尔排序361 8数组:8,84

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论