Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  docket system
Language: C/C++
Code:
#include <stdio.h>
#include <stdlib.h>

struct Docket{
  int refNo;
  int employeeID;
  char incident[30];
  char caseSummary[20];
  char dateCreated[10];
};

struct Case{
  char dateCreated[7];
  char caseTime[4];
  char caseLocation[30];
  char caseSummary[150];
};

struct Witness {
  char name[15];
  char surname[30];
  char address[30];
};

struct Client{
  char name[15];
  char surname[20];
  char idNumber[15];
  int phoneNumber;
  char residentalAddress[50];
  char nextOfKinName[20];
  int nextOfKinNumber;
};

struct Login {
  char username[15];
  int password;
};


void menu(){
  // add Docket
  // add Case
  // add witness
  // add client
  // read dockets
  // search dockets
  // view witnesses
  // view dockets
  // view cases

  printf("---------------------Docket System------------\n\n");
  printf("====Dockets====\n");
  printf("1. New Docket\n");
  printf("2. View Docket\n");
  printf("3. Get Docket\n");

  printf("===Cases===\n");
  printf("4. New Case\n");
  printf("5. View Cases\n");

  printf("===Witness===\n");
  printf("6. New Witness\n");
  printf("7. View Witnesses\n");

  printf("====Clients====\n");
  printf("8. New Client\n");
  printf("9. View Clients\n" );

  printf("===System===\n");
  printf("10. Logout\n\n");

  int option;
  printf("Option: ");
  scanf("%d", &option);

  switch(option){
    case 1:
    addDocket();
    menu();
    break;
    case 2:
    readFile("dockets.txt");
    menu();
    break;
    case 3:
    searchDocket();
    menu();
    break;
    case 4:
    addCase();
    menu();
    break;
    case 5:
    readFile("cases.txt");
    menu();
    break;
    case 6:
    addWitness();
    menu();
    break;
    case 7:
    readFile("witnesses.txt"); // just print out the file
    menu();
    break;
    case 8:
    addClient();
    menu();
    break;
    case 9:
    readFile("clients.txt");
    menu();
    break;
    case 10:
    closing();
    break;

    default:
    printf("Invalid Option\n");
    break;  

  }
  // void readClients(){}
  void readWitnesses(){}
  // searchDocket(){}
  void readClients(){}





}


void FindWord(char *word , char *file){
   char line[1024] ;
   FILE* fp = fopen(file, "r") ;
   while (fgets(line , sizeof(line) , fp )!= NULL)
   {
      if (strstr(line , word )!= NULL)
      {
         printf("%s",line);
      }
   }
}

void addClient(){
  struct Client client;
  // char name[15];
  // char surname[20];
  // char idNumber[15];
  // int phoneNumber;
  // char residentalAddress[50];
  // char nextOfKinName[20];
  // int nextOfKinNumber;
  printf("Name \n");
  scanf("%s", &client.name);

  printf("Surname\n");
  scanf(" %s",&client.surname);

  printf("ID Number\n");
  scanf(" %s", &client.idNumber);

  printf("Phone\n");
  scanf(" %d", &client.phoneNumber);

  printf("Residental Address\n" );
  scanf(" %[^\n]s", &client.residentalAddress);

  printf("Next Of Kin\n");
  scanf(" %[^\n]s",&client.nextOfKinName);

  printf("Next Of Kin Phone Number\n");
  scanf(" %d", &client.nextOfKinNumber);

  FILE *fp = fopen("clients.txt", "a");
  fprintf(fp, "Name : %s\n", client.name);
  fprintf(fp, "Surname : %s\n", client.surname);
  fprintf(fp, "ID Number: %s\n", client.idNumber);
  fprintf(fp, "Phone: %d\n", client.phoneNumber);
  fprintf(fp, "Residential Address: %s\n", client.residentalAddress);
  fprintf(fp, "Next Of Kin: %s\n", client.nextOfKinName);
  fprintf(fp, "Next Of Kin Number: %d\n\n", client.nextOfKinNumber);
  fclose(fp);

  printf("Successfully Saved New Client -> %s %s\n", client.name, client.surname);
}
void login(){
  printf("\t\t-------------------Docket System Login--------------\n\n");
  struct Login loginCreds;
  printf("username: \n");
  scanf("%s", &loginCreds.username);

  printf("Password: \n");
  scanf("%d", &loginCreds.password);

  if (loginCreds.password!=1234){
    // wrong code
    printf("\t\t!!!!!!!You Entered The Wrong Password!!!!!\n");
    login();
  }else{
    // go to menu
    menu();
  }
}



