1.设计一个动物声音“模拟器”java程序,希望所设计的模拟器可以模拟许多动物的叫

1.设计一个动物声音“模拟器”java程序,希望所设计的模拟器可以模拟许多动物的叫,第1张

这是有一个很典型的关于java 面向对象 继承的使用 ,很简单 先创建一个如animal类,并有个makeVoice()方法,然后instance 这个类 ,如 bird rabit dog cat ect下面就是继承后分别实现makeVoice() 方法!

没太明白你的这句话,“当A矩阵中有某个或多个的元素等于前一个A中的某个或多个元素值时”

前一个A是什么意思,一开始只有一个A,然后遍历一遍A中元素之后A中225的元素都变成0了,前一个A是什么意思?

daizy 19:35:31

package comtest;

public class Student {

private int pid;

private String pname;

private int page;

private char psex;

public Student(int id, String name, int age, char sex){

thispid = id;

thispname = name;

thispage = age;

thispsex = sex;

}

public int getPid() {

return pid;

}

public void setPid(int pid) {

thispid = pid;

}

public String getPname() {

return pname;

}

public void setPname(String pname) {

thispname = pname;

}

public int getPage() {

return page;

}

public void setPage(int page) {

thispage = page;

}

public char getPsex() {

return psex;

}

public void setPsex(char psex) {

thispsex = psex;

}

public String toString(){

return "编号: " + thispid + "姓名: " + thispname + "年龄: " + thispage + "性别: " + thispsex;

}

}

package comtest;

import javautilLinkedList;

import javautilList;

public class InputOperator {

public static List<Student> allStu = new LinkedList<Student>();

public static void stuInput(List<Student> stuList){

allStuaddAll(stuList);

}

}

package comtest;

public class OutputOperator {

public static void stuOutput(){

for(Student stu : InputOperatorallStu){

Systemoutprintln(stu);

}

}

}

package comtest;

import javautilLinkedList;

import javautilList;

public class Test {

/

@param args

/

public static void main(String[] args) {

// TODO Auto-generated method stub

Student stu1 = new Student(1, "张三", 28, 'm');

Student stu2 = new Student(2, "李**", 20, 'f');

List<Student> stuL = new LinkedList<Student>();

stuLadd(stu1);

stuLadd(stu2);

InputOperatorstuInput(stuL);

OutputOperatorstuOutput();

}

}

/

我不能给出完整程序,只能提供一个框架,首先每一张牌都是相异的,对于一副牌的存储,不

妨用数组或者链表。对于花色和牌面属性,用数字和字串来存都行。

对于发牌函数,就是一个随机数加链表或数组的查找 *** 作

/

#ifndef card_h

#define card_h

#include "unith" //这个里面可以写描述牌的类,包括每一张牌属性

//和函数,属性包括牌面、花色,函数可以有显示本张拍信息show()

//,还应该有获得各个属性的get或set函数

#include <iostream>

#include <cstdlib>

#include <ctime>

using namespace std;

class A_Set_Card //描述一副牌

{

private:

unit top; //表头

int n; //当前这副牌中有多少张牌

public:

card(); //构造函数

~card(); //析构,这个别忘了

unit outputone(); //随机派一张牌

void creat(); //产生不含大小王的一副牌

};

/

构造,刚开始时这幅牌为空,(也可以把create函数写到构造函数里边)

/

A_Set_Card::A_Set_Card()

{

top = NULL;

n = 0;

}

A_Set_Card::~A_Set_Card() //析构函数

{

unit tem = top; //从表头开始

top = NULL;

while (tem) //如果null != tem

{

unit pp = tem; //用指针pp接住tem所指向的单元

tem = tem->nextp; //tem后移

delete pp; //析构掉刚才tem所指的单元

}

n = 0; //这幅牌中牌数归零

cout<<"。。。洗完牌。。。"<<endl;

}

/

创建一副牌,不含大小王

/

void A_Set_Card::create()

{

for(int j=1; j<5; j++) //j的取值{1、2、3、4}代表四种花色

{

for(int i=1; i<14; i++) //i的取值{113}代表A到K,13种牌面,共134 = 52张

{

unit newp = new unit; //生成一张牌

n++;

newp->inputnum(i); //inputnum()函数用来设置牌面,具体到unith里描述单张牌的类中去写

if(j == 1)

{

newp->inputname("黑桃"); //inputname()函数用来设置花色

}

else if (j == 2)

{

newp->inputname("红桃");

}

else if (j == 3)

{

newp->inputname("梅花");

}

else

{

newp->inputname("方块");

}

if (top == NULL) //第一张

{

top = newp;

top->nextp = NULL;

}

else //非第一张

{

unit tem = top;

top = newp;

top->nextp = tem;

}

}

}

}

/

随机发一张牌,返回那张牌的对象,我觉得稍微有点难的就在这个函数

/

unit A_Set_Card::outputone()

