面向对象程序设计实验报告完整版
面向对象实验报告
面向对象分析与设计实验报告姓名:学号:班级:计11-1班指导老师:张*目录B2C网上购物系统需求分析报告 (2)实验二用例图 (8)实验三、四状态图和活动图 (12)实验五类图 (14)实验七交互图 (15)B2C网上购物系统需求分析报告一、功能性需求这次开发的软件项目是一个网上购物系统。
使用此系统的顾客通过互联网进行网上购物;使用此系统的管理员通过互联网进行系统的管理。
B2C网上购物系统的功能如下:(1)顾客:1.顾客能够通过商品类别来寻找属于该类别的商品,并获得商品的摘要信息。
2.顾客能够通过输入某些关键字,对商品进行查询,并获得符合检索条件的商品的摘要信息。
3.顾客能够在商品详细画面上获得商品的详细介绍信息。
4.顾客能够在页面上输入注册信息后,注册成为网站的会员。
5.顾客能够在页面上修改自己的注册资料,更新原有的注册信息。
6.顾客能够在输入合法的用户账号和密码后,登录系统。
7.顾客能够在任何时间退出系统。
8.顾客能够查看当前订单的最新状态和历史的订单数据。
9.顾客能够将称心的商品放入购物车。
10.顾客能够查看购物车中的商品。
11.顾客能够更新购物车中商品的数量,或删除购物车中的商品。
12.顾客能够对购物车中的商品结账。
13.顾客能够指定配送地址。
输入过的配送地址被保留在配送地址簿中,以便下次使用。
14.顾客能够选择支付方式。
可选的支付方式:货到付款和信用卡支付等多种形式。
15.顾客能够在订单确认画面完成订单。
(2)管理员:1.管理员能够在输入合法的用户账号和密码后,登录系统。
2.管理员能够在任何时间退出系统。
3.管理员能够维护业务数据,包括商品,订单和会员等数据的新增,更新,删除和检索。
4.管理员能够维护权限数据,包括新增,更新,删除,检索操作。
5.管理员能够维护管理员数据,包括新增,更新,删除,检索操作。
6.管理员能够通过批处理程序完成同财务系统的交互,更新订单付款状态的最新信息。
7.管理员能够通过批处理程序完成同库存系统的交互,更新商品库存数的最新信息。
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个正整数中的最大数。
面向对象程序设计实验报告2
面向对象程序设计实验报告一.实验目的进一步熟悉Java程序的结构,掌握Java的运算符、表达式、数组及流程控制语句的应用。
二. 实验内容(1)编写Application。
实现:将上学期所学的各门课程的名称及考试成绩的信息用数组存放,并在for(或while)循环中利用排序算法,将成绩进行升(或降)序排列,最后输出排序后的课程成绩。
(2)编写Applet程序,实现:将上学期所学的各门课程的名称及考试成绩的信息用数组存放,并在for(或while)循环中利用排序算法,将成绩进行升(或降)序排列,最后输出排序后的课程成绩。
三. 实验步骤(1)进行模板设计,设计出自己想要的模板。
(2)根据自己设计的模板编写出代码,并进行Java Application程序调试。
(3)编写并调试Java Applet程序。
四.实验结果1.编写一个application程序。
截图如下代码如下:import javax.swing.*;import java.awt.*;import java.awt.event.*;public class applicationInOut{public static void main(String args[]){new FrameInOut();}}class FrameInOut extends Frame implements ActionListener{JPanel p1,p2,p3,p4;JButton btn1,btn2,btn3;JTextArea t1;TextField text1,text2,text3,text4,text5,text6,text7,text8;Label lab1,lab2,lab3,lab4,lab5,lab6,lab7,lab8;String information1[]={"姓名","性别:","学号","班级"};String information2[]={"","","",""};String course[]={"数据结构","线性代数","大学英语","电子电路"}; int score[]={0,0,0,0};FrameInOut(){super("学生成绩信息排名");btn1=new JButton("信息显示");btn2=new JButton("按成绩排名");btn3=new JButton("退出");lab1=new Label("姓名");lab2=new Label("性别");lab3=new Label("学号");lab4=new Label("班级");lab5=new Label("数据结构");lab6=new Label("线性代数");lab7=new Label("大学英语");lab8=new Label("电子电路");text1=new TextField(10);text2=new TextField(10);text3=new TextField(10);text4=new TextField(10);text5=new TextField(10);text6=new TextField(10);text7=new TextField(10);text8=new TextField(10);t1=new JTextArea(10,20);p1=new JPanel();p2=new JPanel();p3=new JPanel();p4=new JPanel();p1.add(btn1);p1.add(btn2);p1.add(btn3);p2.add(lab1);p2.add(text1);p2.add(lab2);p2.add(text2);p2.add(lab3);p2.add(text3);p2.add(lab4);p2.add(text4);p3.add(lab5);p3.add(text5);p3.add(lab6);p3.add(text6);p3.add(lab7);p3.add(text7);p3.add(lab8);p3.add(text8);p4.add(t1);add(p1);add(p2);add(p3);add(p4);setLayout(new FlowLayout());p1.setBackground(Color.red);p2.setBackground(Color.orange);p3.setBackground(Color.orange);p4.setBackground(Color.blue);t1.setForeground(Color.blue);btn1.addActionListener(this);btn2.addActionListener(this);btn3.addActionListener(this);setSize(700,400);setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==btn1){t1.setText("");information2[0]=text1.getText();information2[1]=text2.getText();information2[2]=text3.getText();information2[3]=text4.getText();score[0]=Integer.parseInt( text5.getText());score[1]=Integer.parseInt( text6.getText());score[2]=Integer.parseInt( text7.getText());score[3]=Integer.parseInt( text8.getText());for(int i=0;i<information1.length;i++){t1.setFont(new Font("黑体",Font.BOLD,15));t1.append(information1[i]+":"+information2[i]+"\n");}for(int i=0;i<course.length;i++){t1.setFont(new Font("黑体",Font.BOLD,15));t1.append(course[i]+":"+score[i]+"\n");}}else if(e.getSource()==btn2){information2[0]=text1.getText();information2[1]=text2.getText();information2[2]=text3.getText();information2[3]=text4.getText();score[0]=Integer.parseInt( text5.getText());score[1]=Integer.parseInt( text6.getText());score[2]=Integer.parseInt( text7.getText());score[3]=Integer.parseInt( text8.getText());int i,j,m;String coursename;for(i=0;i<score.length;i++){for(j=i+1;j<course.length;j++){if(score[i]>score[j]){m=score[j];score[j]=score[i];score[i]=m;coursename=course[i];course[i]=course[j];course[j]=coursename;}}}t1.setText("");for(i=0;i<information1.length;i++){t1.setFont(new Font("黑体",Font.BOLD,15));t1.append(information1[i]+":"+information2[i]+"\n");}for(i=0;i<course.length;i++){t1.setFont(new Font("黑体",Font.BOLD,15));t1.append(course[i]+" 成绩为:"+score[i]+"\n");}}if(e.getSource()==btn3){dispose();System.exit(0);}}}2.编写一个applet程序。
面向对象程序设计》C实验报告-32页精选文档
《面向对象程序设计》实验报告学院:专业:班级学号:姓名:学期:教师:实验一 C++基础练习实验目的和要求1.掌握C++程序的基本格式与规范,学会编写简单的C++程序。
2.理解C++程序结构的特点。
3.熟悉C++程序基本的输入和输出操作。
4.掌握C++数据类型常量和变量以及修饰符的使用方法。
5.掌握函数定义、函数调用和函数说明的方法。
6.熟悉作用域运算符的功能和基本使用方法。
7.掌握C++内存的动态分配与释放方法。
8.理解引用的概念,掌握引用的使用方法。
实验内容和步骤1. 调试如下的代码并回答问题。
#include <iostream.h>void main()//First c++ programchar name[10];cout<<"please input your name:";cin>>name;cout<<"welcome "<<name<<endl;(1)C++的注释和C有何不同?答:C语言的注释有一种,用/*……….*/作为注释分界符号C++除保留了这种注释方式之外,还提供了一种更有效的注释方式,该注释以“//”开始,到行尾结束。
(2)C++的输入和输出所使用的函数及其相应头文件与C有何不同?答:在C中进行输入输出操作时,常使用函数scanf和printf。
C++除了可以照常使用这两个函数进行输入输出外,还增加了标准输入流对象cin和标准输出流对象cout来进行输入和输出。
Iostream是C++系统定义的一个头文件,在这个文件中声明了程序所需要的输入和输出操作的有关信息。
在C语言中头文件中用“.h”作为后缀,如stdio.h、math.h等。
2. 单步调试如下的代码并回答问题。
#include <iostream.h>inline int f(int x){ return 2*x*x+4*x+5; }inline double f(double x){ return 2*x*x+4*x+5; }void main(){ int x=5;double y=5.2;cout<<f(x)<<endl;cout<<f(y)<<endl;(1)inline的含义和作用是什么?答:含义:在函数说明前冠以关键字“inline”,该函数就被声明为内联函数,每当程序中出现对该函数的调用时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("输入有误,请重新输入!");}}}```五、实验结果通过对程序的运行和测试,能够成功实现学生信息的录入、查询、修改和删除功能。
面向对象程序设计课程实验报告
出口参数:无
功能:用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
面向对象程序设计实验报告1
printf("c1=%d,c2=%d,c3=%d,c4=%d\n",c1,c2,c3,c4);
/*看看这些字符的10进制ASCII码,哦,ASCII码一样,同一种字符*/
/*字符型数据参与算术运算*/
c=c1+32; /*字符怎么参加了数学运算,哦,是字符对应的ASCII码-整数
if(a[j] < a[j + 1])
{
int tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
int result = 0;
int cou = 100;
for(i = 0;i < 3;i++)
{
result += a[i] * cou;
cou /= 10;
}
cout<<"the result is :"<<result<<endl;
main()
{
int x=010,y=10,z=0x10; /*整型数据表示*/
char c1='M',c2='\x4d',c3='\115',c4=77,c; /*字符型数据表示*/
/*整型数据的输出*/
printf("x=%o,y=%d,z=%x\n",x,y,z);
/*数据以原进制输出,注意是否有前导0或0x */
c++;
else
if(score>=60)
d++;
else e++;
面向对象程序设计实验报告
面向对象程序设计实验报告实验报告(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( ))。
面向对象程序设计实验(完整版)
2.编写一个类,在其中定义一个方法f1(),抛出一个RuntimeException异常,然后再定义另一个方法f2(),在其中调用f1,但是却没有给它们使用throws语句声明异常。程序能够运行吗?试解释程序的运行结果,理解‘RuntimeException是隐式地加以声明的。
try{
int a=3 fb=0;
System.out.println(a=a/b);
} ‘
catch(ArithmeticException e){
System.out.println(”捕捉到一个算术异常”);
}
catch(Exception e){
System.out.println(”捕捉到一个系统一般的异常”);
3.编写3个自己定义的异常类,第一个异常类继承自Exception,第二个异常类继承自第一个,第三个异常类继承自第二个。然后通过try抛出第三个异常类,通过catch捕捉第三个异常类。如果的catch子句中捕捉的是第二个异常类或者是第一个异常类,程序能够运行吗?如果想实现这3个异常的捕捉,catch子旬的顺序按捕捉第一个、第二个、第三个这样的顺序写,试解释程序的运行结果。
实验内容:
实验结果:
实验二
实验项目名称:数组及字符串
实验目的:熟悉数组以及字符串的初始化,函数调用等基本操作
实验内容:1.使用3种方式对一个二维数组进行赋值
2.使用3种方式实现两个字符串的连接操作。
实验过程:
实验三
实验项目名称:面向对象程序设计基础实验一
实验目的:熟悉java语言的面向对象基本概念
实验内容:创建类Rectangle,具有属性length和width,缺省值均为1。该类具有计算
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函数,赋值,输出。
面向对象程序设计实验报告
面向对象程序设计实验报告实验一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)函数返回值为整型。
面向对象实验报告
实验报告面向对象分析与设计班级学号姓名指导老师实验一用例图与活动图设计与实现[实验目的]1.熟悉UML建模2.掌握用例图的设计与实现4.掌握使用活动图细化用例的方法[实验内容]1.简单需求分析选课系统包括如下功能:(1)管理员通过系统管理界面进入系统,建立学期要开的各种课程,将课程信息保存在数据库中并对课程进行改动和删除(2)学生通过客户端浏览器根据学号和密码进入系统,可以选课,也可以查询已选课程本系统涉及的用户包括管理员和学生,他们是用例图中的执行者,他们的主要特征相似,都具有姓名和注册号(学生为学号)等信息,所以可以抽象出高层执行者“人”,而管理员和学生都从人统一派生。
数据库管理系统是另外一个执行者。
2.事件流(1)添加课程事件流(1)管理员选择进入管理界面,用例开始(2)系统提示输入管理员密码(3)管理员输入密码(4)系统验证密码A1:密码错误(5)进入管理界面,系统显示目前所建立的全部课程信息(6)管理员选择添加课程(7)系统提示输入新课程信息(8)管理员输入信息(9)系统验证是否和已有课程冲突A2:有冲突(10)系统添加新课程,提示课程添加成功(11)系统重新进入管理主界面,显示所有课程(12)用例结束其他事件流:A1:密码错误(1)系统提示再次输入(2)用户确认(3)三次错误,拒绝再次访问(4)否则进入添加课程事件流第(5)步A2:有冲突(1)系统提示冲突,显示冲突课程信息(2)用户重新输入(3)继续验证直到无冲突(4)进入添加课程事件流第(10)步删除课程事件流和修改课程事件流与此类似(2)选课事件流(1)学生进入选课登录界面,用例开始(2)系统提示输入学号和密码(3)学生输入学号和密码(4)系统验证A1:验证失败(5)进入选课主界面(6)学生点击选课。
(7)系统显示所有课程信息(8)学生选择课程(9)系统验证课程是否可选A2:课程不可选(10)系统提示课程选择成功(11)用例结束错误流:A1:验证失败(1)系统提示验证失败,提示重新输入(2)三次失败,拒绝访问(3)成功,转选课事件流第(5)步A2:课程不可选(1)系统提示课程不可选及原因(2)学生重新选课(3)重新验证直至成功(4)转选课事件流第(10)步3.选课用例图根据前面的需求分析可以试着粗略找出系统用例,并在后期的用例建模工作中合并、优化、筛选这些用例。
面向对象程序设计实验报告
面向对象程序设计实验报告姓名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)函数返回值为整型。
面向对象程序设计实验报告
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)。
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
综合实验报告
面向对象程序设计
专业名称: 物联网工程 ___班级: _____ 级2班__ ___________姓名: 你哥哥
学号: 02051928
信息科学与工程学院
二零一三年七月
第一题: (1)
1.1题目概述 (1)
1.2设计思路 (2)
1.3设计说明与调试分析 (2)
1.4编码实现 (2)
1.5程序运行结果 (5)
1.6设计心得 (5)
第二题: (6)
2.1题目概述 (6)
2.2设计思路 (7)
2.3设计说明与调试分析 (7)
2.4编码实现 (7)
2.5程序运行结果 (11)
2.6设计心得 (11)
第一题:
1.1题目概述
用抽象类设计计算二维平面图形图形面积的程序, 在基类TDshape中设计纯虚函数area()和printName(), area()用于计算几何图形的面积, printName()用于打印输出几何图形的类名, 如Triangle类的对象就打印输出”Triangle”。
每个具体形状的类则从抽象类TDshape派生, 各自需要定义其它独有的数据成员和成员函数, 而且定义area()和printName()的具体实现代码, 如图所示。
要求编写以TDshape为接口的函数, 借以访问具体类如
Triangle和Rectangle类的成员函数area(), printName ()。
1.2设计思路
由简到繁, 逐步实现。
1.3设计说明与调试分析
编写基类TDshape->编写虚函数->编写继承类Triangle ->实例化TDshape和Triangle ->调用基类虚函数实现调用继承类相应函数->同样的方式处理继承类Rectangle.
1.4编码实现
#include<iostream>
using namespace std;
class TDshape{
public:
virtual void area()=0;
virtual void printName()=0;
};
class Triangle:public TDshape{
private:
double width,height;
public:
void setwidth(double x){width=x;}
void setheight(double x){height=x;}
double getwidth(){return width;}
double getheight(){return height;}
void area(){cout<<"面积: "<<width*height*0.5<<endl<<endl;}
void printName(){cout<<"图形: Triangle "<<endl;}
};
class Rectangle:public TDshape{
private:
double width,height;
public:
void setwidth(double x){width=x;}
void setheight(double x){height=x;}
double getwidth(){return width;}
double getheight(){return height;}
void area(){cout<<"面积: "<<width*height<<endl<<endl;} void printName(){cout<<"图形: Rectangle "<<endl;}
};。