java大作业,麻烦大神了,先给一百分,解决了,后加一百

以LoveStory程序为蓝本,编写一个具有个人特色的“LoveStory”,要求,

1、 每个人心中都自己有理想的爱人。
2、 每个人选择爱人的标准可以相同,也可能不同。
3、 随着环境的改变,择偶标准也是可以变的。
4、 爱是因为欣赏对方的优点。
5、 不爱是因为无法忍受对方的缺点。
6、 变心是因为遇到了自己更加欣赏的人。
7、 花心是因为,在他/她心里,爱的人不止一个。
8、 暗恋是把对方放在心中,而对方并不知道。
9、 有时候恋爱关系虽然还存在,其实已经不爱了。(虽然bf/gf不为空,但爱的人为空,或者变成了另外的人)
10、禁止同性相爱!

用面向对象语言参照以上要求写一个剧本,可以任意发挥。设计类的时候,要恰当的运用面向对象的三个本质特征。

作业提交内容:
1、 需求分析,描述你对这个题目的理解,要实现哪些功能,也就是用文字描述你的剧本。30
2、 程序设计,说明你如何运用面向对象的程序开发技术来完成你的剧本,一共设计了多少个类,这些类之间的关系怎样,这些类都有哪些属性,哪些方法,分别代表什么意思。30
3、 代码清单。25
4、 有代表性的程序运行结果(截图)。5
5、 感想与体会,说明你在完成大作业过程中的感受。10

今晚就要,发到[email protected],谢谢啊,明天要交了
已经解决了

复数类:
/**
*复数类
* @author sunsnowad
*/
public class Plural {
double real, unreal;
public Plural(double real, double unreal){
this.real = real;
this.unreal = unreal;
}

private Plural() {
real = 0.0;
unreal = 0.0;
}

public Plural add(Plural a, Plural b){
return new Plural(a.getReal()+b.getReal(), a.getUnreal()+b.getUnreal());
}

public Plural minus(Plural a, Plural b){
return new Plural(a.getReal()-b.getReal(), a.getUnreal()-b.getUnreal());
}

public Plural multi(Plural a, Plural b){
return new Plural(a.getReal()*b.getReal()-a.getUnreal()*b.getUnreal(),
a.getUnreal()*b.getReal() + a.getReal()*b.getUnreal());
}

public Plural division(Plural a, Plural b){
double middleResult = a.getReal()*a.getReal() + a.getUnreal()*b.getUnreal();
double realResult = (a.getReal()*b.getReal()+a.getUnreal()*b.getUnreal())/middleResult;
double unrealResult = (a.getUnreal()*b.getReal()-a.getReal()*b.getUnreal())/middleResult;
return new Plural(realResult, unrealResult);
}

public double getReal() {
return real;
}

public void setReal(double real) {
this.real = real;
}

public double getUnreal() {
return unreal;
}

public void setUnreal(double unreal) {
this.unreal = unreal;
}

@Override
public String toString(){
return real + "+" + unreal + "i";
}

public static Plural parsePlural(String plural){
plural = plural.trim();
String realString = "";
String unrealString = "";
if(plural.contains("i")){
for(int i = 0; i < plural.length(); i ++){
if(plural.charAt(i) == '+'){
for(int j = i + 1; j < plural.length()-1; j ++){
unrealString += plural.charAt(j);
}
break;
}
realString+=plural.charAt(i);
}
}
//TODO else
return new Plural(Double.parseDouble(realString), Double.parseDouble(unrealString));
}
}

Applet测试程序(使用Netbeans设计工具):

/**
*
* @author sunsnowad
*/
public class PluralTest extends javax.swing.JApplet {

/** Initializes the applet PluralTest */
public void init() {
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}

/** This method is called from within the init() method to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jLabel1 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jTextField2 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();
jLabel3 = new javax.swing.JLabel();

jLabel1.setText("实数1:");

jTextField1.setText("4+5i");

jLabel2.setText("实数2:");

jTextField2.setText("5+4.4i");

jButton1.setText("加");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jButton2.setText("减");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

jButton3.setText("乘");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});

jButton4.setText("除");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});

jLabel3.setText("结果:");

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 143, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextField2)))
.addComponent(jButton4)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButton3)
.addComponent(jButton2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 331, Short.MAX_VALUE))
.addComponent(jButton1))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton4))
.addGroup(layout.createSequentialGroup()
.addGap(47, 47, 47)
.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(122, Short.MAX_VALUE))
);
}// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Plural a = Plural.parsePlural(jTextField1.getText());
Plural b = Plural.parsePlural(jTextField2.getText());
jLabel3.setText(a.add(a, b).toString());
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
Plural a = Plural.parsePlural(jTextField1.getText());
Plural b = Plural.parsePlural(jTextField2.getText());
jLabel3.setText(a.minus(a, b).toString());
}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
Plural a = Plural.parsePlural(jTextField1.getText());
Plural b = Plural.parsePlural(jTextField2.getText());
jLabel3.setText(a.multi(a, b).toString());
}

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
Plural a = Plural.parsePlural(jTextField1.getText());
Plural b = Plural.parsePlural(jTextField2.getText());
jLabel3.setText(a.division(a, b).toString());
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
// End of variables declaration
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-13
复数类:
/**
*复数类
* @author sunsnowad
*/
public class Plural {
double real, unreal;
public Plural(double real, double unreal){
this.real = real;
this.unreal = unreal;
}

private Plural() {
real = 0.0;
unreal = 0.0;
}

public Plural add(Plural a, Plural b){
return new Plural(a.getReal()+b.getReal(), a.getUnreal()+b.getUnreal());
}

public Plural minus(Plural a, Plural b){
return new Plural(a.getReal()-b.getReal(), a.getUnreal()-b.getUnreal());
}

public Plural multi(Plural a, Plural b){
return new Plural(a.getReal()*b.getReal()-a.getUnreal()*b.getUnreal(),
a.getUnreal()*b.getReal() + a.getReal()*b.getUnreal());
}

public Plural division(Plural a, Plural b){
double middleResult = a.getReal()*a.getReal() + a.getUnreal()*b.getUnreal();
double realResult = (a.getReal()*b.getReal()+a.getUnreal()*b.getUnreal())/middleResult;
double unrealResult = (a.getUnreal()*b.getReal()-a.getReal()*b.getUnreal())/middleResult;
return new Plural(realResult, unrealResult);
}

public double getReal() {
return real;
}

public void setReal(double real) {
this.real = real;
}

public double getUnreal() {
return unreal;
}

public void setUnreal(double unreal) {
this.unreal = unreal;
}

@Override
public String toString(){
return real + "+" + unreal + "i";
}

public static Plural parsePlural(String plural){
plural = plural.trim();
String realString = "";
String unrealString = "";
if(plural.contains("i")){
for(int i = 0; i < plural.length(); i ++){
if(plural.charAt(i) == '+'){
for(int j = i + 1; j < plural.length()-1; j ++){
unrealString += plural.charAt(j);
}
break;
}
realString+=plural.charAt(i);
}
}
//TODO else
return new Plural(Double.parseDouble(realString), Double.parseDouble(unrealString));
}
}

Applet测试程序(使用Netbeans设计工具):

/**
*
* @author sunsnowad
*/
public class PluralTest extends javax.swing.JApplet {

/** Initializes the applet PluralTest */
public void init() {
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}

/** This method is called from within the init() method to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jLabel1 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jTextField2 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();
jLabel3 = new javax.swing.JLabel();

jLabel1.setText("实数1:");

jTextField1.setText("4+5i");

jLabel2.setText("实数2:");

jTextField2.setText("5+4.4i");

jButton1.setText("加");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jButton2.setText("减");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

jButton3.setText("乘");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});

jButton4.setText("除");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});

jLabel3.setText("结果:");

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 143, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextField2)))
.addComponent(jButton4)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButton3)
.addComponent(jButton2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 331, Short.MAX_VALUE))
.addComponent(jButton1))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton4))
.addGroup(layout.createSequentialGroup()
.addGap(47, 47, 47)
.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(122, Short.MAX_VALUE))
);
}// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Plural a = Plural.parsePlural(jTextField1.getText());
Plural b = Plural.parsePlural(jTextField2.getText());
jLabel3.setText(a.add(a, b).toString());
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
Plural a = Plural.parsePlural(jTextField1.getText());
Plural b = Plural.parsePlural(jTextField2.getText());
jLabel3.setText(a.minus(a, b).toString());
}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
Plural a = Plural.parsePlural(jTextField1.getText());
Plural b = Plural.parsePlural(jTextField2.getText());
jLabel3.setText(a.multi(a, b).toString());
}

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
Plural a = Plural.parsePlural(jTextField1.getText());
Plural b = Plural.parsePlural(jTextField2.getText());
jLabel3.setText(a.division(a, b).toString());
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
// End of variables declaration

}

Application 测试类和Applet类似。
第2个回答  2011-05-08
这个比较麻烦额 100 也太少了吧
第3个回答  2012-02-24
这个回答的 听好的!