BG Development


  Reply to this topicStart new topicStart Poll

> курсова задача за първокурсници (C++), стигнал съм до някъде, но без резултат
Mandelash
Публикувано на: 02-12-2020, 15:16
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 3
Регистриран на: 02.12.20



Здравейте, студент съм 1ви курс със специалност КСТ.

Имам затруднения със решаването на курсовата задача, а нямам и доста време да се мъча повече без помощ от някъде. Ще съм Ви благодарен, ако някой успее да ми помогне. Не съм наясно много със програмирането, понеже хванах онлайн обученията и всичко беше тотална каша, изпуснати лекции, лекторите забравяха, че имат такива.. объркани програми и прочие. Няма да влизам в обяснителен режим, просто се надявам някой да може да ми помогне.

Ето го и самото задание:

За група студенти са зададени име, ЕГН, фак. №, оценките
по 10 дисциплини, среден успех. Да се създаде програма,
която избира от меню и използва функции за:
• създаване на файл с информация за групата студенти,
без да се въвежда ср. успех;
• изчисляване на средния успех на всеки един от студентите;
• създаване на списък от фак. № на всички студенти
с не повече от две двойки.

слагам линк и към пастебин за да видите какво съм сътворил. Благодаря !

https://pastebin.com/DT3yEuva?fbclid=IwAR1D...en7tYP8T7AR84vY
PMEmail Poster
Top
Mandelash
Публикувано на: 03-12-2020, 09:20
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 3
Регистриран на: 02.12.20



1>c:\users\dvako\documents\visual studio 2013\projects\kursova2\kursova2\kursova2.cpp(41): error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\stdio.h(211) : see declaration of 'fopen'


направих няколко промени, ми изкарва тази грешка. Някакви идеи ? със fopen_s също не става.
PMEmail Poster
Top
Mandelash
Публикувано на: 03-12-2020, 09:34
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 3
Регистриран на: 02.12.20



Така и това го оправих, изключих SDK проверката на програмата, програмата стартира, създава файл, но не иска да добавя компоненти. изкарва ми грешка. Ако някой забелязва къде може да е грешката ще съм благодарен !

прикачам снимката на грешката по долу !

Прикачена картинка
Прикачена картинка
PMEmail Poster
Top
Gamma Goblin
Публикувано на: 04-12-2020, 22:23
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 4014
Регистриран на: 21.02.18



Лой е декан на КСТто ? Накича още ли е жив ? А Гоцева?
PMEmail PosterUsers Website
Top
DarkOne
Публикувано на: 05-12-2020, 15:19
Quote Post


Group Icon
Име: Александър Петков
Група: Администратор
Ранг: Почетен член

Мнения: 3570
Регистриран на: 30.01.04



На ред 96 в pastebin се затваря файлът с fclose, но файлът е NULL, видно от проверката на ред 82.

Ако използваш дебъгера и изпълняваш програмата стъпка по стъпка, ще ти е по-лесно да откриваш такива грешки icon_wink.gif


--------------------
The man who learns only what others know
is as ignorant as if he learns nothing.
The treasures of knowledge are the most rare,
and guarded most harshly.
-- Chronicle of the First Age
PMICQ
Top
garion
Публикувано на: 06-12-2020, 01:06
Quote Post



Име: Иво
Група: Потребител
Ранг: Активен

Мнения: 213
Регистриран на: 26.09.05



1. Във функцията exists отваряш файл без да го затвориш и след като извикаш тази функция, пак се опитваш да отвориш файла.
2.
CODE
            printf("%d", sizeof(stud.oc));
            for (int i = 0; i < sizeof(stud.oc); i++){
                  printf("%s", stud);
            }

а) Първо приемаш че оценките са 10(ред 20), а тук им взимаш броя. Декларирай и използвай константа.
б) printf("%s", stud); - stud не е стринг

3.
CODE
      fl = fopen(filename, "r");
      fclose(fl);
      if (NULL != fl)

Не можеш да разчиташ, че след затварянето fl ще бъде валидно(различно от NULL)
4. 81 ред: Няма смисъл да създаваш нов файлов указател - използвай си този, който вече имаш.
5. 82 ред повтаря 69 ред. Едното е излишно.
6.
CODE
      if ((file = fopen(filename, "r")) != NULL)
      {
            // file exists
            printf("Файлът съществува!\n");
            printf("Да го презапиша ли?");
            ch = getchar();
            if (ch == 'n') return;
            strcpy(imefl, filename);
            fclose(file);
      }

Ако въведеш 'n' файла не се затваря. Освен това ако файлът съществува, никога няма да влезнеш в случая да го създадеш наново.
7. 114 ред
CODE
      fl = fopen(imefl, "w");
Така затриваш файла преди да го отвориш за писане. Трябва да използва "a" за добавяне. https://www.tutorialspoint.com/c_standard_l...ction_fopen.htm
8.
CODE
      printf("Оценки: ", st.oc);

Така не се принтира масив


--------------------
Компютъра прави това което му кажеш, а не това което искаш
MyMiniCity
PMEmail PosterICQYahoo
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0