Java表达式求值、杨辉三角实验报告
杨辉三角实验报告

杨辉三角(一)需求分析1.逐行打印二项展开式(a + b)i 的系数2.要求:输入杨辉三角的阶数n,在屏幕上显示数杨辉三角形。
3.输入的值n以小于12为宜(图形漂亮)。
(二)概要设计1. 首先初始化一个队列,元素为1,然后根据这个队列迭代生成任意行的二项式系数。
2. 判断用户输入的行数,然后决定循环次数。
这些循环中,程序根据杨辉三角的实际构造函数模拟构造过程。
每次形成一个新的二项式系数序列,并将这个序列保持在一个新的队列中。
本次循环结束后,这个心构造的序列将作为下次循环来构造另一个二项式序列的参照序列。
(三)详细设计1.定义队列结点typedef struct QNode{int data;struct QNode *next;}QNode ,*QueuePtr;typedef struct {QueuePtr front;QueuePtr rear;}LinkQueue;2.基本操作函数原型●队列初始化void InitQueue(LinkQueue *Q){Q->front =Q->rear = (QueuePtr)malloc(sizeof(QNode));if(!Q->front) printf("OVERFLOW");Q->front->next= NULL;}●插入元素e为新的队尾元素void EnQueue(LinkQueue *Q,int e){QNode *p;p = (QueuePtr)malloc(sizeof(QNode));if(!p) printf("OVERFLOW");p->data = e;p->next = NULL;Q->rear->next = p;Q->rear = p;}●void DeQueue(LinkQueue *Q){ QNode *p;if(Q->front == Q->rear) printf("ERROR");Q->front->next = Q->front->next->next;}●美化形状for(i = 1;i <= n; i++){printf("\n");c=i;for(b=1;b<=n-c;c++){printf(" ");}}●根据上行系数求下行系数for (j=1;j<=i+2;j++){t = q->front->next->data;DeQueue (q);EnQueue (q,s+t);s = t;if (j!=i+2) printf("%3d ",s);}(四)调试分析1.美化形状时,第一次的输出空格的个数和位置考虑的有瑕疵,导致图像歪歪曲曲的。
java实验报告 (2)

