Advertisement
Ghislain_Mike

Stock System Project

Apr 22nd, 2019
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.13 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. // #include <windows.h>
  4.  
  5. struct MY_DATE {
  6.     int DAY, MONTH, YEAR;
  7. };
  8.  
  9. struct MY_PRODUCT {
  10.     char NAME[10];
  11.     int PRICE;
  12.     struct MY_DATE DATE; // TODO: delete DATE
  13. };
  14.  
  15. struct STOCK {
  16.     struct MY_PRODUCT PRODUCT;
  17.     int QUANTITY;
  18.     struct MY_DATE DATE;
  19. };
  20.  
  21. struct MY_PRODUCT add_product() {
  22.     system("@cls||clear"); // system("cls");
  23.     puts("+---------------------+");
  24.     puts("| Product information |");
  25.     puts("+---------------------+");
  26.  
  27.     struct MY_PRODUCT NEW_PRODUCT;
  28.  
  29.     printf(" Name: ");
  30.     scanf("%s", NEW_PRODUCT.NAME);
  31.  
  32.     printf(" Price: ");
  33.     scanf("%d", &NEW_PRODUCT.PRICE);
  34.  
  35.     puts("\n Expiry Date ");
  36.     printf(" Day: ");
  37.     scanf("%d", &NEW_PRODUCT.DATE.DAY);
  38.     printf(" Month: ");
  39.     scanf("%d", &NEW_PRODUCT.DATE.MONTH);
  40.     printf(" Year: ");
  41.     scanf("%d", &NEW_PRODUCT.DATE.YEAR);
  42.  
  43.     return NEW_PRODUCT;
  44. }
  45.  
  46. struct STOCK add_stock() {
  47.     system("@cls||clear"); // system("cls");
  48.     puts("+---------------------+");
  49.     puts("| Stock information |");
  50.     puts("+---------------------+");
  51.  
  52.     struct STOCK NEW_STOCK;
  53.  
  54.     printf(" Name: ");
  55.     scanf("%s", NEW_STOCK.PRODUCT.NAME);
  56.  
  57.     printf(" Price: ");
  58.     scanf("%d", &NEW_STOCK.PRODUCT.PRICE);
  59.  
  60.     printf(" Quantity: ");
  61.     scanf("%d", &NEW_STOCK.QUANTITY);
  62.  
  63.     puts("\n Expiry Date ");
  64.     printf(" Day: ");
  65.     scanf("%d", &NEW_STOCK.PRODUCT.DATE.DAY);
  66.     printf(" Month: ");
  67.     scanf("%d", &NEW_STOCK.PRODUCT.DATE.MONTH);
  68.     printf(" Year: ");
  69.     scanf("%d", &NEW_STOCK.PRODUCT.DATE.YEAR);
  70.  
  71.     return NEW_STOCK;
  72. }
  73.  
  74. void save_product(struct MY_PRODUCT NEW_PRODUCT, int FILE_CHOICE) {
  75.     FILE * MY_FILE;
  76.  
  77.     if(FILE_CHOICE == 1) MY_FILE = fopen("product.txt","a+");
  78.  
  79.     if (FILE_CHOICE == 2) MY_FILE = fopen("temporaly-product.txt","a+");
  80.  
  81.     fprintf(MY_FILE,"%s\t%d\t%d\t%d\t%d\n", NEW_PRODUCT.NAME, NEW_PRODUCT.PRICE,
  82.             NEW_PRODUCT.DATE.DAY, NEW_PRODUCT.DATE.MONTH, NEW_PRODUCT.DATE.YEAR);
  83. }
  84.  
  85. void save_stock(struct STOCK NEW_STOCK, int FILE_CHOICE) {
  86.     FILE * MY_FILE;
  87.  
  88.     if(FILE_CHOICE == 1) MY_FILE = fopen("stock.txt","a+");
  89.  
  90.     if (FILE_CHOICE == 2) MY_FILE = fopen("temporaly-stock.txt","a+");
  91.  
  92.     fprintf(MY_FILE,"%s\t%d\t%d\t%d\t%d\t%d\n", NEW_STOCK.PRODUCT.NAME, NEW_STOCK.PRODUCT.PRICE,
  93.             NEW_STOCK.QUANTITY, NEW_STOCK.PRODUCT.DATE.DAY, NEW_STOCK.PRODUCT.DATE.MONTH,
  94.             NEW_STOCK.PRODUCT.DATE.YEAR);
  95. }
  96.  
  97. void read_product() {
  98.     struct MY_PRODUCT THIS_PRODUCT;
  99.     FILE * MY_FILE = fopen("product.txt","r");
  100.  
  101.     system("@cls||clear"); // system("cls");
  102.     puts("+-----------------------------+");
  103.     puts("|     Product information     |");
  104.     puts("+-------+-------+-------------+");
  105.     puts("| Name  | Price | Expiry Date |");
  106.     puts("+-------+-------+-------------+");
  107.  
  108.     if(MY_FILE != NULL) {
  109.         while(!feof(MY_FILE)) {
  110.             fscanf(MY_FILE,"%s\t%d\t%d\t%d\t%d", THIS_PRODUCT.NAME, &THIS_PRODUCT.PRICE,
  111.                    &THIS_PRODUCT.DATE.DAY, &THIS_PRODUCT.DATE.MONTH, &THIS_PRODUCT.DATE.YEAR);
  112.  
  113.             printf("| %s\t| %d\t| %d/%d/%d   |\n", THIS_PRODUCT.NAME, THIS_PRODUCT.PRICE,
  114.                    THIS_PRODUCT.DATE.DAY, THIS_PRODUCT.DATE.MONTH, THIS_PRODUCT.DATE.YEAR);
  115.         }
  116.     }
  117.  
  118.     puts("+-------+-------+-------------+");
  119. }
  120.  
  121. void read_stock() {
  122.     struct STOCK THIS_STOCK;
  123.     FILE * MY_FILE = fopen("stock.txt","r");
  124.  
  125.     system("@cls||clear"); // system("cls");
  126.     puts("+----------------------------------------+");
  127.     puts("|             Stock information          |");
  128.     puts("+-------+-------+----------+-------------+");
  129.     puts("| Name  | Price | Quantity | Expiry Date |");
  130.     puts("+-------+-------+----------+-------------+");
  131.  
  132.     if(MY_FILE != NULL) {
  133.         while(!feof(MY_FILE)) {
  134.             fscanf(MY_FILE,"%s\t%d\t%d\t%d\t%d\t%d", THIS_STOCK.PRODUCT.NAME,
  135.                    &THIS_STOCK.PRODUCT.PRICE, &THIS_STOCK.QUANTITY,
  136.                    &THIS_STOCK.PRODUCT.DATE.DAY, &THIS_STOCK.PRODUCT.DATE.MONTH,
  137.                    &THIS_STOCK.PRODUCT.DATE.YEAR);
  138.  
  139.             printf("| %s\t| %d\t| %d\t| %d/%d/%d   |\n", THIS_STOCK.PRODUCT.NAME,
  140.                    THIS_STOCK.PRODUCT.PRICE, THIS_STOCK.QUANTITY,
  141.                    THIS_STOCK.PRODUCT.DATE.DAY, THIS_STOCK.PRODUCT.DATE.MONTH,
  142.                    THIS_STOCK.PRODUCT.DATE.YEAR);
  143.         }
  144.     }
  145.  
  146.     puts("+-------+-------+----------+-------------+");
  147. }
  148.  
  149. void remove_product() {
  150.     struct MY_PRODUCT THIS_PRODUCT;
  151.     FILE * MY_FILE = fopen("product.txt","r");
  152.     char NAME[10];
  153.  
  154.     system("@cls||clear"); // system("cls");
  155.     puts("+------------------------------+");
  156.     puts("| Enter product NAME to remove |");
  157.     puts("+------------------------------+");
  158.     printf(" : ");
  159.  
  160.     scanf("%s", NAME);
  161.  
  162.     if(MY_FILE != NULL) {
  163.         while(!feof(MY_FILE)) {
  164.             fscanf(MY_FILE,"%s\t%d\t%d\t%d\t%d", THIS_PRODUCT.NAME, &THIS_PRODUCT.PRICE,
  165.                    &THIS_PRODUCT.DATE.DAY, &THIS_PRODUCT.DATE.MONTH, &THIS_PRODUCT.DATE.YEAR);
  166.  
  167.             if (strcmp(NAME, THIS_PRODUCT.NAME) != 0) save_product(THIS_PRODUCT, 2);
  168.         }
  169.  
  170.         // TODO: cut information from "temporaly-product.txt" to "product.txt"
  171.         FILE *file = fopen("product.txt", "w");
  172.         fclose(file);
  173.     }
  174.  
  175.     puts("+-------+-------+-------------+");
  176. }
  177.  
  178. void remove_stock() {
  179.     struct STOCK THIS_STOCK;
  180.     FILE * MY_FILE = fopen("stock.txt","r");
  181.     char NAME[10];
  182.  
  183.     system("@cls||clear"); // system("cls");
  184.     puts("+----------------------------+");
  185.     puts("| Enter stock DATE to remove |");
  186.     puts("+----------------------------+");
  187.     printf(" : ");
  188.  
  189.     scanf("%s", NAME);
  190.  
  191.     if(MY_FILE != NULL) {
  192.         while(!feof(MY_FILE)) {
  193.             fscanf(MY_FILE,"%s\t%d\t%d\t%d\t%d", THIS_STOCK.PRODUCT.NAME,
  194.                    &THIS_STOCK.PRODUCT.PRICE, &THIS_STOCK.QUANTITY, &THIS_STOCK.PRODUCT.DATE.DAY,
  195.                    &THIS_STOCK.PRODUCT.DATE.MONTH, &THIS_STOCK.PRODUCT.DATE.YEAR);
  196.  
  197.             if (strcmp(NAME, THIS_STOCK.PRODUCT.NAME) != 0) save_product(THIS_STOCK.PRODUCT, 2);
  198.         }
  199.  
  200.         // TODO: cut information from "temporaly-product.txt" to "product.txt"
  201.  
  202.     }
  203.  
  204.     puts("+-------+-------+-------------+");
  205. }
  206.  
  207.  
  208. void message1() {
  209.     puts("+-------------------+");
  210.     puts("| Stock Management  |");
  211.     puts("| 1. Manage product |");
  212.     puts("| 2. Manage stock   |");
  213.     puts("| Press Q to exit   |");
  214.     puts("+-------------------+");
  215. }
  216.  
  217. void message1a() {
  218.     system("@cls||clear"); // system("cls");
  219.     puts("+-------------------+");
  220.     puts("| Manage product    |");
  221.     puts("| 1. Add product    |");
  222.     puts("| 2. Remove product |");
  223.     puts("| 3. See products   |");
  224.     puts("| 4. Back to top    |");
  225.     puts("+-------------------+");
  226. }
  227.  
  228. void message1b() {
  229.     system("@cls||clear"); // system("cls");
  230.     puts("+-------------------+");
  231.     puts("| Manage stock      |");
  232.     puts("| 1. Add stock      |");
  233.     puts("| 2. Remove stock   |");
  234.     puts("| 3. See stock      |");
  235.     puts("| 4. Back to top    |");
  236.     puts("+-------------------+");
  237. }
  238.  
  239. int main() {
  240.     int CHOICE;
  241.  
  242.     message1();
  243.     scanf("%d", &CHOICE);
  244.  
  245.     switch(CHOICE) {
  246.     case 1: // Manage Product
  247.         message1a();
  248.         scanf("%d", &CHOICE);
  249.  
  250.         switch (CHOICE) {
  251.         case 1: // Add Product
  252.             save_product(add_product(), 1);
  253.             break;
  254.  
  255.         case 2: // Remove Product
  256.             remove_product();
  257.             break;
  258.  
  259.         case 3: // See Products
  260.             read_product();
  261.             break;
  262.         default:
  263.             break;
  264.         }
  265.  
  266.         break;
  267.     case 2: // Manage Stock
  268.         message1b();
  269.         scanf("%d", &CHOICE);
  270.  
  271.         switch (CHOICE) {
  272.         case 1: // Add Stock
  273.             save_stock(add_stock(), 1);
  274.             break;
  275.  
  276.         case 2: // Remove Stock
  277.             remove_stock();
  278.             break;
  279.  
  280.         case 3: // See Stock
  281.             read_stock();
  282.             break;
  283.         default:
  284.             break;
  285.         }
  286.  
  287.         break;
  288.     default:
  289.         exit(0);
  290.     }
  291.  
  292.     return 0;
  293. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement