小组成员
分工 | 姓名 |
---|---|
组长 | 张哲议 |
组员 | 蔡佳生 |
组员 | 蔡朝辉 |
组员 | 黄羽悦 |
以下是本篇文章正文内容
一、实验介绍
- 目的:建立数学模型并运用Java面向对象的技术进行JSP脚本编程
- 要求:编写JSP页面并在本地Eclipse for JavaEE中测试,要求在命令行窗口以及浏览器上输出如下图所示的数字斜塔(必须画出程序流程图),鼓励一题多解!页面测试通过后发布到云端ECS服务器并浏览访问效果。
二、实验步骤
程序流程图介绍:
- 构成成分
起止框:表示程序流程的开始与结束,通常只有一个开始框和一个结束框。
处理框:表示程序流程中需要执行或处理的内容。
流程线:表示程序执行的方向与顺序。
判断框:表示对程序流程中的某一条件进行判断,用来决定执行某一操作。
输出输入框:表示程序流程中资料的输入或结果的输出,一般用做数据处理。 - 三种结构
顺序结构:三大结构中最简单的一种,表示流程图直接按照流程线所指顺序依次执行;
选择结构:指定一个条件,根据给定的条件判断内容,并根据判断结果决定流程走向;
循环结构:在特定条件下重复某一操作,用于判断流程是继续执行重复内容还是退出循环,分为当型和直到型两种循环方式。
解法一:
- 利用循环实现数字金字塔,代码思路:
这段代码使用了JSP(JavaServer Pages)来生成数字斜塔的输出。以下是对这段代码的思路解释:
使用 Java 代码片段<% %>
来实现 JSP 页面的动态内容。
它包含了一个 for 循环,用于生成数字斜塔。
变量 s 表示数字斜塔的高度。变量 n 作为数字斜塔每一行的起始值。
外层的 for 循环用于控制数字斜塔的行数,内部嵌套的 for 循环则用于在每行上打印相应的数字。
内部的两个 for 循环用于控制在每一行打印的数字。
变量 flag 控制每行的数字序列。
使用 out.print() 和 out.println() 函数来输出数字斜塔的数字,并在每一行结束后输出 HTML 的换行标签<br>
。
代码如下:
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>数字斜塔</title>
</head>
<body>
<%
int s = 5;
int n = 1;
for (int i = 1; i <= s; i++) {
int flag = n;
for (int j = 1; j <= s - i + 1; j++) {
out.print(flag + " ");
flag += i + j;
}
n += i;
out.println("<br>");
}
%>
</body>
</html>
程序流程图:
解法二:
- 利用数组实现数字金字塔,代码思路:
创建了一个二维数组 a 用来存储数字斜塔的值。
定义了变量 i 和 k,以及一个变量 m,用来表示数字斜塔的规模。
首先对数组 a 进行了初始化,设置 a[1][1] 的值为 1。
然后在嵌套的 for 循环中,根据特定的算法求得数组 a 中其他元素的值,并用 System.out.print() 来进行输出。
同时,构建了一个 HTML 字符串 s,并在每次计算得到的值后将其添加到字符串 s 中。
在每行数字计算和输出结束后,使用 out.println() 将字符串 s 插入到 HTML 页面中。
代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
int i,k;
int m= 5;
int a[][]=new int [m+1][m+1];
a[1][1]=1;
for(k=1;k<=m;k++){
a[k][1]=a[1][k-1]+1;
String s="";
System.out.print(a[k][1]+" ");
s=s+a[k][1]+"   ";
for(i=2;i<=m-k+1;i++){
a[k][i]=a[k][i-1]+i-1+k;
System.out.print(a[k][i]+" ");
s=s+a[k][i]+"   ";
}
out.println("<h1>"+s+"<h1>");
System.out.println("");
}
%>
程序流程图:
实现效果:
命令行输出:
浏览器输出:
云端服务器内测试:
- 可通过云端站点下载云端内的代码。
- 同步到本地
- 运行结果:
三、实验小结
- 张哲议:为实现斜塔效果,首先设定行数为5,初始数字为1。然后使用嵌套的循环结构,外层循环控制行数,内层循环控制每行打印的数字。在内层循环中,设定一个flag变量来跟踪当前数字,根据规律递增更新flag并打印数字。同时,更新下一行的起始数字n。通过调试过程逐行检查代码逻辑,确保每一步都符合预期,最终实现了斜塔效果。
- 蔡佳生:在Web开发中,我使用了JSP(Java Server Pages)技术进行脚本编程。JSP允许我们在HTML页面中嵌入Java代码,实现动态网页的生成。通过JSP标签、表达式语言等特性,实现了数据的处理和页面的渲染。同时,我也意识到自己在某些方面还存在不足。例如,在代码编写方面,我们还需要进一步提高代码的规范性和可读性;在问题解决方面,我们还需要加强自己的逻辑思维和创新能力。
- 蔡朝辉:首先,我们使用了嵌入式Java代码在JSP页面中生成数字斜塔,并在浏览器中展示。
对于命令行输出,我们编写了一个Java程序来生成数字斜塔,并在命令行中输出。
在编写JSP页面时,使用嵌入式Java代码正确地生成数字斜塔。
在编写Java程序时,注意双重循环填充二维数组,以及正确输出到命令行窗口。
了解了如何在JSP页面中使用Java代码生成动态内容,并通过浏览器展示。
在部署到云端ECS服务器时,需要熟悉WAR文件的导出和部署过程,并确保服务器环境配置正确,以保证JSP页面可以正常访问。
综上所述,通过本次实验,我对于在JavaEE环境中使用JSP页面生成动态内容以及在命令行中输出有了更深入的理解,同时也学会了如何将JSP页面部署到云端服务器上进行访问测试 - 黄羽悦:在本次实验中,目标是建立数学模型,结合了面向对象的编程思想,通过编写嵌套的循环和一些变量来动态地生成数字斜塔的数字序列。通过命令行窗口和浏览器显示出了正确的数字斜塔效果。了解了程序流程图的制作。还加深了对 Java 的 JSP 技术和面向对象编程思想的理解,以及对数字斜塔模型的构建和输出。同时,通过在本地和云端的测试和访问,对程序的部署和发布也有了更深入的了解。进一步巩固了我的编程技能和对于模型建立的能力,也为我后续的学习和实践提供了宝贵的经验。