Thursday, 7 June 2012

C++ Program to perform: Matricies-add,subtract & more

C++ Program to perform: Matricies-add,subtract & more


#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<iomanip.h>

   void menu();
   void determan();
   void multi();
   void add();
   void subtract();
   void exit();
   void suberror1();
   void suberror2();
   void adderror1();
   void adderror2();
   void multierror2();
   void multierror1();
   void equation();
   void equationerror1();
   void equationerror2();



   int main()
{  cout<<"\n\n\n\n\n";
   cout<<setw(40)<<"*************\n";
   cout<<setw(40)<<"| MATRACIES |\n";
   cout<<setw(40)<<"*************\n";
   cout<<setw(41)<<"*************\n\n";
   cout<<setw(48)<<"Press any key to continue...";
   getch();
   clrscr();
   menu();


   return 0;
}


   void menu()      //This is the main menu.
   {
   int todo;

   cout<<setw(20)<<"Main Menu\n\n";
   cout<<"1-Find the dertermanants of a 3*3\n";
   cout<<"2-Multiply two 3*3\n";
   cout<<"3-Add two 3*3\n";
   cout<<"4-Subtract two 3*3\n";
   cout<<"5-Solve an equation with 3 variables\n";
   cout<<"6-Exit Program\n\n";
   cout<<"What do you want to do Today?-";
   cin>>todo;
   clrscr();
   if (todo==1)
   determan();
   if (todo==2)
   multi();
   if (todo==3)
   add();
   if (todo==4)
   subtract();
   if (todo==5)
   equation();
   if (todo==7)
   exit();

    }

   void determan()      //This Figures out Determanants
   {
   int back,back2;
   double a1,a2,a3,b1,b2,b3,c1,c2,c3,determ;
   cout<<setw(20)<<"| a1 b1 c1 |\n";
   cout<<setw(20)<<"| a2 b2 c2 |\n";
   cout<<setw(21)<<"| a3 b3 c3 |\n\n";
   cout<<"Enter a1-";
   cin>>a1;
   cout<<endl;
   cout<<"Enter a2-";
   cin>>a2;
   cout<<endl;
   cout<<"Enter a3-";
   cin>>a3;
   cout<<endl;
   cout<<"Enter b1-";
   cin>>b1;
   cout<<endl;
   cout<<"Enter b2-";
   cin>>b2;
   cout<<endl;
   cout<<"Enter b3-";
   cin>>b3;
   cout<<endl;
   cout<<"Enter c1-";
   cin>>c1;
   cout<<endl;
   cout<<"Enter c2-";
   cin>>c2;
   cout<<endl;
   cout<<"Enter c3-";
   cin>>c3;
   cout<<endl;
   clrscr();
   determ=(a1*b2*c3)+(a2*b3*c1)+(a3*b1*c2)-(c1*b2*a3)-(c2*b3*a1)-(c3*b1*a2);
   if (determ==0)
   cout<<"Impossible to solve, the Determanant of a matrix cannot equal 0"<<endl;
   cout<<"                   | "<<a1<<" "<<b1<<" "<<c1<<" |\n";
   cout<<"The Determanant of | "<<a2<<" "<<b2<<" "<<c2<<" |="<<determ<<endl;
   cout<<"                   | "<<a3<<" "<<b3<<" "<<c3<<" |\n";
   cout<<endl;
   cout<<"Go Back to Main Menu Press 1 Go back to Determanants press 2-";
   cin>>back;
   clrscr();
   if (back==1)
   menu();
   if (back==2)
   determan();
   if (back>2)
   cout<<"Error Please only press 1 or 2."<<endl;
   cout<<endl;
   cout<<"Go Back to Main Menu Press 1 Go back to Determanants press 2-";
   cin>>back;
   clrscr();
   if (back2==1)
   menu();
   if (back2==2)
   determan();
   if (back2>2)
   cout<<"Error";
   }

   void multi()      //This Multiplies two matriceis
   {
   int a,b;
   double a1,a2,a3,b1,b2,b3,c1,c2,c3,d1,d2,d3,e1,e2,e3,f1,f2,f3,w1,w2,w3,w4,w5,w6,w7,w8,w9;
   cout<<setw(40)<<"| a1 b1 c1 |    | d1 e1 f1 |"<<endl;
   cout<<setw(40)<<"| a2 b2 c2 | *  | d2 e2 f2 |"<<endl;
   cout<<setw(40)<<"| a3 b3 c3 |    | d3 e3 f3 |"<<endl;
   cout<<endl;
   cout<<"Enter Value for a1- ";
   cin>>a1;
   cout<<"Enter Value for a2- ";
   cin>>a2;
   cout<<"Enter Value for a3- ";
   cin>>a3;
   cout<<"Enter Value for b1- ";
   cin>>b1;
   cout<<"Enter Value for b2- ";
   cin>>b2;
   cout<<"Enter Value for b3- ";
   cin>>b3;
   cout<<"Enter Value for c1- ";
   cin>>c1;
   cout<<"Enter Value for c2- ";
   cin>>c2;
   cout<<"Enter Value for c3- ";
   cin>>c3;
   cout<<"Enter Value for d1- ";
   cin>>d1;
   cout<<"Enter Value for d2- ";
   cin>>d2;
   cout<<"Enter Value for d3- ";
   cin>>d3;
   cout<<"Enter Value for e1- ";
   cin>>e1;
   cout<<"Enter Value for e2- ";
   cin>>e2;
   cout<<"Enter Value for e3- ";
   cin>>e3;
   cout<<"Enter Value for f1- ";
   cin>>f1;
   cout<<"Enter Value for f2- ";
   cin>>f2;
   cout<<"Enter Value for f3- ";
   cin>>f3;
   w1=(a1*d1)+(b1*d2)+(c1*d3);
   w2=(a2*d1)+(b2*d2)+(c2*d3);
   w3=(a3*d1)+(b3*d2)+(c3*d3);
   w4=(a1*e1)+(b1*e2)+(c1*e3);
   w5=(a2*e1)+(b2*e2)+(c2*e3);
   w6=(a3*e1)+(b3*e2)+(c3*e3);
   w7=(a1*f1)+(b1*f2)+(c1*f3);
   w8=(a2*f1)+(b2*f2)+(c2*f3);
   w9=(a3*f1)+(b3*f2)+(c3*f3);
   clrscr();
   cout<<"| "<<a1<<" "<<b1<<" "<<c1<<" |    | "<<d1<<" "<<e1<<" "<<f1<<" |  | "<<w1<<" "<<w4<<" "<<w7<<" |"<<endl;
   cout<<"| "<<a2<<" "<<b2<<" "<<c2<<" | *  | "<<d2<<" "<<e2<<" "<<f2<<" |= | "<<w2<<" "<<w5<<" "<<w8<<" |"<<endl;
   cout<<"| "<<a3<<" "<<b3<<" "<<c3<<" |    | "<<d3<<" "<<e3<<" "<<f3<<" |  | "<<w3<<" "<<w6<<" "<<w9<<" |"<<endl;
   cout<<endl;
   cout<<"Go back to Multiplication press 1 go back to Main Menu press 2- ";
   cin>>a;
   clrscr();
   if (a==1)
   multi();
    if (a==2)
   menu();
   if (a>2)
   multierror1();
   }

   void add()      //This adds two matriceis
   {
   int a,b;
   double a1,a2,a3,b1,b2,b3,c1,c2,c3,d1,d2,d3,e1,e2,e3,f1,f2,f3,w1,w2,w3,w4,w5,w6,w7,w8,w9;
   cout<<setw(40)<<"| a1 b1 c1 |    | d1 e1 f1 |"<<endl;
   cout<<setw(40)<<"| a2 b2 c2 | +  | d2 e2 f2 |"<<endl;
   cout<<setw(40)<<"| a3 b3 c3 |    | d3 e3 f3 |"<<endl;
   cout<<endl;
   cout<<"Enter Value for a1- ";
   cin>>a1;
   cout<<"Enter Value for a2- ";
   cin>>a2;
   cout<<"Enter Value for a3- ";
   cin>>a3;
   cout<<"Enter Value for b1- ";
   cin>>b1;
   cout<<"Enter Value for b2- ";
   cin>>b2;
   cout<<"Enter Value for b3- ";
   cin>>b3;
   cout<<"Enter Value for c1- ";
   cin>>c1;
   cout<<"Enter Value for c2- ";
   cin>>c2;
   cout<<"Enter Value for c3- ";
   cin>>c3;
   cout<<"Enter Value for d1- ";
   cin>>d1;
   cout<<"Enter Value for d2- ";
   cin>>d2;
   cout<<"Enter Value for d3- ";
   cin>>d3;
   cout<<"Enter Value for e1- ";
   cin>>e1;
   cout<<"Enter Value for e2- ";
   cin>>e2;
   cout<<"Enter Value for e3- ";
   cin>>e3;
   cout<<"Enter Value for f1- ";
   cin>>f1;
   cout<<"Enter Value for f2- ";
   cin>>f2;
   cout<<"Enter Value for f3- ";
   cin>>f3;
   clrscr();
   w1=a1+d1;
   w2=a2+d2;
   w3=a3+d3;
   w4=b1+e1;
   w5=b2+e2;
   w6=b3+e3;
   w7=c1+f1;
   w8=c2+f2;
   w9=c3+f3;
   clrscr();
   cout<<"| "<<a1<<" "<<b1<<" "<<c1<<" |    | "<<d1<<" "<<e1<<" "<<f1<<" |  | "<<w1<<" "<<w4<<" "<<w7<<" |"<<endl;
   cout<<"| "<<a2<<" "<<b2<<" "<<c2<<" | +  | "<<d2<<" "<<e2<<" "<<f2<<" |= | "<<w2<<" "<<w5<<" "<<w8<<" |"<<endl;
   cout<<"| "<<a3<<" "<<b3<<" "<<c3<<" |    | "<<d3<<" "<<e3<<" "<<f3<<" |  | "<<w3<<" "<<w6<<" "<<w9<<" |"<<endl;
   cout<<endl;
   cout<<"Go back to Addition press 1 go back to Main Menu press 2- ";
   cin>>a;
   clrscr();
   if (a==1)
   add();
    if (a==2)
   menu();
   if (a>2)
   adderror1();
   }

   void subtract()      //This Subtracts two matriceis
   {   int a;
   double a1,a2,a3,b1,b2,b3,c1,c2,c3,d1,d2,d3,e1,e2,e3,f1,f2,f3,w1,w2,w3,w4,w5,w6,w7,w8,w9;
   cout<<setw(40)<<"| a1 b1 c1 |    | d1 e1 f1 |"<<endl;
   cout<<setw(40)<<"| a2 b2 c2 | -  | d2 e2 f2 |"<<endl;
   cout<<setw(40)<<"| a3 b3 c3 |    | d3 e3 f3 |"<<endl;
   cout<<endl;
   cout<<"Enter Value for a1- ";
   cin>>a1;
   cout<<"Enter Value for a2- ";
   cin>>a2;
   cout<<"Enter Value for a3- ";
   cin>>a3;
   cout<<"Enter Value for b1- ";
   cin>>b1;
   cout<<"Enter Value for b2- ";
   cin>>b2;
   cout<<"Enter Value for b3- ";
   cin>>b3;
   cout<<"Enter Value for c1- ";
   cin>>c1;
   cout<<"Enter Value for c2- ";
   cin>>c2;
   cout<<"Enter Value for c3- ";
   cin>>c3;
   cout<<"Enter Value for d1- ";
   cin>>d1;
   cout<<"Enter Value for d2- ";
   cin>>d2;
   cout<<"Enter Value for d3- ";
   cin>>d3;
   cout<<"Enter Value for e1- ";
   cin>>e1;
   cout<<"Enter Value for e2- ";
   cin>>e2;
   cout<<"Enter Value for e3- ";
   cin>>e3;
   cout<<"Enter Value for f1- ";
   cin>>f1;
   cout<<"Enter Value for f2- ";
   cin>>f2;
   cout<<"Enter Value for f3- ";
   cin>>f3;
   clrscr();
   w1=a1-d1;
   w2=a2-d2;
   w3=a3-d3;
   w4=b1-e1;
   w5=b2-e2;
   w6=b3-e3;
   w7=c1-f1;
   w8=c2-f2;
   w9=c3-f3;
   clrscr();
   cout<<"| "<<a1<<" "<<b1<<" "<<c1<<" |    | "<<d1<<" "<<e1<<" "<<f1<<" |  | "<<w1<<" "<<w4<<" "<<w7<<" |"<<endl;
   cout<<"| "<<a2<<" "<<b2<<" "<<c2<<" | -  | "<<d2<<" "<<e2<<" "<<f2<<" |= | "<<w2<<" "<<w5<<" "<<w8<<" |"<<endl;
   cout<<"| "<<a3<<" "<<b3<<" "<<c3<<" |    | "<<d3<<" "<<e3<<" "<<f3<<" |  | "<<w3<<" "<<w6<<" "<<w9<<" |"<<endl;
   cout<<endl;
   cout<<"Go back to Subtraction press 1 go back to Main Menu press 2- ";
   cin>>a;
   clrscr();
   if (a==1)
   subtract();
    if (a==2)
   menu();
   if (a<2)
   suberror1();
   if (a=='a')
   suberror1();
   }
   void exit()      //This exits the program
   {
   char *yes;
   cout<<"Thank you for usin my Matrix program.  "<<endl;
   cout<<endl;
   cout<<"Are you sure you want to quit?(y/n)- ";
   cin>>yes;
   clrscr();
   if (yes=="n")
   menu();
   }
   void suberror1()
   {
   int c;
   cout<<"Error Please only press 1 or 2."<<endl;
   cout<<endl;
   cout<<"Go back to Subtraction press 1 go back to Main Menu press 2- ";
   cin>>c;
   clrscr();
   if (c==1)
   subtract();
   if(c==2)
   menu();
   if (c>2)
   suberror2();
   }
   void suberror2()
   {
   int d;
   cout<<"Error Please only press 1 or 2."<<endl;
   cout<<endl;
   cout<<"Go back to Subtraction press 1 go back to Main Menu press 2- ";
   cin>>d;
   clrscr();
   if (d==1)
   subtract();
   if(d==2)
   menu();
   if (d>2)
   suberror1();
   }
   void adderror1()
   {
   int c;
   cout<<"Error Please only press 1 or 2."<<endl;
   cout<<endl;
   cout<<"Go back to Addition press 1 go back to Main Menu press 2- ";
   cin>>c;
   clrscr();
   if (c==1)
   add();
   if(c==2)
   menu();
   if (c>2)
   adderror2();
   }
   void adderror2()
   {
   int d;
   cout<<"Error Please only press 1 or 2.\n";
   cout<<endl;
   cout<<"Go back to Addition press 1 go back to Main Menu press 2- ";
   cin>>d;
   clrscr();
   if (d==1)
   add();
   if(d==2)
   menu();
   if (d>2)
   adderror1();
   }
   void multierror1()
   {
   int c;
   cout<<"Error Please only press 1 or 2.\n";
   cout<<endl;
   cout<<"Go back to Multiplication press 1 go back to Main Menu press 2- ";
   cin>>c;
   clrscr();
   if (c==1)
   multi();
   if(c==2)
   menu();
   if (c>2)
   multierror2();
   }
   void multierror2()
   {
   int d;
   cout<<"Error Please only press 1 or 2.\n";
   cout<<endl;
   cout<<"Go back to Multiplication press 1 go back to Main Menu press 2- ";
   cin>>d;
   clrscr();
   if (d==1)
   multi();
   if(d==2)
   menu();
   if (d>2)
   multierror1();
   }

   void equation()
   {

   double a1,a2,a3,b1,b2,b3,c1,c2,c3,d1,d2,d3,x,y,z,m;
   cout<<setw(30)<<"A1x+B1y+C1z=D1"<<endl;
   cout<<setw(30)<<"A2x+B2y+C2z=D2"<<endl;
   cout<<setw(30)<<"A3x+B3y+C3z=D3"<<endl;
   cout<<endl;
   cout<<"Enter the value for A1-";
   cin>>a1;
   cout<<"Enter the value for A2-";
   cin>>a2;
   cout<<"Enter the value for A3-";
   cin>>a3;
   cout<<"Enter the value for B1-";
   cin>>b1;
   cout<<"Enter the value for B2-";
   cin>>b2;
   cout<<"Enter the value for B3-";
   cin>>b3;
   cout<<"Enter the value for C1-";
   cin>>c1;
   cout<<"Enter the value for C2-";
   cin>>c2;
   cout<<"Enter the value for C3-";
   cin>>c3;
   cout<<"Enter the value for D1-";
   cin>>d1;
   cout<<"Enter the value for D2-";
   cin>>d2;
   cout<<"Enter the value for D3-";
   cin>>d3;
   clrscr();
   x=((d1*b2*c3)+(d2*b3*c1)+(d3*b1*c2)-(c1*b2*d3)-(c2*b3*d1)-(c3*b1*d2))/((a1*b2*c3)+(a2*b3*c1)+(a3*b1*c2)-(c1*b2*a3)-(c2*b3*a1)-(c3*b1*a2));
   y=((a1*d2*c3)+(a2*d3*c1)+(a3*d1*c2)-(c1*d2*a3)-(c2*d3*a1)-(c3*d1*a2))/((a1*b2*c3)+(a2*b3*c1)+(a3*b1*c2)-(c1*b2*a3)-(c2*b3*a1)-(c3*b1*a2));
   z=((a1*b2*d3)+(a2*b3*d1)+(a3*b1*d2)-(d1*b2*a3)-(d2*b3*a1)-(d3*b1*a2))/((a1*b2*c3)+(a2*b3*c1)+(a3*b1*c2)-(c1*b2*a3)-(c2*b3*a1)-(c3*b1*a2));
   cout<<"In the Equations:\n";
   cout<<a1<<"x+"<<b1<<"y+"<<c1<<"z="<<d1<<endl;
   cout<<a2<<"x+"<<b2<<"y+"<<c2<<"z="<<d2<<endl;
   cout<<a3<<"x+"<<b3<<"y+"<<c3<<"z="<<d3;
   cout<<"\n\n";
   cout<<"X="<<x<<", Y="<<y<<", Z="<<z;
   cout<<"\n\n";
   cout<<"If you want to solve more equations press 1, if you want to go back\n";
   cout<<" to the Main Menu press 2-";
   cin>>m;
   clrscr();
   if (m==1)
   equation();
   if (m==2)
   menu();
   if (m>2)
   equationerror1();
   }
      void equationerror1()
   {
   int c;
   cout<<"Error Please only press 1 or 2.\n";
   cout<<endl;
   cout<<"If you want to solve more equations press 1, if you want to go back\n";
   cout<<" to the Main Menu press 2-";
   cin>>c;
   clrscr();
   if (c==1)
   equation();
   if(c==2)
   menu();
   if (c>2)
   equationerror2();
   }
   void equationerror2()
   {
   int d;
   cout<<"Error Please only press 1 or 2.\n";
   cout<<endl;
   cout<<"If you want to solve more equations press 1, if you want to go back\n";
   cout<<" to the Main Menu press 2-";
   cin>>d;
   clrscr();
   if (d==1)
   equation();
   if(d==2)
   menu();
   if (d>2)
   equationerror1();
   }

0 comments:

Post a Comment

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More