int search(char * str)
{
    FILE *fp = fopen("dockets.txt", "r");
    FILE *fp1;
    fp1 = fopen("dockets.txt","a");
    char s[10],c;
    int len = strlen(str);
    int i = 0;
    int d;
    int seek = fseek(fp, 0, 0);
    c = fgetc(fp);
    while (c != EOF)
    {
        if (c == ' ' || c == '\n')
        {
            s[i] = '\0';
            i = 0;
            if (strcmp(s, str) == 0)
            {
                while (c = fgetc(fp) != '\n')
                {
                    fseek(fp, -2L, 1);
                    d = ftell(fp);
                }
                while ((c = fgetc(fp)) != '\n')
                {
                    fputc(c, fp1);
                }
            }
        }
        else
        {
            s[i] = c;
            i++;
        }
        c = fgetc(fp);
        // printf("%s\n", c);
    }
    return 1;
}

void closing(){
  printf("\t\t=!=!=!=!Exiting=!=!=!=!\n");
  exit(1);
}

void addWitness(){
  struct Witness witness;
  printf("-----New Witness------\n");
  printf("Name\n");
  scanf("%s", &witness.name);

  printf("Surname\n");
  scanf(" %s", &witness.surname);

  printf("Address\n");
  scanf(" %[^\n]s", &witness.address);

  printf("New Witness : %s %s\n", witness.name, witness.surname);

  FILE *fp = fopen("witnesses.txt", "a");
  fprintf(fp, "Name %s\n", witness.name);
  fprintf(fp, "Surname %s\n", witness.surname);
  fprintf(fp, "Address %s\n\n", witness.address);
  fclose(fp);


}
void readFile(char*str){
   FILE *fptr;
    
    char ch;
 
    
    
    /*  open the file for reading */
    fptr = fopen(str, "r");
    if (fptr == NULL)
    {
        printf("Cannot open file \n");
        exit(0);
    }
    ch = fgetc(fptr);
    while (ch != EOF)
    {
        printf ("%c", ch);
        ch = fgetc(fptr);
    }
    fclose(fptr);
}
void searchDocket();
void addCase(){
  // char dateCreated[7];
  // double caseTime;
  // char caseLocation[30];
  // char caseSummary[150];
  struct Case case1;
  printf("---------New Case----------\n\n");
  printf("Date:\n");
  scanf(" %s", &case1.dateCreated);

  printf("Case Time\n");
  scanf(" %s", &case1.caseTime);


  printf("Case Location\n");
  scanf(" %[^\n]s", &case1.caseLocation);

  printf("Case Summary\n" );
  scanf(" %[^\n]s", &case1.caseSummary);



  // save to file
  FILE *fp = fopen("cases.txt", "a");

  fprintf(fp, "Date: %s\n", case1.dateCreated);
  fprintf(fp, "Time: %s\n", case1.caseTime);
  fprintf(fp, "Location: %s\n", case1.caseLocation);
  fprintf(fp, "Case Summary %s\n\n", case1.caseSummary);
  fclose(fp);

  printf("\nNew Case Added \n");
  printf("Date: %s\n", case1.dateCreated);

}
void searchCase();
void readCases(){}
void readWitnesses(){}
void readClients(){}
void searchDocket(){
    char searchKey[20];
    printf("Enter Search Keyword: \n");
    scanf("%s", &searchKey);
    FindWord(searchKey, "dockets.txt");
}


void addDocket(){
  // add docket
  // get info

  // int refNo;
  // char dateCreated[10];
  // int employeeID;
  // char incident[30];
  // char caseSummary[20];
  // char dateCreated[10];

  struct Docket docket;
  printf("---------New Docket----------\n\n");
  printf("Ref No\n");
  scanf("%d", &docket.refNo);

  printf("Date Created\n");
  scanf(" %s", &docket.dateCreated);

  printf("Employee ID\n");
  scanf(" %d", &docket.employeeID);

  printf("Incident\n");
  scanf(" %[^\n]s", &docket.incident);

  printf("Case Summary\n" );
  scanf(" %[^\n]s", &docket.caseSummary);



  // save to file
  FILE *fp = fopen("dockets.txt", "a");

  fprintf(fp, "Reference Number: %d\n", docket.refNo);
  fprintf(fp, "Date Created: %s\n", docket.dateCreated);
  fprintf(fp, "Employee ID: %d\n", docket.employeeID);
  fprintf(fp, "Incident: %s\n", docket.incident);
  fprintf(fp, "Case Summary %s\n\n", docket.caseSummary);
  fclose(fp);

  printf("Added Docket with Reference Number %d \n", docket.refNo);
}





void main(){
  // addDocket();
  login();
  return 0;
}
Comments: