A program calculating 24 points

xiaoxiao2021-03-06  34

Using system; class twentyfourpoint {private char [] card = new char [4]; private char [] tempsortcard = new char [4]; private char [] sortcard = new char [96]; private char [] Symbol = {' ',' - ',' * ',' / '}; private char [] symbolSortCard = new char [448]; private char [] tempSymbolSortCard = new char [3]; private expressionValue expressionValue = new expressionValue (); public Void setCard (Char [] card) {this.card = card;} public void sortcard () {int counter = 0; for (int i = 0; i <4; i ) {tempsortcard [0] = Card [i] For (int J = 0; j <4; j ) {IF (i! = J) {tempsortcard [1] = card [j]; for (int K = 0; k <4; k ) {IF (k ! = i && k! = j) {TempsortCard [2] = card [k]; for (int m = 0; M <4; M ) {if (m! = i &&m! = j &&m! = k ) {TEMPSORTCARD [3] = card [m]; for (int N = counter, p = 0; n

}}}} Public void addnumtosymbol () {INT Countera = 0; int counterB = 0; int counterc = 0; char [] temp = new char [4]; char [] Tempexpression = new char [20]; char [] TempexpressionNospace = new char [20]; char [] tempexpressionii; for (int i = 0; i

tempExpressionNoSpace = CompactSpace (tempExpression); expressionValue.SetExpression (tempExpressionNoSpace); if (expressionValue.Value () == 24) PrintExpression (tempExpressionNoSpace); ClearExpression (tempExpressionNoSpace);

tempExpressionII = (char []) tempExpression.Clone (); tempExpressionII [0] = '('; tempExpressionII [6] = ')'; tempExpressionII [8] = '('; tempExpressionII [14] = ')'; tempExpressionNoSpace = CompactSpace (tempExpressionII); expressionValue.SetExpression (tempExpressionNoSpace); if (expressionValue.Value () == 24) PrintExpression (tempExpressionNoSpace); ClearExpression (tempExpressionNoSpace); ClearExpression (tempExpressionII); tempExpressionII = (char []) tempExpression.Clone ( ); tempExpressionII [0] = '('; tempExpressionII [6] = ')'; tempExpressionNoSpace = CompactSpace (tempExpressionII); expressionValue.SetExpression (tempExpressionNoSpace); if (expressionValue.Value () == 24) PrintExpression (tempExpressionNoSpace); ClearExpression (tempExpressionNoSpace); ClearExpression (tempExpressionII); tempExpressionII = (char []) tempExpression.Clone (); tempExpressionII [0] = '('; tempExpressionII [10] = ')'; tempExpressionNoSpace = CompactSpa ce (tempExpressionII); expressionValue.SetExpression (tempExpressionNoSpace); if (expressionValue.Value () == 24) PrintExpression (tempExpressionNoSpace); ClearExpression (tempExpressionNoSpace); ClearExpression (tempExpressionII);

tempExpressionII = (char []) tempExpression.Clone (); tempExpressionII [4] = '('; tempExpressionII [10] = ')'; tempExpressionNoSpace = CompactSpace (tempExpressionII); expressionValue.SetExpression (tempExpressionNoSpace); if (expressionValue.Value () == 24) PrintExpression (tempExpressionNoSpace); ClearExpression (tempExpressionNoSpace); ClearExpression (tempExpressionII); tempExpressionII = (char []) tempExpression.Clone (); tempExpressionII [4] = '('; tempExpressionII [14] = ') '; tempExpressionNoSpace = CompactSpace (tempExpressionII); expressionValue.SetExpression (tempExpressionNoSpace); if (expressionValue.Value () == 24) PrintExpression (tempExpressionNoSpace); ClearExpression (tempExpressionNoSpace); ClearExpression (tempExpressionII);

tempExpressionII = (char []) tempExpression.Clone (); tempExpressionII [8] = '('; tempExpressionII [14] = ')'; tempExpressionNoSpace = CompactSpace (tempExpressionII); expressionValue.SetExpression (tempExpressionNoSpace); if (expressionValue.Value () == 24) PrintExpression (tempExpressionNoSpace); ClearExpression (tempExpressionNoSpace); ClearExpression (tempExpressionII); counterC = counterC 7; if (counterC == 448) counterC = 0;}}} private void ClearExpression (char [] expression) {For (int i = 0; i

Public class char [] list = new char [10]; private int sp = 10; public void push (char a) {if (sp! = 0) {sp-; list [sp] = a;} Else {Console.Writeline ("the charStack is full"; console.read ();}} public char pop () {if (sp! = 10) {sp ; return list [sp - 1];}

Else {Console.Writeline ("THE Charstack IS Empty"); Return 'E';}} public char checktop () {if (SP! = 10) Return List [sp]; else {console.writeline ("The ccharstack is Empty "); return 'e';}}}

Public class int4tack {private int = new int [10]; private int sp = 10; public void push (int a) {if (sp! = 0) {sp-; list [sp] = a;} Else Console.writeline ("The intstack is full");} public int pop () {if (sp! = 10) {sp ; return list [sp - 1];

Else {Console.writeline ("THE INTSTACK IS EMPTY"); return -1;}} public int checktop () {if (sp! = 10) Return List [sp]; else {console.writeline ("THE CINTSTACK IS EMPTY "); Return -1;}}}}

public class ExpressionValue {private IntStack opd = new IntStack (); private CharStack opr = new CharStack (); private char [] expression = new char [15]; public void SetExpression (char [] expression) {this.expression = expression; } Public int value () {char letter; opr.push ('#'); for (int i = 0; i! = '$'; I ) {letter = expression [i]; if ((int) letter> = (int) '0' && (int) letter <= (int) '9') {if (int) letter == (int) '0') OPD.PUSH (10); else opd.push (Convert) .Toint32 (linkter.tostring ()))))); Continue;} else if (letter == '#' && opr.checktop () == '#') Break; else if (letter == '(') {OPR. Push (letter); continue;} else if (letter == ')') {IF (opr.checktop ()! = '(') {INT M, N; N = OPD.POP (); m = OPD. POP (); opd.push (Operate (m, opd (), n)); i-;} else {opr.pop (); continue;}} else if (priority)> Priority (OPR) .Checktop ()) {opr.push (letter); Continue;} else if (Priority (letter) <= Priority (opr.checktop ())) {INT M, N; N = OPD.POP (); m = opd.pop (); opd.push (OPERATE (M, Opr.Pop (), N)) I--; continue;}} opd.pop (); return opd.pop ();} private int priority (char c) {INT P = 0; switch (c) {case '*': case '/' : p = 2; Break; Case ' ': Case '-': p = 1; Break; Case '(': p = 0; Break; Case '#': P = -1; Break;} Return P; } Private int operate (int OPDA, CHAR OPRC, INT OPDB) {

Switch (OPRC) {CASE ' ': Return (OPDA OPDB); Case '-': Return (OPDA - OPDB); Case '*': Return (OPDA * OPDB);

Case '/': IF (OPDB! = 0 && (OPDA% OPDB == 0)) Return (OPDA / OPDB); Else Return-10000000;

DEFAULT: RETURN-20000000;}}}

Public class run {public static void main () {twentyfourpoint a = new twentyfourpoint (); char [] card = new char [4]; string infut = "; console.writeline (" <-------- --------------------- This program is used to do 24 points --------------------- --------> "); Do {Console.Writeline (" Please enter 4 numbers from 1 to 10: "); for (int i = 0; i

}

转载请注明原文地址:https://www.9cbs.com/read-61027.html

New Post(0)