/*******************************************
    Author: Hualin Li
    Name: The header file for set cpp
    Descrition: This is the header file for simple set class
*******************************************/

#include<iostream>
#include<set>


class myset
{

  public:
//  std::set<int> mySet;
  
    myset()
  {   
    totalNum=0;
    numOfElem=0;
    arraySet=new int[100];
  } 
 
  std::set<int> makeSet()
  {
    std::set<int>mySet(arraySet,arraySet+totalNum);

    return mySet;
  }

  bool isEmpty()
  {
    if(numOfElem==0)
      return true;
    else
      return false;
  }
  
  int size()
  {
//   makeSet();
   std::set<int>mySet(arraySet,arraySet+totalNum);
   numOfElem=mySet.size();
   return numOfElem;
  }
  
  void clear()
  {
   arraySet=new int[100];
   totalNum=0;
   numOfElem=0;
  }
 
  void add(int m)
  {
    arraySet[totalNum]=m;
    totalNum++;
   // makeSet();
  }

  bool contains(int n)
  {
    bool doesContain=false;
    for(int i=0;i<totalNum;i++)
    {
      //arraySet[i] is the same as *(arraySet+i)
      if(arraySet[i]==n)
       doesContain=true;
    } 
    return doesContain;
  }
 

int totalNum;
int numOfElem;
int *arraySet;


};


/*******************************************
    Author: Hualin Li
    Name: The main fucntion for set cpp
    Descrition: This is the main function for simple set class
*******************************************/

#include"myset.h"
#include<iostream>
#include<fstream>

using namespace std;
ofstream outfile;

void menu()
{
   cout<<"***********************"<<endl;
   cout<<"I - Add element"<<endl;
   cout<<"S - Search"<<endl;
   cout<<"B - Size of the set"<<endl;
   cout<<"P - Print the set"<<endl;
   cout<<"E - Empty set or not"<<endl;
   cout<<"D - Total number of the array"<<endl;
   cout<<"A - Print the array"<<endl;
   cout<<"C - Clear the set"<<endl;
   cout<<"Q - Quit"<<endl;
   cout<<"**********************"<<endl<<endl;
   cout<<"Please input your option:"<<endl;

   outfile<<"***********************"<<endl;
   outfile<<"I - Add element"<<endl;
   outfile<<"S - Search"<<endl;
   outfile<<"B - Size of the set"<<endl;
   outfile<<"P - Print the set"<<endl;
   outfile<<"E - Empty set or not"<<endl;
   outfile<<"D - Total number of the array"<<endl;
   outfile<<"A - Print the array"<<endl;
   outfile<<"C - Clear the set"<<endl;
   outfile<<"Q - Quit"<<endl;
   outfile<<"**********************"<<endl<<endl;
   outfile<<"Please input your option:"<<endl;

}

