数据库应用基础(第二版)第五章面向对象程序设计基础实验5之实验报告
- 格式:pdf
- 大小:1.78 MB
- 文档页数:6
python掌握面向对象的程序设计实验报告Python掌握面向对象的程序设计实验报告摘要:本实验报告旨在介绍Python编程语言中面向对象的程序设计。
首先,我们将讨论什么是面向对象编程以及它的优点。
然后,我们将介绍类和对象的概念,并展示如何创建和使用它们。
接下来,我们将讨论继承、多态和封装等面向对象编程的重要概念,并提供相关示例。
最后,我们将总结本次实验的主要内容。
一、介绍面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它将数据和操作数据的方法封装到一个独立的实体中,这个实体称为对象。
对象可以通过定义特定类型的类来创建。
Python是一种支持面向对象编程的高级编程语言,它提供了丰富的面向对象编程机制,使得程序的开发和维护更加高效和可靠。
面向对象编程的优点:1. 代码复用:面向对象编程允许我们创建可重用的代码模块,从而提高了代码的复用性和可维护性。
我们可以通过创建类和对象来定义通用的行为和属性,然后在不同的项目中使用它们。
2. 模块化设计:通过将大型程序分解为小型的、独立的对象,我们可以更好地组织和管理代码。
这种模块化的设计使得程序可以被分割为更小的部分进行开发,并且每个部分可以独立测试和调试。
3. 可扩展性:面向对象编程提供了一种灵活的方式来扩展和修改代码。
我们可以通过继承和多态等机制来添加新的功能或修改现有的功能,而不需要修改原始代码。
4. 可理解性:面向对象编程使得代码更易于理解和阅读。
由于对象的行为和属性都被封装在类中,我们可以通过查看类的定义来理解对象的行为和属性。
二、类和对象在Python中,类是一种用于定义对象的模板。
类定义了对象的属性和行为。
对象是类的实例,它具有类所定义的属性和行为。
1. 类的定义在Python中,我们使用class关键字来定义类。
类的定义可以包含属性和方法。
属性是对象的状态,方法是对象的行为。
示例代码:pythonclass Person:def __init__(self, name, age): # 初始化方法 = nameself.age = agedef say_hello(self): # 方法print("Hello, my name is {} and I am {} yearsold.".format(, self.age))在上面的示例中,我们定义了一个名为Person的类。
一、实验目的1. 理解面向对象编程的基本概念,如类、对象、继承、封装、多态等。
2. 掌握面向对象编程的基本语法和常用操作。
3. 通过实验加深对面向对象编程的理解和应用。
二、实验环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 编程语言:C#三、实验内容1. 定义一个简单的类,并创建对象实例。
2. 在类中定义属性和方法,并演示其使用。
3. 使用继承实现类的扩展。
4. 使用封装保护类的内部数据。
5. 使用多态演示不同对象间的动态类型转换。
四、实验步骤1. 定义一个名为“Person”的类,包含以下属性和方法:- 属性:姓名(Name)、年龄(Age)、性别(Gender)- 方法:打印个人信息(PrintInfo)2. 创建“Person”类的对象实例,并演示属性和方法的使用。
3. 定义一个名为“Student”的类,继承自“Person”类,并添加以下属性和方法: - 属性:学号(StudentID)- 方法:打印学生信息(PrintStudentInfo)4. 创建“Student”类的对象实例,并演示属性和方法的使用。
5. 定义一个名为“Employee”的类,继承自“Person”类,并添加以下属性和方法:- 属性:工号(EmployeeID)、职位(Position)- 方法:打印员工信息(PrintEmployeeInfo)6. 创建“Employee”类的对象实例,并演示属性和方法的使用。
7. 定义一个名为“Manager”的类,继承自“Employee”类,并添加以下属性和方法:- 属性:部门(Department)- 方法:打印经理信息(PrintManagerInfo)8. 创建“Manager”类的对象实例,并演示属性和方法的使用。
9. 使用多态演示不同对象间的动态类型转换。
五、实验结果与分析1. 创建“Person”类和对象实例,并演示属性和方法的使用。
《面向对象程序设计》课程设计实验报告指导教师小组成员:专业班级: 2010级计算机科学与技术专业开设时间:2011-2012(一)目录1.任务1 (2)1.1 任务介绍 (2)1.2 小组成员任务分配 (2)1.3.1设计思想及主要流程图 (2)1.3.1主要程序清单 (2)1.3.1 运行结果及分析 (4)1.3.2设计思想及主要流程图 (2)1.3.2主要程序清单 (2)1.3.2 运行结果及分析 (4)1.3.3设计思想及主要流程图 (2)1.3.3主要程序清单 (2)1.3.3 运行结果及分析 (4)2.任务2 (2)2.1 任务介绍 (2)2.2 小组成员任务分配 (2)2.3设计思想及主要流程图 (2)2.3主要程序清单 (2)2.3 运行结果及分析 (4)3收获、体会和建议 (4)任务1.按照要求设计类 1.根据输出设计类设计类就是根据数据封装的要求,抽象出适合的类。
有如下测试程序和测试程序的输出结果,要求设计类Welcome 。
void main() { Welcome we; Welcome you(we); you.Display();you.Set(“Thank you.”);cout<<you.Get()<<endl; you.talk(); you.Display();}测试程序的输出结果如右: 设计类Welcome 的原则 1)在头文件Cpp1.h 中声明类 2)在Cpp1.cpp 中实现类3)使用内联函数定义Display()函数2.使用类改写程序编写一个求方程02=++c bx ax 的根的程序,用三个函数分别求当ac b 42+大于零、等于零和小于零时方程的根。
要求从主函数输入a 、b 、c 的值并输出结果。
使用面向过程的解法一般是把变量设为double 型,适用库函数cmath 进行计算。
请注意:使用面向对象的方法解决这个问题,首先要从解一元二次方程出发,抽象一个代表一元二次方程的类。
课程编号:面向对象程序设计实验报告实验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()。
《面向对象程序设计》实验报告合肥院学院计算机科学与技术系实验名称实验四图形用户界面与事件处理机制(一)日期2014/11/201.运用一种或多种布局管理器,绘制出一个简单的计算器;2. 为按钮注册事件监听器,使其点击按钮,并在显示区域同步显示当前输入或运算结果;3. 编译运行程序,检查计算器的正确性;四、实验中的问题思考及讨论:(列出你实验中出现的问题,及解决的问题和解决的思路)1.学生可以视个人情况完成更复杂更完善的计算器功能,通过多种布局管理方法实现更美观的界面布局。
7. 编写Application程序,在JFrame中加入80个按钮,分20行4列,用GridLayout布局方式,按钮背景为黄色(Color.yellow),按钮文字颜色为红色(Color.red)。
五、实验总结:(简单、准确的总结本次实验的主要内容,个人收获)本次实验遇到很多问题,很多知识点还不怎么理解,应用还不怎么熟练,理解的不够透彻,所以在实验上处处碰到问题,不知道如何做和分析,然后通过查书和问同学把这些理解。
所以在这次试验之后我还会继续从网上找相关知识的视频学习。
这些知识还有待继续学习。
六、源代码及运行结果1、import javax.swing.JButton;this.getContentPane().add(pane);q=new JLabel("请输入:");j=new JLabel("显示区域:");jt=new JTextArea("",100,120);user=new JTextField();ok=new JButton("确定");canel=new JButton("取消");pane.add(q);pane.add(j);pane.add(jt);pane.add(user);pane.add(ok);pane.a dd(canel);q.setBounds(40,40,80,30);j.setBounds(40,80,80,30);user.setBounds(160,40,120,20);jt.setBounds(160,80,120,60);jt.setEditable(false);ok.setBounds(40,160,80,30);canel.setBounds(160,160,80,30);ok.addActionListener(this);canel.addActionListener(this);this.setSize(400,400);this.setVisible(true);this.setLocation(400,400);this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public void actionPerformed(ActionEvent e){JButton b=(JButton)e.getSource();if(b==ok){SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd注:报告内容不得雷同,否则视为抄袭,无成绩。
面向对象程序设计实验报告学号:4100118姓名:邢启晖提交日期:2012-10-13成绩:东北大学秦皇岛分校实验一类与对象一、实验目的1.掌握类的声明。
2.掌握对象的创建。
3.掌握方法的定义和调用。
4.掌握构造函数的使用。
二、实验内容1.编程创建一个Box类,在其中定义三个变量表示一个立方体的长、宽和高,再定义一个方法setDemo对这三个变量进行初始化,然后定义一个方法求立方体的体积。
创建一个对象,求给定尺寸的立方体的体积。
代码:package shiyan1;public class Main {public static void main(String args[]){Box box=new Box();box.setDemo(122,132, 142);System.out.print("立方体的体积:");System.out.println(box.getArea());}}class Box{int length;int width;int heigth;Box(){}void setDemo(int length,int width,int heigth){this.length=length;this.width=width;this.heigth=heigth;}float getArea(){return length*width*heigth;}2.将上题的方法setDemo改用构造函数实现初始化。
代码:package shiyan1;public class Main {public static void main(String args[]){Box box=new Box(123,133,143);System.out.println(box.getArea());}}class Box{int length;int width;int heigth;Box(int length,int width,int heigth){this.length=length;this.width=width;this.heigth=heigth;}float getArea(){return length*width*heigth;}}三、思考题1.一个方法或一个块内定义的变量是否可以在方法外或块外使用?这种变量称为什么?方法的形式参数是否可以在方法之外使用?答:不可以。
实验五数据库的访问与数据编辑一、实验目的及要求本实验要求学生掌握能够运用企业管理器熟练创建数据表,并对数据进行各种方式的访问。
主要要求有:●学会在表中输入数据的方法●学会使用各种方式对数据表中的数据进行访问●掌握INSERT语句的格式及其使用方式。
●掌握UPDATE语句的格式及其使用方式。
●掌握DELETE语句的格式及其使用方式。
●二、实验原理及背景知识(一)访问数据库方式SQL Server 2005不仅提供了企业管理器的客户端工具,而且还提供了多种不同的数据库访问途径。
不管采用何种操作途径,我们都可以完成对数据库的各种访问。
1、使用企业管理器访问数据库企业管理器是最直观的一种数据库访问的客户端可视化工具,其操作方法简单,非常适合初学者使用。
●优点:界面友好,操作简单且可视化。
●缺点:由于需要将对数据库的操作转换成SQL语言程序,才能访问数据库,故效率较低。
●方法:登陆到服务器后,在对象资源管理器用鼠标选择相应的数据库中的数据,如图2-5-1所示。
图2-5-1 企业管理器访问数据图2-5-2 进入访问数据界面进入图2-5-1界面,在图2-5-1界面点击鼠标右键,进行图2-5-2的操作,进入数据查询页面,如图2-5-3所示,在图2-5-3界面上可以进行各类数据的访问。
图2-5-3 数据查询界面2、使用查询分析器访问数据库查询分析器提供了编写和运行SQL语言程序的环境,通过查询分析器可以使用SQL语言编写程序,完成对数据库的操作。
●缺点:要求数据库访问者必须熟悉SQL语言。
●优点:执行效率高。
●方法:登陆到服务器后,选择工具栏上的“新建查询”工具,在该环境下输入查询SQL语句,分析SQL语句没有错误后,选择执行语句,即可完成查询操作。
SQL查询的基本语句格式及其例题如下:SQL语言又成为结构化查询语言,是关系数据库中的通用语言。
SQL语言不区分大小写。
select 语句是SQL中最常用的语句之一,select语句主要解决怎样从数据库中获取所需的信息。
《面向对象程序设计实验》实验一、Java实验环境的建立(2学时)1、目的要求(1)掌握Java编程环境的搭建过程;(2)掌握Jcreator pro软件的使用方法;(3)能使用Java doc文档。
2、实验内容(1)下载并安装JDK1.6,配置JDK环境变量;(2)下载Javadoc压缩包并解压在JDK安装路径下;(3)下载Jcreator pro 4.0并安装和配置使用环境;(4)使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。
①Java application程序代码如下:public class HelloJava{public static void main(String args[]){ System.out.println("Hello Java!"); }}②Java applet程序代码如下:import java.awt.*;public class Hello extends java.applet.Applet{public void paint(Graphics g){ g.drawString("Hello!",30,30); }}3、仪器与材料:计算机实验二、Java语言程序设计训练(2学时)1、目的要求(1)输入、输出操作实现原理和方法;(2)掌握程序流程控制的实现方法;(3)掌握数组的定义和操作方法。
2、实验内容(1)计算Result=1!+2!+3!+...+10!。
public class Test3 {public static void main(String[] args) {int sum = 0, fact, n, i;for (n = 1; n <= 10; n++) {fact = 1;for (i = 1; i <= n; i++)fact *= i;sum += fact;}System.out.println("sum=" + sum);}}(2)计算1---50之间所有素数的和。
面向对象程序设计实验报告实验报告(1)2015.6【实验作者】学号:姓名:班级:教学站:【实验名称】实验一:熟悉C++程序的风格和C++程序的上机全过程【实验目的】1.熟悉C++程序的风格,熟悉实验环境。
2.练习C++程序的输入、修改、编译、连接与运行的全过程。
3.本实验有4个程序【实验内容】1. 习题2.2下面是一个C程序,改写它,使它采用C++风格的I/O语句。
(1)该程序做什么工作?输入两个整数,求两个整数的大于1 的最小公约数[(另外请教下毛老师:如果最小公约数与最小数相等时,我觉得也有可能这个数是两个数的大于1 的最小公约数)即7与14的公约数为1,7按题意的话,要大于1,那么7也是这两个数的最小公约数,但程序不认为它们具有公约数]。
(2)该程序中那几个数是由键盘输入的?那几个数是输出的?那几个数是临时变量?a与b 由键盘输入;d 是输出的;a,b,d,min 都是临时变量。
(3)用C++风格的I/O语句是什么?#include <iostream.h> cout<<与cin>>(4)写出该程序的算法(用流程图表示)框图1:(5)该程序你有否上机编译、连接、运行通过。
有上机编译连接并运行通过,但有些疑问!2. 习题 2.20分析下面程序的输出结果:(1)该程序做什么工作?利用引用函数改变一个变量的值。
(2)该程序有几个函数?其中f函数是什么函数?其功能是什么?一个函数,F函数是一个引用返回值的函数,并且该函数参数也为一个引用,函数功能是送入一个对变量引用,将变量+10后送回。
成为对返回值的引用。
(3)写出该程序的算法(用流程图表示)框图2:(4)该程序你有否上机编译、连接、运行通过。
该程序有上机编译并连接运行通过。
3. 习题2.23 建立一个被称为sroot( )的函数,返回其参数的二次根。
重载sroot( )三次,让它分别返回整数、长整数与双精度数的二次根(为了实际计算二次根,可以使用标准库函数sqrt( ))。
面向对象程序设计实验报告姓名Name学号Student No.班级Class代码总行数Code Lines 实验名称Item1.实验目的综合应用所学的知识分析问题、解决问题,提高实际编程能力及程序调试能力。
2.实验内容设计并实现一个个人通信录,能记录人员的各种通信信息。
支持通信录条目的添加、查找、删除、修改。
要求:1)通信录需记录的个人信息自行设计。
2)要求采用图形用户界面(GUI),界面效果及事件处理方式自行设计,尽量考虑美观与易用性。
3)系统结构设计应采用面向对象的思想,发现问题域中的事物(常称为实体),抽象成类,建立实体类之间的关系。
同时建立实体类与界面类之间的关系。
要求程序结构设清晰合理。
3.关键代码public class AddressBook extends Frame implements ActionListener{private MenuItem noteAdd=new MenuItem("添加");private MenuItem noteDel=new MenuItem("删除");Private MenuItem noteEdit=new MenuItem("修改");private MenuItem noteSearch=new MenuItem("查找");private MenuItem noteExit=new MenuItem("退出");private List noteList=new List();private String[][]message=new String[1000][4];public Info notes=new Info();public AddressBook(){super("通讯录");Menu note=new Menu("编辑");note.add(noteAdd);note.add(noteDel);note.add(noteEdit);note.add(noteSearch);note.addSeparator();note.add(noteExit);MenuBar bar=new MenuBar();bar.add(note);setMenuBar(bar);add(noteList);noteAdd.addActionListener(this);noteDel.addActionListener(this);noteEdit.addActionListener(this);noteExit.addActionListener(this);noteSearch.addActionListener(this);noteList.addActionListener(this);addWindowListener(new WindowCloser());setSize(400,600);setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==noteAdd){notes.mail=null;=null;notes.address=null;notes.telephone=null;int index=noteList.getItemCount();EditDialog dlg=new EditDialog(this,"通讯录",notes,false);if(dlg.isOk){message[index][0]=dlg.textName.getText();message[index][1]=dlg.text Address.getText();message[index][2]=dlg.textEmail.getText();message[index][3]=dlg.textTelephone.getText();if(message[index][0]!=null){String s="姓名:"+message[index][0]+"地址:"+message[index][1]+"E-mail:"+message[index][2]+"电话:"+message[index][3];noteList.add(s);}}dlg.dispose();}else if(e.getSource()==noteEdit||e.getSource()==noteList){int i=noteList.getSelectedIndex();if(i!=-1){=message[i][0];notes.address=message[i][1];notes.mail=message[i][2];notes.telephone=message[i][3];面向对象程序设计实验报告EditDialog dlg=new EditDialog(this,"修改通讯录",notes,false);if(dlg.isOk){message[i][0]=dlg.textName.getText();message[i][1]=dlg.textAddress.getText();message[i][2]=dlg.textEmail.getText();message[i][3]=dlg.textTelephone.getText();String s="姓名:"+message[i][0]+"地址:"+message[i][1]+"E-mail:"+message[i][2]+"电话:"+message[i][3]; noteList.replaceItem(s,i);}dlg.dispose();}}else if(e.getSource()==noteDel){ConfirmDialog cd=new ConfirmDialog(this,"确认删除?","确认要删除这条通讯录信息吗?");if(cd.close){int index=noteList.getSelectedIndex();for(int i=index;i<noteList.getItemCount()-1;i++){for(int j=0;j<4;j++)message[i][j]=message[i+1][j];}noteList.remove(index);}}else if(e.getSource()==noteSearch){EditDialog dlg=new EditDialog(this,"查找通讯录",notes,true);if(dlg.isOk){for(int i=0;i<noteList.getItemCount();i++){String thisname=noteList.getItem(i).toString().split("")[0].split(":")[1];String thistelephone=noteList.getItem(i).toString().split("")[30].split(":")[1];if((.equals(thisname)&&dlg.telephone.equals(thistelephone))||(.equal s(thisname)&&(dlg.telephone.equals("")))||((.equals(""))&&dlg.telephone.equ als(thistelephone))){String show="查找成功!信息为:"+noteList.getItem(i).toString();JOptionPane.showMessageDialog(null,show);return;}}。
面向对象程序设计实验报告实验一C++基础1.1实验目的1.了解并熟悉开发环境,学会调试程序;2.熟悉C++中简单的标准输入输出函数的使用方法;3.理解const修饰符的作用并学会应用;4.理解内联函数的优缺点并学会其使用场合;5.理解并学会函数重载;6.理解并熟练掌握使用new和delete来分配内存;7.理解并熟练掌握引用的使用方法。
1.2实验内容1.2.1程序阅读1.理解下面的程序并运行,然后回答问题。
#include<iostream.h>int max_def(int x,int y){return(x>y?x:y);}int max_def(int x,int y,int z){int temp=0;return(temp=(x>y?x:y))>z?temp:z;}double max_def(double x,double y){return(x>y?x:y);}int main(){int x1=0;int x2=0;double d1=0.0;double d2=0.0;x1=max_def(5,6);x2=max_def(2,3,4);d1=max_def(2.1,5.6);d2=max_def(12.3,3.4,7.8);-------------------------------------------------------①cout<<"x1="<<x1<<endl;cout<<"x2="<<x2<<endl;cout<<"d1="<<d1<<endl;cout<<"d2="<<d2<<endl;--------------------------------------------------------②return 1;}问题一:上述程序的输出结果是什么?答:输出结果为问题二:①处调用的是哪个函数?答:①处调用的是double max_def(double x,double y)函数问题三:②处的输出结果为什么是d2=12,而不是d2=12.3?答:因为调用的int max_def(int x,int y,int z)函数返回值为整型。
《面向对象程序设计》实验报告合肥院学院计算机科学与技术系实验名称____Java与数据库连接_________日期______12.14________姓名/学号张慧 / 1304091018 专业/班级软件工程(1)班指导老师吴晓琴成绩_______________________________一、实验目的:(详见指导书,宋体小四)熟悉SQL命令集。
学会编写加载数据库驱动和连接数据库的Java程序。
应用Java.sql包中的类和接口编写操作数据库的应用程序二、实验要求:(详见指导书,宋体小四)1. 通过实验掌握SQL命令的使用;2. 使用J2SDK中提供的JDBC-ODBC桥连接数据库;3. 使用的数据库系统不受限制。
4.调试运行程序,观察输出结果。
5.写出实验报告。
三、实验内容及过程:(宋体小四)实验内容:完成学生信息管理系统:编程实现如下功能:在数据库中建立一个表,表名为学生,其结构为:编号、姓名、性别、年龄、JAVA语言、数据结构、微机原理、总分。
在表中输入多条记录。
将表每条记录按照总分大到小的顺序显示在屏幕上。
要求有增加、删除、查找等功能(要求图形界面)实验步骤:1、首先设计一个图形界面2、首先建立一个数据库,在此基础上通过编程实现一下功能:在数据库中建立一个表,表名为职工,其结构为:编号、姓名、性别、年龄、JAVA语言、数据结构、微机原理、总分。
1)在表中输入多条记录。
2)将每条记录按照总分大到小的顺序显示在屏幕上。
3)查找并显示姓名为“张三”的记录四、实验总结:(简单、准确的总结本次实验的主要内容,个人收获)通过本次试验,我对于数据库编程的体会更加深刻了。
原来都只是理论上的学习,操作的时候还真无从下手。
实验做完,还是有很多不懂得地方,希望能够尽快把问题解决好。
六、源代码及运行结果1、package java_sqlserver_TextWeb;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class Student_select {public static void main(String[] args) throwsClassNotFoundException,ClassCastException, SQLException {// TODO Auto-generated method stub//创建空连接Connection conn=null;//加载数据库驱动Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//建立数据库连接conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;Database Name=Student_Demo", "sa", "123456");//创建数据库语句String str=" select * from Student";//执行语句Statement stmt = (Statement) conn.createStatement();ResultSet rs = ((java.sql.Statement) stmt).executeQuery(str);//遍历结果集while(rs.next()){int id=rs.getInt(1);String name=rs.getString(2);String sex=rs.getString(3);int age=rs.getInt(4);String course=rs.getString(5);int score=rs.getInt(6);System.out.println(id+"\t"+name+"\t"+sex+"\t"+age+"\t"+course+"\t"+score);}//关闭数据库连接if(conn!=null){stmt.close();conn.close();}}}2、package java_sqlserver_TextWeb;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class Student_insert {public static void main(String[] args) {// TODO Auto-generated method stubStudent_insert myJdbc=new Student_insert();myJdbc.StatementExecSQLInsertUpdateDB();}void StatementExecSQLInsertUpdateDB(){try{Stringurl="jdbc:sqlserver://localhost:1433;DatabaseName=Student_Demo";Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Connection con=DriverManager.getConnection(url,"sa","123456"); Statement stmt=con.createStatement();System.out.print("InsertDateBase----StateMent.executeUpdate()\n");//int RecordRowNum=stmt.executeUpdate("insert intoStudent(id,name,email) values(1304091006,'李金鸣','lijinming@')");int RecordRowNum=stmt.executeUpdate("insert intoStudent(id,name,sex,age,course,score) values(1304091006,'李金鸣','男',21,'java',67)");System.out.println("The Record Row Num Is "+RecordRowNum);ResultSet rs=stmt.executeQuery("select * from student");while(rs.next()){int id=rs.getInt("id");String name=rs.getString("name");String email=rs.getString(3);System.out.println(id+"\t"+name+"\t"+email);}stmt.close(); //must closecon.close();}catch(SQLException e){System.out.println("SQLState:"+e.getSQLState());System.out.println("Message:"+e.getMessage());System.out.println("Vendor:"+e.getErrorCode());}catch(ClassNotFoundException e){System.out.println(e);} }}3、package java_sqlserver_TextWeb;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class Student_update {public static void main(String[] args){// TODO Auto-generated method stubStudent_update myJdbc=new Student_update();myJdbc.StatementExecSQLUpdateDBRecord();}void StatementExecSQLUpdateDBRecord(){try{//加载数据库驱动Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//建立数据库连接Stringurl="jdbc:sqlserver://localhost:1433;DatabaseName=Student_Demo";Connection con=DriverManager.getConnection(url,"sa","123456");//执行语句Statement stmt=con.createStatement();// 第29行易出错 executeUpdate 是 int 类型String sql="update Student set name='钱五' where id=1304091001";int RecordRowNum=stmt.executeUpdate(sql);ResultSet rs=stmt.executeQuery("select * from Student");//遍历结果集while(rs.next()){int id=rs.getInt("id");String name=rs.getString("name");String email=rs.getString(3);System.out.println(id+"\t"+name+"\t"+email);/* int id=rs.getInt(1);String name=rs.getString(2);String sex=rs.getString(3);int age=rs.getInt(4);String course=rs.getString(5);int score=rs.getInt(6);System.out.println(id+"\t"+name+"\t"+sex+"\t"+age+"\t"+course+"\t"+score); */}stmt.close(); //must close;con.close();}catch(SQLException e){System.out.println("SQLState:"+e.getSQLState());System.out.println("Message:"+e.getMessage());System.out.println("Vendor:"+e.getErrorCode());}catch(ClassNotFoundException e){System.out.println(e);}}}4.package java_sqlserver_TextWeb;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class Student_delete {public static void main(String[] args) {// TODO Auto-generated method stubS tudent_delete myJdbc=new Student_delete();myJdbc.StatementExecSQLInsertUpdateDB();}void StatementExecSQLInsertUpdateDB(){try{String url="jdbc:sqlserver://localhost:1433;DatabaseName=Student_Demo"; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Connection con=DriverManager.getConnection(url,"sa","123456");Statement stmt=con.createStatement();System.out.print("Insert DateBase----StateMent.executeUpdate()\n");int RecordRowNum=stmt.executeUpdate("delete from Student where name='钱五'");System.out.println("The Record Row Num Is "+RecordRowNum);ResultSet rs=stmt.executeQuery("select * from student");while(rs.next()){int id=rs.getInt("id");String name=rs.getString("name");String email=rs.getString(3);System.out.println(id+"\t"+name+"\t"+email);package java_sqlserver_TextWeb;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class Student_update {public static void main(String[] args){// TODO Auto-generated method stubStudent_update myJdbc=new Student_update();myJdbc.StatementExecSQLUpdateDBRecord();}void StatementExecSQLUpdateDBRecord(){try{//加载数据库驱动Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//建立数据库连接Stringurl="jdbc:sqlserver://localhost:1433;DatabaseName=Student_Demo";Connectioncon=DriverManager.getConnection(url,"sa","123456");//执行语句Statement stmt=con.createStatement();// 第29行易出错 executeUpdate 是 int 类型String sql="update Student set name='钱五' whereid=1304091001";int RecordRowNum=stmt.executeUpdate(sql);ResultSet rs=stmt.executeQuery("select * from Student");//遍历结果集while(rs.next()){int id=rs.getInt("id");String name=rs.getString("name");String email=rs.getString(3);System.out.println(id+"\t"+name+"\t"+email);/* int id=rs.getInt(1);String name=rs.getString(2);String sex=rs.getString(3);int age=rs.getInt(4);String course=rs.getString(5);int score=rs.getInt(6);System.out.println(id+"\t"+name+"\t"+sex+"\t"+age+"\t"+course+"\t"+score); */}stmt.close(); //must close;con.close();}catch(SQLException e){System.out.println("SQLState:"+e.getSQLState());System.out.println("Message:"+e.getMessage());System.out.println("Vendor:"+e.getErrorCode());}catch(ClassNotFoundException e){System.out.println(e);}}}}stmt.close(); //must closecon.close();}catch(SQLException e){System.out.println("SQLState:"+e.getSQLState());System.out.println("Message:"+e.getMessage());System.out.println("Vendor:"+e.getErrorCode());}catch(ClassNotFoundException e){System.out.println(e);}}}注:报告内容不得雷同,否则视为抄袭,无成绩。
面向对象程序设计实验报告网络工程专业《面向对象程序设计》实验报告要求:1、封面信息要完整(,班级、姓名、学号等)。
2、每次实验报告的时间为:实验一:10月15日实验二:10月26日实验三:11月6日实验四:11月20日实验五:11月30日实验一C++程序对C的内容扩充一、实验目的1.掌握使用VC++集成开发环境开发程序的过程,熟悉常用的功能菜单命令,学习使用VC++环境的帮助。
2. 掌握重载函数的概念及函数参数在重载函数中的作用。
3. 理解函数模板和模板函数的概念,并会编写简单的函数模板。
4.掌握动态内存分配和释放的方法;理解引用的概念。
二、实验原理1. 利用函数重载可以增加程序的灵活性和通用性。
2. 使用引用作为函数参数,可以减少参数传递时的时间和空间开销。
三、实验环境应用软件:Visual C++ 6.0开发环境操作系统:Windows XP四、实验步骤(写下题目)1、理论教材P19:2-32、理论教材习题2:P61,“编程题:3”3、实验教材P10:2五、实验记录:(以上程序代码)六、讨论及问题回答1.引用和指针的区别。
2.内联函数的优点及使用注意事项。
实验二、类和对象一、实验目的1.掌握类的定义方法。
2.理解构造函数和析构函数的定义、作用和调用机制。
3.掌握拷贝构造函数的作用和用法。
4.掌握堆对象的概念及创建和删除堆对象的方法。
5.掌握友元、静态成员的作用及用法。
二、实验原理1. 利用构造函数创建对象更加符合客观实际。
2. 利用拷贝构造函数可以复制一个已经存在的对象。
3. 利用友元、静态成员可以增强类之间的联系。
三、实验环境应用软件:Visual C++ 6.0开发环境操作系统:Windows XP四、实验步骤(写下题目)1、理论教材P78:3-5。
⑴在本例中增加拷贝构造函数,实现深拷贝。
⑵改动代码,实现从键盘输入一个数组,用此数组创建一个数组对象,再用此数组对象创建另一个新的数组对象,深拷贝实现。
课程实验报告课程名称:面向对象程序设计院系:专业班级:学号:姓名:指导教师:目录实验一.面向过程的整型栈编程 (1)1.需求分析 (1)1.1题目要求 (1)1.2需求分析 (2)2.系统设计 (2)2.1概要设计 (2)2.2详细设计 (3)4.软件测试 (5)5.特点与不足 (6)5.1技术特点 (6)5.2不足和改进的建议 (6)6.过程和体会 (6)6.1遇到的主要问题和解决方法 (6)6.2课程设计的体会 (7)7.源码和说明 (7)7.1文件清单及其功能说明 (7)7.2用户使用说明书 (7)7.3源代码 (7)实验二.面向对象的整型栈编程 (17)1.1题目要求 (17)1.2需求分析 (18)2.系统设计 (18)2.1概要设计 (18)2.2详细设计 (18)3.软件开发 (20)4.软件测试 (20)5.特点与不足 (20)5.1技术特点 (20)5.2不足和改进的建议 (21)6.过程和体会 (21)6.1遇到的主要问题和解决方法 (21)6.2课程设计的体会 (21)7.源码和说明 (21)7.1文件清单及其功能说明 (21)7.2用户使用说明书 (21)7.3源代码 (21)实验三.基于算符重载的整型栈编程 (27)1.需求分析 (27)1.2需求分析 (28)2.系统设计 (28)2.1概要设计 (28)2.2详细设计 (28)3.软件开发 (29)4.软件测试 (29)5.特点与不足 (29)5.1技术特点 (29)5.2不足和改进的建议 (29)6.过程和体会 (30)6.1遇到的主要问题和解决方法 (30)6.2课程设计的体会 (30)7.源码和说明 (30)7.1文件清单及其功能说明 (30)7.2用户使用说明书 (30)7.3源代码 (30)实验四. 面向对象的整型队列编程 (35)1.需求分析 (35)1.1题目要求 (35)2.系统设计 (36)3.软件开发 (36)4.软件测试 (36)5.特点与不足 (37)5.1技术特点 (37)5.2不足和改进的建议 (37)6.过程和体会 (37)6.1遇到的主要问题和解决方法 (37)6.2课程设计的体会 (37)7.源码和说明 (37)7.1文件清单及其功能说明 (37)7.2用户使用说明书 (38)7.3源代码 (38)实验五. 基于组合的整型队列编程 (43)1.需求分析 (43)1.1题目要求 (43)1.2需求分析 (44)2.系统设计 (44)4.软件测试 (44)5.特点与不足 (45)5.1技术特点 (45)5.2不足和改进的建议 (45)6.过程和体会 (45)6.1遇到的主要问题和解决方法 (45)6.2课程设计的体会 (45)7.源码和说明 (45)7.1文件清单及其功能说明 (45)7.2用户使用说明书 (45)7.3源代码 (46)实验六. 基于继承的整型队列编程 (52)1.需求分析 (52)1.1题目要求 (52)1.2需求分析 (53)2.系统设计 (53)3.软件开发 (53)4.软件测试 (53)5.1技术特点 (54)5.2不足和改进的建议 (54)6.过程和体会 (54)6.1遇到的主要问题和解决方法 (54)6.2课程设计的体会 (54)7.源码和说明 (55)7.1文件清单及其功能说明 (55)7.2用户使用说明书 (55)7.3源代码 (55)实验一.面向过程的整型栈编程1.需求分析1.1题目要求整型栈是一种先进后出的存储结构,对其进行的操作通常包括判断栈是否为空、向栈顶添加一个整型元素、出栈等。