Создание базы данных и выполнения различных операций с ними - 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))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д