int main()
{
char choice;
outfile.open("myset.output");
myset mySet;

menu();
cin>>choice;

while(choice!='Q' && choice!='q')
{
  switch(choice){
  case 'I':
  case 'i':
   {
     outfile<<"I"<<endl;
     int temp;
     cout<<"please input the number to add"<<endl;
     outfile<<"please input the number to add"<<endl;
     cin>>temp;
     outfile<<temp<<endl;
     mySet.add(temp);
     break;
   }
  case 'S':
  case 's':
   {
    outfile<<"S"<<endl; 
    int temp2;
    cout<<"Please input the number to search"<<endl;
    outfile<<"Please input the number to search"<<endl;
    cin>>temp2;
    outfile<<temp2;
    if(mySet.contains(temp2))
     {
      cout<<"The number "<<temp2<<" exists!"<<endl;
      outfile<<"The number "<<temp2<<" exists!"<<endl;
     }
    else
     {
     cout<<"The number "<<temp2<<"doesn't exist in the set!"<<endl;
     outfile<<"The number "<<temp2<<"doesn't exist in the set!"<<endl;
     }
     break;
   }
   case 'B':
   case 'b':
    outfile<<"B";
    cout<<"The size of the set is "<<mySet.size()<<endl;
    outfile<<"The size of the set is "<<mySet.size()<<endl;
    break;
   case 'P':
   case 'p':
    {
  outfile<<"P"<<endl;   
  for(std::set::iterator it=mySet.makeSet().begin();it!=mySet.makeSet().end();++it)
     {cout<<" "<<*it;
      outfile<<" "<<*it;}
     cout<<""<<endl;
     outfile<<""<<endl;
     break;
    }
    case 'E':
    case 'e':
     {
      outfile<<"E"<<endl; 
      if(mySet.isEmpty())
      { cout<<"The set is empty."<<endl;
        outfile<<"The set is empty."<<endl;
      }
      else
       {
       cout<<"The set is not empty."<<endl;
       outfile<<"The set is not empty."<<endl;
       }
       break;
     }
    case 'D':
    case 'd':
      {
      outfile<<"D"<<endl;
      cout<<"The size of array is "<<mySet.totalNum<<endl;
      outfile<<"The size of array is "<<mySet.totalNum<<endl;
      break;
      }
    case 'A':
    case 'a':
     {
      outfile<<"A"<<endl;
      for(int i=0;i<mySet.totalNum;i++)
       {
       cout<<mySet.arraySet[i]<<","; 
       outfile<<mySet.arraySet[i]<<","; 
       }
      cout<<endl;
      outfile<<endl;
      break;
     }
    case 'C':
    case 'c':
     {
     outfile<<"C"<<endl;
     mySet.clear();
     cout<<"The set is cleared already."<<endl;
     outfile<<"The set is cleared already."<<endl;
     }
  case 'Q':
  case 'q':
    outfile<<"Q"<<endl;
    cout<<"Thank you for using simple set."<<endl;
    break;
  default:
   outfile<<choice<<endl;
   cout<<"Input is not valid. Please input *valid* option."<<endl;
   outfile<<"Input is not valid. Please input *valid* option."<<endl;
  }
   menu();
   cin>>choice;
}

return 0;
}

  
/*******************************************
    Author: Hualin Li
    Name: The main fucntion for set in JAVA
    Descrition: This is the JAVA function for simple set class
*******************************************/


import java.util.HashSet;
import java.util.Set;  
import java.util.Scanner;
import java.io.PrintWriter;
import java.io.*;
import java.io.BufferedWriter;

 
public class MySet {    
    public int numOfElem;
    public int totalNum;
    public int[] arraySet=new int[100];
    Set<Integer> set=new HashSet<Integer>();

    public MySet()
    {
        numOfElem=0;
        totalNum=0;
        //int[] arraySet=new int[100];          
    }

    public void makeSet()
    {
      this.set=new HashSet<Integer>();
      for(int i=0;i<totalNum;i++)
          set.add(arraySet[i]);
    }

    public int size()
    {
        makeSet();
        numOfElem=set.size();
        return numOfElem;
    }

    public boolean isEmpty()
    {
        if(numOfElem==0)
            return true;
        else
            return false;
    }

    public void clear()
    {
        this.arraySet=new int[100];
        numOfElem=0;
        totalNum=0;
        makeSet();
    }

    public boolean contains(int n)
    {
        boolean isContains=false;
        for(int i=0;i<totalNum;i++)
            {
              if(arraySet[i]==n)
                isContains=true;
            }
        return isContains;
    }

    public void add(int n)
    {   
        arraySet[totalNum]=n;
        makeSet();
        totalNum++;
    }
    
    public String toString()
    {
        String str="";
        for(int i=0;i<totalNum;i++)
        str= str+arraySet[i]+" ";       
        return str;
    }  

      public static void menu()
    {
    try{PrintWriter printWriter=new PrintWriter(new BufferedWriter(new FileWriter("MySet.output", true)));
  
     System.out.println("***********************");
     System.out.println("I - Add element");
     System.out.println("S - Search");
     System.out.println("B - Size of the set");
     System.out.println("P - Print the set");
     System.out.println("E - Empty set or not");
     System.out.println("D - Total number of the array");
     System.out.println("A - Print the array");
     System.out.println("C - Clear the set"); 
     System.out.println("Q - Quit");
     System.out.println("**********************");
     System.out.println();
     System.out.println("Please input your option:");

     printWriter.println("***********************");
     printWriter.println("I - Add element");
     printWriter.println("S - Search");
     printWriter.println("B - Size of the set");
     printWriter.println("P - Print the set");
     printWriter.println("E - Empty set or not");
     printWriter.println("D - Total number of the array");
     printWriter.println("A - Print the array");
     printWriter.println("C - Clear the set");
     printWriter.println("Q - Quit");
     printWriter.println("**********************");
     printWriter.println();
     printWriter.println("Please input your option:");
     printWriter.close();
     }catch(IOException e){}
    }


    public static void main(String[] args) {
   try{
    PrintWriter printWriter=new PrintWriter(new BufferedWriter(new FileWriter("MySet.output", true)));
        MySet simpleSet =new MySet();
        char input;
        menu();
        Scanner keyboard=new Scanner(System.in);
        input=keyboard.next().charAt(0);
        
        while(input!='Q' && input!='q')
        {
          switch(input){
          case 'I':
          case 'i':
          {
          System.out.println("please input the number to add");
          printWriter.println("i");
          printWriter.println("please input the number to add");
          int addNum=keyboard.nextInt();
          printWriter.println(addNum);
          simpleSet.add(addNum);
            break;
          }
          case 'B':
          case 'b':
          {
          printWriter.println("B");
          System.out.println("The number of element in the set is "+simpleSet.size());
          printWriter.println("The number of element in the set is "+simpleSet.size());
          break;
          }     
          case 'P':
          case 'p':
          {
          printWriter.println("P");
          System.out.println("The set now is "+simpleSet.set);
          printWriter.println("The set now is "+simpleSet.set);
          break;
          }          
          case 'E':
          case 'e':
          {
           printWriter.println("E");
           if(simpleSet.isEmpty())
           {System.out.println("The set is empty");
           printWriter.println("The set is empty");}
           else
          { System.out.println("The set is not empty");
           printWriter.println("The set is not empty");}
          break;
          }
          case 'S':
          case 's':
          {
           printWriter.println("S");
           System.out.println("Please input the number to search");
           printWriter.println("Please input the number to search");
           int searchNum=keyboard.nextInt();
           printWriter.println(searchNum);
           if(simpleSet.contains(searchNum))
             {System.out.println("The number "+searchNum +" exits!"); 
             printWriter.println("The number "+searchNum +" exits!"); }
           else
            { System.out.println("The number "+searchNum +" doesn't exist.");
             printWriter.println("The number "+searchNum +" doesn't exist.");}
           break;
          }
          case 'D':
          case 'd':
          {
           printWriter.println("D");
           System.out.println("The size of array is "+simpleSet.totalNum);
           printWriter.println("The size of array is "+simpleSet.totalNum);
           break;
          }
          case 'A':
          case 'a':
          {
          printWriter.println("A");
          System.out.println(simpleSet.toString());
          printWriter.println(simpleSet.toString());
          break;
          }
          case 'C':
          case 'c':
          {
          printWriter.println("C");
          simpleSet.clear();
          break;
          } 
          case 'q':
          case 'Q':
          {
            printWriter.println("Q");
            System.out.println("Thank you for using simple set");
            printWriter.println("Thank you for using simple set");
            break;
          }
          default:
            printWriter.println(input);
            System.out.println("Input is not valid. Please re-input");
            printWriter.println("Input is not valid. Please re-input");
          }
          System.out.println("Please input your option:");
          printWriter.println("Please input your option:");
//          menu();
          input=keyboard.next().charAt(0);
       // printWriter.close();
        }
          printWriter.close();
         }catch(IOException e){ }
    }   
}



  
回到主页 回到目录