某学院面向对象程序设计实训报告

合集下载

面向对象实习报告(共5篇)

面向对象实习报告(共5篇)

面向对象实习报告(共5篇)第1篇:面向对象实习报告实习题目一1.三个自定义类本题有三个自定义的类:点类VecPosition,圆类circle,矩形类Rect,运用类的继承思想从这三个类中抽象出公共基类base。

其中base中有一个纯虚函数virtual void draw()=0; VecPosition类主要实现各个运算符的点的构造,运算符的重载,求两点距离,判断一个点是否在给定其他几个点的范围内,以及与向量有关的几何运算。

Circle类主要实现圆对象的构造,圆的相关参数设置,求取圆的周长函数(doubleCircle::getCircumference())、面积函数(double Circle::getArea()),判断一个点是否在圆内bool Circle::isInside(VecPosition pos),求两个圆交点函数int Circle::getIntersectionPoints(Circle c,VecPosition *p1,VecPosition *p2)返回加点个数。

求两个圆的相交面积double Circle::getIntersectionArea(Circle c)。

矩形由左上点坐标和右下点坐标确定。

包括矩形的构造,参数的设置修改,求矩形的面积,周长,以及判断一个点是否在矩形内。

2.可视化界面建立单文档工程,添加画图菜单,如下图:三个菜单项分别画点,画线,画矩形。

在view.h中添加如下变量:CPoint类的 m_oldpt,m_pt用于记录画图的起点坐标和终点坐标。

Circle m_circle,Rect m_rect,用于构造圆和矩形。

afx_msg voidOnLButtonDown(UINT nFlags, CPoint point)是响应鼠标按下的消息,并将当前坐标传给m_oldPoint。

用switch分支控制画图种类,在view类中加入变量i,添加三个菜单消息响应函数,对i进行赋值;当点击菜单项“点”时,i=0;当点击菜单项“圆” 时,i=1;当点击菜单项“矩形”时,i=2;在view中添加void C实º习一View::OnLButtonUp(UINT nFlags, CPoint point)用来响应鼠标左键弹起消息。

面向对象程序设计实训报告书(实训一)

