Создание базы данных и выполнения различных операций с ними - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Суть программки, создание базы данных и выполнения различных операций с ними (Ввод, редактирование, удаление и т.д.) Не работает в программе два модуля, возможно кто-то сможет сказать в чем причина, а именно "видалення" (удаление), и "пошук" (поиск). Програмка необходима для курсового проекта. Делал все по методичке но не все получилось, в программировании не силен, но что-то получилось сделать, возможно кто-то поможет. Ссылка на програмку: [ссылка удалена] Или могу сбросить на почту. Извините что не на Русском меню программы.
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>
struct base{
       int i;
       int code;
       char name[100];
       int number;
       float price;
       char date[100];
              };
int menu(void);
void create(void);
void update(void); 
void view(void);
void del(void);
void change(void);
void search(void);
char*UA(const char*text);
int main(int argc, char *argv[])
{
    int a;
            while((a=menu())!=7){
                         switch(a){
                                   case 1:
                                        create();
                                        break;
                                   case 2:
                                        update();
                                        break;     
                                   case 3:                                      
                                        view();     
                                        break;
                                   case 4:
                                        del();
                                        break;
                                   case 5:
                                        change();
                                        break;
                                   case 6:
                                        search();
                                        break;

                                   default:
                                           system("cls");
                                           printf("--------------------------------------------------------------------------------\n");
                                           printf("                               %s                         \n",UA("Помилка : невiрна команда"));
                                           printf("--------------------------------------------------------------------------------\n"); 
                                           getch();              
                                   }        
                         
                         }

  return 0;
}

int menu(void){
    system("cls");
    int i;
    printf("\n\n\n\n\n\n\n--------------------------------------------------------------------------------");
    printf("                          %s                             \n",UA("1 - Створити базу даних"));
    printf("                          %s                             \n",UA("2 - Оновити базу даних"));
    printf("                          %s                          \n",UA("3 - Переглянути базу даних"));
    printf("                          %s                             \n",UA("4 - Видалити запис"));
    printf("                          %s                             \n",UA("5 - Змiнити запис"));
    printf("                          %s                             \n",UA("6 - Пошук"));
    printf("                          %s                             \n",UA("7 - Вихiд"));
    printf("--------------------------------------------------------------------------------\n#");
    scanf("%d",&i);
    return i;
    };
    
   /*Створення БД*/
void create(void)
                 {system("cls");
     int exit;
     int b;
     FILE *p;
     struct base a;
     memset(&a,0,sizeof(struct base));
     a.code=1;
     if((p=fopen("base.dat","w+"))==NULL){
                                          printf("--------------------------------------------------------------------------------\n");
                                          printf("                           %s                      \n",UA("Помилка : невдалось вiдкрити файл"));
                                          printf("--------------------------------------------------------------------------------\n");
                                          getch();
                                         }
     else{
          while(a.code!=0)
          {
          system("cls");
          printf("********************************************************************************\n");              
          printf("%s            | ",UA("Введiть код товару"));
          scanf("%d",&a.code);
          printf("--------------------------------------------------------------------------------\n");
          printf("%s                  | ",UA("Введiть назву товару"));
          scanf("%s",&a.name);
          printf("--------------------------------------------------------------------------------\n");
          printf("%s       | ",UA("Кiлькiсть товару"));
          scanf("%d",&a.number);
          printf("%s       | ",UA("Введiть цiну"));
          scanf("%f",&a.price);
          printf("%s       | ",UA("Введiть дату продажу"));
          scanf("%s",&a.date);
          printf("--------------------------------------------------------------------------------\n");
                    fseek(p,(a.code-1)*sizeof(struct base),SEEK_SET);
          fwrite(&a,sizeof(struct base),1,p);    
          printf("--------------------------------------------------------------------------------\n");
          printf("                            %s                            \n",UA("Вийти Так = 1 Нi = 0"));
          printf("--------------------------------------------------------------------------------\n");
          scanf("%d",&exit);
          if(exit==1){memset(&a,0,sizeof(struct base));
                      fseek(p,(a.code-1)*sizeof(struct base),SEEK_SET);
                      fwrite(&a,sizeof(struct base),1,p);
                     }
          if(exit==1)break;
          }
          fclose(p);
          }
     };
     
     /*оновлення бд*/
     
void update(void){
                   system("cls");
                   int a;
                   int c;
                   char n[100];
                   int num;
                   float price;
                   float date;
                   FILE *p;
                   if((p=fopen("base.dat","r+"))==NULL){
                                                        printf("--------------------------------------------------------------------------------\n");
                                                        printf("                           %s                      \n",UA("Помилка : невдалось вiдкрити файл"));
                                                        printf("--------------------------------------------------------------------------------\n");
                                                        getch();
                                                        }
                   else {
                         struct base b;
                         printf("%s\n",UA("Введіть код товару для обновлення запису"));
                         scanf("%d",&a);
                         fseek(p,(a-1)*sizeof(struct base),SEEK_SET);
                         fread(&b,sizeof(struct base),1,p);
                         if(b.code==0)
                         printf("%s\n",UA("Запис не містить даних"));
                         else
                             {
                                     printf("********************************************************************************\n");
                                     printf("%s\t",UA("Код товару"));
                                     printf("%s\t",UA("Назва"));
                                     printf("%s\t",UA("Кiлькiсть"));
                                     printf("%s\t",UA("Цiна"));
                                     printf("%s\n",UA("Дата"));
                                     printf("%d\t",b.code);
                                     printf("%s\t",b.name);
                                     printf("%d\t",b.number);
                                     printf("%f\t",b.price);
                                     printf("%f\t",b.date);
                                     printf("\n--------------------------------------------------------------------------------\n");
                                     printf("%s\t",UA("Введіть нвое значення"));
                                     printf("********************************************************************************\n");              
                                     printf("%s            | ",UA("Введiть код товару"));
                                     scanf("%d",&c);
                                     b.code=c;
                                     printf("--------------------------------------------------------------------------------\n");
                                     printf("%s                  | ",UA("Введiть назву товару"));
                                     scanf("%s",&n);
                                     
                                     printf("--------------------------------------------------------------------------------\n");
                                     printf("%s       | ",UA("Кiлькiсть товару"));
                                     scanf("%d",&num);
                                     b.number=num;
                                     printf("%s       | ",UA("Введiть цiну"));
                                     scanf("%f",&price);
                                     b.price=price;
                                     printf("%s       | ",UA("Введiть дату продажу"));
                                     scanf("%s",&date);
                                     
                                     printf("--------------------------------------------------------------------------------\n");
                                     fseek(p,(a-1)*sizeof(struct base),SEEK_SET);
                                     fwrite(&b,sizeof(struct base),1,p);
                                     }
                              fclose(p);                        
                              }
     printf("%s",UA("\nДля виходу в головне меню натиснiть будь-яку клавiшу..."));
     getch();
     };
     
     /*перегляд бд*/
     
void view(void)
               {
                   system("cls");
     FILE *p;
     char t;
     struct base a;
     memset(&a,0,sizeof(struct base));
     a.code=1;
     if((p=fopen("base.dat","r"))==NULL){
                                          printf("--------------------------------------------------------------------------------\n");
                                          printf("                           %s                      \n",UA("Помилка : невдалось вiдкрити файл"));
                                          printf("--------------------------------------------------------------------------------\n");
                                          getch();
                                         }
     else{
          while(!feof(p)){
                          
                          fread(&a,sizeof(struct base),1,p);
                          if(a.code!=0){
                                     printf("********************************************************************************\n");
                                     printf("%5s\t",UA("Код товару"));
                                     printf("%10.5s\t",UA("Назва"));
                                     printf("%10s\t",UA("Кiлькiсть"));
                                     printf("%5s\t",UA("Цiна"));
                                     printf("%20s\n",UA("Дата"));
                                     printf("%10d\t",a.code);
                                     printf("%10s\t",a.name);
                                     printf("%10d\t",a.number);
                                     printf("%.2f\t",a.price);
                                     printf("%20s\t",a.date);
                                     printf("\n--------------------------------------------------------------------------------\n");                                     

                                     }
                                     
                          }
                          
                          fclose(p);
                          
          }
     printf("%s",UA("\nДля виходу в головне меню натиснiть будь-яку клавiшу..."));
     getch();
     
     };
void del(void){
     FILE *p;
     if((p=fopen("base.dat","r+"))==NULL){printf("--------------------------------------------------------------------------------\n");
                                          printf("                           %s                      \n",UA("Помилка : невдалось вiдкрити файл"));
                                          printf("--------------------------------------------------------------------------------\n");
                                          getch();
                                          }
     else
         {struct base a, bst={0,0,"",0,0.0,""};
         int n;
         system("cls");
         printf("--------------------------------------------------------------------------------\n");
         printf("                           %s                      \n",UA("Введіть запис для видалення"));
         printf("--------------------------------------------------------------------------------\n");
         scanf("%f",&n);
         fseek(p,(n-1)*sizeof(struct base),SEEK_SET);
         fread(&a,sizeof(struct base),1,p);
         if(a.code==0){
                         printf("--------------------------------------------------------------------------------\n");
                         printf("                           %s                      \n",UA("Відсутній запис"));
                         printf("--------------------------------------------------------------------------------\n");
                         getch();}
         else
                        {
                         fseek(p,(n-1)*sizeof(struct base),SEEK_SET);
                         fwrite(&bst,sizeof(struct base),1,p);
                         }}                                                                                                              
       fclose(p);  
        printf("%s",UA("\nДля виходу в головне меню натиснiть будь-яку клавiшу..."));
     getch();                    
     }
void change(void){
     }
void search(void)
                 {
                   system("cls");
     FILE *p;
     char t;
     int u;
     struct base a;
     memset(&a,0,sizeof(struct base));
     a.code=1;
     if((p=fopen("base.dat","r"))==NULL){
                                          printf("--------------------------------------------------------------------------------\n");
                                          printf("                           %s                      \n",UA("Помилка : невдалось вiдкрити файл"));
                                          printf("--------------------------------------------------------------------------------\n");
                                          getch();
                                         }
     else{
          while(!feof(p)){
                          
                          fread(&a,sizeof(struct base),1,p);
                          if(a.code!=0){
                                        printf("--------------------------------------------------------------------------------\n");
                                        printf("                           %s                      \n",UA("Введіть слово для пошуку"));
                                        printf("--------------------------------------------------------------------------------\n");  
                                        scanf("%d",&u);
                                                       if((strcmp(t,a.name))==NULL) 
                                                                 {printf("********************************************************************************\n");
                                                                 printf("%5s\t",UA("Код товару"));
                                                                 printf("%10.5s\t",UA("Назва"));
                                                                 printf("%10s\t",UA("Кількість"));
                                                                 printf("%5s\t",UA("Ціна"));
                                                                 printf("%20s\n",UA("Дата"));
                                                                 printf("%10d\t",a.code);
                                                                 printf("%10s\t",a.name);
                                                                 printf("%10d\t",a.number);
                                                                 printf("%.2f\t",a.price);
                                                                 printf("%20s\t",a.date);
                                                                 printf("\n--------------------------------------------------------------------------------\n");
                                                                                                                                     
                                                                 } 
                                                        else{
                                                             printf("--------------------------------------------------------------------------------\n");
                                                             printf("                           %s                      \n",UA("Не знайдено"));
                                                             printf("--------------------------------------------------------------------------------\n");
                                                             }                                

                                     }
                                     
                          }
                          
                          fclose(p);
                          
          }
     printf("%s",UA("\nДля виходу в головне меню натиснiть будь-яку клавiшу..."));
     getch();
     
     }
  char*UA(const char*text)
{
     char bufUA[256];          
     CharToOem(text, bufUA);
     return bufUA;
     
}

Решение задачи: «Создание базы данных и выполнения различных операций с ними»

textual
Листинг программы
 if (!strcmp(t,a.name))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5