package insu;
import java.util.ArrayList;
public class Customer {
static int lastid=100;
private String id;
private String idproof;
private String name;
private int age;
private String gender;
private String address;
Customer(){
}
public static int getLastid() {
return lastid;
}
public static void setLastid(int lastid) {
Customer.lastid = lastid;
}
public String getId() {
return id;
}
public void genId() {
++Customer.lastid;
id=""+Customer.getLastid();
if(name.length()>2)
id=name.substring(0, 3)+id;
else{
String tmp="";
for(int i=0;i<3-name.length();i++)
tmp=tmp+"0";
id=name+tmp+id;
}
}
public String getIdproof() {
return idproof;
}
public void setIdproof(String idproof) {
this.idproof = idproof;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
package insu;
import java.util.Date;
class CustomerPolicy {
int cpolicyid;
int policyid;
Date startDate;
Date endDate;
static int lastid=8000;
CustomerPolicy(){
cpolicyid=++CustomerPolicy.lastid;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public int getPolicyid() {
return policyid;
}
public void setPolicyid(int policyid) {
this.policyid = policyid;
}
public int getCpolicyid() {
return cpolicyid;
}
public void setCpolicyid(int cpolicyid) {
this.cpolicyid = cpolicyid;
}
}
package insu;
import java.util.ArrayList;
import java.util.Scanner;
public class Insurance {
public static void main(String args[]){
ArrayList<Customer> customers =new ArrayList<Customer>();
ArrayList<Policy> policy =new ArrayList<Policy>();
ArrayList<CustomerPolicy> cpolicy =new ArrayList<CustomerPolicy>();
ArrayList<Tag> tags =new ArrayList<Tag>();
Main sa=new Main();
Scanner s=new Scanner(System.in);
int ctr=0;
do{
System.out.println("Enter 1.Add a policy 2.Add a customer 3.Remove Customer 4.Tag a Policy 5.Display Tags 6.Search 7.Display Customers 8. Display Policy");
ctr=s.nextInt();s.nextLine();
switch(ctr){
case 1:
Policy p=sa.addPolicy();
if(p==null)
System.out.println("Invalid Input");
else
policy.add(p);
break;
case 2:
if(policy.size()>0){
Customer c=sa.addCustomer(cpolicy,tags,policy);
if(c==null)
System.out.println("Invalid Input");
else
customers.add(c);
}
else{
System.out.println("Please add policies first");
}
break;
case 3:
System.out.println("Enter customer id");
String cid=s.nextLine();boolean exist=false;
for(int i=0;i<customers.size();i++){
if(customers.get(i).getId().equals(cid)){
exist=true;
customers.remove(i);
for(int j=0;j<tags.size();j++)
if(tags.get(j).getCustomerid().equals(cid))
tags.remove(j);
}
if(!exist)
System.out.println("No such customer");
else
System.out.println("Customer deleted successfully");
}
break;
case 4:
Tag t=sa.tagPolicy(cpolicy,policy);
if(t!=null){
tags.add(t);
System.out.println("Tagged Successfully");
}
else
{
System.out.println("Invalid Input");
}
break;
case 5:
for(Tag t1:tags){
System.out.println("CustomerID:"+t1.getCustomerid()+"\t CustomerPolicyID:"+t1.getcPolicyid()+"\t PolicyID:"+sa.searchCustomerPolicy(t1.getcPolicyid(), cpolicy).getPolicyid());
}
break;
case 6:
sa.searchCustomer(customers);
break;
case 7:
for(Customer t1:customers){
System.out.println("CustomerID:"+t1.getId()+"\t Name:"+t1.getName());
}
break;
case 8:
System.out.println("===========Policy Details=========");
for(Policy t1:policy){
System.out.println(" Policy ID:"+t1.getId()+"\t Policy Name:"+t1.getName());
}
System.out.println("========Customer Policies==========");
for(CustomerPolicy t1:cpolicy){
System.out.println("Customer PolicyID:"+t1.getCpolicyid()+" Policy ID:"+t1.getPolicyid()+" StartDate:"+t1.getStartDate()+" End Date:"+t1.getEndDate());
}
break;
}
System.out.println("Do you want to continue ,Enter y or n");
if(s.nextLine().toLowerCase().equals("y"))
ctr=999;
}while(ctr==999);
}
}
package insu;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.Scanner;
public class Main {
Scanner s=new Scanner(System.in);
public Customer addCustomer( ArrayList<CustomerPolicy> cpl,ArrayList<Tag> tag,ArrayList<Policy> pol){
Customer c=new Customer();
try{
System.out.println("Enter your name");
String name=s.nextLine();
c.setName(name);
System.out.println("Enter idproof number");
String idproof=s.nextLine();
c.setIdproof(idproof);
System.out.println("Enter your age");
int age=s.nextInt();s.nextLine();
c.setAge(age);
System.out.println("Enter your address");
String address=s.nextLine();
c.setAddress(address);
System.out.println("Enter your gender");
String gender=s.nextLine();
c.setGender(gender);
c.genId();
//Adding policy
System.out.println("Enter policy id");
int policyid=s.nextInt();s.nextLine();
System.out.println("Enter start date dd-mm-yyyy");
CustomerPolicy cp=new CustomerPolicy();
String datep[]=s.nextLine().split("-");
int dateparts[]=new int[3];
for(int k=0;k<3;k++)
dateparts[k]=Integer.parseInt(datep[k]);
//Date parts will hold dateparts[0]=Day dateparts[1]=Month dateparts[2]=Year
cp.setStartDate(new Date(dateparts[2]-1901,dateparts[1],dateparts[0]));
cp.setPolicyid(policyid);
//Search Policy
Policy tmp=searchPolicy(policyid, pol);
if(tmp!=null){
Date tp=cp.getStartDate();
int months=tp.getMonth()+tmp.getTenure();
int years=months/12;
tp.setMonth(months-1);
tp.setYear(tp.getYear()+years);
System.out.println("Tenure:"+tmp.getTenure());
cp.setEndDate(tp);
System.out.println(cp.getEndDate());
cpl.add(cp);
//Adding tag
Tag tg=new Tag();
tg.setCustomerid(c.getId());
tg.setPolicyid(cp.getCpolicyid());
tag.add(tg);
}
else
{
System.out.println("Invalid Policy");
}
}
catch(Exception e){
return null;
}
return c;
}
public Customer searchCustomer(ArrayList<Customer>al ){
Customer c=null;
int ctr=0;
try{
System.out.println("Enter 1.By Name 2.By Id 3.Sorted Customers");
ctr=s.nextInt();s.nextLine();
switch(ctr){
case 1:
System.out.println("Enter name");
String name=s.nextLine();
for(int i=0;i<al.size();i++)
{
if(al.get(i).getName().equals(name))
c=al.get(i);
}
display(c);
break;
case 2:
System.out.println("Enter id");
String id=s.nextLine();
for(int i=0;i<al.size();i++)
{
if(al.get(i).getId().equals(id))
c=al.get(i);
}
display(c);
break;
case 3:
Collections.sort(al,new Comparator<Customer>(){
public int compare(Customer c1, Customer c2) {
return c1.getName().compareTo(c2.getName());
}
});
for(int i=0;i<al.size();i++)
display(al.get(i));
break;
}
}
catch(Exception e){
return null;
}
return c;
}
public void display(Customer c){
System.out.println("::::::Customer Details:::::::");
System.out.println("Id:"+c.getId());
System.out.println("Name:"+c.getName());
System.out.println("Age:"+c.getAge());
System.out.println("Gender:"+c.getGender());
System.out.println("Address:"+c.getAddress());
}
public Policy addPolicy(){
Policy c=new Policy();
try{
System.out.println("Enter policy name");
String name=s.nextLine();
c.setName(name);
System.out.println("Enter premium");
float premium=s.nextFloat();s.nextLine();
c.setPremium(premium);
System.out.println("Enter tenure");
int tenure=s.nextInt();s.nextLine();
c.setTenure(tenure);
}
catch(Exception e){
return null;
}
return c;
}
public Tag tagPolicy(ArrayList<CustomerPolicy> cpl,ArrayList<Policy> pol){
Tag t=new Tag();
try{
System.out.println("Enter customerid");
String cid=s.nextLine();
System.out.println("Enter policyId");
int pid=s.nextInt();s.nextLine();
CustomerPolicy cp=new CustomerPolicy();
cp.setPolicyid(pid);
System.out.println("Enter Policy start date: dd-mm-yyyy");
String datep[]=s.nextLine().split("-");
int dateparts[]=new int[3];
for(int k=0;k<3;k++)
dateparts[k]=Integer.parseInt(datep[k]);
//Date parts will hold dateparts[0]=Day dateparts[1]=Month dateparts[2]=Year
cp.setStartDate(new Date(dateparts[2]-1901,dateparts[1],dateparts[0]));//Year count starts from 1901
Policy pl=searchPolicy(pid, pol);
if(pl!=null){
Date tp=cp.getStartDate();
int months=tp.getMonth()+pl.getTenure();
int years=months/12;
tp.setMonth(months-1);//Months are 0 indexed
tp.setYear(tp.getYear()+years);
cp.setEndDate(tp);
System.out.println(cp.getEndDate());
cpl.add(cp);
t.setCustomerid(cid);
t.setPolicyid(cp.getCpolicyid());
}
}
catch(Exception e){return null;}
return t;
}
public Policy searchPolicy(int id,ArrayList<Policy> pl){
Policy p=null;
for(Policy p1:pl)
if(p1.getId()==id)
p=p1;
return p;
}
public CustomerPolicy searchCustomerPolicy(int id,ArrayList<CustomerPolicy> pl){
CustomerPolicy p=null;
for(CustomerPolicy p1:pl)
{
if(p1.getCpolicyid()==id)
p=p1;
}
return p;
}
}
package insu;
import java.util.Date;
public class Policy {
private String name;
private int id;
static int lastid=1000;
private int tenure;//inMonths
Policy(){
this.id=++lastid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getPremium() {
return premium;
}
public void setPremium(float premium) {
this.premium = premium;
}
private float premium;
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setTenure(int tenure) {
this.tenure = tenure;
}
public int getTenure() {
return tenure;
}
}
package insu;
class Tag{
String customerid;
int cpolicyid;
public String getCustomerid() {
return customerid;
}
public void setCustomerid(String customerid) {
this.customerid = customerid;
}
public int getcPolicyid() {
return cpolicyid;
}
public void setPolicyid(int policyid) {
this.cpolicyid = policyid;
}
}