河南工业大学 程序设计实践
河南工业大学高级java实验1

河南工业大学实验报告课程高级Java编程技术实验名称实验一:多线程同步专业班级计科1505 院系信息科学与工程学院姓名李杰学号 201516010118 指导老师孙宜贵日期 2017.9.19一.实验目的通过线程的创建、启动和多线程的同步,掌握线程的使用和多线程之间的数据共享和传递。
二.实验要求1)对界面不做要求。
2)相关操作:创建线程;启动线程;线程操作;多线程同步操作。
3)操作过程截图和代码中应体现个人信息,否则作废!三.实验过程及结果任务一:使用定时器实现每隔一秒打印当前的系统时间。
1)补充说明:连续5秒的运行,结果格式为“{个人姓名}为大家报时:系统时间”2)代码(含适量的注释)package 高级java实验一;import java.util.Date;import java.text.SimpleDateFormat;class mythread extends Thread{public void run(){while(true){try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式System.out.println("李杰为大家报时:"+df.format(new Date()));// new Date()为获取当前系统时间}}}public class Test1{public static void main(String[] args) throws Exception{mythread thread1=new mythread();thread1.start();}}3)运行结果截图任务二:创建一个多线程应用程序,程序中有两个子线程,一个子线程每隔一秒向集合中添加一个整数数据,另一个线程访问集合中的数据并输出。
河南工业大学高级java实验3

河南工业大学实验报告
课程高级Java编程技术实验名称实验三:可视化Swing图
形界面设计基础
专业班级计科1505 院系信息科学与工程学院
姓名李杰学号 201516010118 指导老师孙宜贵日期 2017.10.10
一.实验目的
理解可视化图形界面设计方法的优势,熟悉可视化图形界面设计插件WindowBuilder
的配置和基本用法。
二.实验要求
1)使用WindowBuilder插件设计布局界面。
2)相关操作:给出界面设计方案(所有控件及其名称);采用拖拽式方法布局界面。
3)操作过程截图和代码应体现个人信息,否则作废!
三.实验过程及结果
任务一:在实验二的基础上,针对客户端程序添加新用户注册窗体,注册用户信息有用户名、
密码、确认密码、性别、Email地址和联系电话;添加登录界面。
1)补充说明:其他自行补充。
2)设计视图的截图(无需运行)
任务二(可选):实现8X8的扫雷游戏界面,包括菜单及扫雷区。
1)补充说明:其他自行补充。
2)设计视图的截图(无需运行)。
河南工业大学实验报告