面向对象程序设计实训报告书(实训一)
实训拓展
如有余力,可选择:
在以上要求的基础上,设计两个方法,分别根据身份证号确定性别和出生日期,设计一个计算n个学生中成绩最好者、最差者、总成绩和平均成绩。
相关课程
教师评语
教师姓名
赵清山
实训课时数
4
备注
基本算法(用自然语言、图、表的形式,描述实现的基本思路和确定的、有限的、可行的步骤):
实现界面及主要代码:
面向对象程序设计(
完成日期:
学号
姓名

实训目的
加深对面向对象方法基本理论的理解。了解类的继承、重载和多态的概念,掌握类的继承、重载和先绑定多态的实现方法。熟练掌握类、对象的定义、访问和访问控制的方法。并能在项目中设计、使用简单的类,初步获得用类解决实际问题的能力。
实训结论与总结:
实训内容
及要求
1、设计一个“人(身份证号,姓名)”类,姓名公开,身份证隐藏,包括3个构建函数,其一,为初始化,其二,只输入身份证号,其三,输入身份证号和姓名。
2、根据人类,派生学生类,学生类添加学号和成绩两个成员,分别添加构造函数获得相应成员。
3、在一般方法中,至少有一个实现重载。
4、设计一个控制台应用或窗体应用,测试两个类的实现并显示1、2两项的信息(身份证号、姓名、学号、成绩)。

面向对象实习报告

面向对象实习报告

面向对象实习报告一、前言随着信息技术的不断发展,软件行业已经成为了一个充满活力和机遇的领域。

作为一名计算机专业的学生,我深知实践经验对于自己未来的发展至关重要。

因此,在大学期间的实习过程中,我积极选择了面向对象的实习项目,以期提升自己的专业技能和团队协作能力。

二、实习单位与岗位本次实习我选择了某知名软件企业,担任软件开发实习生岗位。

实习期间,我主要负责参与项目开发,与团队成员一起分析需求、设计方案、编写代码和测试软件。

三、实习内容1. 需求分析:在项目开始阶段,我们与项目经理和客户进行沟通,了解项目的需求和目标。

通过分析用户需求,我们确定了项目的功能模块和关键技术。

2. 设计方案:在需求分析的基础上,我们团队进行了详细的设计方案。

我负责编写部分模块的详细设计文档,包括类图、序列图等。

3. 编码实现:根据设计文档,我开始编写代码。

在编码过程中,我遵循面向对象的原则,尽量使代码具有良好的可读性和可维护性。

同时,我学会了使用团队开发的工具和框架,提高了自己的编程效率。

4. 软件测试:在代码完成后,我参与了软件测试工作。

通过编写测试用例和执行测试,我发现并修复了一些bug,保证了软件的质量。

5. 团队协作:在实习期间,我深刻体会到了团队协作的重要性。

我们团队定期进行会议,讨论进度和问题。

通过与团队成员的交流,我学到了很多新的技术和思路。

四、实习收获1. 技术提升:通过本次实习,我掌握了许多面向对象编程的技术,如类、对象、封装、继承、多态等。

同时,我学会了使用UML工具进行软件设计,提高了自己的软件开发能力。

2. 团队协作:在实习过程中,我学会了如何与团队成员进行有效沟通,共同解决问题。

通过团队协作,我体会到了团队精神的重要性。

3. 时间管理:在项目开发过程中,我学会了如何合理安排时间,提高自己的工作效率。

通过按时完成任务,我培养了自己的责任感和紧迫感。

4. 职业素养:在实习过程中,我注重培养自己的职业素养,遵守公司规章制度,尊重同事,诚实守信。

面向对象实训感想总结报告

面向对象实训感想总结报告

一、实训背景随着计算机科学技术的不断发展,面向对象编程已经成为现代软件开发的主流方法。

为了更好地掌握面向对象编程技术,提高自己的编程能力,我在本学期参加了面向对象实训课程。

通过这段时间的学习和实践,我对面向对象编程有了更深入的了解,以下是我对本次实训的感想总结。

二、实训内容本次实训主要围绕面向对象编程的核心概念展开,包括面向对象思想、封装、继承、多态等。

具体内容包括:1. 面向对象思想:通过学习面向对象思想,我明白了将现实世界中的事物抽象为对象,并通过对象之间的交互来实现程序功能的方法。

这种方法使得编程更加贴近现实,提高了代码的可读性和可维护性。

2. 封装:封装是将对象的属性和方法封装在一起,对外提供统一的接口。

通过封装,可以隐藏对象的内部实现细节,提高代码的安全性。

3. 继承:继承是面向对象编程的一个重要特性,它允许一个类继承另一个类的属性和方法。

通过继承,可以复用代码,提高代码的复用性。

4. 多态:多态是面向对象编程的另一个重要特性,它允许一个接口调用多个不同的实现。

通过多态,可以降低代码的耦合度,提高代码的灵活性。

三、实训过程在实训过程中,我按照以下步骤进行学习:1. 理论学习:通过阅读教材、观看教学视频等方式,系统地学习了面向对象编程的相关知识。

2. 编程实践:根据实训要求,完成了一系列编程任务,如编写简单的面向对象程序、实现类的继承和多态等。

3. 小组讨论:与同学们一起讨论编程过程中遇到的问题,共同解决难题。

4. 上机练习:在实验室进行上机练习,巩固所学知识。

四、实训收获通过本次实训,我收获颇丰:1. 提高了编程能力:通过实践,我熟练掌握了面向对象编程的相关技术,能够独立完成一些简单的面向对象程序。

2. 深入理解面向对象思想:通过学习面向对象思想,我明白了如何将现实世界中的事物抽象为对象,并通过对象之间的交互来实现程序功能。

3. 培养了团队合作精神:在小组讨论和上机练习过程中,我与同学们互相学习、互相帮助,共同解决问题。

面向对象程序设计实训报告总结

面向对象程序设计实训报告总结

面向对象程序设计实训报告总结面向对象程序设计是计算机科学与技术领域中重要的编程范式之一。

通过面向对象的思想,我们可以将问题分解为若干个对象,并通过对象之间的交互来解决问题。

在本次面向对象程序设计实训中,我学到了许多关于面向对象编程的知识和技能。

首先,我学会了如何定义类和创建对象。

在面向对象编程中,类是一种抽象的数据类型,用于定义对象的属性和行为。

通过定义类,我们可以创建多个对象,每个对象都有自己的属性值和方法。

在实训中,我通过定义各种类,如学生类、教师类等,来模拟一个学校管理系统。

这样,我可以根据需要实例化多个学生对象或教师对象,并对其进行操作。

其次,我学会了如何使用继承和多态。

继承是面向对象编程中的一种重要机制,通过继承,一个类可以从另一个类继承属性和方法。

在实训中,我通过创建一个基础的人类,然后从人类派生出学生类和教师类。

这样,学生类和教师类可以继承人类的属性和方法,并可以添加自己特有的属性和方法。

多态是指同一类对象在不同情况下会表现出不同的行为。

在实训中,我通过多态的方法来实现不同对象的相同方法,但具体执行的代码不同。

此外,我还学会了如何使用封装和抽象。

封装是指将对象的属性和方法封装在一起,只暴露必要的接口给外部使用。

通过封装,我们可以隐藏对象的内部细节,提高代码的安全性和可维护性。

在实训中,我使用了私有属性和公有方法来实现封装。

抽象是指将具有相同属性和行为的对象进行归类,提取出共同的特征,形成一个抽象的类。

在实训中,我通过抽象出人类作为基类,来实现学生类和教师类的继承。

总的来说,通过本次面向对象程序设计实训,我对面向对象编程有了更深入的理解。

我学会了如何定义类和创建对象,使用继承和多态,以及如何使用封装和抽象。

这些知识和技能将对我未来的编程工作有很大帮助。

我相信通过不断的实践和学习,我可以进一步提高自己的面向对象编程能力。

面向对象技术实训报告

面向对象技术实训报告

一、摘要本次面向对象技术实训以Java编程语言为基础,通过实例分析和实践操作,让学生深入了解面向对象编程的基本概念、原则和方法。

实训过程中,学生掌握了面向对象编程的基本语法、类和对象的设计与实现、继承与多态等核心概念,并通过实际项目开发提高了编程能力。

本文将从实训内容、方法与收获三个方面进行总结。

二、实训内容1. 面向对象基本概念(1)面向对象编程(OOP)的基本概念:封装、继承、多态。

(2)Java编程语言中的面向对象编程特性:类、对象、构造方法、访问控制符等。

2. 类和对象的设计与实现(1)设计一个简单的Java程序,实现学生信息管理系统。

(2)设计并实现学生类、教师类、课程类等实体类,以及相关的方法。

3. 继承与多态(1)使用继承实现学生类和教师类的继承关系。

(2)通过多态实现不同类对同一方法的重写和重载。

4. 实际项目开发(1)设计并实现一个图书管理系统,包括图书类、读者类、借阅类等。

(2)实现图书的借阅、归还、查询等功能。

三、实训方法1. 理论学习:通过阅读教材、参考书籍,了解面向对象编程的基本概念和原理。

2. 实践操作:根据实训内容,动手编写Java程序,实现面向对象编程。

3. 交流与讨论:在实训过程中,与其他同学进行交流与讨论,共同解决遇到的问题。

4. 查阅资料:针对遇到的具体问题,查阅相关资料,提高编程能力。

四、实训收获1. 理论知识:掌握了面向对象编程的基本概念、原则和方法,为后续课程和实际项目开发奠定了基础。

2. 编程能力:通过实际项目开发,提高了编程能力,学会了如何将理论知识应用到实际项目中。

3. 团队协作:在实训过程中,与其他同学进行交流与讨论,提高了团队协作能力。

4. 问题解决能力:在遇到问题时,能够主动查阅资料、请教他人,提高了问题解决能力。

五、总结本次面向对象技术实训使我受益匪浅,不仅加深了对面向对象编程的理解,还提高了编程能力。

在今后的学习和工作中,我会继续努力,将所学知识运用到实际项目中,为我国信息技术领域的发展贡献自己的力量。

面向对象课程实训总结报告

面向对象课程实训总结报告

一、前言面向对象编程(Object-Oriented Programming,OOP)是当今软件开发领域的主流编程范式,具有封装、继承、多态等特点。

为了提高我们的编程能力和面向对象思维能力,本学期我们进行了面向对象课程的实训。

以下是我对本次实训的总结报告。

二、实训内容1. 实训目标本次实训旨在帮助我们:(1)掌握面向对象编程的基本概念、原则和设计模式;(2)学会使用面向对象编程语言(如Java、C++等)进行编程;(3)提高编程能力和面向对象思维能力;(4)培养团队协作和沟通能力。

2. 实训过程本次实训分为三个阶段:(1)理论学习:深入学习面向对象编程的基本概念、原则和设计模式,理解面向对象编程的优势;(2)实践操作:通过编写简单的面向对象程序,巩固所学知识,提高编程能力;(3)项目实战:分组完成一个小型项目,锻炼团队协作和沟通能力。

三、实训收获1. 理论知识方面通过本次实训,我对面向对象编程有了更深入的理解,掌握了以下知识点:(1)面向对象编程的基本概念:类、对象、封装、继承、多态等;(2)面向对象设计原则:单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、组合优于继承等;(3)常用设计模式:工厂模式、单例模式、观察者模式、策略模式、模板方法模式、适配器模式等。

2. 实践操作方面在实训过程中,我学会了使用面向对象编程语言编写程序,掌握了以下技能:(1)掌握面向对象编程语言的基本语法和语法规则;(2)熟练运用面向对象编程语言进行编程,提高编程效率;(3)学会使用面向对象设计原则和设计模式,提高代码质量。

3. 团队协作和沟通能力方面在项目实战阶段,我与团队成员紧密合作,共同完成项目。

在此过程中,我学会了以下技能:(1)明确项目目标和任务分工;(2)与团队成员有效沟通,确保信息畅通;(3)协调团队成员,共同解决问题。

四、实训不足与改进1. 理论知识方面在理论学习阶段,我发现自己在某些知识点上掌握得不够扎实,如面向对象设计模式的应用。

某学院面向对象程序设计实训报告

某学院面向对象程序设计实训报告

广西科技大学鹿山学院面向对象程序设计实训报告题目:网络中国象棋系不:电气与计算机工程系专业班级:计软141班姓名:***学号:********成绩评定:指导教师签字:2021年1月10日名目名目1、需求分析1.1开发的背景·中国象棋有着悠久的历史,象棋喜好者更是不计其数,然而由于人们的工作地点从、时刻的限制,原始的那种面对面的下棋方式差不多不再适应人们的生活,人们差不多开始走向网络象棋博弈·网络象棋有着许多的优点,通过网络象棋,对弈的双方是网络上任意的两个象棋喜好者,甚至是不熟悉。

网络让对弈的范围更加的广泛,让象棋喜好者能够与更多的象棋喜好者切磋棋艺。

1.2算法·指定效劳器端口号·支持多人同时在线··显示在线用户信息·显示当前在线所有用户·从在线用户列表中选择玩家进行挑战·同意或拒尽挑战1.3要求·用Java语言实现系统,源程序要有适当的注释,使程序轻易阅读·函数功能要划分好〔结构化程序设计〕·能够增加新功能模块2、总体分析与设计2.1总体设计方案·系统功能模块图:2.2功能描述·能够指定效劳器端口号。

·能够支持多人同时在线。

·能够显示在线用户信息。

·不准许玩家同名·能够通过主机IP号及端口号登陆到效劳器。

·能够显示当前在线所有用户。

·能够从在线用户列表中选择玩家进行挑战。

·能够同意或拒尽挑战。

·要是对方在和其他玩家对弈中,那么应该给与相应的提示信息。

·象棋规那么一定要严密。

·棋子样式采纳最一般的橡胶式象棋。

棋子为黑色,字为红色和白色2.3算法设计----本程序功能模块依据程序设计的需要。

综合程序的有用性、智能化的考虑。

将程序划分为8个模块来写。

〔1〕效劳器端的框架设计类〔2〕效劳器线程类〔3〕效劳器代理线程类〔4〕棋子类的开发类〔5〕客户端的框架设计类〔6〕客户端线程类〔7〕棋子的规那么类〔8〕棋盘的设计类2.5系统流程图----3、数据结构设计3.1功能模块的设计效劳器端框架类设计import java.util.*;import java.awt.*;//界面包import java.awt.event.*;//事件处理包import javax.swing.*;//图形化界面包import.*;//图形化界面包事件进行处理import et.*;//网络包import.*;//IO流publicclass Server extends JFrame implements ActionListener{JLabeljlPort=new JLabel("端口号");//创立提示输进端口号标签JTextFieldjtfPort=new JTextField("9457");//用于输进端口号的文本框JButtonjbStart=new JButton("启动");//创立"启动"按钮JButtonjbStop=new JButton("关闭");//创立"关闭"按钮JPaneljps=new JPanel();//创立一个JPanel对象JListjlUserOnline=new JList();//创立用于显示当前用户的JListJScrollPanejspx=new JScrollPane(jlUserOnline);//将显示当前用户的JList放在JScrollPane中JSplitPanejspz=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jspx,jps);//创立JSplitPane对象ServerSocketss;//声明ServerSocket引用ServerThreadst;//声明ServerThread引用VectoronlineList=new Vector();//创立存放当前在线用户的Vector对象public Server(){this.initialComponent();//初始化控件this.addListener();//为相应的控件注册事件监听器this.initialFrame();//初始化窗体this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}publicvoid initialComponent(){jps.setLayout(null);//设为空布局jlPort.setBounds(20,20,50,20);jps.add(jlPort);//添加用于提示输进端口号的标签this.jtfPort.setBounds(85,20,60,20);jps.add(this.jtfPort);//添加用于输进端口号的文本框this.jbStart.setBounds(18,50,60,20);jps.add(this.jbStart);//添加"开始"按钮this.jbStop.setBounds(85,50,60,20);jps.add(this.jbStop);//添加"关闭"按钮this.jbStop.setEnabled(false);//将"关闭"按钮设为不可用}publicvoid addListener(){this.jbStart.addActionListener(this);//为"开始"按钮注册事件监听器this.jbStop.addActionListener(this);//为"关闭"按钮注册事件监听器}publicvoid initialFrame(){this.setTitle("象棋--效劳器端");//设置窗体标题Imageimage=new ImageIcon("ico.gif").getImage();this.setIconImage(image);this.add(jspz);//将JSplitPane添加到窗体中jspz.setDividerLocation(250);jspz.setDividerSize(4);//设置分割线的位置和宽度this.setBounds(20,20,420,320);this.setVisible(true);//设置可见性this.addWindowListener(//为窗体关闭事件注册监听器new WindowAdapter(){publicvoid windowClosing(WindowEvente){if(st==null)//当效劳器线程为空时直截了当退出{System.exit(0);//退出return;}try{Vectorv=onlineList;int size=v.size();for(int i=0;i<size;i++){//当不为空时,向在线用户发送离线信息ServerAgentThreadtempSat=(ServerAgentThread)v.get(i);tempSat.dout.writeUTF("<#SERVER_DOWN#>");tempSat.flag=false;//终止效劳器代理线程}st.flag=false;//终止效劳器线程st=null;ss.close();//关闭ServerSocketv.clear();//将在线用户列表清空refreshList();//刷新列表}catch(Exceptionee){ee.printStackTrace();}System.exit(0);//退出}});}publicvoid actionPerformed(ActionEvente){if(e.getSource()==this.jbStart){//当单击"启动"按钮时this.jbStart_event();}elseif(e.getSource()==this.jbStop){//单击"关闭"按钮后this.jbStop_event();}}publicvoid jbStart_event(){//单击"启动"按钮的业务处理代码int port=0;try{//获得用户输进的端口号,并转化为整型port=Integer.parseInt(this.jtfPort.getText().trim());}catch(Exceptionee){//端口号不是整数,给出提示信息JOptionPane.showMessageDialog(this,"端口号只能是整数","错误", JOptionPane.ERROR_MESSAGE);return;}if(port>65535||port<0){//断口号不合法,给出提示信息JOptionPane.showMessageDialog(this,"端口号只能是0-65535的整数","错误", JOptionPane.ERROR_MESSAGE);return;}try{this.jbStart.setEnabled(false);//将开始按钮设为不可用this.jtfPort.setEnabled(false);//将用于输进端口号的文本框设为不可用this.jbStop.setEnabled(true);//将停止按钮设为可用ss=new ServerSocket(port);//创立ServerSocket对象st=new ServerThread(this);//创立效劳器线程st.start();//启动效劳器线程//给出效劳器启动成功的提示信息JOptionPane.showMessageDialog(this,"效劳器启动成功","提示", RMATION_MESSAGE);}catch(Exceptionee){//给出效劳器启动失败的提示信息JOptionPane.showMessageDialog(this,"效劳器启动失败","错误", JOptionPane.ERROR_MESSAGE);this.jbStart.setEnabled(true);//将开始按钮设为可用this.jtfPort.setEnabled(true);//将用于输进端口号的文本框设为可用this.jbStop.setEnabled(false);//将停止按钮设为不可用}}publicvoid jbStop_event(){//单击"关闭"按钮的业务处理代码try{Vectorv=onlineList;int size=v.size();for(int i=0;i<size;i++){//向在线用户发送离线信息ServerAgentThreadtempSat=(ServerAgentThread)v.get(i);tempSat.dout.writeUTF("<#SERVER_DOWN#>");tempSat.flag=false;//关闭效劳器代理线程}st.flag=false;//关闭效劳器线程st=null;ss.close();//关闭ServerSocketv.clear();//将在线用户列表清空refreshList();//刷新列表this.jbStart.setEnabled(true);//将开始按钮设为可用this.jtfPort.setEnabled(true);//将用于输进端口号的文本框设为可用this.jbStop.setEnabled(false);//将停止按钮设为不可用}catch(Exceptionee){ee.printStackTrace();}}publicvoid refreshList(){//更新在线用户列表的业务处理代码Vectorv=new Vector();int size=this.onlineList.size();for(int i=0;i<size;i++){//遍历在线列表ServerAgentThreadtempSat=(ServerAgentThread)this.onlineList.get(i);Stringtemps=tempSat.sc.getInetAddress().toString();ame();//获得所需信息v.add(temps);//添加到Vector中}this.jlUserOnline.setListData(v);//更新列表数据}publicstaticvoid main(Stringargs[]){new Server();}}讲明:此效劳器端类既为效劳器的运行类,用户通过该类进进效劳器的主界面。

《面向对象程序设计》实习报告

《面向对象程序设计》实习报告

《面向对象程序设计》实习报告班级:电子商务0801学号:姓名:XX指导老师:刘光苏建恭龙延秀娟实习时间:2010.1.4-2010.1.10一·实习目的经过一周的实习,让我再次复习了SQL和VB的相关知识,特别是亲自操作,更加熟悉和掌握其具体应用的方法,遇到难题时,经过查阅资料和同学间的探讨,也把许多以前不懂和不会的知识有所掌握。

在整个实习过程中,我清楚并掌握了SQL Server的集成环境、系统的菜单、工具栏、企业管理器、查询分析器的具体使用方法;同时在操作中掌握了创建数据库、数据表的方法;熟悉了数据表的操作命令以及T-SQL命令的使用。

在编写代码是,我熟悉了基本命令的使用方法,以及常用函数、表达式的使用方法,掌握了程序控制结构的使用和程序设计,同时清楚了变量的作用范围和自定义函数的使用。

特别在于VB连接的过程中,我熟悉了VB与数据库管理系统的连接方法,较熟练地掌握了利用向导、数据环境、数据控件等工具开发应用程序的基本操作界面。

同时还熟悉了常用的算法程序、常用统计程序、数据排序方法、简单数据加密和解密程序、矩阵基本操作程序的编写、调试和使用。

在整个实习过程中,受益匪浅。

此次实习,达到了很好的效果。

通过实践让我把书本上的知识更好的应用于实际操作,可以独立的做一些简单小程序,也感觉到SQL和VB的实际操作的重要性,在以后的学习过程中,更应该把这种方法融合,这样才可以真正的掌握所学的知识。

二·程序设计实验一 Sql Server基本操作1·在Stu177数据库中创建下列数据表:学生情况表117:课程情况表117:选课情况表117:实验二 SQLServer 与程序设计语言连接1·利用VB数据窗体向导生成学生情况表117的录入界面如下: 单记录:网格:2·利用VB数据窗体向导生成课程情况表117的录入界面如下:单记录:网格:3·利用VB数据窗体向导生成选课情况表117的录入界面如下:单记录:网格:4·利用VB数据窗体向导生成学生情况表117(主从)的录入界面如下:5·利用VB数据窗体向导生成课程情况表117(主从)的录入界面如下:实验三基本算法练习1·求素数2.对任意偶数进行素数分解(哥德巴赫猜想)3·百钱百鸡问题实验四常用统计练习1·成绩统计2·字符统计实验五常用排序方法1·选择排序法2·冒泡排序法实验六综合设计1·程序封面设计2·系统集成界面设计三·实习总结经过一周的实习,我对SQL和VB的综合运用能力有所提高,特别是经过实际操作,能够很好的将书本知识转化为实践能力。

面向对象编程综合实训报告模板

面向对象编程综合实训报告模板

面向对象编程综合实训报告模板一、实训目的本次实训的主要目的是通过实际项目应用,使我们深入理解和掌握面向对象编程(OOP)的核心概念、原理和编程技术。

具体包括:1. 理解并掌握OOP的基本思想,包括封装、继承和多态等;2. 熟悉并掌握至少一种OOP语言(如Java、C++、Python等)的语法和特性;3. 学习和运用OOP在软件开发中的应用,如设计模式、软件架构等;4. 通过团队协作,提高我们的项目管理和团队协作能力。

二、实训内容1. 实训题目我们选择的实训题目是“[项目名称]”。

这是一个基于[技术栈/语言]的[项目类型],主要功能是[简要描述项目功能]。

2. 需求分析我们详细分析了项目的需求,包括功能需求、性能需求、用户界面需求等。

在功能需求方面,我们确定了系统需要实现的主要功能和辅助功能;在性能需求方面,我们设定了系统的响应时间、并发用户数等关键性能指标;在用户界面需求方面,我们设计了友好、易用的用户界面。

3. 系统设计根据需求分析结果,我们设计了系统的总体架构、数据库结构、类图、时序图等。

在总体架构设计上,我们采用了[架构名称]架构,将系统分为表示层、业务逻辑层和数据访问层;在数据库设计上,我们设计了合理的数据库表结构和索引;在类图设计上,我们详细设计了系统的类、属性、方法等;在时序图设计上,我们描述了系统主要功能的执行流程。

4. 编码实现我们按照系统设计,使用[编程语言]实现了项目的所有功能。

在编码过程中,我们遵循了良好的编程规范,保证了代码的可读性和可维护性。

同时,我们也注重代码的性能优化,确保系统能够满足性能需求。

5. 测试与调试我们对项目进行了全面的测试,包括单元测试、集成测试和系统测试。

在单元测试阶段,我们对每个模块进行了详细的测试,确保每个模块的功能都正确实现;在集成测试阶段,我们将各个模块集成在一起进行测试,确保模块之间的接口正确无误;在系统测试阶段,我们对整个系统进行了全面的测试,确保系统能够满足所有的需求。

面向对象设计实验报告

面向对象设计实验报告

一、实验目的1. 理解面向对象设计的核心概念,如封装、继承、多态等。

2. 掌握面向对象设计的方法和步骤。

3. 通过实际案例分析,提高面向对象设计的实践能力。

二、实验环境1. 操作系统:Windows 102. 编程语言:Java3. 开发工具:Eclipse三、实验内容1. 面向对象设计的基本概念2. 类与对象3. 继承与多态4. 实际案例分析四、实验步骤1. 面向对象设计的基本概念(1)定义:面向对象设计(Object-Oriented Design,OOD)是一种以对象为中心的设计方法,通过将现实世界中的实体抽象为对象,以对象及其相互关系来描述系统的结构和行为。

(2)核心概念:a. 封装:将对象的属性(数据)和行为(方法)封装在一起,对外提供接口。

b. 继承:允许一个类继承另一个类的属性和方法,实现代码复用。

c. 多态:允许不同类的对象对同一消息作出响应,实现行为的变化。

2. 类与对象(1)定义:类是具有相同属性和行为的对象的抽象,对象是类的实例。

(2)步骤:a. 定义类:创建一个新的类,定义属性(成员变量)和方法(成员函数)。

b. 创建对象:使用new关键字创建类的实例。

c. 访问对象属性和方法:使用点号(.)操作符访问对象的属性和方法。

3. 继承与多态(1)继承:定义一个新的类(子类)继承自另一个类(父类),子类继承父类的属性和方法。

(2)多态:允许不同类的对象对同一消息作出响应,实现行为的变化。

(3)步骤:a. 定义父类:创建一个父类,定义属性和方法。

b. 定义子类:创建一个子类,继承自父类,并添加新的属性和方法。

c. 实现多态:使用子类对象调用父类方法,实现不同对象对同一消息的不同响应。

4. 实际案例分析(1)案例分析:设计一个简单的图书管理系统。

(2)设计步骤:a. 分析需求:图书管理系统需要管理图书的增删改查等功能。

b. 设计类:设计图书类(Book)、借阅者类(Borrower)和管理员类(Admin)。

面向对象程序设计(C#)实训报告

面向对象程序设计(C#)实训报告

江门职业技术学院《面向对象程序设计》课程实训报告班别_____________学号_____________姓名_____________江门职业技术学院电子与信息技术系编实训一Windows窗体基本控件的应用【实训目的】1.熟悉C#的编译环境。

2.掌握编写Windwos项目程序的一般步骤3.掌握Windows窗体基本控件的使用方法。

4. 掌握使用C#集成开发环境编译调试程序。

【实训内容】◆练习1、时钟实例◆练习2、加法练习器实例◆练习3、项目选择器实例◆练习4、倒计时器实例◆练习5、英文字母练习器实例【实训报告】实训二数据库的创建和管理【实训目的】掌握:1、SQL Server2000数据库的创建方法2、由已经生面的数据库产生SQL Server脚本的方法3、查看、修改数据库属性的方法4、数据库删除的方法。

【实训内容】1、用企业管理器创建XXXXXX数据库2、用T—SQL语句创建XXXXXX数据库3、查看、修改XXXXXX数据库属性4、XXXXXX数据库删除【实训报告】实训三数据表的创建与管理【实训目的】掌握:1、表的创建方法2、修改表的结构3、能够向已经创建的表中添加、删除及修改数据【实训内容】分别使用T_SQL命令、企业管理器向前面所建XXXXXX数据库做:1、创建关系模式中的表2、管理表3、对表添加、修改和删除数据【实训报告】实训四(1)数据查询【实训目的】1、理解查询的概念和方法2、掌握查询分析器的使用方法3、掌握SELECT语句的应用、多表查询、复杂查询的方法【实训内容】分别使用T_SQL命令、企业管理器向前面所建数据库做(至少对每个实体表一个查询):1、单表查询2、多表查询3、进行嵌套查询4、另用新表存储以上其中一个查询结果5、查询统计汇总【实训报告】实训四(2)视图的创建与使用【实训目的】掌握创建视图、测试、更改视图的方法【实训内容】分别使用T_SQL命令、企业管理器向前面所建数据库创建、管理视图(至少8个)【实训报告】实训五设计数据完整性【实训目的】掌握:1、掌握约束的概念及实施方法2、掌握规则的概念及实施的方法3、掌握默认值的概念及实施的方法【实训内容】分别使用T_SQL命令向前面所建数据库做:1、建立表与表之间的联系,建立必要的外键与主键、外键、唯一、非空、检查、缺省约束。

面向对象程序设计课程实验报告

面向对象程序设计课程实验报告
入口参数:const STACK&s
出口参数:无
功能:用s初始化p指空栈
intsize (const STACK *constp)
入口参数:无
出口参数:int max
功能:返回p指得栈得最大元素个数max
int howMany (const STACK*const p)
入口参数:无
出口参数:intpos
7。2用户使用说明书ﻩ39
7.3源代码ﻩ39
实验一。面向过程得整型栈编程
1、需求分析
1.1题目要求
整型栈就是一种先进后出得存储结构,对其进行得操作通常包括判断栈就是否为空、向栈顶添加一个整型元素、出栈等、整型栈类型及其操作函数采用非面向对象得纯C语言定义,请将完成上述操作得所有函数采用面向过程得方法编程,然后写一个main函数对栈得所有操作函数进行测试、
2.系统设计
2。1概要设计
函数结构图见图1.1
图1.1
总体流程图见图1。2
图1、2
2.2详细设计
voidinitSTACK(STACK*constp,int m)
入口参数:int m
出口参数:无
功能:初始化栈,可存m个元素
void initSTACK(STACK *constp, constSTACK&s)
6.过程与体会15
6.1遇到得主要问题与解决方法ﻩ15
6.2课程设计得体会ﻩ15
7、源码与说明ﻩ15
7。1文件清单及其功能说明ﻩ15
7、2用户使用说明书15
7、3源代码15
实验三.基于算符重载得整型栈编程19
1。需求分析ﻩ19
1、1题目要求19
1、2需求分析19
2、系统设计20

面向对象的开发实训报告

面向对象的开发实训报告

一、实训背景随着信息技术的飞速发展,面向对象编程已成为当今软件开发的主流技术。

为了提高我们的编程能力和实际项目经验,我们选择了面向对象开发作为实训内容。

本次实训以Java语言为基础,结合实际项目需求,学习并实践面向对象编程的方法和技巧。

二、实训目标1. 掌握面向对象编程的基本概念和原理;2. 熟悉Java语言的基本语法和常用类库;3. 能够运用面向对象的方法设计、实现和维护软件系统;4. 培养团队协作和沟通能力。

三、实训内容1. 面向对象编程基本概念(1)面向对象的基本特征:封装、继承、多态;(2)面向对象的基本原理:抽象、类、对象、继承、多态、接口;(3)面向对象的设计模式:单例模式、工厂模式、观察者模式等。

2. Java语言基础(1)Java语言的基本语法;(2)常用类库:String、ArrayList、HashMap等;(3)异常处理、多线程编程。

3. 面向对象设计实现(1)设计一个简单的面向对象系统,包括用户管理、权限管理、数据管理等模块;(2)运用面向对象的设计原则和设计模式,提高代码的可读性、可维护性和可扩展性;(3)使用UML图进行需求分析和系统设计。

4. 项目实践(1)根据实际需求,设计并实现一个具有实际应用价值的软件系统;(2)在项目开发过程中,注重团队协作和沟通,提高项目进度和质量;(3)学会使用版本控制工具,如Git,进行代码管理。

四、实训过程1. 阶段一:理论学习(1)通过阅读教材、参考书籍和网上资料,学习面向对象编程的基本概念和原理;(2)通过课堂讲解和课后练习,掌握Java语言的基本语法和常用类库。

2. 阶段二:系统设计(1)分析项目需求,确定系统功能模块;(2)运用面向对象的设计原则和设计模式,进行系统设计;(3)使用UML图描述系统架构和类关系。

3. 阶段三:代码实现(1)根据系统设计,编写Java代码实现各个模块的功能;(2)在编写代码过程中,注意代码规范和性能优化;(3)使用版本控制工具进行代码管理。

java面向对象编程实验报告

java面向对象编程实验报告

java面向对象编程实验报告篇一:java面向对象编程实验报告信息工程学院Java程序设计实验/实习报告学院:信息工程学院班级:信息112 姓名:吴连梅学号:XX013305 成绩:A实验二面向对象编程1.实验目的(1)掌握类与对象基本知识;(2)Java中的继承机制及包(package)、接口(interface)等的设计方法;(3)掌握static、this、super等关键字的使用;(4)掌握Java中两种比较器的用法。

2.实验内容实验题 1 定义一个类Book,包含两个属性:一个是private的String类型的属性title、一个是private的float类型的属性listPrice,封装这两个属性的四个方法setTitle()和getTitle()、setListPrice( )和geListPrice ()。

基本要求:(1)设计类Book及类BookManagement,在类BookManagement中输出Book类的对象的两个private属性;(2)重写父类的toString()方法,实现Book类实例的两个属性的输出。

实验过程:新建工程后,在工程下面建立一个包Book,在包下再建立一个Book类,类中包含两个属性,一个是private的String类型的属性title、一个是private的float类型的属性listPrice,之后是封装这两个属性的四个方法,用快捷键Alt+Shift+S选择gennerate Getters and Setters,再实验报告的内容与格式按任课教师的要求书写。

然后就是重写父类的toString()方法,用快捷键Alt+Shift+S选择gennerate toString,快捷重写。

这段程序写完是这样的:接下来便是BookManagement类,在包book下新建一个类BookManagement,写完的程序是这样的:BookManagement类中创建了书的对象,在主方法中调用output函数,赋值,输出。

面向对象程序设计实训报告总结

面向对象程序设计实训报告总结

面向对象程序设计实训报告总结
面向对象程序设计实训是我在大学期间参与的一门实践课程,通过这门课程的学习和实践,我对面向对象程序设计的理论和实践有了更深入的了解和掌握。

在实践过程中,我首先学习了面向对象程序设计的基本概念和原则,掌握了类、对象、继承、多态等重要概念和特性。

我了解到面向对象程序设计是一种将现实世界的事物抽象为类和对象的编程范式,可以更好地理解和模拟现实世界的复杂系统。

接着,我学习了面向对象程序设计的基本语法和语义,包括类的定义、对象的创建和使用、方法的定义和调用等。

我通过编写简单的程序来实践这些概念和语法,加深了对面向对象程序设计的理解。

在实践过程中,我还学习了面向对象程序设计的设计原则和模式。

我了解到设计原则是指导面向对象程序设计的准则,如开闭原则、单一职责原则、迪米特法则等。

这些原则可以帮助我们设计出高质量、可扩展和易维护的程序。

同时,我也学习了一些常用的设计模式,如工厂模式、单例模式、观察者模式等,这些模式可以帮助我们解决特定的设计问题。

通过实践,我发现面向对象程序设计可以提高代码的可读性、可维护性和可重用性。

通过将复杂系统拆分为多个类和对象,可以更好地组织和管理代码。

面向对象程序设计的设计原则和模式可以帮助我们设计出更好的系统架构和代码结构。

总的来说,面向对象程序设计实训是一门非常有价值的课程,通过这门课程的学习和实践,我对面向对象程序设计有了更深入的了解和掌握。

这门课程不仅提高了我的编程能力,还培养了我的系统设计和分析能力。

我相信这门课程对我未来的职业发展也有很大的帮助。

面向对象程序设计实训报告

面向对象程序设计实训报告

湖南工业职业技术学院课程实训指导书
课程名称:面向对象程序设计
姓名:
学号:
专业班级:
系(院):
设计时间:
设计地点:
实训题目:
菜单设计如下:
操作界面的具体设计自行安排。

帮助窗体如下:
实训报告编写要求:(目录自行设计,以下只供参考)
1、实训目的
2、实训内容
3、实训步骤
3.1数据库设计(详细设计步骤)
3.2界面设计(窗体和控件的相关属性设置参数值,相关程序和实训步骤)
3.3报表设计(方法和步骤)
4、程序的调试和运行
说明,实训报告封页统一采用该封页,标题改成实训报告,第2页为目录,要有2级目录。

实训报告内容自行设计,排版要整齐,图表要居中。

整个实训报告不得少于3000字。

Private Sub Command1_Click()
Data1.Recordset.MoveFirst
Do While Not Data1.Recordset.EOF
If Data1.Recordset.Fields("用户名").Value = Trim(Text1.Text) And Data1.Recordset.Fields("用户密码").Value = Trim(Text2.Text) Then
Form1.Hide
Form2.Show
Exit Do
Else
Data1.Recordset.MoveNext
End If
Loop
If Data1.Recordset.EOF = True Then。

面向对象程序设计实验报告

面向对象程序设计实验报告

面向对象程序设计实验报告面向对象程序设计实验报告一、引言面向对象程序设计(Object-Oriented Programming,简称OOP)是一种广泛应用于软件开发的编程范式。

本实验旨在通过实践,加深对面向对象程序设计的理解,并掌握其基本概念和技巧。

二、实验目的1. 理解面向对象程序设计的基本概念和思想;2. 掌握类、对象、继承、封装、多态等面向对象的核心概念;3. 运用面向对象的思想设计和实现一个简单的程序。

三、实验过程1. 设计类和对象在本次实验中,我们选择实现一个简单的学生管理系统。

首先,我们需要设计一个学生类(Student),包括学生的姓名、年龄、学号等属性,并定义相关的方法,如获取学生信息、修改学生信息等。

然后,我们创建多个学生对象,模拟学生管理系统中的多个学生。

2. 继承和多态为了进一步理解继承和多态的概念,我们可以设计一个教师类(Teacher),继承自学生类。

教师类除了继承学生类的属性和方法外,还可以定义自己特有的属性和方法。

通过创建教师对象,我们可以看到继承和多态的效果。

3. 封装和访问控制在面向对象程序设计中,封装是一个重要的概念。

我们可以将学生类的属性设置为私有(private),并通过公有(public)的方法来访问和修改属性。

这样做的好处是可以保护属性的安全性,同时提供统一的接口供外部使用。

四、实验结果通过实验,我们成功地实现了一个简单的学生管理系统。

我们可以创建学生对象,并通过调用相关方法来获取和修改学生的信息。

同时,我们还实现了教师类,通过继承和多态的特性,我们可以灵活地使用学生和教师对象。

五、实验总结通过本次实验,我们深入了解了面向对象程序设计的基本概念和思想。

通过设计和实现一个简单的程序,我们掌握了类、对象、继承、封装、多态等核心概念,并学会了如何运用这些概念来设计和实现面向对象的程序。

面向对象程序设计具有很多优点,如代码的可重用性、可维护性、可扩展性等。

通过合理地设计类和对象,我们可以更好地组织和管理代码,提高开发效率和代码质量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

广西科技大学鹿山学院面向对象程序设计实训报告题目:网络中国象棋系别:电气与计算机工程系专业班级:计软141班姓名:邓康言学号:成绩评定:指导教师签字:2016 年1 月10 日目录目录1、需求分析 (2)1.1 开发的背景 (2)1.2 算法 (2)1.3 要求 (3)2、总体分析与设计 (3)2.1 总体设计方案 (3)2.2 功能描述 (4)2.2.1服务器端 (4)2.2.2客户端 (4)2.3算法设计---- (4)2.5系统流程图---- (5)3、数据结构设计 (5)3.1 功能模块的设计 (5)3.1.1服务器端框架类设计 (5)3.1.2服务器线程设计 (9)3.1.3服务器代理线程设计 (9)3.1.4 棋子的开发类设计 (13)3.1.5 客户端的框架类设计 (15)3.1.6 客户端的框架类设计 (17)3.1.7 棋子的规则类设计 (20)3.1.8 棋盘的规则类设计 (23)4、系统实现 (5)4.1服务器端界面 (26)4.2客户端界面 (27)4.3 未启动服务器,客户端连接失败 (27)4.4服务器启动 (28)4.5 服务器启动客户端成功连接 (29)4.6 显示在线用户 (29)4.7 不允许重名 (30)4.8发起挑战 (30)4.9拒绝挑战 (31)4.10接受挑战 (31)4.11 对战走棋 (32)4.12 不能向正在下棋的用户发起挑战 (32)4.13 赢棋 (33)4.14 认输 (33)4.15 服务器关闭 (34)总结 (34)参考文献 (35)1、需求分析1.1 开发的背景·中国象棋有着悠久的历史,象棋爱好者更是不计其数,但是由于人们的工作地点从、时间的限制,原始的那种面对面的下棋方式已经不再适应人们的生活,人们已经开始走向网络象棋博弈·网络象棋有着很多的优点,通过网络象棋,对弈的双方是网络上任意的两个象棋爱好者,甚至是不认识。

网络让对弈的范围更加的广泛,让象棋爱好者可以与更多的象棋爱好者切磋棋艺。

1.2 算法·指定服务器端口号·支持多人同时在线··显示在线用户信息·显示当前在线所有用户·从在线用户列表中选择玩家进行挑战·接受或拒绝挑战1.3 要求·用Java语言实现系统,源程序要有适当的注释,使程序容易阅读·函数功能要划分好(结构化程序设计)·可以增加新功能模块2、总体分析与设计2.1 总体设计方案·系统功能模块图:2.2 功能描述2.2.1服务器端·可以指定服务器端口号。

·可以支持多人同时在线。

·可以显示在线用户信息。

·不允许玩家同名2.2.2客户端·能够通过主机IP号及端口号登陆到服务器。

·可以显示当前在线所有用户。

·可以从在线用户列表中选择玩家进行挑战。

·可以接受或拒绝挑战。

·如果对方在和其他玩家对弈中,则应该给与相应的提示信息。

·象棋规则一定要严密。

·棋子样式采用最普通的橡胶式象棋。

棋子为黑色,字为红色和白色2.3 算法设计----本程序功能模块根据程序设计的需要。

综合程序的实用性、智能化的考虑。

将程序划分为8个模块来写。

(1)服务器端的框架设计类(2)服务器线程类(3)服务器代理线程类(4)棋子类的开发类(5)客户端的框架设计类(6)客户端线程类(7)棋子的规则类(8)棋盘的设计类2.5 系统流程图----3、数据结构设计3.1 功能模块的设计3.1.1 服务器端框架类设计import java.util.*;import java.awt.*;//界面包import java.awt.event.*;//事件处理包import javax.swing.*;//图形化界面包import javax.swing.event.*;//图形化界面包事件进行处理import .*;//网络包import java.io.*;//IO流public class Server extends JFrame implements ActionListener{JLabel jlPort=new JLabel("端口号");//创建提示输入端口号标签JTextField jtfPort=new JTextField("9457");//用于输入端口号的文本框JButton jbStart=new JButton("启动");//创建"启动"按钮JButton jbStop=new JButton("关闭");//创建"关闭"按钮JPanel jps=new JPanel();//创建一个JPanel对象JList jlUserOnline=new JList();//创建用于显示当前用户的JListJScrollPane jspx=new JScrollPane(jlUserOnline);//将显示当前用户的JList放在JScrollPane中JSplitPane jspz=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jspx,jps);//创建JSplitPane 对象ServerSocket ss;//声明ServerSocket引用ServerThread st;//声明ServerThread引用Vector onlineList=new Vector();//创建存放当前在线用户的Vector对象public Server(){this.initialComponent();//初始化控件this.addListener();//为相应的控件注册事件监听器this.initialFrame();//初始化窗体this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void initialComponent(){jps.setLayout(null);//设为空布局jlPort.setBounds(20,20,50,20);jps.add(jlPort);//添加用于提示输入端口号的标签this.jtfPort.setBounds(85,20,60,20);jps.add(this.jtfPort);//添加用于输入端口号的文本框this.jbStart.setBounds(18,50,60,20);jps.add(this.jbStart);//添加"开始"按钮this.jbStop.setBounds(85,50,60,20);jps.add(this.jbStop);//添加"关闭"按钮this.jbStop.setEnabled(false);//将"关闭"按钮设为不可用}public void addListener(){this.jbStart.addActionListener(this);//为"开始"按钮注册事件监听器this.jbStop.addActionListener(this);//为"关闭"按钮注册事件监听器}public void initialFrame(){this.setTitle("象棋--服务器端");//设置窗体标题Image image=new ImageIcon("ico.gif").getImage();this.setIconImage(image);this.add(jspz);//将JSplitPane添加到窗体中jspz.setDividerLocation(250);jspz.setDividerSize(4);//设置分割线的位置和宽度this.setBounds(20,20,420,320);this.setVisible(true);//设置可见性this.addWindowListener(//为窗体关闭事件注册监听器new WindowAdapter(){public void windowClosing(WindowEvent e){if(st==null)//当服务器线程为空时直接退出{System.exit(0);//退出return;}try{Vector v=onlineList;int size=v.size();for(int i=0;i<size;i++){//当不为空时,向在线用户发送离线信息ServerAgentThread tempSat=(ServerAgentThread)v.get(i);tempSat.dout.writeUTF("<#SERVER_DOWN#>");tempSat.flag=false;//终止服务器代理线程}st.flag=false;//终止服务器线程st=null;ss.close();//关闭ServerSocketv.clear();//将在线用户列表清空refreshList();//刷新列表}catch(Exception ee){ee.printStackTrace();}System.exit(0);//退出}});}public void actionPerformed(ActionEvent e){if(e.getSource()==this.jbStart){//当单击"启动"按钮时this.jbStart_event();}else if(e.getSource()==this.jbStop){//单击"关闭"按钮后this.jbStop_event();}}public void jbStart_event(){//单击"启动"按钮的业务处理代码int port=0;try{//获得用户输入的端口号,并转化为整型port=Integer.parseInt(this.jtfPort.getText().trim());}catch(Exception ee){//端口号不是整数,给出提示信息JOptionPane.showMessageDialog(this,"端口号只能是整数","错误",JOptionPane.ERROR_MESSAGE);return;}if(port>65535||port<0){//断口号不合法,给出提示信息JOptionPane.showMessageDialog(this,"端口号只能是0-65535的整数","错误",JOptionPane.ERROR_MESSAGE);return;}try{this.jbStart.setEnabled(false);//将开始按钮设为不可用this.jtfPort.setEnabled(false);//将用于输入端口号的文本框设为不可用this.jbStop.setEnabled(true);//将停止按钮设为可用ss=new ServerSocket(port);//创建ServerSocket对象st=new ServerThread(this);//创建服务器线程st.start();//启动服务器线程//给出服务器启动成功的提示信息JOptionPane.showMessageDialog(this,"服务器启动成功","提示",RMATION_MESSAGE);}catch(Exception ee){//给出服务器启动失败的提示信息JOptionPane.showMessageDialog(this,"服务器启动失败","错误",JOptionPane.ERROR_MESSAGE);this.jbStart.setEnabled(true);//将开始按钮设为可用this.jtfPort.setEnabled(true);//将用于输入端口号的文本框设为可用this.jbStop.setEnabled(false);//将停止按钮设为不可用}}public void jbStop_event(){//单击"关闭"按钮的业务处理代码try{Vector v=onlineList;int size=v.size();for(int i=0;i<size;i++){//向在线用户发送离线信息ServerAgentThread tempSat=(ServerAgentThread)v.get(i);tempSat.dout.writeUTF("<#SERVER_DOWN#>");tempSat.flag=false;//关闭服务器代理线程}st.flag=false;//关闭服务器线程st=null;ss.close();//关闭ServerSocketv.clear();//将在线用户列表清空refreshList();//刷新列表this.jbStart.setEnabled(true);//将开始按钮设为可用this.jtfPort.setEnabled(true);//将用于输入端口号的文本框设为可用this.jbStop.setEnabled(false);//将停止按钮设为不可用}catch(Exception ee){ee.printStackTrace();}}public void refreshList(){//更新在线用户列表的业务处理代码Vector v=new Vector();int size=this.onlineList.size();for(int i=0;i<size;i++){//遍历在线列表ServerAgentThread tempSat=(ServerAgentThread)this.onlineList.get(i);String temps=tempSat.sc.getInetAddress().toString();temps=temps+"|"+tempSat.getName();//获得所需信息v.add(temps);//添加到Vector中}this.jlUserOnline.setListData(v);//更新列表数据}public static void main(String args[]){new Server();}}说明:此服务器端类既为服务器的运行类,用户通过该类进入服务器的主界面。

相关文档
最新文档