Program which created for this company which runs on Command Line Interface. It
could handle using the main menu.
No ---|--- Item ---|--- Daily Rental ---|--- Deposit Value
1 ---|--- Electric Drill - --|--- 800 ---|--- 15000
2 ---|--- Water Pump ---|--- 500 ---|--- 7500
3 ---|--- Electric Jigsaw ---|--- 400 ---|--- 8000
main CLI interface of the program
______________________________________
How it works.
- This program is a platform independent program. So, it could run on any operating system which has Java installed.
- It runs on command line interface.
- It saves data in files and retrieves data from them.
- Program asks a choice as a numerical input from the keyboard. As mentioned
- here, we can choose the appropriate value as our need.
How could we use the program
• Choice 1 brings the user to the Hiring System.
◦ We can add hire details via the program.
◦ Program will calculate the deposit value needed and the default deposit as well as the return value from the deposit.
◦ Transactions will be saved in a file for future use.
• Choice 2 brings the user to the Daily report.
◦ User could view the daily transactions of the company.
◦ User need to enter appropriate date on the YYYYMMDD format.
◦ System will automatically show every transaction which done in particular day.
• Choice 3 brings the user to the History of the hires of individual customer.
◦ User could easily find the hiring history of a customer using the customer ID.
◦ User need to enter appropriate customer ID in to the system.
◦ System will automatically show every transaction which done by particular customer.
• Choice 4 brings the user to the History of the hires of individual equipment.
◦ User could easily find the hiring history of an equipment using the equipment ID.
◦ User need to enter appropriate Equipment ID in to the system.
◦ System will automatically show a history of the hirings which done on the particular equipment.
• Choice 5 brings the user to the History of the hires of the Company
◦ User could easily find the full hiring history of the Company.
• Choice 6 brings the user to the Customer database.
◦ User could easily find the full list of the Customer database.
• Choice 7 provides the facility to add Customers to the system.
◦ User could easily add Customers to the system.
◦ User need to add the customers name and the email address. Customer ID and registered date will be added automatically to the system.
◦ It will saved in a file for future use.
• Choice 8 provides the facility to add Equipments to the system.
◦ User could easily add a Equipments to the system.
◦ User need to add Equipment ID, Name, daily rental and the Deposit value.
◦ It will saved in a file for future use.
//////////////////////////////////////////////////////////////////////////////////////////////////
// //
// //
// hiringSystem //
// //
// K.W.Roshan Herath //
// //
// //
// //
// //
// //
//______________________________________________________________________________________________//
// created on opnSUSE 11.0 with //
// java version "1.6.0_06" //
// Java(TM) SE Runtime Environment (build 1.6.0_06-b02) //
// Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode) //
// //
//////////////////////////////////////////////////////////////////////////////////////////////////
import java.util.*;
import java.io.*;
import java.lang.*;
import java.lang.String.*;
class hiringSystem
{
private InputStreamReader ir=new InputStreamReader(System.in);
private BufferedReader br;
private FileOutputStream fos;
private PrintStream ps;
private FileReader frs;
//function to check the existence for a file
private boolean checkFile(String filename)
{
File myFile=new File(filename);
boolean b=myFile.exists();
return b;
}
//////////////////////////////////////////////////////////////////////////////////////////////////
// function to get date //
//////////////////////////////////////////////////////////////////////////////////////////////////
private String fdate()
{
String date;
int month,day,year;
GregorianCalendar calendr;
calendr=new GregorianCalendar();
day=calendr.get(calendr.DATE);
month=calendr.get(calendr.MONTH);
month+=1;//to add january as 1 instead of 0
year=calendr.get(calendr.YEAR);
date = year +""+ month +""+ day;
return date;
}
//////////////////////////////////////////////////////////////////////////////////////////////////
// function to make a hire //
//////////////////////////////////////////////////////////////////////////////////////////////////
private void hire()throws IOException
{
//////////////////////////////////////////////////////////////////
/* String chkcustID,chkcustName,chkemail,chks,chkdateRegd;
long datenow,duration,chkdateReg;
String cline[]=new String[5];
frs=new FileReader("ITE1101As2OctE091041007Customers.txt");
br=new BufferedReader(frs);
while((chks=br.readLine()) != null)
{
cline=chks.split(",");
chkcustID=cline[0];
chkcustName=cline[1];
chkemail=cline[2];
chkdateRegd=cline[3];
}
datenow=(long)fdate();
chkdateReg=(long)chkdateRegd;
duration=datenow-chkdateReg;
*/
//////////////////////////////////////////////////
String custID,datehired,msg,s="y";
String equipID,cuID;
int days,type;
double deposit=0,deposit1=0,rental,returnval;
while(s.equals("y")) {
try{
br=new BufferedReader(ir);
System.out.println("\nEnter Equipment Type");
System.out.println("\n1 FOR ELECTRIC DRILL");
System.out.println("2 FOR WATER PUMP");
System.out.println("3 FOR ELECTRIC JIGSAW ");
System.out.print("\nEnter Equipment Type 1,2,3: ");
type=Integer.parseInt(br.readLine());
System.out.print("\nEnter Equipment ID: ");
equipID=br.readLine();
System.out.print("\nEnter Customer ID: ");
cuID=custID=br.readLine();
System.out.print("\nEnter no of days hired for: ");
days=Integer.parseInt(br.readLine());
datehired=fdate();
System.out.print("\n registered date :"+datehired+"\n\n");
br=new BufferedReader(ir);
if(type==1)
{ deposit=800*days;if(deposit<=15000) deposit1=15000; else deposit1=deposit;} else if(type==2) { deposit=500*days;if(deposit<=15000) deposit1=7500; else deposit1=deposit;} else if(type==3) { deposit=400*days; if(deposit<=15000) deposit1=8000; else deposit1=deposit;} System.out.println("\ndeposit must : "+deposit1); System.out.println("\ndeposit need : "+deposit); returnval=deposit1-deposit; System.out.println("\nretrun value must : "+returnval); fos=new FileOutputStream("ITE1101As2OctE091041007Transaction.txt",true); ps=new PrintStream(fos); ps.println(equipID+","+custID+","+datehired+","+days+","+deposit1+","+deposit+","+returnval); fos.close(); System.out.println("Hire successfull"); } catch(Exception ex) { System.out.println("Error in accepting specifications..."); } } } ////////////////////////////////////////////////////////////////////////////////////////////////// // to view daily report // ////////////////////////////////////////////////////////////////////////////////////////////////// private void dailyReport()throws IOException { String equipID,custID,datehired,days,deposit1,deposit,returnval,s,searchDate; String cline[]=new String[7]; InputStreamReader Ir=new InputStreamReader(System.in); BufferedReader Br=new BufferedReader(Ir); System.out.print("\nEnter date YYYYMMDD: "); searchDate=Br.readLine(); try { frs=new FileReader("ITE1101As2OctE091041007Transaction.txt"); br=new BufferedReader(frs); System.out.println("daily report for : "+searchDate); System.out.println("Equip \tby \thired \t\tforDays \tdeposit\tpayable\treturn"); System.out.println("----------------------------------------------"); while((s=br.readLine()) != null) { cline=s.split(","); equipID=cline[0]; custID=cline[1]; datehired=cline[2]; days=cline[3]; deposit1=cline[4]; deposit=cline[5]; returnval=cline[6]; if(datehired.equals(searchDate)){ System.out.println(datehired+"\t"+equipID+"\t"+custID+"\t"+days+"\t\t"+deposit1+"\t"+deposit+"\t"+returnval); } }} catch(Exception ex) { System.out.println("Some exceptions occured..."); System.out.println("Could not generate the Customer report...!"); } } ////////////////////////////////////////////////////////////////////////////////////////////////// // to view hire history for individual customer // ////////////////////////////////////////////////////////////////////////////////////////////////// private void indCust()throws IOException { String equipID,custID,datehired,days,deposit1,deposit,returnval,s,customerID; String cline[]=new String[7]; InputStreamReader Ir=new InputStreamReader(System.in); BufferedReader Br=new BufferedReader(Ir); System.out.print("\nEnter Customer ID: "); customerID=Br.readLine(); try { frs=new FileReader("ITE1101As2OctE091041007Transaction.txt"); br=new BufferedReader(frs); System.out.println("Hire history for : "+customerID); System.out.println("Equip \tby \thired \t\tforDays \tdeposit\tpayable\treturn"); System.out.println("----------------------------------------------"); while((s=br.readLine()) != null) { cline=s.split(","); equipID=cline[0]; custID=cline[1]; datehired=cline[2]; days=cline[3]; deposit1=cline[4]; deposit=cline[5]; returnval=cline[6]; if(custID.equals(customerID)){ System.out.println(custID+"\t"+equipID+"\t"+datehired+"\t"+days+"\t\t"+deposit1+"\t"+deposit+"\t"+returnval); } }} catch(Exception ex) { System.out.println("Some exceptions occured..."); System.out.println("Could not generate the Customer report...!"); } } ////////////////////////////////////////////////////////////////////////////////////////////////// // to view hire history for equipments // ////////////////////////////////////////////////////////////////////////////////////////////////// private void indEquip()throws IOException { String equipID,custID,datehired,days,deposit1,deposit,returnval,s,equipmentID; String cline[]=new String[7]; InputStreamReader Ir=new InputStreamReader(System.in); BufferedReader Br=new BufferedReader(Ir); System.out.print("\nEnter Equipment ID: "); equipmentID=Br.readLine(); try { frs=new FileReader("ITE1101As2OctE091041007Transaction.txt"); br=new BufferedReader(frs); System.out.println("Hire history for : "+equipmentID); System.out.println("Equip \tby \thired \t\tforDays \tdeposit\tpayable\treturn"); System.out.println("----------------------------------------------"); while((s=br.readLine()) != null) { cline=s.split(","); equipID=cline[0]; custID=cline[1]; datehired=cline[2]; days=cline[3]; deposit1=cline[4]; deposit=cline[5]; returnval=cline[6]; if(equipID.equals(equipmentID)){ System.out.println(equipID+"\t"+custID+"\t"+datehired+"\t"+days+"\t\t"+deposit1+"\t"+deposit+"\t"+returnval); } }} catch(Exception ex) { System.out.println("Some exceptions occured..."); System.out.println("Could not generate the Customer report...!"); } } ////////////////////////////////////////////////////////////////////////////////////////////////// // displayReport() // ////////////////////////////////////////////////////////////////////////////////////////////////// private void displayReport() { String equipID,custID,datehired,days,deposit1,deposit,returnval,s; String cline[]=new String[7]; try { frs=new FileReader("ITE1101As2OctE091041007Transaction.txt"); br=new BufferedReader(frs); System.out.println("Equip \tby \thired \t\tforDays \tdeposit\tpayable\treturn"); System.out.println("----------------------------------------------"); while((s=br.readLine()) != null) { cline=s.split(","); equipID=cline[0]; custID=cline[1]; datehired=cline[2]; days=cline[3]; deposit1=cline[4]; deposit=cline[5]; returnval=cline[6]; System.out.println(equipID+"\t"+custID+"\t"+datehired+"\t"+days+"\t\t"+deposit1+"\t"+deposit+"\t"+returnval); } } catch(Exception ex) { System.out.println("Some exceptions occured..."); System.out.println("Could not generate the daily transaction report...!"); } } ////////////////////////////////////////////////////////////////////////////////////////////////// // to view customer details // ////////////////////////////////////////////////////////////////////////////////////////////////// private void viewCust() { String custID,custName,email,dateRegd,s; String cline[]=new String[4]; try { frs=new FileReader("ITE1101As2OctE091041007Customers.txt"); br=new BufferedReader(frs); System.out.println("Customer ID \tCustomer Name \temail \t\tDate registered "); System.out.println("----------------------------------------------"); while((s=br.readLine()) != null) { cline=s.split(","); custID=cline[0]; custName=cline[1]; email=cline[2]; dateRegd=cline[3]; System.out.println(custID+"\t\t"+custName+"\t\t\t"+email+"\t"+dateRegd); } } catch(Exception ex) { System.out.println("Some exceptions occured..."); System.out.println("Could not generate the Customer report...!"); } } ////////////////////////////////////////////////////////////////////////////////////////////////// // function to add a customer // ////////////////////////////////////////////////////////////////////////////////////////////////// //function for auto-generating the customer id private String generate_id() { String id=" "; String thisLine; String[] fullText = new String[200]; String[] lastLine=new String[5]; int counter=0,nid=0,l=0,z=0; boolean b=checkFile("ITE1101As2OctE091041007Customers.txt"); if(b==false) { id="00001"; } else { try { frs=new FileReader("ITE1101As2OctE091041007Customers.txt"); br=new BufferedReader(frs); while((thisLine=br.readLine()) != null) { counter=counter+1; fullText[counter] = thisLine; } frs.close(); lastLine=fullText[counter].split(","); nid=Integer.parseInt(lastLine[0]); nid=nid+1; l=(String.valueOf(nid)).length(); z=5-l; for(int i=1;i<=z;i++) { id=id+"0"; } id=id+String.valueOf(nid); id=id.substring(1); } catch(Exception ex) { System.out.println("Could not generate the Customer ID...!"); } } return id; } //function to add new Customer private void addCustomer() { String desc; String cust,email,regd; String id; try { id=generate_id(); System.out.print("\n Customer ID :"+id+"\n"); br=new BufferedReader(ir); System.out.print("\n Customer Name : "); cust=br.readLine(); System.out.print("\n Email : "); email=br.readLine(); regd=fdate(); System.out.print("\n registered date :"+regd+"\n\n"); br=new BufferedReader(ir); fos=new FileOutputStream("ITE1101As2OctE091041007Customers.txt",true); ps=new PrintStream(fos); ps.println(id+","+cust+","+email+","+regd); fos.close(); System.out.println("Successfully added one Customer..."); } catch(Exception ex) { System.out.println("Error in accepting Customer specifications..."); } } ////////////////////////////////////////////////////////////////////////////////////////////////// // function to add an Equipment // ////////////////////////////////////////////////////////////////////////////////////////////////// private boolean checkFile1(String filename) { File myFile1=new File(filename); boolean b1=myFile1.exists(); return b1; } boolean b1=checkFile1("ITE1101As2OctE091041007Equipments.txt"); //function to add new equipment private void addEquipment() { String equip; double drent=0; double deposit=0; String id; int availability=1; try { br=new BufferedReader(ir); System.out.print("\n Equipment ID :"); id=br.readLine(); System.out.print("\n Equipment Name : "); equip=br.readLine(); System.out.print("\n Daily rental :"); drent=Double.parseDouble(br.readLine()); System.out.print("\n Deposit :"); deposit=Double.parseDouble(br.readLine()); fos=new FileOutputStream("ITE1101As2OctE091041007Equipments.txt",true); ps=new PrintStream(fos); ps.println(id+","+equip+","+drent+","+availability+","+deposit); fos.close(); System.out.println("Successfully added one Equipment"); } catch(Exception ex) { System.out.println("Error in accepting specifications..."); } } ////////////////////////////////////////////////////////////////////////////////////////////////// // HELP // ////////////////////////////////////////////////////////////////////////////////////////////////// /*private void help() { System.out.println(" HIRING SYSTEM HELP "); }*/ ////////////////////////////////////////////////////////////////////////////////////////////////// // MAIN Method // ////////////////////////////////////////////////////////////////////////////////////////////////// public static void main(String args[]) throws IOException { hiringSystem inv=new hiringSystem(); int ch=0; String s; InputStreamReader ir=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(ir); System.out.println("\n\n\n"); System.out.println("--------------------------------------------------"); System.out.println(" EquipHire Pvt. Ltd "); System.out.println(" උපකරණ කුලියට දීම "); System.out.println("--------------------------------------------------\n"); System.out.println("1. HIRE AN EQUIPMENT"); System.out.println("2. TO VIEW THE DAILY REPORT"); System.out.println("3. TO VIEW HIRE HISTORY OF A CUSTOMER"); System.out.println("4. TO VIEW HIRE HISTORY OF AN EQUIPMENT"); System.out.println("5. VIEW FULL HIRING REPORT"); System.out.println("6. VIEW ALL CUSTOMERS"); System.out.println("7. ADD NEW CUSTOMER"); System.out.println("8. ADD AN EQUIPMENT"); System.out.println("---------------------------------"); System.out.println("9. Exit"); begin: while(ch!=9) { System.out.print("\n"); System.out.print("\n Enter a choice and Press ENTER to continue[1-9]:"); ch=Integer.parseInt(br.readLine()); if(ch>9||ch<1)
{
System.out.println("This doesn't appear to be a valid option...!");
continue begin;
}
////////////////////////////////////////////////////////////////////////////////////////////
if(ch==1)
{
s="y";
while(s.equals("y")||s.equals("Y"))
{
inv.hire();
System.out.print("\n Hire another[y/n]:");
s=br.readLine();
}
}
////////////////////////////////////////////////////////////////////////////////////////////
else
if(ch==2)
{
s="y";
while(s.equals("y")||s.equals("Y"))
{
inv.dailyReport();
System.out.print("\n View again ?[y/n]:");
s=br.readLine();
}
}
////////////////////////////////////////////////////////////////////////////////////////////
else
if(ch==3)
{
s="y";
while(s.equals("y")||s.equals("Y"))
{
inv.indCust();
System.out.print("\n View again ?[y/n]:");
s=br.readLine();
}
}
///////////////////////////////////////////////////////////////////////////////////////////
else
if(ch==4)
{
s="y";
while(s.equals("y")||s.equals("Y"))
{
inv.indEquip();
System.out.print("\n View again ?[y/n]:");
s=br.readLine();
}
}
////////////////////////////////////////////////////////////////////////////////////
else
if(ch==5)
{
inv.displayReport();
}
/////////////////////////////////////////////////////////////////////////////////////
else
if(ch==6)
{
s="y";
while(s.equals("y")||s.equals("Y"))
{
inv.viewCust();
System.out.print("\n View again ?[y/n]:");
s=br.readLine();
}
}
////////////////////////////////////////////////////////////////////////////////////////
else
if(ch==7)
{
s="y";
while(s.equals("y")||s.equals("Y"))
{
inv.addCustomer();
System.out.print("\n Add another[y/n]:");
s=br.readLine();
}
continue begin;
}
////////////////////////////////////////////////////////////////////////////////////////
else
if(ch==8)
{
s="y";
while(s.equals("y")||s.equals("Y"))
{
inv.addEquipment();
System.out.print("\n Add another[y/n]:");
s=br.readLine();
}
}
////////////////////////////////////////////////////////////////////////////////////////
}
System.out.println("Thanks for using this program...!");
}
}
__________________________________________________________________________________
- there are some errors in my program.
- it needs 3 text files to store data.
- before add a customer, it should have atlest 00000 as the1st data in the customer file.
- can hire w/o registering as a customer.
- can hire equipment which isn't in the equipment file.
- cant find the equipment is available to hire or not.
- .cant calculate delays.
there are some errors in my program.
ReplyDelete1. it needs 3 text files to store data.
2.before add a customer, it should have atlest 00000 as the1st data in the customer file.
3.can hire w/o registering as a customer.
4.can hire equipment which isn't in the equipment file.
5.cant find the equipment is available to hire or not.
6.cant calculate delays.
i'l try to solve these problems as i get free time from my studies. please help me if you can.