[ Новые сообщения · Участники · Правила форума/сайта · Поиск по форуму · RSS ]
Быстрый переход по страницам сайта:

Вход | Регистрация

!Отключен плавающий блок баннеров справа вверху! Скорость загрузки страниц сайта, удобность навигации и комфортабельность получили жирный плюс!



Страница 1 из 11
Форум » Программирование & базы данных » C++ » структуры. файлы. командная строка. задание на зачет (срочно)
структуры. файлы. командная строка. задание на зачет
халкДата: Четверг, 05.05.2011, 22:39:09 | Сообщение # 1
Дух
Посты: 7
Репутация: 0
Статус: Offline

друзья помогите с заданием на зачет. данные темы на парах не рассматривались, поэтому самому очень сложно за оставшиеся 3 дня все разобрать. суть задания вот в чем:

нужно написать программу обработки файла типа запись, содержащую пункты:"Создание" "Просмотр" "Правка(добавление новых данных или редактирование старых)" "Распечатать анкетные данные студентов имеющих оценки 4 и 5 по программированию".
вот такое...

как я понял программа вызывается из командной строки. после чего я ввожу имена студентов, имеющих оценку 4 и 5. эти данные я могу просматривать и редактировать.эти данные я могу поместить куда-то для печати (наверно в блокнот).

всем откликнувшимся огромное человеческое спасибо. надеюсь на Вас

 
ZaLiZoДата: Пятница, 06.05.2011, 19:27:51 | Сообщение # 2
Дух
Посты: 4
Репутация: 2
Статус: Offline

Я сам, конечно, так себе знаток, но попытался бы помочь если бы задание было четче сформулировано.
Quote
нужно написать программу обработки файла типа запись

В смысле файл, содержащий в себе записи структурного типа?
Quote
как я понял программа вызывается из командной строки.

В смысле приложение консольное, или вызывается с параметром, или как еще-то?
Quote
после чего я ввожу имена студентов, имеющих оценку 4 и 5. эти данные я могу просматривать и редактировать.

То есть грубо говоря есть пустой файл, вы его по определенной схеме в той же программе заполняете, затем выводите студентов с оценками 4 и 5 которых туда добавили?
В общем больше конкретики.
 
халкДата: Воскресенье, 08.05.2011, 13:05:23 | Сообщение # 3
Дух
Посты: 7
Репутация: 0
Статус: Offline

могу скинуть задание и Вы посмотрите. вот http://narod.ru/disk/12223043001/Лабораторная%20работа%20№11.pdf.html ссылка. МОЙ ВАРИАНТ 11

Сообщение отредактировал халк - Воскресенье, 08.05.2011, 13:06:56
 
ZaLiZoДата: Воскресенье, 08.05.2011, 15:58:55 | Сообщение # 4
Дух
Посты: 4
Репутация: 2
Статус: Offline

Хотелось бы узнать в какой среде работаете (компилятором каким пользуетесь) и всё таки консольное вам приложение нужно или визуальное.
Но в общем у вас всё написано лучше чем в моих конспектах, но задание я понял не до конца. Я думаю сначала в программе нужно проверить параметры командной строки - argv[1] и argv[2] чтобы они, собственно, были (а если их нет -уведомить пользователя и закрыть программу) и, желательно, заканчивались на .dat и .txt соответственно и дописать если не заканчиваются. Дальше неплохо бы организовать структуру содержащую фамилию и инициалы как строку, год рождения как инт, номер группы как строку, оценки как массив из интов из четырех элементов или как четыре отдельных инта, и инт - средний балл, его можно будет рассчитать на ходу по ходу ввода (всё равно в этой же программе создавать файл будете). Дальше по ходу работы с файлами:
"создание" - оба файла достаточно открыть для записи и они будут созданы чистенькими, названия переданы в командной строке.
"просмотр" - открыть для считывания и выводить до конца файла построчно.
"Решение индивидуального задания" - тоже не сложно. В лоб можно считать всё построчно из файла в массив созданного выше структурного типа и дальше если оценка по обоим предметам больше трех - выводить на экран.
"правка" - самое сложное, но тоже не особая проблема. Для добавления есть возможность открыть файл с кодом a и просто попросить пользователя ввести значения. Правка - уже сложнее, думаю можно опять же в лоб сделать - считать всё в массив структур, вывести построчно включая номер элемента в массиве, попросить у пользователя номер элемента который нужно отредактировать, запросить у него заново весь элемент, перезаписать файл.
диалог с пользователем, думаю, можете и самостоятельно оформить. В общем-то всё что нужно у вас записано в теор. части лабы.
 