4、程序及运行结果(或实验数据记录及分析) import java.util.*; import java.util.Calendar; class Birth {
private int year; private int month; private int day; public int getyear() {
三角形"); num=in.nextInt(); switch(num) { case 1:
System.out.printf("请输入等腰三角形的边长:"); m=in.nextInt(); r=in.nextInt(); d(r,m); break;
case 2:
System.out.printf("请输入直角三角形的边长:"); m=in.nextInt(); f(m); break;
掌握基本输入输出语句;7)掌握函数调用及参数传递
2. 熟悉并掌握结构化方法的自顶向下逐步求精思想;
2、 实验原理和内容 实验内容:
1. 输入 1、2、3、4 等标识,分别使用*号打印等腰三角形、直角三角形、长 方形、正方形等不同形状;
2. 必须使用 Scanner 类实现从键盘输入; 3. 打印不同形状使用不同的功能函数; 4. 提高 1:使用递归方式编写打印形状;
age is 12 years old. 提示:
Date 是系统定义的日期类,通过其 getYear()方法可以获得当前年份。
3、实验步骤 1、定义私有变量 year,month,day。 2、在 class 类中定义无参构造函数,对 year,month,day 进行初始化。 3、定义有参构造函数。 4、键盘输入出生日期。 5、主函数创建 Calendar 对象获取当前年份,创建 Birth 类。
数据结构实验报告(杨辉三角-约瑟夫环)

数据结构实验报告实验一杨辉三角形(Pascal’s triangle)一、需求分析1.输入的形式和输入值的范围本程序中,需输入的杨辉三角级数level为正整数,由键盘输入,以回车结束2.输出的形式通过屏幕输出杨辉三角3.程序所能达到的功能用户从键盘输入需要的杨辉三角级数,从屏幕输出杨辉三角4.测试数据输入:5输出: 1 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1二、概要设计以链队列结构实现该实验1.抽象数据类型定义ADT Queue {数据对象:D = { ai | ai∈ElemSet , i = 1,2,…,n,n≥0 }数据关系:R1={<ai-1,ai> | ai-1 , ai∈D, i=2,…,n}约定其中ai端为队列头,an端为队列尾基本操作:InitQueue ( &Q )操作结果:构造一个空队列QDestroyQueue ( &Q )初始条件:队列Q已存在操作结果:队列Q被销毁,不再存在ClearQueue ( &Q )初始条件:队列Q已存在操作结果:将Q清为空队列QueueEmpty ( Q )初始条件:队列Q已存在操作结果:若Q为空队列,则返回TRUE,否则FALSEQueueLength ( Q )初始条件:队列Q已存在操作结果:返回Q的元素个数,即队列长度GetHead ( Q , &e )初始条件:Q为非空队列操作结果:用e返回Q的队头元素EnQueue ( &Q , e )初始条件:队列Q已存在操作结果:插入元素e为Q的新队尾元素DeQueue ( &Q , &e )初始条件:Q为非空队列操作结果:删除Q的队头元素,并用e返回其值QueueTraverse ( Q , visit( ) )初始条件:Q已存在且非空操作结果:从队头到队尾,依次对Q的每个数据元素调用函数visit( )。
汇编杨辉三角实验报告

汇编杨辉三角实验报告篇一:“杨辉三角”简介“杨辉三角”简介上述三角形数表称为“杨辉三角”,它呈现了二项式展开式各项系数的规律.如表中第三行为二项式的各项的系数:1,2,1.又如表中第四行为二项式的系数:1,3,3,1.“杨辉三角”中数的排列规律是:每一行两端都是1,其余各数都是上一行中与比数最相邻的两数之和,如的各项这个数表是南宋数学家杨辉收录在他的著作里才流传下来的.据他的著作里记载,这个数表早在11世纪由北宋数学家贾宪所发现.因此,后人把“杨辉三角”又称为“贾宪三角”.在西方,称这个数表为“帕斯卡三角形”.帕斯卡在1653年开始应用这个三角形数表,发表则在1665年.这就是说,就发现和应用这个三角形而言,贾宪比帕斯卡早600年左右,杨辉比帕斯卡早400多年.篇二:汇编语言设计题目汇编语言设计题目下面的汇编语言设计题目完全可用汇编语言在PC机上实现,不需在专门的硬件实验板上实现。
题目1 十进制数转换成二进制数。
要求:提示输入一个十进制数;输入任意数字int1,点击Enter结束输入,输出int1 的二进制代码;点击Enter程序退出。
题目 2 十进制数转换成十六进制数。
从键盘输入一个十进制数,转换成十六进制数,显示出来。
要求:需要检测输入一个规范的十进制数。
题目 3 十六进制数转换成十进制数。
从键盘输入一个十六进制数,转换成十进制数,显示出来。
要求:需要检测输入一个规范的十六进制数。
题目 4 字符串大写字母转换为小写。
要求:提示输入字符串;输入任意字符串string,点击Enter 结束输入;将字符串string 中的大写字母转换为小写字母输出;点击Enter 程序退出。
题目 5 字符串小写字母转换为大写。
将键盘输入的小写字母用大写显示出来,若输入的是非字符,显示NON CHAR。
题目6 将用户输入的华氏温度转换为摄氏温度。
要求:提示输入一整数;键盘输入,Enter 键结束输入,并换行显示结果。
显示杨辉三角实验报告

显示杨辉三角实验报告姓名:许严班级:计122 学号:12130230501.问题描述杨辉三角如图2.4.3所示,其特点是两个腰上数值是1,其他位置上的每一个整数都是它的上一行相邻两个整数之和。
问题是:对于指定的最大行数rmax,要求从第一行到第rmax逐行显示杨辉三角形的所有元素。
2.基本要求⑴设计输出形式,尽量反映杨辉三角的特点。
⑵设计计算杨辉三角形各行数值的方法。
⑶输入:rmax从键盘输入。
⑷输出:屏幕输出杨辉三角形.3.实现提示⑴存储设计计算杨辉三角形第i行时,如果在第i-1行两侧各添加一个0,则第i行的第j 个元素等于第i-1行的第j-1个元素与第j个元素的和。
计算如图2.4.4所示。
第i 行计算完,第i-1行的数据就没有用了,依据第i行数据可计算第i+1行的数据。
11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1…图2.4.3 杨辉三角形从上述计算中不难看出,第i行的元素从左往右依次可被求得,求解过程中也是从左往右依次使用地i-1行的数据,显然,具有先入先出的特点。
所以,可借助一个队列存放计算过程中所需的数据,如图2.4.5所示。
但随着航数的增加,队列会很长。
所以,可以设置一循环队列,队长不少于rmax+2,边计算边出队。
(2)算法设计计算各行元素的算法步骤如下。
Step1:队列初始化,0、1入队。
队头ftont指向0处,队尾指向1后。
Step2:i从1到rmax,循环执行下列操作,求第i行数据。
2.1 0入队。
2.2 从队首起直到队尾,每出队两元素,求和后入队。
输出时注意0不输出。
(3)程序设计#include <iostream>using namespace std;#include <iomanip>int Fd(int x, int y){int t = 1;int k = 1;for(int i = y; i > x ; i--){t = t * i;t = t / k;k++;}return t;}int main(){int nsize;cout<<"请输入大小"<<endl;cout<<"提示:按Ctrl+Z两次退出!"<<endl;while(cin>>nsize){for(int i = 0; i <= nsize; i++){for(int k = 0 ; k <= nsize; k++){if(k > i){cout<<" ";}}for(int j = 0 ; j <= i; j++){cout<<setw(3)<<Fd(j,i)<<" ";}cout<<endl;}cout<<"请输入大小"<<endl;}return 0;}4.测试与运行给出行数,从运行结果验证程序设计是否正确。
太原理工大学Java实验报告

实验由本人当时亲自完成仅供参考,希望可以帮助大家本科实验报告课程名称: Java程序设计B 实验项目: Java语言基础编程和面向对象设计实验地点:逸夫楼501 专业班级: 0000 学号: 00000000学生姓名:氣宇軒昂指导教师:2012年 13月 13日实验名称实验一 Java环境搭建和Java语言基础编程实验目的和要求1.掌握JDK、Eclipse的下载和安装,并熟练使用API帮助文档;2.学会Java Application程序和Java Applet程序的编制、编译和运行;3.熟练掌握Java程序流程控制语句的使用;4.熟练掌握Java语言数组的使用、字符串以及字符串处理方法的使用。
实验内容1.下载并安装最新版本的JDK和Eclipse,设置环境变量,下载API帮助文档。
2.设计Java Application程序,输出“我叫×××,我编写的Java Application程序运行通过了”,分别在命令提示符和Eclipse环境中编译、运行。
3.完成习题的编程、调试与运行。
4.使用for循环语句输出习题中的图案。
5.完成习题的编程、调试与运行。
6.完成习题和的编程、调试与运行。
主要仪器设备台式或笔记本计算机实验记录(写出实验内容中3,5,6的程序代码和运行结果)(可分栏或加页)程序代码import class DataType{public static void main(String[] args){Scanner in=new Scanner;"请输入一个long型数据(输完按enter结束):");long a=();"请输入一个float型数据(输完按enter结束):");float b=();"请输入一个double型数据(输完按enter结束):");double c=();"long:"+a);"float:"+b);"double:"+c);}}运行结果Scanner in=new Scanner;boolean b=true;while(b){"请选择菜单:");" 1.计算不同精度的e值");" 2.退出");switch()){case 1:{"请输入精度(例如:1e-3,表示):");ValueFore a=new ValueFore();"e="+());};break;case 2:b=false;break;}}}}运行结果说明:没有按书中的要求去求,但是这个程序功能更强,运用了菜单的方式,使用程序的人能求出不同精度的e值。
Java实现杨辉三角算法

