Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- // #include <windows.h>
- struct MY_DATE {
- int DAY, MONTH, YEAR;
- };
- struct MY_PRODUCT {
- char NAME[10];
- int PRICE;
- struct MY_DATE DATE; // TODO: delete DATE
- };
- struct STOCK {
- struct MY_PRODUCT PRODUCT;
- int QUANTITY;
- struct MY_DATE DATE;
- };
- struct MY_PRODUCT add_product() {
- system("@cls||clear"); // system("cls");
- puts("+---------------------+");
- puts("| Product information |");
- puts("+---------------------+");
- struct MY_PRODUCT NEW_PRODUCT;
- printf(" Name: ");
- scanf("%s", NEW_PRODUCT.NAME);
- printf(" Price: ");
- scanf("%d", &NEW_PRODUCT.PRICE);
- puts("\n Expiry Date ");
- printf(" Day: ");
- scanf("%d", &NEW_PRODUCT.DATE.DAY);
- printf(" Month: ");
- scanf("%d", &NEW_PRODUCT.DATE.MONTH);
- printf(" Year: ");
- scanf("%d", &NEW_PRODUCT.DATE.YEAR);
- return NEW_PRODUCT;
- }
- struct STOCK add_stock() {
- system("@cls||clear"); // system("cls");
- puts("+---------------------+");
- puts("| Stock information |");
- puts("+---------------------+");
- struct STOCK NEW_STOCK;
- printf(" Name: ");
- scanf("%s", NEW_STOCK.PRODUCT.NAME);
- printf(" Price: ");
- scanf("%d", &NEW_STOCK.PRODUCT.PRICE);
- printf(" Quantity: ");
- scanf("%d", &NEW_STOCK.QUANTITY);
- puts("\n Expiry Date ");
- printf(" Day: ");
- scanf("%d", &NEW_STOCK.PRODUCT.DATE.DAY);
- printf(" Month: ");
- scanf("%d", &NEW_STOCK.PRODUCT.DATE.MONTH);
- printf(" Year: ");
- scanf("%d", &NEW_STOCK.PRODUCT.DATE.YEAR);
- return NEW_STOCK;
- }
- void save_product(struct MY_PRODUCT NEW_PRODUCT, int FILE_CHOICE) {
- FILE * MY_FILE;
- if(FILE_CHOICE == 1) MY_FILE = fopen("product.txt","a+");
- if (FILE_CHOICE == 2) MY_FILE = fopen("temporaly-product.txt","a+");
- fprintf(MY_FILE,"%s\t%d\t%d\t%d\t%d\n", NEW_PRODUCT.NAME, NEW_PRODUCT.PRICE,
- NEW_PRODUCT.DATE.DAY, NEW_PRODUCT.DATE.MONTH, NEW_PRODUCT.DATE.YEAR);
- }
- void save_stock(struct STOCK NEW_STOCK, int FILE_CHOICE) {
- FILE * MY_FILE;
- if(FILE_CHOICE == 1) MY_FILE = fopen("stock.txt","a+");
- if (FILE_CHOICE == 2) MY_FILE = fopen("temporaly-stock.txt","a+");
- fprintf(MY_FILE,"%s\t%d\t%d\t%d\t%d\t%d\n", NEW_STOCK.PRODUCT.NAME, NEW_STOCK.PRODUCT.PRICE,
- NEW_STOCK.QUANTITY, NEW_STOCK.PRODUCT.DATE.DAY, NEW_STOCK.PRODUCT.DATE.MONTH,
- NEW_STOCK.PRODUCT.DATE.YEAR);
- }
- void read_product() {
- struct MY_PRODUCT THIS_PRODUCT;
- FILE * MY_FILE = fopen("product.txt","r");
- system("@cls||clear"); // system("cls");
- puts("+-----------------------------+");
- puts("| Product information |");
- puts("+-------+-------+-------------+");
- puts("| Name | Price | Expiry Date |");
- puts("+-------+-------+-------------+");
- if(MY_FILE != NULL) {
- while(!feof(MY_FILE)) {
- fscanf(MY_FILE,"%s\t%d\t%d\t%d\t%d", THIS_PRODUCT.NAME, &THIS_PRODUCT.PRICE,
- &THIS_PRODUCT.DATE.DAY, &THIS_PRODUCT.DATE.MONTH, &THIS_PRODUCT.DATE.YEAR);
- printf("| %s\t| %d\t| %d/%d/%d |\n", THIS_PRODUCT.NAME, THIS_PRODUCT.PRICE,
- THIS_PRODUCT.DATE.DAY, THIS_PRODUCT.DATE.MONTH, THIS_PRODUCT.DATE.YEAR);
- }
- }
- puts("+-------+-------+-------------+");
- }
- void read_stock() {
- struct STOCK THIS_STOCK;
- FILE * MY_FILE = fopen("stock.txt","r");
- system("@cls||clear"); // system("cls");
- puts("+----------------------------------------+");
- puts("| Stock information |");
- puts("+-------+-------+----------+-------------+");
- puts("| Name | Price | Quantity | Expiry Date |");
- puts("+-------+-------+----------+-------------+");
- if(MY_FILE != NULL) {
- while(!feof(MY_FILE)) {
- fscanf(MY_FILE,"%s\t%d\t%d\t%d\t%d\t%d", THIS_STOCK.PRODUCT.NAME,
- &THIS_STOCK.PRODUCT.PRICE, &THIS_STOCK.QUANTITY,
- &THIS_STOCK.PRODUCT.DATE.DAY, &THIS_STOCK.PRODUCT.DATE.MONTH,
- &THIS_STOCK.PRODUCT.DATE.YEAR);
- printf("| %s\t| %d\t| %d\t| %d/%d/%d |\n", THIS_STOCK.PRODUCT.NAME,
- THIS_STOCK.PRODUCT.PRICE, THIS_STOCK.QUANTITY,
- THIS_STOCK.PRODUCT.DATE.DAY, THIS_STOCK.PRODUCT.DATE.MONTH,
- THIS_STOCK.PRODUCT.DATE.YEAR);
- }
- }
- puts("+-------+-------+----------+-------------+");
- }
- void remove_product() {
- struct MY_PRODUCT THIS_PRODUCT;
- FILE * MY_FILE = fopen("product.txt","r");
- char NAME[10];
- system("@cls||clear"); // system("cls");
- puts("+------------------------------+");
- puts("| Enter product NAME to remove |");
- puts("+------------------------------+");
- printf(" : ");
- scanf("%s", NAME);
- if(MY_FILE != NULL) {
- while(!feof(MY_FILE)) {
- fscanf(MY_FILE,"%s\t%d\t%d\t%d\t%d", THIS_PRODUCT.NAME, &THIS_PRODUCT.PRICE,
- &THIS_PRODUCT.DATE.DAY, &THIS_PRODUCT.DATE.MONTH, &THIS_PRODUCT.DATE.YEAR);
- if (strcmp(NAME, THIS_PRODUCT.NAME) != 0) save_product(THIS_PRODUCT, 2);
- }
- // TODO: cut information from "temporaly-product.txt" to "product.txt"
- FILE *file = fopen("product.txt", "w");
- fclose(file);
- }
- puts("+-------+-------+-------------+");
- }
- void remove_stock() {
- struct STOCK THIS_STOCK;
- FILE * MY_FILE = fopen("stock.txt","r");
- char NAME[10];
- system("@cls||clear"); // system("cls");
- puts("+----------------------------+");
- puts("| Enter stock DATE to remove |");
- puts("+----------------------------+");
- printf(" : ");
- scanf("%s", NAME);
- if(MY_FILE != NULL) {
- while(!feof(MY_FILE)) {
- fscanf(MY_FILE,"%s\t%d\t%d\t%d\t%d", THIS_STOCK.PRODUCT.NAME,
- &THIS_STOCK.PRODUCT.PRICE, &THIS_STOCK.QUANTITY, &THIS_STOCK.PRODUCT.DATE.DAY,
- &THIS_STOCK.PRODUCT.DATE.MONTH, &THIS_STOCK.PRODUCT.DATE.YEAR);
- if (strcmp(NAME, THIS_STOCK.PRODUCT.NAME) != 0) save_product(THIS_STOCK.PRODUCT, 2);
- }
- // TODO: cut information from "temporaly-product.txt" to "product.txt"
- }
- puts("+-------+-------+-------------+");
- }
- void message1() {
- puts("+-------------------+");
- puts("| Stock Management |");
- puts("| 1. Manage product |");
- puts("| 2. Manage stock |");
- puts("| Press Q to exit |");
- puts("+-------------------+");
- }
- void message1a() {
- system("@cls||clear"); // system("cls");
- puts("+-------------------+");
- puts("| Manage product |");
- puts("| 1. Add product |");
- puts("| 2. Remove product |");
- puts("| 3. See products |");
- puts("| 4. Back to top |");
- puts("+-------------------+");
- }
- void message1b() {
- system("@cls||clear"); // system("cls");
- puts("+-------------------+");
- puts("| Manage stock |");
- puts("| 1. Add stock |");
- puts("| 2. Remove stock |");
- puts("| 3. See stock |");
- puts("| 4. Back to top |");
- puts("+-------------------+");
- }
- int main() {
- int CHOICE;
- message1();
- scanf("%d", &CHOICE);
- switch(CHOICE) {
- case 1: // Manage Product
- message1a();
- scanf("%d", &CHOICE);
- switch (CHOICE) {
- case 1: // Add Product
- save_product(add_product(), 1);
- break;
- case 2: // Remove Product
- remove_product();
- break;
- case 3: // See Products
- read_product();
- break;
- default:
- break;
- }
- break;
- case 2: // Manage Stock
- message1b();
- scanf("%d", &CHOICE);
- switch (CHOICE) {
- case 1: // Add Stock
- save_stock(add_stock(), 1);
- break;
- case 2: // Remove Stock
- remove_stock();
- break;
- case 3: // See Stock
- read_stock();
- break;
- default:
- break;
- }
- break;
- default:
- exit(0);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement