《CJAVA集中上机》实习报告-图示冒泡排序

上传人:nu****n 文档编号:144697876 上传时间:2022-08-27 格式:DOC 页数:12 大小:374.51KB
收藏 版权申诉 举报 下载
《CJAVA集中上机》实习报告-图示冒泡排序_第1页
第1页 / 共12页
《CJAVA集中上机》实习报告-图示冒泡排序_第2页
第2页 / 共12页
《CJAVA集中上机》实习报告-图示冒泡排序_第3页
第3页 / 共12页
资源描述:

《《CJAVA集中上机》实习报告-图示冒泡排序》由会员分享,可在线阅读,更多相关《《CJAVA集中上机》实习报告-图示冒泡排序(12页珍藏版)》请在装配图网上搜索。

1、C+/JAVA集中上机实习报告图示冒泡排序(C+)指导教师: 姓 名: 学 号: 班 级: 时 间: 2012-04-26 目录一 概述2二 总体方案设计2三 详细设计3四 程序的调试与运行结果说明4五 课程设计总结6六 心得体会6七 附录7参考文献11一 概述1. 课程设计的目的进一步巩固理论课上所学到的知识,深刻把握面向对象编程技术的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,深化对C+语言编程和开发工具运用的认识,提高软件项目开发实践能力和软件工程管理能力。2. 课程设计的要求需要的基本知识与技能:C程序设计;C+面向对象程序设计;windows程序设计。尚未掌握

2、的知识点:windows程序设计。需要查阅相关资料:windows程序设计的相关资料。教师对本题目所提出的要求:从C+/JAVA中选择自己熟悉的编程语言,独立完成自己最熟悉领域的小型软件项目,按照软件工程工作过程,分析软件项目系统的需求分析,系统规划设计,包括概要设计和详细设计,并在C+/JAVA环境中实现编程实现和调试该系统。3. 课程设计的主要设计思想图示冒泡排序算法:从后向前依次比较相邻的两个数,如果前数大天后数则交换,交换后对屏幕的输出信息进行更新,并通过控制时间即达到动画效果。反复以上过程直至循环结束为止,数据实现从小到大依次排列。二 总体方案设计本次选题为图示冒泡排序。排序可采用冒

3、泡排序算法,它是最简单(相对来说效率较低)的排序算法之一。在本次图示冒泡排序设计中要求程序能实现:通过图示(动画)演示冒泡排序的具体过程。要实现图示冒泡排序功能,可以用VC+的知识编写程序来解决此问题。系统具有良好的界面;必要的提示信息;简约美观的效果。使用人员能快速明白,对人们理解冒泡排序过程有一定的帮助。包含的功能有:1. 要进行的排序的数字应该随机生成,并可控制数字的大小范围和个数;2. 正在进行第几趟排序要在动画窗口有所反映;3. 对每一趟排序的每一次前数和后数比较在动画窗口有所反映;4. 如果前数大天后数则交换,要用动画反映出交换的过程;5. 排序好后,要反映出总共进行了N-1趟排序

4、,提示已排序好;6. 关闭动画程序,结束排序。三 详细设计(一)类图:(二)类数据成员说明:Number:1、num 要比较的数,初始化时随机生成; 2、x 记录num在窗口输出的位置的x轴坐标; 3、y 记录num在窗口输出的位置的y轴坐标。Numbers|:1、nN 数组n存着N个要排序的Number类型是数。(三)图示冒泡排序算法流程图:四 程序的调试与运行结果说明(一) 调试运行环境:Microsoft Visual Studio 2010;windows 7 操作系统。(二) 运行和结果说明:1、 动画窗口大小可适应排序数字个数的变化,每次排序是数字随机生成。2、 窗口画面有几个箭头

5、“”表示正在进行第几趟排序,移动的箭头表示该箭头所指的数和它下方的数进行比较,若下方的数小于箭头所指的数,这下方的数浮上箭头所指位置,上方数下沉一个位置。3、 排序完成后在窗口下方输出“OK”表示排序完成,这是窗口画面上正好有N-1个箭头,表示进行了N-1趟排序。4、 排序完成后,按任意键可退出程序。五 课程设计总结总体情况:本程序基本达到了课题要求,通过动画形式简单明了的反映冒泡排序的具体过程。不足之处:所要排序的数由程序随机生成,为给用户提供输入,缺乏交互性。进一步设想:增加输入功能,美化动画界面。困难及解决途径:在编写本程序遇到是最大困难是不会windows程序设计,我通过上网找资料,查