Java实现杨辉三⾓算法package test;public class YangHuiSanJiao {public static void main(String[] args) {//杨辉三⾓有什么特点//外层都是1,内层数是两个数的和/*111121133114641*///⼤概的思路就是声明⼀个⼆维数组int[][] i = new int[10][];//为什么这⾥还可以再new⼀个数组//每⼀⾏就是⼀个数组,每⼀个数组中,⼜包含⼀个数组//现在相当于有10个数组,但是这⼗个数组的元素不固定,需要通过for循环来赋值//第⼀个数组没有什么规律,就是只有⼀个数,⽽且是1,所以直接指定//⼀般来说,应该是i[0]=某⼀个数,但是这⾥是⼀个数组,//然后指定第⼀⾏这唯⼀的⼀个数就是1i[0] = new int[1];i[0][0] = 1;for (int j = 1; j < i.length; j++) {i[j] = new int[j+1];i[j][0] = i[j][j] = 1;//中间元素如何指定for (int j2 = 1; j2 < j; j2++) {i[j][j2] = i[j-1][j2-1] + i[j-1][j2];}}//现在开始输出元素for (int j3 = 0; j3 < i.length; j3++) {//⼆维数组如何遍历for (int k = 0; k < i[j3].length; k++) {System.out.print(i[j3][k]+" ");}System.out.println();}}}。
数据结构实验报告二(栈、队列与杨辉三角)

《数据结构》实验报告项目名称栈、队列与杨辉三角专业班级软件工程工科试验班学号3903120128姓名谢江实验成绩:批阅教师:2012年5月22 日实验1《单链表的建立与约瑟夫问题》实验学时:实验地点:寝室与实验室实验日期:2012年5月22日1.需求分析实验2 主要是关于栈。
队列的建立以及杨辉三角问题的解决(队列运用)2.概要设计以及详细设计(1)栈class Stack{public:Stack();bool empty();//判断栈是否为空T peek();//显示栈顶元素void push(T value);//入栈T pop();//出栈int getSize();//当前栈中元素的数量private:T *elements;//数组指针int size;//栈中的元素数量int capacity;//栈的容量void ensureCapacity();//确认栈的容量是否大于元素数量};(2)队列class Queue{public:Queue();void enQueue(T element);//元素入队T deQueue();//元素出对,如果没有元素,抛出异常int getSize();//获取队列大小private:LinkedList<T> list;//定义表};3.调试分析内容包括:调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;算法的时空分析(包括基本操作和其他算法的时间复杂度和空间复杂度的分析)和改进设想;经验和体会等。
个人标记:能建立顺序栈,以及链表顺序队列,对于比较复杂的链栈、循环队列等比较不熟悉,杨辉三角问题存在问题此次报告暂时不交,还有就是抛出异常的问题,例如:T deQueue()throw (runtime_error);//元素出对,如果没有元素,抛出异常会提示警告:C++ exception specification ignored except to indicate a function is not_declspec(nothrow)于是尽可能用if(…)throw runtime_error,就不报错了4.附录(1)栈Stack.h*****************************//采用数组的方式进行栈的操作#ifndef STACK_H#define STACK_Htemplate<typename T>class Stack{public:Stack();bool empty();//判断栈是否为空T peek();//显示栈顶元素void push(T value);//入栈T pop();//出栈int getSize();//当前栈中元素的数量private:T *elements;//数组指针int size;//栈中的元素数量int capacity;//栈的容量void ensureCapacity();//确认栈的容量是否大于元素数量};template<typename T>Stack<T>::Stack(){capacity = 10;//初始栈的大小size = 0;//初始元素的数量elements = new T[capacity];//建立指针}template<typename T>bool Stack<T>::empty(){if(size == 0)return true;elsereturn false;}template<typename T>//只显示栈顶元素并不出栈T Stack<T>::peek(){return elements[size - 1];}template<typename T>void Stack<T>::ensureCapacity(){if(size >= capacity)//如果满足进行指针的更换{T *old = elements;capacity = size + 1;elements = new T[capacity];for(int i = 0; i < size; i++)elements[i] = old[i];delete old;}}template<typename T>void Stack<T>::push(T value){ensureCapacity();//入栈前进行栈是否溢出的判断elements[size++] = value;}template<typename T>T Stack<T>::pop(){return elements[--size];}template<typename T>int Stack<T>::getSize(){return size;}#endif*************************************TestStack.cpp*************************************#include<iostream>#include"Stack.h"using namespace std;int main(){Stack<int> intS;cout << "before push size of intStack is: " << intS.getSize() << endl;//统计入栈前栈的大小for(int i = 0; i < 10; i++){int num;cout << "enter num: ";cin >> num;intS.push(num);}cout << "now size of intStack is: " << intS.getSize() << endl;//统计入栈后栈的大小while(!intS.empty()){cout << intS.pop() << " out " << endl;}cout << "after pop size of intStack is: " << intS.getSize() << endl;//出站后栈的大小system("pause");return 0;}##################################################(2)队列LinkedList.h******************************************#ifndef LINKEDLIST_H#define LINKEDLIST_H#include<stdexcept>using namespace std;template<typename T>class Queue;//前视定义,否则无法友元template<typename T>class Node{public :T element;//节点数据域Node<T> *next;//指向下指针Node(){next = NULL;}Node(T element){this -> element = element;next = NULL;}};template<typename T>class LinkedList{public:LinkedList();T removeFirst();//移除并返回表头元素void addLast(T element);//尾端插入新元素int getSize();//获取表的大小private:Node<T> *head, *tail;//定义头节点、尾节点int size;};template<typename T>LinkedList<T>::LinkedList()//初始化链表NULL{head = tail = NULL;size = 0;}template<typename T>void LinkedList<T>::addLast(T element){if(tail == NULL){head = tail = new Node<T>(element);}else{tail ->next = new Node<T>(element);tail = tail ->next;}size++;//作添加工作,size++}template<typename T>T LinkedList<T>::removeFirst(){if(size == 0)throw runtime_error("No elements");//抛出异常情况else{//删除并返回头节点元素,把下一节点作为新的头节点Node<T> *temp = head;head = head ->next;if(head == NULL)tail = NULL;size--;//作删除工作,size--T element = temp ->element;delete temp;return element;}}template<typename T>int LinkedList<T>::getSize()//返回size{return size;}#endif****************************************Queue.h***********************************#ifndef QUEUE_H#define QUEUE_H#include"LinkedList.h"#include<stdexcept>using namespace std;template<typename T>class Queue{public:Queue();void enQueue(T element);//元素入队T deQueue();//元素出对,如果没有元素,抛出异常int getSize();//获取队列大小private:LinkedList<T> list;//定义表};template<typename T>Queue<T>::Queue(){}//空的构造函数template<typename T>void Queue<T>::enQueue(T element){list.addLast(element);//入队(后插)}template<typename T>T Queue<T>::deQueue(){return list.removeFirst();//出对(前删)}template<typename T>int Queue<T>::getSize(){return list.getSize();}#endif******************************************* TestQueue.cpp*******************************************#include<iostream>#include<stdexcept>#include"Queue.h"using namespace std;int main(){Queue<int> q;cout << "before enQueue size is: " << q.getSize() << endl;for(int i = 0; i < 10; i++){q.enQueue(i);cout << i << " enter queue" << endl;}cout << "after enQueue size si: " << q.getSize() << endl;while(q.getSize()!=0){cout << q.deQueue() << "out queue" << endl;}cout << "after deQueue size is: " << q.getSize() << endl;system("pause");return 0;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.实验目的实现杨辉三角和表达式的封装二.实验软件环境本实验是在MyEclipse 9.01M1编写和运行的三.实验内容(一)实验要求1. 输出杨辉三角前N项,N为参数2. 表达式求值:输入一个表达式,输出它的值,其中要用到java.util.Stack (二)实验代码程序代码:1)杨辉三角:/***功能:用二维数组实现杨辉三角*时间:2011-05-01**/package b1;import java.io.*;public class Pascal{public Pascal(){play();}public void play(){BufferedReader br = new BufferedReader(new InputStreamReader(System.in));System.out.print("请输入n值:");int n = 0;try {n = Integer.parseInt(br.readLine());} catch (NumberFormatException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}int array[][] = new int[n][2*n-1];//判断是否为奇数if( n%2 == 1 ){for(int i=1; i<=n; i++){for(int j=1; j<=2*n-1 ;j++){//首先给前5-i个元素赋值0if(j<=n-i)array[i-1][j-1] = 0;//输出第一个“1”和最后一个“1”else if((j==(n-i+1))||(j==n+i-1))array[i-1][j-1] = 1;else if((j < n+i-1)&&(j > n-i+1)){if((j-i)%2 == 1)array[i-1][j-1] = 0;elsearray[i-1][j-1] = array[i-2][j-2] + array[i-2][j];}}}}//为偶数所进行的操作else{for(int i=1; i<=n; i++){for(int j=1; j<=2*n-1; j++){//首先给前5-i个元素赋值0if(j<=n-i)array[i-1][j-1] = 0;//输出第一个“1”和最后一个“1”else if((j==(n-i+1))||(j==n+i-1))array[i-1][j-1] = 1;else if((j < n+i-1)&&(j > n-i+1)){if((j-i)%2 == 0)array[i-1][j-1] = 0;elsearray[i-1][j-1] = array[i-2][j-2] + array[i-2][j];}}}}/*输出数组*/for(int i=1; i<=n; i++){for(int j=1; j<=2*n-1; j++){if(array[i-1][j-1] == 0){System.out.print(" ");}elseSystem.out.print(array[i-1][j-1]);System.out.print(" ");}System.out.println();}}public static void main(String argc[]){Pascal p = new Pascal();}}2)表达式求值,代码如下:1)Stack类:用来存储表达式子元素的类,代码如下:package btwo;public class Stack {private int maxLen;private int size;private char c[];public Stack(int maxLen) {this.maxLen = maxLen;c = new char[maxLen];size = 0;}public void push(char v){c[size++] = v;}public char pop(){return c[--size];}public boolean isEmpty(){return size == 0;}}2)ExplainPostfix类:实现将输入的表达式转成后缀表达式,代码如下:package btwo; public class ExplainPostfix {String in; String out = "";Stack s;public ExplainPostfix(String in){System.out.println("计算表达式为:"+in);this.in = in;}public void display(){System.out.println("后缀表达式为:"+out);}//转换成后缀表达式public void toPraser(){s = new Stack(in.length());for(int i=0;i<in.length();i++){char c = in.charAt(i);switch(c){case'+':case'-':getOpter(c,1);break;case'*':case'/':getOpter(c,2);break;case'(':s.push(c);break;case')':getParen();break;default:out = out + c;}}while(!s.isEmpty()){out = out + s.pop();}}public void getOpter(char c,int prec1){ out = out + 'a';while(!s.isEmpty()){char optop = s.pop();if(optop == '('){s.push(optop);break;}else{int prec2 = 0;if(optop == '+' || optop== '-'){prec2 = 1;}else{prec2 = 2;}if(prec1>prec2){s.push(optop);break;}else{System.out.println("op:"+optop);out = out + optop;}}}s.push(c);}public void getParen(){while(!s.isEmpty()){char c = s.pop();if(c == '(')break;elseout = out + c;}}public static void main(String[] args) {ExplainPostfix p = newExplainPostfix("(11+2)*5");p.toPraser();p.display();}}3)CalculateExpression类:功能实现将后缀表达式进行计算,代码如下:package btwo;public class CalculateExpression {String in;Stack s; public CalculateExpression(String in) { this.in = in;}public CalculateExpression(){play();}public static void main(String args[]){ExplainPostfix p1 = newExplainPostfix("(21+4)*(1+3*2)");p1.toPraser();p1.display();CalculateExpression p = newCalculateExpression(p1.out);p.doPraser();p.display();}//开始计算后缀表达式public void doPraser(){while(true){int a,b,c,d;a = in.indexOf("+");b = in.indexOf("-");c = in.indexOf("*");d = in.indexOf("/");int n = Math.max(a, b);n = Math.max(n, c);n = Math.max(n, d);if(a != -1){n = a;}if(b<n && b!= -1){n = b;}if(c<n && c!= -1){n = c;}if(d<n && d!= -1){n =d;}if(a == -1 && b == -1 && c == -1 && d == -1){break;}String s1 = charAt(n-1);String s2 =charAt(n-2-s1.length());int v = 0;if(n == a){v = Integer.parseInt(s1) +Integer.parseInt(s2);}else if(n == b){v = Integer.parseInt(s2) -Integer.parseInt(s1);}else if(n == c){v = Integer.parseInt(s2) *Integer.parseInt(s1);}else{v = Integer.parseInt(s2) /Integer.parseInt(s1);}String s = ""+v;if(s.equals("0")){s = "";}else{s = s +"a";}in =in.substring(0,stIndexOf(s2))+v+in.substring(n+1,in.length());}}public void display(){System.out.println("结果为:"+in);}public String charAt(int i){String str = "";char c = in.charAt(i);if(c == '+' || c == '-' || c == '*' || c == '/'){str = str + c;return str;}else{while(c != 'a'){str = c + str ;if(i == 0){break;}c = in.charAt(--i);if(c == '+' || c == '-' || c == '*' || c == '/'){break;}}}return str;}}四.实验的结果及分析1. 杨辉三角结果:2. 算术表达式结果:五.实验心得体会试验后熟悉封装思想,使用基本Java算法。