大学java实验题,没学好,大家帮帮忙。

zhengxiu001 2011-11-13 05:09:32
实验7数组(2学时)
1.实验内容
设计和编写代表矩阵的Matrix类。该类包括矩阵行列数变量int rows和int cols,矩阵数据数组double data[][],构造方法Matrix()、Matrix(int rows,int cols)、Matrix(int rows,int cols,double data[][]),获取某元素值的方法getData(int row,int col),设置某元素值的方法setData(int row,int col,double value),计算两个矩阵的乘积的方法multiply(Matrix m)以及toString()等内容。
编写测试类MatrixTest,并在该类中创建两个矩阵对象,计算其乘积。
程序调试通过后填写实验报告。
2.预习内容
数组的定义
类的定义
3.实验类型
设计型
4.实验目的
掌握数组的定义和使用
5.实验要求
编写Matrix类
编写MatrixTest类。在该类中通过键盘输入方式确定所要创建的两个矩阵的行列数,根据行列数随机生成数据或键盘输入,并通过setData方法生成矩阵的内容。
计算矩阵的乘积,并把结果通过toString方法输出到屏幕上
6.思考题
您还可以编写哪些Matrix类的方法?
如果没有setData方法,如何给矩阵的某个元素值赋值?



实验8 异常处理(2学时)
1.实验内容
为实验7添加矩阵相关的异常类,并在适当位置使用这些异常类。
2.预习内容
异常处理
3.实验类型
验证型
4.实验目的
理解异常的使用和自定义异常类的方法。
理解throw和throws的区别和联系。
5.实验要求
编写矩阵行数或列数非法异常类IllegalArgumentException、矩阵行号或列号非法异常类IllegalIndexException以及矩阵无法相乘异常类MatrixMultiplicationException。这些类只需要包含toString非法即可。
在Matrix类的构造方法中,如果rows或cols变量值小于1,抛出IllegalArgumentException异常;在getData和setData方法中,如果row或col大于等于矩阵行数或列数,抛出IllegalIndexException异常;在multiply非法中,如果两个矩阵的行列数不满足矩阵相乘规则,抛出MatrixMultiplicationException异常。
在MatrixTest类中测试上述异常定义是否有效。
提交调试通过的Java程序。




实验9 图形用户界面(4学时)
1.实验内容
编写一个简易计算器程序,其界面如下图所示:

用户界面可以手工编码的形式构造,也可以使用Netbeans、Eclipse等开发工具。
2.预习内容
图形界面程序的特点
事件处理机制的原理
3.实验类型
设计型
4.实验目的
掌握图形界面程序的设计方法和事件处理机制
5.实验要求
编写各个按钮的代码,使得能够进行四则运算。
当按下“+”按钮时,两个数值文本框之间应显示“+”号,同时相加结果显示在第三个文本框内(如下图所示)。类似处理“-”、“*”和“/”按钮。

应处理除0异常和数值格式非法异常,如:

程序调试通过后填写实验报告。
实验10 输入/输出处理(4学时)
1.实验内容
实现一个简单的图形界面文本编辑器(如下图所示),该程序从磁盘读入文本文件,并将内容显示到JTextArea中。也可以将JTextArea内容保存到原文件或另存到其它文件中。

2.预习内容
输入/输出处理、异常处理、图形用户界面
3.实验类型
综合型
4.实验目的
(1) 理解流的操作
(2) 能够创建、读写、更新文件
5.实验要求
在以上操作中,均要求带有异常处理结构。
提交调试通过的Java程序。
6.实验提示
在JFrame中添加菜单可以用如下代码:
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenu1 = new JMenu("文件");
JMenuItem jMenuItem1 = new JMenuItem("打开");
JMenuItem jMenuItem2 = new JMenuItem("保存");
JMenuItem jMenuItem3 = new JMenuItem("另存为");
JMenuItem jMenuItem4 = new JMenuItem("退出");
JSeparator jSeparator1 = new JSeparator();
jMenu1.add(jMenuItem1);
jMenu1.add(jMenuItem2);
jMenu1.add(jMenuItem3);
jMenu1.add(jSeparator1);
jMenu1.add(jMenuItem4);
jMenuBar1.add(jMenu1);
frame.setJMenuBar(jMenuBar1);
默认情况下JtextArea没有滚动条,若要添加滚动条,需要用以下代码:
jScrollPane1 = new JScrollPane();
jTextArea1 = new JTextArea();
jScrollPane1.setViewportView(jTextArea1);
frame.add(jScrollPane1);


实验11 线程(2学时)
1.实验内容
编写一个世界时钟程序,界面如下图所示:

在主窗口上至少显示两个时区的时间。
2.预习内容
图形界面程序
线程
3.实验类型
设计型
4.实验目的
掌握多线程程序的编写
5.实验提示
获取时间、换算时区以及转化为字符串的代码如下:
Calendar now = Calendar.getInstance();
now.add(Calendar.HOUR,  timeInterval);
//timeInterval为与北京时间相差的时数,如纽约为-12,伦敦为-7,东京为+2
String sdf=new SimpleDateFormat("HH:mm:ss").format(now.getTime());
设置JLabel字体的代码如下:
Font font=new Font("宋体",Font.BOLD,30);
l1=new JLabel("北京时间");
l1.setFont(font);
6.思考题
如何提高本实验的代码重用程度?能不能用一个类实现所有线程?
...全文
456 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoujiaolongde 2011-11-17
  • 打赏
  • 举报
回复
这个 真应该自己做 现在不做 如果想当程序员还是免不了的 楼主还是自己做吧
jaesion 2011-11-16
  • 打赏
  • 举报
回复
mark 等几个月再回来做
Edward1688 2011-11-16
  • 打赏
  • 举报
回复
你已经毕业了吗?
zhengxiu001 2011-11-16
  • 打赏
  • 举报
回复
thank you....
simimasaiya 2011-11-14
  • 打赏
  • 举报
回复
20分的帖子……
yiliang1990 2011-11-14
  • 打赏
  • 举报
回复
好多 啊
噢噢噢噢 2011-11-14
  • 打赏
  • 举报
回复
很基础的题目,自己动手,丰衣足食
henqiangda123 2011-11-14
  • 打赏
  • 举报
回复
这简直就是外包……您打算捡现成?
我觉得这种规模和方式,该给钱才对……
xiaobeiweng 2011-11-14
  • 打赏
  • 举报
回复
COOL,,,MARK。
OoTomorrowoO 2011-11-14
  • 打赏
  • 举报
回复
好长啊
槛外人 2011-11-13
  • 打赏
  • 举报
回复
//实验7数组(2学时)
class Matrix {
int rows;
int cols;
double[][] data;
Matrix() {
rows = cols = 0;
this.data = new double[rows][cols];
}
Matrix(int rows,int cols) {
this.rows = rows;
this.cols = cols;
this.data = new double[rows][cols];
}
Matrix(int rows,int cols,double[][] data) {

this.rows = rows;
this.cols = cols;
this.data = new double[rows][cols];
if(data.length == this.data.length) {
for(int i=0; i<this.rows; i++)
for(int j=0; j<this.cols; j++)
this.data[i][j] = data[i][j];
}
else System.out.println("二维数组长度不同!");
}
public double getData(int row,int col) {
return data[row][col];
}
public void setData(int row,int col,double value) {
data[row][col] = value;
}
public Matrix multiply(Matrix m) {
Matrix temp= new Matrix(this.rows, m.cols);
/*temp.rows = this.rows;
temp.cols = m.cols;*/
int sum;
for(int i=0; i<this.rows; i++)
for(int j=0; j<m.cols; j++){
sum = 0;
for(int k=0; k<this.cols; k++)
sum += this.data[i][k]*m.data[k][j];
temp.data[i][j] = sum;
}

return temp;
}
public String toString() {
for(int i=0; i<this.rows; i++){
for(int j=0; j<this.cols; j++)
System.out.print(this.data[i][j]+" ");
System.out.println();
}
return " ";
}

}


public class MatrixTest {
public static void main(String[] args) {
double[][] array1 ={
{10, 0, 5, 7},
{2, 1, 0, 0},
{3, 0, 4, 0},
};
double[][] array2 ={
{2, 0},
{4, 8},
{0, 14},
{3, 5},
};
Matrix matrix1 = new Matrix(3,4,array1);
Matrix matrix2 = new Matrix(4,2,array2);
Matrix matrix3 = matrix1.multiply(matrix2);
System.out.println(matrix3);
}
}
/* 输出应为:
41.0 105.0
8.0 8.0
6.0 56.0

*/
java_zf 2011-11-13
  • 打赏
  • 举报
回复
没人会帮你做的!
尘缘udbwcso 2011-11-13
  • 打赏
  • 举报
回复
我觉得楼主是在分享实验题目
yfguyiyhklj 2011-11-13
  • 打赏
  • 举报
回复
这几个题,挺不错的!
我也不太会你应该分开发帖的!
那样这个问题就很好解决啦!
另外现在是学习自习先写一下吧,出现什么问题在与大家交流也不迟的嘛!
HeyLinK 2011-11-13
  • 打赏
  • 举报
回复
没人会帮你写吧 这么长 楼主自己去好好学习学习 。
Jobernowl 2011-11-13
  • 打赏
  • 举报
回复
这么长的文字实在是不想面对
kankan231 2011-11-13
  • 打赏
  • 举报
回复
没学好就先去学好它吧

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