6、阅相干书籍,请教同学等方式学会了编写此程序所需的windows程序设计知识。六 心得体会通过完成本课题设计,我巩固了以前学过的C和编程语法规则;进一步熟悉Microsoft Visual Studio 2010开发环境,提高程序调试能力;学会一些Windows 程序设计的知识;学会了使用Visio画类图和程序流程图。在实验过程中,养成了良好的实验习惯,培养严格的科学的作风;学会通过各种途径学习解决困难所需知识。在此感谢任课老师,感谢好友给我的帮助。七 附录全部代码及注释#include #define N 10#define MAX 100class Numberint num,x,y;pub

7、lic:Number():x(0),y(0)srand(GetTickCount();num=rand()%MAX+1;Sleep(50);/运算速度太快,要停下void setN(int n)num=n;void setX(int xx)x=xx;void setY(int yy)y=yy;int getN()return num;int getX()return x;int getY()return y;void print(HDC thdc);class NumbersNumber nN;public:void InitNum(HDC thdc);void BubSort(HDC thd

8、c);void Number:print(HDC thdc)char temp10;itoa(num,temp,10);TextOutA (thdc, x, y, , 6);/抹掉TextOutA (thdc, x, y, temp, strlen(temp);/初始要排序的数组并打印void Numbers:InitNum(HDC thdc)int x=20,y=20,d=20;/距离char temp10;n0.setX(x);n0.setY(y);n0.print(thdc);for(int i=1; iN;i+)ni.setX(x);ni.setY(ni-1.getY()+d);ni.

9、print(thdc);/气泡排序 void Numbers:BubSort(HDC thdc)int i,j,temp;for(i=0;ii;j-)TextOutA (thdc, nj.getX()-20, nj.getY(), , 3);Sleep(400);TextOutA (thdc, nj-1.getX()-20, nj-1.getY(), -, 2);if(nj.getN(), 2);LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);HDC hBgDC;Numbers nn

10、;/入口,定义窗口属性int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) WNDCLASSEX wndcls;wndcls.cbClsExtra = NULL;wndcls.cbSize = sizeof(wndcls);wndcls.cbWndExtra = NULL;wndcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);wndcls.hCursor = LoadCursor(NULL, I

11、DC_ARROW);wndcls.hIcon = LoadIcon(NULL, IDI_APPLICATION);wndcls.hIconSm = NULL;wndcls.hInstance = hInstance;wndcls.lpfnWndProc = WndProc;wndcls.lpszClassName = TEXT(Application);wndcls.lpszMenuName = NULL;wndcls.style = CS_HREDRAW | CS_VREDRAW;/注册窗口if (!RegisterClassEx(&wndcls) MessageBox(NULL, TEXT

12、(Register unseccessfully!), TEXT(Error), MB_OKCANCEL);return 0;/创建窗口HWND hWnd = CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, TEXT(Application), TEXT(graphic), WS_POPUP,/WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);/定义窗口句柄HDC hDC ;MoveWindow(

13、hWnd, 100, 100, 70, 50+N*20, TRUE); /窗口位置xy,大小whShowWindow(hWnd, nCmdShow);/显示窗口UpdateWindow(hWnd);MSG msg;GetMessage(&msg, NULL, NULL, NULL);while (msg.message!=WM_KEYDOWN) if( PeekMessage( &msg, NULL, 0,0 ,PM_REMOVE) ) hDC = GetDC(hWnd);TextOutA (hDC, 18, 20+N*20, OK,2);ReleaseDC(hWnd, hDC);Transl

14、ateMessage( &msg ); DispatchMessage( &msg ); return msg.wParam;LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) HDC hDC;/消息处理switch (message) case WM_CREATE:hDC = GetDC(hWnd);BitBlt(hDC, 0, 0, 100, 400, hBgDC, 0, 0, SRCCOPY);ReleaseDC(hWnd, hDC);return 0;case WM_KEYDOW

15、N:/按下键盘消息,退出PostQuitMessage(0);return 0;hDC = GetDC(hWnd);nn.InitNum(hDC);nn.BubSort(hDC);ReleaseDC(hWnd, hDC);Sleep(500);return 0;PostQuitMessage(0);return 0;default:return DefWindowProc(hWnd, message, wParam, lParam);参考文献 1 甘玲,刘达明,唐雁,解析C程序设计,北京,清华大学出版社,2007年3月。2 甘玲,石岩,李盘林,解析C+面向对象程序设计,北京,清华大学出版社,2008年2月。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!