面向对象程序设计实训报告示例
面向对象实习报告(共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. 职业素养:在实习过程中,我注重培养自己的职业素养,遵守公司规章制度,尊重同事,诚实守信。
面向对象实践报告(2篇)
第1篇一、引言面向对象编程(Object-Oriented Programming,OOP)是一种以对象为基础的编程范式,它将现实世界中的实体抽象为对象,并通过封装、继承和多态等机制实现代码的重用和扩展。
随着计算机技术的发展,面向对象编程已经成为当今主流的编程范式之一。
为了提高自身的编程能力,我选择进行一次面向对象实践,以下是我对这次实践的总结报告。
二、实践背景随着互联网的快速发展,各种应用程序层出不穷。
为了提高软件开发效率和质量,面向对象编程应运而生。
我国在软件行业的发展也取得了显著成果,但与国外相比,仍存在一定差距。
为了提高我国软件行业的竞争力,我决定通过实践来深入了解面向对象编程,并将其应用于实际项目中。
三、实践内容1. 学习面向对象编程的基本概念(1)对象:对象是面向对象编程的核心概念,它是现实世界中实体的抽象。
对象具有属性和方法,属性表示对象的状态,方法表示对象的行为。
(2)类:类是对象的模板,它定义了对象的属性和方法。
通过创建类的实例,可以得到具有相同属性和方法的多个对象。
(3)封装:封装是指将对象的属性和方法封装在一起,对外只暴露必要的接口。
这样可以保护对象的内部实现,提高代码的可维护性。
(4)继承:继承是面向对象编程中的一种机制,它允许一个类继承另一个类的属性和方法。
通过继承,可以避免代码重复,提高代码的复用性。
(5)多态:多态是指同一操作作用于不同的对象时,可以有不同的解释和表现。
多态可以提高代码的灵活性和可扩展性。
2. 选择编程语言和开发环境为了实践面向对象编程,我选择了Java语言作为编程语言,因为Java具有丰富的面向对象特性,且在企业级应用中广泛应用。
开发环境选择IntelliJ IDEA,它是一款功能强大的集成开发环境,支持Java语言的开发。
3. 实践项目我选择了一个简单的图书管理系统作为实践项目。
该系统主要包括以下功能:(1)图书信息管理:包括添加、删除、修改和查询图书信息。
面向对象程序设计实训报告示例
面向对象程序设计实训报告题目:资费管理系统项目实训专业及班级:姓名:分数:一.项目描述近年来, 电信行业经历了很大的变化,包括从固定到移动、从语音到数据、从电路交换到分组交换、从窄带到宽带的变化。
电信运营商在市场和政策的双重影响下, 正面临着深刻的重组。
新技术新业务创造了市场机会, 使新运营商不断兴起。
老运营商为了保持原有的市场份额也通过兼并改组等方式不断扩大业务范围, 争取为客户提供从传统的市话、长话、移动、智能网(3G)到新兴的数据。
用户将来可以在多个运营商提供的多种电信业务中自由选择。
二.设计方案1.使用的软件工具和环境(1)Myeclipse(2)MySQL Server2.系统功能(1)登录模块实现登录功能的数据处理,如果用户名和密码不存在,实现注册功能。
(2)用户管理模块实现开通账号、用户账号查询、用户列表功能。
其中开通账号查询可以更方便用户的查询,用户可以通过开通账号查询来查取一些相关的信息。
用户列表中具有增加、暂停、修改、和删除等功能。
(3)管理员管理模块管理员管理模块分为三部分:增加管理员、管理员列表和私人信息。
增加管理员包括的信息有:账号、登录密码、重复密码、真实姓名、管理员邮箱、联系电话、登录权限等。
其中登录权限包括:管理员管理、资费管理、用户管理、账务查询、账单查询。
管理员列表包括的信息:账号、姓名、电话、邮箱、开户日期、权限、修改和删除。
私人信息包括:登录密码、重复密码、真实姓名、管理员邮箱、开通日期、联系电话、登录权限,其中登录权限又包括资费管理、账务查询和管理员管理三个级别。
管理员管理模块的需求:①管理员开通账户管理:管理用户账号,包括账号开通、暂停(加锁)、恢复、删除等。
②管理员资料管理:管理员资料,包括姓名、身份证号、地址等。
③管理员信息:ID、姓名、账号、密码、状态(正常/暂停/关闭)、联系电话、Email、开通日期、停止日期、权限(查询/修改/开户)等。
(4)资费管理模块完成资费的增、删、改、查功能。
面向对象程序设计实习报告
《面向对象程序设计》实习报告班级:电子商务学号:xx姓名xx指导教师:实习时间:2011.12.26-2012.1.6一、实习目的经过两个周的面向对象程序设计的实习,让我再次复习了SQL和VB 的相关知识,因为自己这这学期的课程中对VB和SQL都有学习。
虽然我们的上机课是有限的,但是在这次的实习中让我更加的对自己多掌握的知识做了个很详细的补充。
由于两个周基本上都是自己在电脑上亲自操作完成任务,所以我就更加熟悉和掌握其具体应用的方法。
当然在这个任务完成的工程中会遇到很多的难题,所以就要靠自己努力不懈的看书弄懂,还有问老师和四周的同学,把不懂的地方尽量通过这几种渠道把它弄懂。
在整个实习过程中,我清楚并掌握了SQL Server的集成环境、系统的菜单、工具栏、企业管理器、查询分析器的具体使用方法还有掌握了创建数据库、数据表等的方法,了解并知道数据表的操作命令以及T-SQL命令的使用。
在编写代码的时候,我大概了解VB基本命令的使用方法;掌握常用函数、表达式的使用方法,掌握程序控制结构的使用和程序设计,掌握变量的作用范围和自定义函数的使用。
以及熟悉了VB与数据库管理系统的连接方法等。
这些都是要通过自己的实际操作中慢慢的的熟悉和了解的。
我觉得这样的实习不仅让我在这两门重要的编程课中加深自己的知识,同时在以后的工作中能够有更大的用途。
这次的实习,在我自己来看,虽然还存在很多的问题,但是总体的效果还是很好的。
老师的逐渐提醒和同学们之间的共同商量,都能够让我受益匪浅。
还有还渐渐的掌握了一些小的程序的编程,这让我在vb和sql上有更加深刻的掌握,对我的以后工作还是学习上都是百利无一害的。
二、实验内容在这次的实习中我完成了SQL SERVER的基本操作,如创建学生情况表等三个表以及录入记录;SQL Server 与程序设计语言连接,从中对之前的三个表的录入信息等;程序设计语言基本算法中的求素数和自然数对、最大公约数和公倍数问题、百钱百鸡问题等;常用统计算法中的成绩统计和字符统计问题;常用排序方法中的选择排序法和二维数组排序问题;以及加密解密、数值转换问题;矩阵的综合运算;学生管理信息系统、集成界面已经程序封面的设计等问题。
面向对象程序设计实验报告
课程编号:面向对象程序设计实验报告实验1一.实验目的:加强我自己使用继承来实现Java类的能力二.实验内容:1.首先根据要求实现超类Product类。
以利于以后商品Coffee类,CoffeeBrewer类,Orderitem类的继承。
2.根据要求实现Coffee类,CoffeeBrewer类,Orderitem类。
3.实现如下类图:4.三.实验步骤:1.首先根据要求设计出一下的类图。
5.不同的类的具体要求如下(都要继承超类Product类)。
(1)C lass Producta.含有的变量:code;description;price;b.含有的方法:.public Product(String code,Stringdescription,double price)public String getCode().返回实例变量的code.∙public String getDescription().返回实例变量的variable description.∙public double getPrice().返回实例变量的 price.∙boolean equals(Object object). 重写方法 equals i在类Object里,如果他们的code是相等的,则产品对象是相等的。
∙String toString(). 重写方法toString 在类Object里.返回的格式如下:∙code_description_pricec.写完具体如下:publicclass Product {private String code;private String description;privatedouble price;public Product(String code,String description,double price) {this.code=code;this.description=description;this.price=price;}public String getCode() {return code;}public String getDescription() {return description;}publicdouble getPrice() {return price;}@Overridepublicboolean equals(Object a) {if (a instanceof Product) {if (((Product) a).code==this.getCode()) {returntrue;}else {returnfalse;}}returnfalse;}@Overridepublic String toString() {return (this.getCode()+"_"+this.getDescription()+"_"+this.getPrice());}}(2)c lass Coffeea.含有的变量:∙origin.∙roast.∙flavor.∙aroma.∙acidity.∙body.b.含有的方法:public Coffee(String code,String description,Doubleprice,String origin,String roast,String flavor,String aroma,String acidity,String body);∙public String getOrigin().返回实例变量的origin.∙public String getRoast().返回实例变量的roast.∙public String getFlavor().返回实例变量的flavor.∙public String getAroma().返回实例变量的aroma.∙public String getAcidity().返回实例变量的acidity.∙public String getBody().返回实例变量的body.∙String toString(). 重写方法 toString 在类Object里. 返回如下格式::code_description_price_origin_roast_flavor_aroma_acidi ty_bodyc.写完具体如下:publicclass Coffee extends Product {private String origin;private String roast;private String flavor;private String aroma;private String acidity;private String body;public Coffee(String code,String description,Double price,Stringorigin,String roast,String flavor,String aroma,String acidity,String body){ super(code, description, price);this.origin=origin;this.roast=roast;this.flavor=flavor;this.aroma=aroma;this.acidity=acidity;this.body=body;}public String getOrigin() {return origin;}public String getRoast() {return roast;}public String getFlavor() {return flavor;}public String getAroma() {return aroma;}public String getAcidity() {return acidity;}public String getBody() {return body;}@Overridepublic String toString() {returnthis.getCode()+"_"+this.getDescription()+"_"+this.getPrice()+"_"+thi s.getOrigin()+"_"+this.getRoast()+"_"+this.getFlavor()+"_"+this.getAroma()+"_"+ this.getAcidity()+"_"+this.getBody();}}(3)c lass CoffeeBrewera.含有的变量:model.∙waterSupply.∙numberOfCups.b.含有的方法:∙public CoffeeBrewer(String initialCode,∙ String initialDescription,∙ double initialPrice,∙ String initialModel,∙ String initialWaterSupply,∙ int initialNumberOfCups)∙public String getModel()。
面向对象课程实训总结报告
一、前言面向对象编程(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();}}讲明:此效劳器端类既为效劳器的运行类,用户通过该类进进效劳器的主界面。
C++面向对象程序设计》实验报告
《C++面向对象程序设计》实验内容实验1 C++程序设计初步1.实验目的(1)了解在C++编译系统(Visual C++6.0)上如何编辑、编译、连接和运行一个C++程序。
(2)通过运行简单的C++程序, 初步了解C++源程序的结构和特点。
(3)掌握简单C++程序的编写和调试方法。
(4)掌握重载函数的定义方法。
(5)能正确使用引用型变量。
2.实验内容和步骤(1)在Visual C++环境下编译和运行C++程序①先进入Visual C++6.0环境。
②在自己指定的子目录中建立一个名为test.cpp的新文件。
③从键盘输入以下程序int main(){int a,b;c=a+b;cout>> “a+b=”>>a+b;}选择Build→Compile test.cpp命令, 对此源程序进行编译。
观察和分析编译信息。
⑤根据编译信息指出的错误, 修改程序。
再进行编译, 如果还有错, 再重复此过程, 直到编译不出错为止。
⑥选择Build→Build test.exe命令, 对程序进行连接, 如果不出错, 就会生成可执行程序test.exe。
⑦选择Build→Execute test.exe命令, 执行可执行程序test.exe。
观察屏幕的变化。
在输出窗口应显示程序运行结果。
⑧分析结果是否正确, 如果不正确或认为输出格式不理想, 可以修改程序, 然后重新执行以上④和⑧步骤。
改过后的程序:#include<iostream>using namespace std;int add(int x,int y){int z;z=x+y;return(z);}int main(){int a,b,c;cin>>a>>b;c=add(a,b);cout<<"a+b="<<c<<endl;return 0;}实验2 C++对C的扩充(2)编一个程序, 用来求2个或3个正整数中的最大数。
面向对象程序设计实习报告
《面向对象程序设计》实习报告班级:学号:姓名:指导教师:实习时间:一.实习目的1. 学习怎样启动和退出VB,熟悉VB的工作环境2.掌握基本控件的重要属性、事件;3.熟练掌握在窗体上建立上述控件的操作方法;4.熟练掌握事件过程代码的编写;5.掌握建立基于图形界面的应用程序的过程6. 学习用属性窗口设置对象属性及用代码设置对象属性的方法。
7. 学习如何用对象(窗体和控件)建立界面及在代码编辑器中输入程序代码的基本操作。
8 .基本掌握用VB开发应用程序的一般步骤。
二.程序设计实验1 基本算法练习1.编写程序求“自己学号后3位到500”以内的所有素数及自然数对。
2.编写程序“计算最大公约数和最小公倍数”实验:计算3个数的最大公约数和最小公倍数,并以最小公倍数作为总金额,计算人民币各种票额的张数3.编写程序“歌德巴赫猜想及守形数”4.编写程序“百钱百鸡问题”实验:编写程序解决百钱买百鸡问题:公鸡5元/只,母鸡3元/只,小鸡一元买3只,用100元买100只鸡,问有哪些购买方案?实验2 常用统计练习1.成绩统计实验:利用文本框作为数据的输入和输出,产生数学、语文、英语、计算机等4门课程的成绩2.字符统计实验:随机产生200个“32到自己学号后3位”且小于128的随机数,将其转换成相应字符,形成一段统计字符。
统计字符中各个字母、各数字、空格、其它字符的个数。
实验3 常用排序方法1. 选择法排序实验:随机产生10个“学号后3位到500之间”的数,用选择法进行递增序。
2.冒泡法排序实验: 随机产生10个“50到学号后3位之间”的数,然后用冒泡法按递增的顺序进行排序。
3.二维数组排序实验:随机产生“10到学号后3位之间”的数,形成一个4*5 的二维数组,按升序排列。
4.从有序数组中删除一个元素实验要求:随机产生“1到学号后3位之间”的10个数,然后产生1-10间的随机数,确定删除元素,最后得出删除后的结果实验4 加密解密与数制转换1.数据加密与解密根据产生的后移位数,将输入的字符进行加密和解密。
面向对象编程综合实训报告模板
面向对象编程综合实训报告模板一、实训目的本次实训的主要目的是通过实际项目应用,使我们深入理解和掌握面向对象编程(OOP)的核心概念、原理和编程技术。
具体包括:1. 理解并掌握OOP的基本思想,包括封装、继承和多态等;2. 熟悉并掌握至少一种OOP语言(如Java、C++、Python等)的语法和特性;3. 学习和运用OOP在软件开发中的应用,如设计模式、软件架构等;4. 通过团队协作,提高我们的项目管理和团队协作能力。
二、实训内容1. 实训题目我们选择的实训题目是“[项目名称]”。
这是一个基于[技术栈/语言]的[项目类型],主要功能是[简要描述项目功能]。
2. 需求分析我们详细分析了项目的需求,包括功能需求、性能需求、用户界面需求等。
在功能需求方面,我们确定了系统需要实现的主要功能和辅助功能;在性能需求方面,我们设定了系统的响应时间、并发用户数等关键性能指标;在用户界面需求方面,我们设计了友好、易用的用户界面。
3. 系统设计根据需求分析结果,我们设计了系统的总体架构、数据库结构、类图、时序图等。
在总体架构设计上,我们采用了[架构名称]架构,将系统分为表示层、业务逻辑层和数据访问层;在数据库设计上,我们设计了合理的数据库表结构和索引;在类图设计上,我们详细设计了系统的类、属性、方法等;在时序图设计上,我们描述了系统主要功能的执行流程。
4. 编码实现我们按照系统设计,使用[编程语言]实现了项目的所有功能。
在编码过程中,我们遵循了良好的编程规范,保证了代码的可读性和可维护性。
同时,我们也注重代码的性能优化,确保系统能够满足性能需求。
5. 测试与调试我们对项目进行了全面的测试,包括单元测试、集成测试和系统测试。
在单元测试阶段,我们对每个模块进行了详细的测试,确保每个模块的功能都正确实现;在集成测试阶段,我们将各个模块集成在一起进行测试,确保模块之间的接口正确无误;在系统测试阶段,我们对整个系统进行了全面的测试,确保系统能够满足所有的需求。
面向对象c 实验报告
面向对象c 实验报告实验报告:面向对象C程序设计一、实验目的本次实验旨在通过设计一个面向对象的C程序,来加深对面向对象程序设计的理解,并实践C语言中面向对象的编程思想。
二、实验过程1. 设计类和对象:在C语言中,没有类的概念,但可以通过以下方式模拟类和对象。
- 定义一个结构体来表示一个类,结构体中包含该类的成员变量和成员函数指针。
- 定义一些函数来模拟类的成员函数,函数的第一个参数是结构体类型的指针,该指针指向当前对象。
2. 创建对象:定义一个结构体变量,该变量称为对象,通过调用构造函数来初始化对象的成员变量,将对象传递给成员函数。
3. 调用成员函数:使用对象调用该对象的成员函数,通过函数指针实现多态性。
4. 析构对象:在不再使用对象时,调用析构函数来释放对象占用的资源,避免内存泄漏。
5. 运行程序:编译并运行C程序,观察程序的输出结果。
三、实验结果在C语言中实现面向对象的程序设计,可以提供一种思路和方式来实现面向对象的编程思想。
通过将相关的数据和函数封装在一个表示类的数据结构中,并通过该数据结构的函数指针来调用成员函数,可以模拟出面向对象的效果。
四、实验总结通过本次实验,我对于C语言中如何实现面向对象编程有了进一步的理解。
尽管C语言本身没有类的概念,但通过结构体和函数指针的方式,我们可以模拟出类和对象的概念,并实现封装、继承和多态等面向对象的特性。
C语言中面向对象的编程思想可以使程序更加模块化、灵活和易于维护。
通过将相关的数据和函数封装在一个结构体中,我们可以将代码组织得更加清晰,降低代码的耦合度,提高代码的重用性。
此外,通过函数指针的方式来调用成员函数,可以实现多态性,使得代码更加灵活和可扩展。
当然,C语言中实现面向对象编程也存在一些限制和不足。
相比于面向对象编程语言,如C++和Java,C语言中的面向对象编程需要手动管理对象的生命周期,容易出现内存泄漏的问题。
此外,C语言中没有提供访问控制的特性,不同成员函数之间的访问权限不能进行限制。
实验二 面向对象编程实验报告
实验二面向对象编程实验报告一、实验目的本次实验旨在深入理解和掌握面向对象编程的基本概念和方法,通过实际编程操作,提高运用面向对象思想解决问题的能力,熟悉面向对象编程的开发流程和技巧,培养良好的编程习惯和代码规范。
二、实验环境本次实验使用的编程环境为具体编程环境名称及版本,操作系统为操作系统名称及版本。
三、实验内容(一)问题描述设计一个简单的学生管理系统,能够实现对学生信息(包括姓名、学号、年龄、成绩等)的录入、查询、修改和删除操作。
(二)类的设计1、设计一个`Student` 类,用于表示学生对象。
该类包含以下属性:`name`(姓名)、`student_id`(学号)、`age`(年龄)、`score`(成绩)。
2、为`Student` 类添加构造函数,用于初始化学生对象的属性。
3、为`Student` 类添加`get` 和`set` 方法,用于获取和设置学生对象的属性值。
(三)功能实现1、录入功能:实现用户输入学生信息,并创建`Student` 对象进行存储。
2、查询功能:根据学号或姓名查询学生信息,并输出查询结果。
3、修改功能:根据学号或姓名找到对应的学生对象,修改其属性值。
4、删除功能:根据学号或姓名删除对应的学生对象。
四、实验步骤(一)类的实现```javapublic class Student {private String name;private String studentId;private int age;private double score;public Student(String name, String studentId, int age, double score) {thisname = name;thisstudentId = studentId;thisage = age;thisscore = score;}public String getName(){return name;}public void setName(String name) {thisname = name;}public String getStudentId(){return studentId;}public void setStudentId(String studentId) {thisstudentId = studentId;}public int getAge(){return age;}public void setAge(int age) {thisage = age;}public double getScore(){return score;}public void setScore(double score) {thisscore = score;}}```(二)主函数实现```javaimport javautilArrayList;import javautilScanner;public class StudentManagementSystem {private ArrayList<Student> students;public StudentManagementSystem(){students = new ArrayList<>();}public static void main(String args) {StudentManagementSystem system = new StudentManagementSystem();Scanner scanner = new Scanner(Systemin);while (true) {Systemoutprintln("1、录入学生信息");Systemoutprintln("2、查询学生信息");Systemoutprintln("3、修改学生信息");Systemoutprintln("4、删除学生信息");Systemoutprintln("5、退出系统");int choice = scannernextInt();switch (choice) {case 1:systemaddStudent(scanner);break;case 2:systemqueryStudent(scanner);break;case 3:systemmodifyStudent(scanner);break;case 4:systemdeleteStudent(scanner);break;case 5:Systemoutprintln("感谢使用,再见!");Systemexit(0);default:Systemoutprintln("输入有误,请重新输入!");}}}//录入学生信息public void addStudent(Scanner scanner) {Systemoutprintln("请输入学生姓名:");String name = scannernext();Systemoutprintln("请输入学生学号:");String studentId = scannernext();Systemoutprintln("请输入学生年龄:");int age = scannernextInt();Systemoutprintln("请输入学生成绩:");double score = scannernextDouble();Student student = new Student(name, studentId, age, score);studentsadd(student);Systemoutprintln("学生信息录入成功!");}//查询学生信息public void queryStudent(Scanner scanner) {Systemoutprintln("请输入查询方式(1、按学号查询 2、按姓名查询):");int queryType = scannernextInt();if (queryType == 1) {Systemoutprintln("请输入学号:");String studentId = scannernext();for (Student student : students) {if (studentgetStudentId()equals(studentId)){Systemoutprintln("姓名:"+ studentgetName());Systemoutprintln("学号:"+ studentgetStudentId());Systemoutprintln("年龄:"+ studentgetAge());Systemoutprintln("成绩:"+ studentgetScore());return;}}Systemoutprintln("未找到该学号对应的学生信息!");} else if (queryType == 2) {Systemoutprintln("请输入姓名:");String name = scannernext();for (Student student : students) {if (studentgetName()equals(name)){Systemoutprintln("姓名:"+ studentgetName());Systemoutprintln("学号:"+ studentgetStudentId());Systemoutprintln("年龄:"+ studentgetAge());Systemoutprintln("成绩:"+ studentgetScore());return;}}Systemoutprintln("未找到该姓名对应的学生信息!");} else {Systemoutprintln("输入有误,请重新输入!");}}//修改学生信息public void modifyStudent(Scanner scanner) {Systemoutprintln("请输入修改方式(1、按学号修改 2、按姓名修改):");int modifyType = scannernextInt();if (modifyType == 1) {Systemoutprintln("请输入学号:");String studentId = scannernext();for (Student student : students) {if (studentgetStudentId()equals(studentId)){Systemoutprintln("请输入新姓名:");String newName = scannernext();Systemoutprintln("请输入新年龄:");int newAge = scannernextInt();Systemoutprintln("请输入新成绩:");double newScore = scannernextDouble();studentsetName(newName);studentsetAge(newAge);studentsetScore(newScore);Systemoutprintln("学生信息修改成功!");return;}}Systemoutprintln("未找到该学号对应的学生信息!");} else if (modifyType == 2) {Systemoutprintln("请输入姓名:");String name = scannernext();for (Student student : students) {if (studentgetName()equals(name)){Systemoutprintln("请输入新学号:");String newStudentId = scannernext();Systemoutprintln("请输入新年龄:");int newAge = scannernextInt();Systemoutprintln("请输入新成绩:");double newScore = scannernextDouble();studentsetStudentId(newStudentId);studentsetAge(newAge);studentsetScore(newScore);Systemoutprintln("学生信息修改成功!");return;}}Systemoutprintln("未找到该姓名对应的学生信息!");} else {Systemoutprintln("输入有误,请重新输入!");}}//删除学生信息public void deleteStudent(Scanner scanner) {Systemoutprintln("请输入删除方式(1、按学号删除 2、按姓名删除):");int deleteType = scannernextInt();if (deleteType == 1) {Systemoutprintln("请输入学号:");String studentId = scannernext();for (Student student : students) {if (studentgetStudentId()equals(studentId)){studentsremove(student);Systemoutprintln("学生信息删除成功!");return;}}Systemoutprintln("未找到该学号对应的学生信息!");} else if (deleteType == 2) {Systemoutprintln("请输入姓名:");String name = scannernext();for (Student student : students) {if (studentgetName()equals(name)){studentsremove(student);Systemoutprintln("学生信息删除成功!");return;}}Systemoutprintln("未找到该姓名对应的学生信息!");} else {Systemoutprintln("输入有误,请重新输入!");}}}```五、实验结果通过对程序的运行和测试,能够成功实现学生信息的录入、查询、修改和删除功能。
面向对象程序设计实验报告
面向对象程序设计实验报告【实验报告】面向对象程序设计一、引言面向对象程序设计是一种以对象为基础的软件开发方法,它将现实世界中的事物抽象成对象,并通过对象之间的交互来实现程序的功能。
本次实验旨在通过实践,加深对面向对象程序设计的理解,并掌握面向对象程序设计的基本原理和技巧。
二、实验目的1. 熟悉面向对象程序设计的基本概念和术语;2. 掌握面向对象程序设计的基本原理和技巧;3. 能够运用面向对象程序设计的思想解决实际问题。
三、实验内容1. 设计一个简单的图书管理系统;2. 实现图书的增删改查功能;3. 设计并实现图书管理系统的类结构;4. 编写测试代码,验证图书管理系统的功能。
四、实验步骤1. 设计图书管理系统的类结构:a. 创建一个Book类,包含图书的属性(书名、作者、出版社等)和方法(借阅、归还等);b. 创建一个Library类,用于管理图书馆的图书,包含添加图书、删除图书、查找图书等方法;c. 创建一个User类,用于表示图书馆的用户,包含借书、还书等方法;d. 创建一个Main类,作为程序的入口,用于测试图书管理系统的功能。
2. 实现图书的增删改查功能:a. 在Book类中实现图书的增删改查方法;b. 在Library类中调用Book类的方法,实现图书的增删改查功能。
3. 设计并实现图书管理系统的类结构:a. 根据实验要求,设计图书管理系统的类结构,包括Book、Library和User 类;b. 在每个类中定义相应的属性和方法,实现图书管理系统的功能。
4. 编写测试代码,验证图书管理系统的功能:a. 在Main类中创建图书馆和用户对象;b. 调用相应的方法,测试图书管理系统的功能;c. 检查输出结果,确保图书管理系统的功能正常运行。
五、实验结果与分析经过实验,成功设计并实现了一个简单的图书管理系统。
该系统具备图书的增删改查功能,用户可以通过借书和还书操作实现对图书的借阅和归还。
经过多次测试,系统运行稳定,功能正常。
面向对象程序设计实验报告
面向对象程序设计实验报告题目1:1.问题描述:建立一个二维坐标系的类TwoCoor,用x、y表示坐标值,实现两坐标点的加、减运算,计算两坐标点间的距离,并重载输入/输出坐标点的坐标值。
2.实现代码:#include<iostream>#include<math.h>using std::ostream;using std::istream;using namespace std;class TwoCoor{private:double x,y; //x,y分别为横纵坐标 public:TwoCoor(double x1=0,double y1=0):x(x1),y(y1){}TwoCoor sum(TwoCoor &a1,TwoCoor &a2)//实现两坐标的加运算 {TwoCoor c;c.x=a1.x+a2.x;c.y=a1.y+a2.y;return c;}TwoCoor subtract(TwoCoor &a1,TwoCoor &a2)//实现两坐标的减运算 {TwoCoor c;c.x=a1.x-a2.x;c.y=a1.y-a2.y;return c;}double distance(TwoCoor &a1,TwoCoor &a2)//计算两坐标的距离 {double d; //距离为dd=sqrt((a1.x-a2.x)*(a1.x-a2.x)+(a1.y-a2.y)*(a1.y-a2.y));return d;}friend ostream &operator<<(ostream &os,TwoCoor &a);friend istream &operator>>(istream &is,TwoCoor &a);};ostream &operator<<(ostream &os,TwoCoor &a){os<<"("<<a.x<<","<<a.y<<")"<<endl;return os;}istream &operator>>(istream &is,TwoCoor &a){is>>a.x>>a.y;return is;}int main(){TwoCoor a,b; //定义TwoCoor类的对象a,b cout<<"-------下面请输入数据-------"<<endl<<endl;cout<<"请分别输入TwoCoor类对象a的坐标值x,y"<<endl; cin>>a;cout<<"请分别输入TwoCoor类对象b的坐标值x,y"<<endl; cin>>b;cout<<endl<<"-------下面输出数据-------"<<endl<<endl; cout<<"a的坐标为:";cout<<a;cout<<"b的坐标为:";cout<<b;cout<<"a+b为:";TwoCoor c=a.sum(a,b);cout<<c;cout<<"a-b为:";TwoCoor d=a.subtract(a,b);cout<<d;cout<<"a点与b点的距离为:";cout<<a.distance(a,b)<<endl;return 0;}。
面向对象程序设计实训报告
湖南工业职业技术学院课程实训指导书
课程名称:面向对象程序设计
姓名:
学号:
专业班级:
系(院):
设计时间:
设计地点:
实训题目:
菜单设计如下:
操作界面的具体设计自行安排。
帮助窗体如下:
实训报告编写要求:(目录自行设计,以下只供参考)
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。
面向对象程序设计实验报告
实验一 Visual C++环境实验名称:实验一Visual C++环境实验目的:⒈熟悉VC++的集成开发环境,学习运行一个C++程序的步骤。
⒉了解几种运算符的使用规则。
⒊掌握变量命名规则,学会变量的定义和使用。
实验原理:利用VC++编辑环境的便利来编写程序。
实验设备:电脑,VISUAL C++6.0实验内容:⒈通过一个最简单的程序熟悉用VC++来调试Dos程序的步骤:⑴使用Visual C++6.0对一个C++程序进行编辑、编译、连接和运行。
#include <iostream.h>void main(){cout<<”I am a student”<<endl;}实验代码:#include <iostream.h>void main(){cout<<"I am a student"<<endl;cout<<"THIS IS A 。
"<<endl;}实验结果:I am a student实验心得:THIS IS A 。
通过实验,我熟悉了VC++编辑环境,以及C++运算符及变量的特点。
整个实验过程为:1.开始、Microsoft visual sduio 6.0、Microsoft visual C++ 6.0打开创天中文VC++。
2.文件、新建、C++ source file输入程序、保存为meng.cpp。
3.编译、程序没有错误,(如有按要求修改)。
4.编译菜单下的执行meng.exe。
5.屏幕中弹出结果窗口。
实验二结构化程序设计实验名称:实验二结构化程序设计实验目的:⒈熟悉和理解C++语言中的类型简单数据(整型、实型、字符型)、运算、表达式;⒉掌握常见格式控制字符对输出结果的控制作用;⒊能利用学习的数据类型,编制简单的C++程序;⒋初步学习调试方法。
实验原理:利用对条件、循环语句、数组的掌握进行编程。
面向对象程序设计-实习报告
、.~①我们‖打〈败〉了敌人。
②我们‖〔把敌人〕打〈败〉了。
面向对象程序设计报告课题:面向对象程序设计专业:通信工程班级:姓名:学号:指导老师:设计时间:2010/2011(2)学期第03-04周目录1.实践课题 (3)2.实践要求 (3)3.设计目的 (3)4.实践内容 (4)4.1必做课题:大学人员类的设计的功能描述以及模块结构 (4)4.1.1 功能模块描述及主要类描述 (4)4.1.2程序代码 (7)4.1.3使用说明和调试结果 (16)4.1.4 必做题小结 (18)4.2选作课题:基于RFID设备的隧道工作人员考勤系统 (18)4.2.1选做题任务分析 (18)4.2.2 液晶屏功能实现 (20)4.2.3 选做题小结 (20)5.心得体会 (21)6.参考文献 (21)一.实践课题:面向对象程序设计二.实践要求:2.1.必做课题大学人员类的设计(3月7-8日)基类,person类,相关的属性自己定义派生类,student类,teacher类,相关的属性自己定义Student类和teacher类的属性不相同,利用多态性编辑show函数,可以输出同类正确的信息。
编辑界面,功能有(1)输入人员(2)删除人员(3)保存人员(4)查询人员2.2选作课题(二者必选一,六人一大组,三人一小组,每个同学必须作不同的功能模块,要求选出组长,分配任务,)(3月9-18日)2.2.1. 基于RFID设备的隧道工作人员考勤系统(1)与必做课题结合,将每个卡与人员姓名,工种绑定,进入即可显示人员的相关信息。
两台RFID读卡器,从1-2表示进入隧道,从2-1表示退出隧道,据此,统计当前隧道里面的人员总数与姓名。
2.2.2 基于RFID设备的隧道工作人员考勤系统(2)(1)自学MFC,设计基于MFC设计隧道工作人员考勤系统,具有增、删、改、查询的功能(2)结合小组1同学做的实时考勤系统,设计基于MFC的隧道工作人员考勤系统三.实践目的:通过本次课程设计,使我们在掌握C++程序设计的基本思想、基本概念和基本方法上,能运用所学的知识对一般问题进行分析和程序设计,把C++程序设计语言作为基本工具使用,为今后在专业课程的学习中,使用计算机解决实际问题打好基础。
面向对象程序设计实验报告
namespace _1
{
class Program
{
static void Main(string[] args)
{
int[][] jagArray=new int[2][]{new int[5],new int[3]};
for (int i = 0; i < jagArray.GetLength(0); i++)
(2)在代码编辑窗口内的Main()方法中添加如下代码:
using System;
namess HelloWorld
{
public static void Main()
{
Console.WriteLine("Hello world!");
}
}
}
(1)选择“调试” “启动调试”命令,或按【F5】键,或单击工具栏上的 按钮,运行程序,查看运行结果。
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j <= i;j++ )
Console.WriteLine("{0}\t", a[i, j]);
Console.WriteLine();
}
Console.Read();
}
}
}
(10)分析程序,写出程序的运行结果,并上机进行验证。
Console.Write("{0,-3}",jagArray[k][m]);
Console.WriteLine();
}
Console.Read();
}
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计实训报告题目:资费管理系统项目实训
专业及班级:
姓名:
分数:
一.项目描述
近年来, 电信行业经历了很大的变化,包括从固定到移动、从语音到数据、从电路交换到分组交换、从窄带到宽带的变化。
电信运营商在市场和政策的双重影响下, 正面临着深刻的重组。
新技术新业务创造了市场机会, 使新运营商不断兴起。
老运营商为了保持原有的市场份额也通过兼并改组等方式不断扩大业务范围, 争取为客户提供从传统的市话、长话、移动、智能网(3G)到新兴的数据。
用户将来可以在多个运营商提供的多种电信业务中自由选择。
二.设计方案
1.使用的软件工具和环境
(1)Myeclipse
(2)MySQL Server
2.系统功能
(1)登录模块
实现登录功能的数据处理,如果用户名和密码不存在,实现注册功能。
(2)用户管理模块
实现开通账号、用户账号查询、用户列表功能。
其中开通账号查询可以更方便用户
的查询,用户可以通过开通账号查询来查取一些相关的信息。
用户列表中具有增加、暂停、修改、和删除等功能。
(3)管理员管理模块
管理员管理模块分为三部分:增加管理员、管理员列表和私人信息。
增加管理员包括的信息有:账号、登录密码、重复密码、真实姓名、管理员邮箱、
联系电话、登录权限等。
其中登录权限包括:管理员管理、资费管理、用户管理、
账务查询、账单查询。
管理员列表包括的信息:账号、姓名、电话、邮箱、开户日期、权限、修改和删除。
私人信息包括:登录密码、重复密码、真实姓名、管理员邮箱、开通日期、联系电
话、登录权限,其中登录权限又包括资费管理、账务查询和管理员管理三个级别。
管理员管理模块的需求:
①管理员开通账户管理:管理用户账号,包括账号开通、暂停(加锁)、恢复、删
除等。
②管理员资料管理:管理员资料,包括姓名、身份证号、地址等。
③管理员信息:ID、姓名、账号、密码、状态(正常/暂停/关闭)、联系电话、Email、
开通日期、停止日期、权限(查询/修改/开户)等。
(4)资费管理模块
完成资费的增、删、改、查功能。
(5)账单管理模块
需求:整合系统按月生成用户账单。
账单信息(可参考移动或联通的账单管理模块):
①用户标识信息:账单ID、姓名、账号、状态、联系电话、开通日期、Email。
②账务信息:账号、日期、登录时间长度、本月费用。
③账单明细:登录时间、退出时间、时长。
(6)账务管理模块
需求:按月、年分别生成《月账务信息统计报表》和《年账务信息统计报表》。
月账务信息(可参考移动或联通的账务模块):
①生成一个计费月周期中每一天的账务信息。
②月账务信息:日期、时长、费用。
③年账务信息(可参考移动或联通的账务模块)。
(7)用户自服务管理模块
需求:用户通过Internet查询自己的当前或历史账单,并能修改自己的密码或变更相关业务。
用户账务信息查询:
①用户标识信息:账单ID、姓名、状态、开通日期。
②账务信息:日期、登录时长、本月费用。
③用户信息修改:账单明细,如登录时间、退出时间、时长。
三.模块设计
1. 登录模块
界面设计:
流程图:
2. 管理模块
界面设计:
3.用户管理模块
流程图:
4.资费管理
界面设计:
流程图:
5.账单管理 界面设计:
流程图:
6.账务管理 界面设计:
流程图:
7.管理员管理界面设计:
管理员管理JButto
n
p1,p2,p3界面布局:
BorderLayout JPanel button[]=new JButton[3]
管理员列表
JButto
n
button[]=new JButton[3]界面布局:
BorderLayout JTable table1
JPanel p1,p2,p3,p4
JLabel label1[]=new
JLabel[7]
JTextField tf1,tf2,tf3,tf4
账务管理模块
服务器月帐务查询服务器年账务查询
月账务查询
年账务查询
流程图:
8.用户自服务 界面设计:
信息"}
JPasswordField
mima,chongfumima JRadioButton fukuanfangshi[]=new JRadioButton[3] JRadioButton 男,女JComboBox 省份,职业
String
st1,st2,st3,st4,st5,st6,st 7,st8,st9,st10
用户自服务JButton button[]=new
JButton[2]
界面布局:BorderLayout() JPanel p1,p2,p3
流程图:
四.调试分析登录模块
注册模块
用户自服务
修改个人信息账单查询
管理界面
用户管理模块开通账户模块
用户列表模块查询模块
资费管理
添加资费
资费列表账单管理
查询
账务管理
月账务管理
年账务
管理员管理模块
增加管理员
管理员列表私人信息模块
用户自服务模块修改个人信息
账单查询
五.心得体会
这次试验主要是运用数据库MySQL和MyEclipse进行电信IP自费管理系统的编写。
在进行代码编写的过程中遇到了很多的问题。
做实验老师事先已经把代码发给我们,让我们学着打。
本来写程序、做系统应该是设计好界面,想好思想在开始进行代码的编写工作。
我们在打的过程中就是在为打代码而打代码,没怎么去思考它的代码,只有每当代码有错之后才会回过头去看看代码有是哪里出的错,出的什么错。
在检查代码出错的时候,也不知道代码为什么这样写,也从没有深究他的原因。
在这次实验过程中又学习了数据库连接,怎么创建数据库,跟着老师做的时候觉得挺麻烦的,很多时候都感觉自己跟不上。
当数据库不小心关闭后或者要修改的时候就要重新建立数据库很有可能还会忘记哪些步骤。
因此还在网上搜索了一下有什么更方便的方法,慢慢尝
试着去做。
在这次试验中,我们使用的是老师编写好的数据库文档,也不知道知道那个数据库文档怎么写的。
在最开始时,在Myeclipse中连接数据库的时候遇到很多问题。
找不到在哪添加,关于数据库有时添加错误。
在这次实验中我觉得最主要的是初步了解了做一个简单的管理系统的程序。
在做的过程中会碰到很多的问题,最主要的就是要自己对代码进行思考。
虽然在改错的时候可以让自己明白出现了什么样的错误,可是不明白代码怎么来的,即使知道了错误是什么,也不知道怎么改。