халкДата: Воскресенье, 08.05.2011, 16:21:58 | Сообщение # 5
Дух
Посты: 7
Репутация: 0
Статус: Offline

нужна программа на языке С. работаю в Microsoft Visual Studio 2008/
я должен написать программу. дальше через командную строку открыть ее.
написано все конечно хорошо. но когда ни опыта ни времени нет, то это не помогает
 
ZaLiZoДата: Воскресенье, 08.05.2011, 18:12:05 | Сообщение # 6
Дух
Посты: 4
Репутация: 2
Статус: Offline

Похоже вы таки хотите чтобы вам вот так взяли и весь код написали.
Так дела не делаются. Вы как-то до конца семестра дотянули, что вам конкретно непонятно-то? Массивов не видели? Строк? Работа с файлами, структуры и взятие параметра из командной строки есть у вас в пдфке. Спасение утопающих - дело рук самих утопающих.
 
халкДата: Воскресенье, 08.05.2011, 18:29:34 | Сообщение # 7
Дух
Посты: 7
Репутация: 0
Статус: Offline

дальше указателей я не вникал) кроме программирования есть другие предметы. что-то изучить можно нормально изучая только что-то одно. у нас почти каждый препод считает свой предмет самым важным. он считает что мы его предмет день и ночь учим. баланса нет. но я пытаюсь как-то балансировать.везде успевать. с помощью форумов, помощи. по другому никак не выйдет.

Добавлено (08.05.2011, 19:20:46)
---------------------------------------------
чтобы самому это понять нужны дни... у меня нет времени на все это. я не считаю что мое будущее в программировании. поэтому и не вникаю сильно.

Добавлено (08.05.2011, 19:29:34)
---------------------------------------------
я пытаюсь все закрыть автоматом. поэтому сижу днями за лаборатоными, подготовками

 
ZaLiZoДата: Воскресенье, 08.05.2011, 18:43:41 | Сообщение # 8
Дух
Посты: 4
Репутация: 2
Статус: Offline

Вы не подумайте, я всё понимаю, сам такой, однако и вы поймите: никто не будет вот так вот просто, за спасибо, тратить пару часов времени чтобы сделать за вас вашу работу. Помочь и подсказать если есть вопросы - пожалуйста, но если вы не пытались ничего сделать сами - никто вам и помогать не будет.
 
халкДата: Воскресенье, 08.05.2011, 18:49:47 | Сообщение # 9
Дух
Посты: 7
Репутация: 0
Статус: Offline

я понимаю. но тем не менее мне помогали. писали код за спасибо. возможна людям хочеться потренироваться и они заходят на форум и пишут коды. и времени на это у них уходит ну чуть больше получаса)
 
FalconДата: Воскресенье, 08.05.2011, 19:01:02 | Сообщение # 10
Кибердемон
Посты: 778
Репутация: 44
Статус: Offline

халк, Вам бы на Delphi надо было, помог бы чем мог... smile



Правила сайта!
Заработок для вебмастера
 
халкДата: Суббота, 14.05.2011, 12:36:31 | Сообщение # 11
Дух
Посты: 7
Репутация: 0
Статус: Offline