{

unit tem = top; //接过头

srand(time(0)); //设置随机种子

int nn = rand()%n; //在这副牌中剩余的所有牌里随机选一张

if (nn == 0)//恰好是第一张

{

if(tem==NULL)//若空

{

cout<<"空链表"<<endl;

return NULL;

}

top = tem->nextp;

n--;

return tem;

}

else//非第一张

{

for (int i=0; i<nn-1; i++) //tem往下移nn次

{

tem = tem->nextp;

}

if(tem==NULL)//若空

{

cout<<"空链表"<<endl;

return NULL;

}

else

{

unit pp = tem->nextp;//删除这一张

tem->nextp = tem->nextp->nextp;

n--;//记住牌数自减

return pp;

}

}

}

/

然后是排序函数,其实都挺简单,我就写到这吧,希望对你有所帮助

/

void A_Set_Card::sort()

{}

#endif

三菱PLC编程软件模拟运行步骤如下:

1、首先,我们需要在开始菜单中打开三菱PLC编程软件GX Developer:

2、然后,需要从工程菜单中创建新工程,并选择使用plc的系列及类型:

3、接着,需要编写一个简单的自锁程序,编写完毕后点击“程序变换”图标:

4、之后,运行仿真程序,这时点击“梯形图逻辑测试”图标,这时我们编写的程序将传送至“模拟PLC”:

5、传送完毕点击模拟窗口的“寄电器内存监视”然后从d出的对话框选择软元件“X”和“Y”,这时看到的是所有输入和输出软元件的仿真按钮:

6、最后点击停止按钮X1,这时Y0就被断开。这就是整个程序的仿真过程。通过仿真我们就可以判断程序是否正确,非常方便!

import javaawt;

import javaawtevent;

import javaxswing;

public class 计算器 extends JFrame implements ActionListener {

private final String[] KEYS = { "7", "8", "9", "÷", "sqrt", "4", "5", "6",

"×", "%", "1", "2", "3", "-", "1/x", "0", "+/-", "", "+", "=" };

private final String[] COMMAND = { "Backspace", "CE", "C" };

private final String[] M = { " ", "MC", "MR", "MS", "M+" };

private JButton keys[] = new JButton[KEYSlength];

private JButton commands[] = new JButton[COMMANDlength];

private JButton m[] = new JButton[Mlength];

private JTextField resultText = new JTextField();

private boolean firstDigit = true;

private double resultNum = 00;

private String operator = "=";

static double mr;// 记忆的数字

private boolean operateValidFlag = true;

JPanel panel[]=new JPanel[4];

public 计算器(){

super("计算器");

init();

setBackground(ColorLIGHT_GRAY);

setResizable(false);

setLocation(588, 250);

setSize(378,214);

setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); //窗口不能直接关闭

setVisible(true);

addWindowListener( new WindowAdapter() {

public void windowClosing(WindowEvent e){

if (JOptionPaneshowConfirmDialog(null,"确定退出 ", "提示",2)==0){

Systemexit(0);

}}});

}

private void init() {

setLayout(null);

for (int i = 0; i < 4; i++) {

panel[i]=new JPanel();

add(panel[i]);

}

panel[0]setLayout(new GridLayout(1,1,3,3));

panel[1]setLayout(new GridLayout(1,3,3,3));

panel[2]setLayout(new GridLayout(5,1,3,3));

panel[3]setLayout(new GridLayout(4,5,3,3));

resultTextsetHorizontalAlignment(JTextFieldRIGHT);

resultTextsetAlignmentX(50);

resultTextsetEditable(true);

resultTextsetFont(new Font("宋体",FontPLAIN,19));//设置字体

resultTextsetBackground(Colorwhite);

panel[0]add(resultText);

for (int i = 0; i < KEYSlength; i++) {

keys[i] = new JButton(KEYS[i]);

panel[3]add(keys[i]);

if (i%5-3==0){ keys[i]setForeground(Colorred); }

else{keys[i]setForeground(Colorblack);}

keys[i]setVisible(true);

keys[i]setFont(new Font(null,FontPLAIN,17));//设置字体

keys[i]addActionListener(this);

keys[i]setHorizontalAlignment(keys[i]CENTER);

keys[i]setBackground(new Color(255,236,233));

}

keys[4]setFont(new Font(null,FontPLAIN,13));//设置字体

keys[19]setForeground(Colorred);

for (int i = 0; i < COMMANDlength; i++) {

commands[i] = new JButton(COMMAND[i]);

panel[1]add(commands[i]);

commands[i]setForeground(Colorred);

commands[i]addActionListener(this);

}

commands[0]setFont(new Font(null,FontPLAIN,12));//设置字体

for (int i = 0; i < Mlength; i++) {

m[i] = new JButton(M[i]);

panel[2]add(m[i]);

m[i]setForeground(Colorred);

m[i]addActionListener(this);

}

panel[0]setBounds(2, 0, 370, 30);

panel[1]setBounds(74, 30, 298, 29);

panel[2]setBounds(2,30, 70, 150);

panel[3]setBounds(74,60, 300, 120);

validate();

}

public void actionPerformed(ActionEvent e) {

String label = egetActionCommand();

if (labelequals(COMMAND[0])){ //用户按了"Backspace"键

handleBackspace();

} else if (labelequals(COMMAND[1])) { //用户按了"CE"键

resultTextsetText("0");

} else if (labelequals(COMMAND[2])){ //用户按了"C"键

handleC();

} else if (labelequals(M[4])){ //用户按了"M+"键

mr=mr+DoublevalueOf(resultTextgetText())doubleValue();

if (mr==00){m[0]setText("");}

else {m[0]setText("M");}

} else if (labelequals(M[3])){ //用户按了"MS"键

mr=DoublevalueOf(resultTextgetText())doubleValue();

if (mr==00){m[0]setText("");}

} else if (labelequals(M[2])){ //用户按了"MR"键

resultTextsetText(""+mr);

} else if (labelequals(M[1])){ //用户按了"MC"键

mr=00;

m[0]setText("");

} else if (labelequals("sqrt")) { //平方根运算

resultNum = Mathsqrt(DoublevalueOf(resultTextgetText())doubleValue());

resultTextsetText(StringvalueOf(resultNum));

} else if (labelequals("%")){ //百分号运算,除以100

resultNum = DoublevalueOf(resultTextgetText())doubleValue() / 100;

resultTextsetText(StringvalueOf(resultNum));

} else if (labelequals("+/-")){ //正数负数运算

resultNum = DoublevalueOf(resultTextgetText())doubleValue() (-1);

resultTextsetText(StringvalueOf(resultNum));

} else if (labelequals("1/x")) { //倒数运算

resultNum=DoublevalueOf(resultTextgetText())doubleValue();

if (resultNum == 00){ // *** 作不合法

operateValidFlag = false;

resultTextsetText("零没有倒数");

} else {

resultNum = 1 / resultNum;

}

resultTextsetText(StringvalueOf(resultNum));

} else if ("0123456789"indexOf(label) >= 0) { //用户按了数字键或者小数点键

handleNumber(label);

} else { //用户按了运算符键

handleOperator(label);

}

}

private void handleBackspace() { // 处理Backspace键被按下的事件

String text = resultTextgetText();

int i = textlength();

if (i > 0) { //退格,将文本最后一个字符去掉

text = textsubstring(0, i - 1);

if (textlength() == 0) { //如果文本没有了内容,则初始化计算器的各种值

resultTextsetText("0");

firstDigit = true;

operator = "=";

} else { //显示新的文本

resultTextsetText(text);

}

}

}

private void handleNumber(String key) { // 处理数字键被按下的事件

if (firstDigit) { //输入的第一个数字

resultTextsetText(key);

} else if ((keyequals("")) && (resultTextgetText()indexOf("") < 0)){

//输入的是小数点,并且之前没有小数点,则将小数点附在结果文本框的后面

resultTextsetText(resultTextgetText() + "");

} else if (!keyequals("")) { //如果输入的不是小数点,则将数字附在结果文本框的后面

resultTextsetText(resultTextgetText() + key);

}

firstDigit = false; //以后输入的肯定不是第一个数字了

}

private void handleC() { //处理C键被按下的事件, 初始化计算器的各种值

resultTextsetText("0");

firstDigit = true;

operator = "=";

}

private void handleOperator(String key) { //处理运算符键被按下的事件

if (operatorequals("÷")) { //除法运算 ,如果当前结果文本框中的值等于0

if (getNumberFromText() == 00){ // *** 作不合法

operateValidFlag = false;

resultTextsetText("除数不能为零");

} else {

resultNum /= getNumberFromText();

}

} else if (operatorequals("+")){ //加法运算

resultNum += getNumberFromText();

} else if (operatorequals("-")){ //减法运算

resultNum -= getNumberFromText();

} else if (operatorequals("×")){ //乘法运算

resultNum = getNumberFromText();

} else if (operatorequals("=")){ //赋值运算

resultNum = getNumberFromText();

}

if (operateValidFlag) { //双精度浮点数的运算

long t1;

double t2;

t1 = (long) resultNum;

t2 = resultNum - t1;

if (t2 == 0) {

resultTextsetText(StringvalueOf(t1));

} else {

resultTextsetText(StringvalueOf(resultNum));

}

}

operator = key; //运算符等于用户按的按钮

firstDigit = true;

operateValidFlag = true;

}

private double getNumberFromText() { // 从结果文本框中获取数字

double result = 0;

try {

result = DoublevalueOf(resultTextgetText())doubleValue();

}

catch (NumberFormatException e){ }

return result;

}

public static void main(String args[]) {

new 计算器();

}

}

以上就是关于1.设计一个动物声音“模拟器”java程序,希望所设计的模拟器可以模拟许多动物的叫全部的内容,包括:1.设计一个动物声音“模拟器”java程序,希望所设计的模拟器可以模拟许多动物的叫、我要编一个matlab的模拟程序、用JAVA编写 程序功能:编写四个类模拟学员管理信息的信息输入和输出:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10634595.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存