Создание базы данных - C (СИ)
Формулировка задачи:
Помогите,нужно создать базу данных,которая содержит страну тура,город ,кол-во дней и стоимость тура.Программу я написал ,но она выдает ошибки.Кто может помочь их исправить?
#include <stdio.h> #include <conio.h> #include <stdlib.h> int vvod(void); int vvod_razmera(void); void vvod_massiva(int); int punkt_menu(void); void vyvod_massiva(int); int vyvod(void); void vyhod(void); struct touring {char country[50]; char city [50]; int tour_duration ; int cost ; }; int main (void) {struct touring tour[8]; char punky_menu [8]; int razmer; int razmer1; int p,e; p=punkt_menu(); printf("%d",p); switch(p) {case 1 : razmer=vvod(); break; case 2: razmer1=vyvod(); break; case 3: vyhod(); break; default: printf("\n\t Any of points isn't chosen"); } getch(); } int punkt_menu(void) {int p; printf("\n\t Enter 1 if you want to enter data\n"); printf("\n\t Enter 2 if you want to look at data\n"); printf("\n\t Enter 3 if you want to finish work with application\n"); scanf("%d",&p); return(p); } int vvod (void) { int razmer; razmer=vvod_razmera(); vvod_massiva(razmer); return(razmer); } int vvod_razmera() { int n; printf("Enter number of tours \n"); scanf("%d",&n); return (n); } void vvod_massiva(n) //71 'n' was not declared in this scope //variable or field 'vvod_massiva' declared void { int i; for(i=1;i<=n;i++) { printf("Enter element number &d\n",i); printf("Enter country of tour:"); scanf("%s",&tour[i].country); printf("\n Enter city of tour:"); scanf("%s",&tour[i].city); printf("\n Enter number of days of tour:"); scanf("%d",&tour[i].tour_duraction); printf("Enter cost of tour:"); scanf("ds",&tour[i].cost); } } int vyvod(void) { int razmer1; razmer1=vvod_razmera(); vyvod_massiva(razmer1)); return(razmer1); } void vyvod_massiva(n) { int i; for(i=1;i<=n;i++) { printf("Country of tour:%s\n",&tour[i].country); printf("City of tour:%s\n",&tour[i].city); printf("Number of days of tour :%d\n",&tour[i].tour_duraction); printf("Cost of tour:%d\n",&tour[i].cost); } } void vyhod(void) { exit(0); }
Решение задачи: «Создание базы данных»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #include <stdlib.h> int vvod(void); int vvod_razmera(void); void vvod_massiva(int); int punkt_menu(void); void vyvod_massiva(int); int vyvod(void); void vyhod(void); struct touring {char country[50]; char city [50]; int tour_duration ; int cost ; }; // глобальные переменные struct touring tour[8]; // char punky_menu [8]; //------------------- int main (void) { int razmer; int razmer1; int p;//e; p=punkt_menu(); printf("%d",p); switch(p) {case 1 : razmer=vvod(); break; case 2: razmer1=vyvod(); break; case 3: vyhod(); break; default: printf("\n\t Any of points isn't chosen"); } getch(); } int punkt_menu(void) {int p; printf("\n\t Enter 1 if you want to enter data\n"); printf("\n\t Enter 2 if you want to look at data\n"); printf("\n\t Enter 3 if you want to finish work with application\n"); scanf("%d",&p); return(p); } int vvod (void) { int razmer; razmer=vvod_razmera(); vvod_massiva(razmer); return(razmer); } int vvod_razmera() { int n; printf("Enter number of tours \n"); scanf("%d",&n); return (n); } void vvod_massiva(int n) //71 'n' was not declared in this scope //variable or field 'vvod_massiva' declared void { int i; for(i=1;i<=n;i++) { printf("Enter element number &d\n",i); printf("Enter country of tour:"); scanf("%s",&tour[i].country); printf("\n Enter city of tour:"); scanf("%s",&tour[i].city); printf("\n Enter number of days of tour:"); scanf("%d",&tour[i].tour_duration); printf("Enter cost of tour:"); scanf("ds",&tour[i].cost); } } int vyvod(void) { int razmer1; razmer1=vvod_razmera(); vyvod_massiva(razmer1); return(razmer1); } void vyvod_massiva(int n) { int i; for(i=1;i<=n;i++) { printf("Country of tour:%s\n",&tour[i].country); printf("City of tour:%s\n",&tour[i].city); printf("Number of days of tour :%d\n",&tour[i].tour_duration); printf("Cost of tour:%d\n",&tour[i].cost); } } void vyhod(void) { exit(0); }
Объяснение кода листинга программы
- Создание структуры
touring
для хранения данных о турах. - Объявление глобальной переменной
tour
типа struct touring для хранения массива данных о турах. - Ввод данных о турах с помощью функции vvod_massiva, которая принимает индекс элемента в массиве и запрашивает данные о стране, городе, продолжительности и стоимости тура.
- Вывод данных о турах с помощью функции vyvod_massiva, которая проходит по всем элементам массива и выводит данные о стране, городе, продолжительности и стоимости тура.
- Функция main() содержит основной цикл программы, который запускается при запуске приложения и обрабатывает пользовательский ввод для выбора действия (ввод данных, просмотр данных или завершение работы приложения).
- Функция punkt_menu() используется для запроса у пользователя выбора действия и возвращает выбранное значение.
- Функция vvod() используется для ввода количества туров, которые нужно добавить в массив.
- Функция vvod_razmera() используется для запроса у пользователя количества туров, которые нужно добавить в массив.
- Функция vyvod() используется для вывода данных о турах.
- Функция vyhod() используется для завершения работы приложения.
- Ошибка компиляции в функции vvod_massiva() связана с тем, что переменная
n
не была объявлена в этой области видимости. - Ошибка компиляции в функции vyvod_massiva() связана с тем, что функция scanf() ожидает указатель на строку, а не строку.
- Код не содержит обработки ошибок для ввода данных пользователем, что может привести к непредсказуемому поведению программы.
- Код не содержит проверки на достаточность памяти для выделения массива структур touring, что может привести к переполнению буфера при большом количестве вводимых данных.
- Код не содержит обработки ситуации, когда пользователь вводит некорректные данные (например, отрицательное количество дней тура или нулевую стоимость).
- Код не содержит проверки на равенство введенного значения и максимального значения типа данных, что может привести к переполнению при вводе очень больших значений.
- Код не содержит обработки ситуации, когда пользователь вводит пустую строку вместо значения, что может привести к некорректному сохранению данных.
- Код не содержит обработки ситуации, когда пользователь вводит некорректный формат данных (например, вводит символ в поле для ввода целого числа), что может привести к непредсказуемому поведению программы.
- Код не содержит обработки ситуации, когда пользователь вводит значение, которое превышает размер доступной памяти, что может привести к переполнению буфера и утечке памяти.
- Код не содержит обработки ситуации, когда пользователь вводит значение, которое не соответствует ожидаемому типу данных, что может привести к непредсказуемому поведению программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д