к сожалению(

Добавлено (14.05.2011, 13:36:31)
---------------------------------------------
вот есть такая. выводит средний бал по математике физике и программированию. нужно переделать чтобы выводила оценки 4 и 5 по программированию. без физики математики без среднего балла

Code
#include <stdio.h>
#include <io.h>
#include <locale.h>
struct TZap{
char FIO[30];
double s_fizika;
double s_matematika;
double s_programming;
int s_god_rozdeniya;
int s_nomer_gryppbI;
double s_sr_bal;
} Zap;
int size = sizeof(TZap);
FILE *Fz, *Ft;
char File_Zap[] = "zapisi.dat";
char File_Rez[] = "rezult.txt";
void Out(TZap);

void main()
{
setlocale (LC_ALL,"Rus");
int kod,i=0;

Ft = fopen(File_Rez, "w");
while(true) {
puts("\n Создать - 1\n Добавить - 2\n Просмотреть - 3\n Сортировать - 4\n Выход - 0");
scanf("%d", &kod);
switch(kod) {
case 1:
if ((Fz=fopen(File_Zap,"wb"))==NULL) {
puts("\n Create ERROR!");
return;
}
fclose(Fz);
printf("\n Создана новая база данных %s !\n",File_Zap);
break;
case 2:
Fz = fopen(File_Zap,"ab");
printf("\n Ф.И.О. – ");
fflush(stdin);
gets(Zap.FIO);
printf(" Год рождения - ");
scanf("%d",&Zap.s_god_rozdeniya);
printf(" Номер Группы - ");
scanf("%d",&Zap.s_nomer_gryppbI);
printf(" Балл по физике – ");
scanf("%lf", &Zap.s_fizika);
printf(" Балл по математике - ");
scanf("%lf", &Zap.s_matematika);
printf(" Балл по Вычислительной технике и программированию - ");
scanf("%lf", &Zap.s_programming);
printf( " Средний Балл - %2.1lf",Zap.s_sr_bal=((Zap.s_fizika+Zap.s_matematika+Zap.s_programming)/3.0));
fwrite(&Zap, size, 1, Fz);
fclose(Fz);
break;
case 3:
if ((Fz=fopen(File_Zap,"rb"))==NULL) {
puts("\n Open ERROR!");
return;
}
// Вывод на экран
printf("\n\t--------- Informations ---------\n");
// Запись такой же информации в текстовый файл Ft
fprintf(Ft,"\n\t--------- Informations ---------");
printf("\nФ.И.О. Г.рожд. №группы Программир. Матем. Физика Ср. балл");
while(1) {
if(!fread(&Zap,size,1,Fz)) break;
Out(Zap);
}
fclose(Fz);
break;
case 4:
if( (Zap.s_programming > 3) ){

printf("\n%1.15s %d %d %2.0lf %2.0lf %2.0lf %2.1lf", Zap.FIO,Zap.s_god_rozdeniya,Zap.s_nomer_gryppbI,Zap.s_programming,Zap.s_matematika,Zap.s_fizika,Zap.s_sr_bal);
}
}
}
}

void Out(TZap z)
{
printf("\n%1.8s %d %3.0d %2.0lf %2.0lf %2.0lf %2.1lf", z.FIO,z.s_god_rozdeniya,z.s_nomer_gryppbI,z.s_programming,z.s_matematika,z.s_fizika,z.s_sr_bal);
fprintf(Ft,"\n%1.8s %d %3.0d %2.0lf %2.0lf %2.0lf %2.1lf", z.FIO,z.s_god_rozdeniya,z.s_nomer_gryppbI,z.s_programming,z.s_matematika,z.s_fizika,z.s_sr_bal);
}
 
FalconДата: Суббота, 14.05.2011, 19:47:19 | Сообщение # 12
Кибердемон
Посты: 778
Репутация: 44
Статус: Offline

халк, не компилировал и не проверял, так что не исключено что с недочетами или ошибками, вот:

Code


#include <stdio.h>   
   #include <io.h>   
   #include <locale.h>   
   struct TZap{   
   char FIO[30];   
   double s_programming;   
   int s_god_rozdeniya;   
   int s_nomer_gryppbI;   
   } Zap;   
   int size = sizeof(TZap);   
   FILE *Fz, *Ft;   
   char File_Zap[] = "zapisi.dat";   
   char File_Rez[] = "rezult.txt";   
   void Out(TZap);   

   void main()   
   {   
   setlocale (LC_ALL,"Rus");   
   int kod,i=0;   

   Ft = fopen(File_Rez, "w");   
   while(true) {   
   puts("\n Создать - 1\n Добавить - 2\n Просмотреть - 3\n Сортировать - 4\n Выход - 0");   
   scanf("%d", &kod);   
   switch(kod) {   
   case 1:   
   if ((Fz=fopen(File_Zap,"wb"))==NULL) {   
   puts("\n Create ERROR!");   
   return;   
   }   
   fclose(Fz);   
   printf("\n Создана новая база данных %s !\n",File_Zap);   
   break;   
   case 2:   
   Fz = fopen(File_Zap,"ab");   
   printf("\n Ф.И.О. – ");   
   fflush(stdin);   
   gets(Zap.FIO);   
   printf(" Год рождения - ");   
   scanf("%d",&Zap.s_god_rozdeniya);   
   printf(" Номер Группы - ");   
   scanf("%d",&Zap.s_nomer_gryppbI);   
   printf(" Балл по Вычислительной технике и программированию - ");   
   scanf("%lf", &Zap.s_programming);   
   fwrite(&Zap, size, 1, Fz);   
   fclose(Fz);   
   break;   
   case 3:   
   if ((Fz=fopen(File_Zap,"rb"))==NULL) {   
   puts("\n Open ERROR!");   
   return;   
   }   
   // Вывод на экран   
   printf("\n\t--------- Informations ---------\n");   
   // Запись такой же информации в текстовый файл Ft   
   fprintf(Ft,"\n\t--------- Informations ---------");   
   printf("\nФ.И.О. Г.рожд. №группы Программир.");   
   while(1) {   
   if(!fread(&Zap,size,1,Fz)) break;   
   Out(Zap);   
   }   
   fclose(Fz);   
   break;   
   case 4:   
   if( (Zap.s_programming > 3) ){   

   printf("\n%1.15s %d %d %2.0lf %2.0lf %2.0lf %2.1lf", Zap.FIO,Zap.s_god_rozdeniya,Zap.s_nomer_gryppbI,Zap.s_programming);   
   }   
   }   
   }   
   }   

   void Out(TZap z)   
   {   
   printf("\n%1.8s %d %3.0d %2.0lf %2.0lf %2.0lf %2.1lf", z.FIO,z.s_god_rozdeniya,z.s_nomer_gryppbI,z.s_programming);   
   fprintf(Ft,"\n%1.8s %d %3.0d %2.0lf %2.0lf %2.0lf %2.1lf", z.FIO,z.s_god_rozdeniya,z.s_nomer_gryppbI,z.s_programming);   
   }





Правила сайта!
Заработок для вебмастера
 
халкДата: Воскресенье, 15.05.2011, 14:00:49 | Сообщение # 13
Дух
Посты: 7
Репутация: 0
Статус: Offline

ок. спс

Добавлено (15.05.2011, 15:00:49)
---------------------------------------------
условие case 4:
if( (Zap.s_programming > 3) ){
не работает. выводит имена по списку после 3, не завасимо от оценки

 
Форум » Программирование & базы данных » C++ » структуры. файлы. командная строка. задание на зачет (срочно)
Страница 1 из 11
Поиск:

Администрация и сайт не несёт ответственности за материалы, размещённые на сайте. Если какой-либо из материалов нарушает Ваше авторское право, то просим немедленно обратиться к администрации сайта, и мы немедленно удалим/откорректируем данный материал.
Все права защищены. Полное или частичное использование материалов сайта возможно только с прямой ссылкой на источник (http://pcforum.com.ua/).
Copyright pcforum.com.ua © 2008-2012
Используются технологии uCoz