河南工业大学实验报告课程_ 软件应用技术_____ _实验名称___ 图形、文本和位图_院系__ 信息科学与工程学院 _专业班级___ _计科0701_姓名____ 徐晶_ _ 学号__ _ _ 20074140129_____一.实验内容编写一个应用程序,实现画线的动态定位操作,如下图所示。
当鼠标在视图客户区移动时,会出一个大大的光标(由水平线和垂直线组成),光标的右上角的小窗口显示出当前的鼠标位置,当单击鼠标左键时,在屏幕上出现由小十字点标志,此时再移动鼠标,从当前鼠标位置到前面一个点将绘制一条直线,且该直线随鼠标位置移动而变化,就像一根橡皮条一样,且光标右上角的小窗口显示出这条直线的长度和角度,再单击鼠标左键一条直线被绘制出来,…,直到按ESC键结束,一条折线就绘制出来了。
为了保证在视图需要更新时,这些线条仍然存在,需要将这些点保存下来,然后再重新绘出。
二.实验准备(1)在学习完教材第7章内容后进行本次实验(2)阅读教材中关于本次上机所需要的程序。
三.实验步骤(1),创建工作文件夹,启动VC6.0,创建一个默认的单文档应用程序Ex-A7。
(2),A,光标的生成和实现:在Ex-ATView文件中的类声明添加下列成员变量class CEx_A7View : public CView{public:BOOL m_bCursorFirst; // 光标第一次显示标志CPoint m_ptPrevPos; // 上一个点的坐标CPoint m_ptCurPos; // 当前点的坐标B,在CEx-ATView::OnDraw中添加一些清屏代码,并将m_blurSorFirst设为TRUEvoid CEx_A7View::OnDraw(CDC* pDC){CEx_A7Doc* pDoc = GetDocument();ASSERT_V ALID(pDoc);CRect rcClient;GetClientRect( rcClient ); // 获取客户区大小pDC->FillSolidRect( rcClient, RGB( 0,0,0 ) ); // 将客户区清为黑色m_bCursorFirst = TRUE;pDC->SetBkMode( TRANSPARENT ); // 设置透明背景模式}C,为CEx-ATView类添加绘制光标函数的成员函数DrawCurSorvoid CEx_A7View::DrawCursor(CDC *pDC, CPoint pt){CRect rcClip;pDC->GetClipBox( rcClip ); // 当前裁剪区大小CPen pen( PS_SOLID, 1, RGB( 128, 128, 128 ) ); // 灰色画笔CPen *oldPen = pDC->SelectObject( &pen ); // 选入画笔// 设置XOR光栅操作模式int nOldROP = pDC->SetROP2( R2_XORPEN );// 绘制水平线pDC->MoveTo( rcClip.left, pt.y );pDC->LineTo( rcClip.right, pt.y );//绘制垂直线pDC->MoveTo( pt.x, rcClip.top );pDC->LineTo( pt.x, rcClip.bottom );// 恢复原来的光栅模式pDC->SetROP2( nOldROP );// 恢复原来的画笔}D,用MFC classWizard为CEx-ATView类添加WM_MouSEMOVE消息映射,并在映射函数中添加相应代码。
程序设计基础教学改革实践与创新

程序设计基础教学改革实践与创新摘要:本文从如何培养大学生抽象思维能力和创新能力出发,在分析理工科大学生学习程序设计课程中存在的一系列问题的基础上,阐述创新能力培养的多种教学方法改革,结合河南工业大学近五年的教学改革的实践,在程序设计基础课程中取得较满意的效果。
关键词:程序设计;教学改革;创新能力面对世界科技日新月异、信息社会雏形初具、经济全球化浪潮汹涌而至的强有力挑战,中国教育学会会长顾明远先生认为:“教育创新是时代的要求,也是我国实施科教兴国战略的迫切要求。
”在强调“创新能力”和“素质教育”的大前提下,如何在程序设计课程中培养学生的创新能力和科学素养,是我们进行教学改革重点考虑的问题。
打好程序设计基础,对于理工科大学生来讲,是一个“看家本领”,是实实在在的利用计算机分析问题和解决问题的本领。
因此,如何改革“程序设计基础”课程,调动学生学习的积极性,提高学生的抽象思维能力、创新能力和团队合作能力,并按照计算机学科最根本特征——“构造性”和“能行性”的要求,加大抽象思维能力和逻辑思维方法的训练力度,是程序设计基础教学改革研究的重点。
1现行教学中存在的问题1,1程序设计基础课程的定位出现偏差目前,大多数高校的程序设计基础课程是以高级语言c语言为脉络展开的,采用语法教学为主,上机检验程序为辅的教学模式。
但是,理解语法和能够解决实际问题,两者仍旧不能划等号。
过于注重语法,没有突出程序设计的基本概念、思路和方法,忽视学生程序思维能力的培养,难以调动学生学习的积极性,严重影响后继课程c++与面向对象程序设计、数据结构等课程的学习。
1,2传统教学形式与多媒体教学的冲突传统的教学形式采取的是黑板教学,知识点和例题的讲解都在黑板上进行,这可以较好地与学生互动,但存在信息量小、不能动态演示程序的问题;多媒体教学以信息量大、动态演示程序为优势,但也存在教师与学生交互少的问题,学生被动接受大量信息反而难以掌握重点和难点。
《web程序设计1》实验报告河南工业大学

《Web程序设计1》实验报告院系名称:管理学院专业班级:电子商务 11级4班学生姓名: **** 学号: **************2013年12 月实验一:JDK、Tomcat和Eclipse的下载、安装和配置实验一、实验目的1、掌握JDK的下载、安装、配置和测试;2、掌握Tomcat的下载、启动和停止;3、掌握Eclipse的下载、汉化、工作空间配置。
二、实验课时2学时三、实验内容1、下载、安装、配置和测试JDK。
①、jdk软件的下载:在oracle网站上现在jdk7.0版本。
②、jdk软件的安装:按如下步骤安装jdk。
如图1、图2。
图1 图2③、jdk软件的配置:jdk安装成功后,再按如下步骤配置jdk。
(1)、安装完JDK后配置环境变量计算机→属性→高级系统设置→高级→环境变量。
如图3、图4.图3 图4(2)、系统变量→新建 JAVA_HOME 变量。
变量值填写jdk的安装目录(C:\Program Files\Java\jdk1.7.0_15)。
如图5、图6。
图5 图6(3)系统变量→寻找 Path 变量→编辑。
在变量值最后输入 %JAVA_HOME%\bin;%JAV A_HOME%\jre\bin;如图7。
图7(4)系统变量→新建 CLASSPATH 变量。
变量值填写 .%JAVA_HOME%\lib;%JAVA_H OME%\lib\tools.jar。
如图8.图8④、配置jdk。
运行cmd 输入 java –version。
如图9所示。
显示版本信息,则说明安装和配置成功。
图92、下载、启动和停止Tomcat。
①、下载并安装Tomcat。
②、在浏览器中输入http://localhost:8080/,出现下图结果,说明配置成功。
图103、下载和汉化Eclipse,配置Eclipse工作空间。
在浏览器上输入汉化Eclipse找到相关文件下载需要的汉化Eclipse,下载完成后解压到Eclipse文件中,用语言包中的文件覆盖eclipse中的同名文件即可。
汇编程序_河南工业大学_实验一

河南工业大学汇编实验一一、实验目的:掌握汇编程序基本设计方法分支和循环。
二、实验内容:设数组array由一些字量构成,其中第一个元素是数组元素个数。
利用逐次比较方法。
设置两个变量maxay和minay存放最大和最小值。
要求能找到这两个存储单元并看到最大和最小值。
三.实验原理:DATAS SEGMENT;此处输入数据段代码array dw 10;假设一个数组,其中头个数据10表示元素个数dw-3,0,20,900,587,-632,777,234,-34,-56;这是一个有符号字量元素组成的数组maxay dw?;存放最大值minay dw?;存放最小值DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AX;此处输入代码段代码lea si,arraymov cx,[si] ;取得元素个数dec cx ;减1后是循环次数add si,2mov ax,[si];取出第一个元素给AX,AX用于暂存最大值mov bx,ax;取出第一个元素给BX,BX用于暂存最小值maxck: add si,2cmp [si],ax ;与下一个数据比较jle minckmov ax,[si] ;AX取得更大的数据jmp nextminck: cmp [si],bxjge nextmov bx,[si] ;BX取得更小的数据next: loop maxck ;计数循环mov maxay,ax ;保存最大值mov minay,bx ;保存最小值MOV AH,4CHINT 21HCODES ENDSEND START四.实验流程图:六、实验体会实验基本完成,但是有很多问题,汇编语言的用法还不是太熟练,课下还得努力练习,多看书了解。
河南工大DSP实验报告

实验一数据存储实验一实验目的1.掌握TMS320F2812程序空间的分配。
2.掌握TMS320F2812数据空间的分配。
3.能够熟练运用TMS320F2812数据空间的指令。
二实验步骤与内容1.在进行DSP实验之前,需先连接好仿真器、实验箱及计算机,连接方法如下所示。
2.F2812CPU板的JUMP1的1和2脚短接,拨码开关SW1的第二位置ON;其余OFF。
3.E300底板的开关SW4的第2位置ON,其余位置OFF。
其余开关设置为OFF。
4.上电复位在硬件安装完成后,确认安装正确、各实验部件及电源连接无误后,启动计算机,接通仿真器电源,此时,仿真器上的指示灯应点亮,否则DSP开发系统与计算机连接存在问题。
5.运行CCS程序1)待计算机启动成功后,实验箱220V电源置“ON”,实验箱上电2)启动CCS5.5,工作环境的路径选择:E:\E300Program\E300 TechV-2812\normal6.成功运行CCS5.5程序后,出现如下图所示界面。
7.点菜单栏Project/Build All命令编译整个工程,编译完成后点击按钮:8. 用“View”下拉菜单中的“Memory/Browser”查看内存单元,初始参数如下图:此时可以观测到以0x003F9020为起始地址的存储单元内的数据。
9.单击按钮,开始运行程序,一段时间后,单击按钮,停止程序运行,查看0x003F9020H~ 0x3F902FH单元的数据的变化。
10. 关闭Memory Browser窗口,点击按钮,退出仿真模式。
右键点击Project Explorer窗口下的工程文件“e300_01_mem”,选择Close Project命令关闭该工程,然后关闭CCS软件,本实验完毕。
三程序框图四实验总结通过这次实验,基本熟悉了CCS用户界面的使用,掌握了TMS320F2812程序空间的分配和数据空间的分配,能够熟练运用数据空间的指令。
程序设计实践实验报告

程序设计实践实验报告《程序设计实践实验报告》在程序设计课程中,学生们经常需要完成各种实践实验,以加深对编程语言和算法的理解,并提高实际编程能力。
本次实验报告将介绍我们在程序设计实践中所进行的实验内容和实验结果。
实验一:基本语法和数据类型在这个实验中,我们学习了编程语言的基本语法和数据类型,包括变量的声明和赋值、条件语句、循环语句以及各种数据类型的使用。
通过编写简单的程序,我们掌握了如何正确地使用这些语法和数据类型,并且能够编写出简单的程序来解决实际问题。
实验二:数组和函数在这个实验中,我们学习了数组的定义和使用,以及函数的声明和调用。
我们通过编写程序来实现对数组的各种操作,比如查找最大值、最小值、求和等。
同时,我们也学会了如何编写函数来实现特定的功能,并且能够正确地调用这些函数。
实验三:面向对象编程在这个实验中,我们学习了面向对象编程的基本概念和语法,包括类的定义和对象的创建。
我们通过编写程序来实现面向对象的思想,比如定义一个学生类,然后创建多个学生对象,并对这些对象进行各种操作。
实验四:算法设计与实现在这个实验中,我们学习了一些常用的算法,比如排序算法、搜索算法等。
我们通过编写程序来实现这些算法,并且对它们进行测试和分析,以便更好地理解这些算法的原理和性能。
通过这些实验,我们不仅加深了对编程语言和算法的理解,还提高了实际编程能力。
我们相信,在今后的学习和工作中,这些实验经验将会对我们产生积极的影响。
希望通过这份实验报告,能够让更多的人了解到程序设计实践的重要性,以及它对我们的学习和成长所带来的益处。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程报告课程名称:程序设计实践专业班级: *****学生姓名:小家伙哪里跑学号: *****任课教师: *****学期:2013-2014学年第二学期课程报告任务书(1)图书信息录入功能(图书信息用文件保存)--输入成绩评定教师:目录1 需求分析 (1)1.1图书管理员登录端的主要功能 (1)1.2学生登录端的主要功能 (1)2概要设计 (2)2.1整体设计 (2)2.1.1结构体 (2)2.1.2函数模块 (2)2.2系统层次结构图 (4)3 详细设计 (5)4 调试分析 (17)4.1总体分析 (17)4.2调试体会 (17)5测试结果 (18)6 课程心得总结 (23)参考文献 (24)1 需求分析本图书馆管理系统主要实现对图书馆图书信息的管理,主要有图书管理员登录端和学生登录端。
其具体描述如下:1.1图书管理员登录端的主要功能1)新图书信息入库:建立图书入库信息,以便读者进行查询和借阅。
2)修改图书信息:在图书信息入库的时候可能由于管理员的疏忽或操作错误造成图书信息输入错误,修改图书信息功能就是为了修改这些错误。
3)删除图书信息:图书因使用过久不再使用,或读者借阅期间丢失时,都需要在书库中删除图书信息。
4)查询图书信息:能根据管理员提供的有关信息跟书库中的图书进行匹配,反馈给管理员准确的信息。
5)浏览图书借阅情况:能够显示图书借阅的信息(包括借阅图书学生的学号、姓名、图书名以及图书借阅的时间等)。
1.2学生登录端的主要功能1)浏览图书信息:浏览图书馆中图书的信息情况(包括图书的入库时间、是否可借阅等信息)。
2)查询图书信息:能够根据学生提供的有关信息在书库中查找相关书籍并反馈给学生。
3)借阅图书:如果有学生可借阅的图书,提供借阅功能并记录下学生的相关信息(学号、姓名等)。
4)查询当前借阅的图书:学生通过提供学号就可以查询当前所借阅的图书的有关信息。
5)退还图书:学生向系统提供学号就可以完成退书功能。
2概要设计2.1整体设计经过需求分析,此图书馆管理系统主要分为两大功能,图书管理员登录功能和学生登录功能。
各部分功能和结构定义如下:2.1.1结构体根据分析,图书馆管理系统共定义了二个结构体。
1)保存图书信息的结构体:typedef struct xinxi{int bianhao;char shuming[20];char zuozhe[15];char chubanshe[20];char leibie[10];char shijian[10];double jiage;int jieyueliang,zongshu;} shu;2)记录图书借阅信息的结构体:typedef struct jilu{char name[20];int number;char shuname[20];char shijian[10];} record;2.1.2函数模块此图书馆管理系统主要包含了一下几个主要函数:void liulanxinxi()//浏览图书信息void luruxinxi()//录入图书信息void xiugaixinxi()//修改图书信息void shanchuxinxi()//删除图书信息void chaxunxinxi()//查询图书信息void jieyuexinxi()//所有已借阅图书信息void jieyuetushu()//借阅图书void guihuantushu()//归还图书int main()//主函数(菜单控制函数)全部采用文件来保存数据,所以各个函数都没有返回值。
由主函数开始调用和触发各个函数2.2系统层次结构图3 详细设计本系统的主要功能实如下:1)主函数:a.功能:实现对主菜单的控制和各个函数的调用。
b.实现方法:通过while(1)实现无限循环,用n=0来结束整个程序。
c.程序清单:int main(){int n;printf("********************欢迎使用图书管理系统********************\n");while(1){ printf("\t\t***************************\n");printf("\t\t* 1.管理员登录*\n");printf("\t\t* 2.学生登录*\n");printf("\t\t***************************\n");printf("-------------------------------------------------\n");printf("请输入你的选着:");scanf("%d",&n);switch(n){case 1:guanliyuan();break;case 2:xuesheng_();break;case 0:printf("\n谢谢使用本系统,再见!\n");printf("按任意键结束\n");getchar();exit(0);}}}2)录入图书信息:a.功能:输入图书的相关信息。
b.实现方法:首先定义文件,用文件的形式来保存图书的信息,图书信息录入完毕后关闭文件。
c.程序清单:void luruxinxi()//录入图书信息{FILE *fp1;//定义文件指针int count=0;if((fp1=fopen("book.txt","a+"))==NULL){printf("文件打开失败!\n");exit(0);}count++;printf("请输入图书编号:");scanf("%d",&tushu[count].bianhao);printf("请输入图书名:");scanf("%s",tushu[count].shuming);printf("请输入图书作者:");scanf("%s",tushu[count].zuozhe);printf("请输入图书出版社:");scanf("%s",tushu[count].chubanshe);printf("请输入图书类别:");scanf("%s",tushu[count].leibie);printf("请输入图书时间(年.月.日):");scanf("%s",tushu[count].shijian);printf("请输入图书价格:");scanf("%lf",&tushu[count].jiage);printf("请输入图书数量:");scanf("%d",&tushu[count].zongshu);tushu[count].jieyueliang=0;xianshidangexinxi(tushu[count]);fwrite(&tushu[count],sizeof(shu),1,fp1);fclose(fp1);printf("按任意键继续\n");getch();}3)修改图书信息:a.功能:实现对录入错误的图书信息进行修改。
b.实现方法:定义两个文件,一个文件用于打开存放图书信息的book.txt,另一个文件指向临时文件book1.txt。
从头到尾把存放的图书信息都扫描一遍,如果某本图书不需要修改,直接把这本书的信息写到另一个临时文件中,如果图书信息需要修改,则把修改后的信息写到临时文件中;所有的图书信息都扫描完后,把临时文件中的信息重新写入到book.txt中,清空临时文件。
c.程序清单:void xiugaixinxi()//修改图书信息{FILE *fp1,*fp2;char name[20];int i,n,count=0;printf("请输入你要修改的图书名:");scanf("%s",name);if(((fp1=fopen("book.txt","r"))==NULL)||((fp2=fopen("book1.txt","w"))==NULL )){printf("文件打开失败!\n");exit(0);}for(i=1;fread(&tushu[i],sizeof(shu),1,fp1);i++){if(strcmp(name,tushu[i].shuming)==0){count=1;printf("请输入你要修改的内容:\n");printf("1.修改图书编号\n");printf("2.修改书名\n");printf("3.修改作者\n");printf("4.修改出版社\n");printf("5.修改类别\n");printf("6.修改日期\n");printf("7.修改价格\n");printf("8.修改图书总数\n");printf("0.返回上一级\n");scanf("%d",&n);switch(n){case 1:printf("请输入新的编号:");scanf("%d",&tushu[i].bianhao);fwrite(&tushu[i],sizeof(shu),1,fp2);break;case 2:printf("请输入新的书名:");scanf("%s",tushu[i].shuming);fwrite(&tushu[i],sizeof(shu),1,fp2);break;case 3:printf("请输入新的图书作者:");scanf("%s",tushu[i].zuozhe);fwrite(&tushu[i],sizeof(shu),1,fp2);break;case 4:printf("请输入新的图书出版社:");scanf("%s",tushu[i].chubanshe);fwrite(&tushu[i],sizeof(shu),1,fp2);break;case 5:printf("请输入新的图书类别:");scanf("%s",tushu[i].leibie);fwrite(&tushu[i],sizeof(shu),1,fp2);break;case 6:printf("请输入新的图书日期:");scanf("%s",tushu[i].shijian);fwrite(&tushu[i],sizeof(shu),1,fp2);break;case 7:printf("请输入新的图是价格:");scanf("%s",tushu[i].jiage);fwrite(&tushu[i],sizeof(shu),1,fp2);break;case 8:printf("请输入新的图书总数:");scanf("%d",&tushu[i].zongshu);fwrite(&tushu[i],sizeof(shu),1,fp2);break;case 0:return;default :printf("输入错误\n");break;}}elsefwrite(&tushu[i],sizeof(shu),1,fp2);}fclose(fp1);fclose(fp2);fp1=fopen("book.txt","w");fp2=fopen("book1.txt","r");for(i=1;fread(&tushu[i],sizeof(shu),1,fp2);i++)fwrite(&tushu[i],sizeof(shu),1,fp1);fclose(fp1);fclose(fp2);fp2=fopen("book1.txt","w");//清空临时文件fclose(fp2);if(count==1){printf("修改成功\n");getch();}else{printf("未找到改图书信息\n");getch();}}4)删除图书信息:a.功能:从书库中删除图书信息。