друзья помогите с заданием на зачет. данные темы на парах не рассматривались, поэтому самому очень сложно за оставшиеся 3 дня все разобрать. суть задания вот в чем:
нужно написать программу обработки файла типа запись, содержащую пункты:"Создание" "Просмотр" "Правка(добавление новых данных или редактирование старых)" "Распечатать анкетные данные студентов имеющих оценки 4 и 5 по программированию". вот такое...
как я понял программа вызывается из командной строки. после чего я ввожу имена студентов, имеющих оценку 4 и 5. эти данные я могу просматривать и редактировать.эти данные я могу поместить куда-то для печати (наверно в блокнот).
всем откликнувшимся огромное человеческое спасибо. надеюсь на Вас
Я сам, конечно, так себе знаток, но попытался бы помочь если бы задание было четче сформулировано.
Quote
нужно написать программу обработки файла типа запись
В смысле файл, содержащий в себе записи структурного типа?
Quote
как я понял программа вызывается из командной строки.
В смысле приложение консольное, или вызывается с параметром, или как еще-то?
Quote
после чего я ввожу имена студентов, имеющих оценку 4 и 5. эти данные я могу просматривать и редактировать.
То есть грубо говоря есть пустой файл, вы его по определенной схеме в той же программе заполняете, затем выводите студентов с оценками 4 и 5 которых туда добавили? В общем больше конкретики.
Хотелось бы узнать в какой среде работаете (компилятором каким пользуетесь) и всё таки консольное вам приложение нужно или визуальное. Но в общем у вас всё написано лучше чем в моих конспектах, но задание я понял не до конца. Я думаю сначала в программе нужно проверить параметры командной строки - argv[1] и argv[2] чтобы они, собственно, были (а если их нет -уведомить пользователя и закрыть программу) и, желательно, заканчивались на .dat и .txt соответственно и дописать если не заканчиваются. Дальше неплохо бы организовать структуру содержащую фамилию и инициалы как строку, год рождения как инт, номер группы как строку, оценки как массив из интов из четырех элементов или как четыре отдельных инта, и инт - средний балл, его можно будет рассчитать на ходу по ходу ввода (всё равно в этой же программе создавать файл будете). Дальше по ходу работы с файлами: "создание" - оба файла достаточно открыть для записи и они будут созданы чистенькими, названия переданы в командной строке. "просмотр" - открыть для считывания и выводить до конца файла построчно. "Решение индивидуального задания" - тоже не сложно. В лоб можно считать всё построчно из файла в массив созданного выше структурного типа и дальше если оценка по обоим предметам больше трех - выводить на экран. "правка" - самое сложное, но тоже не особая проблема. Для добавления есть возможность открыть файл с кодом a и просто попросить пользователя ввести значения. Правка - уже сложнее, думаю можно опять же в лоб сделать - считать всё в массив структур, вывести построчно включая номер элемента в массиве, попросить у пользователя номер элемента который нужно отредактировать, запросить у него заново весь элемент, перезаписать файл. диалог с пользователем, думаю, можете и самостоятельно оформить. В общем-то всё что нужно у вас записано в теор. части лабы.
нужна программа на языке С. работаю в Microsoft Visual Studio 2008/ я должен написать программу. дальше через командную строку открыть ее. написано все конечно хорошо. но когда ни опыта ни времени нет, то это не помогает
Похоже вы таки хотите чтобы вам вот так взяли и весь код написали. Так дела не делаются. Вы как-то до конца семестра дотянули, что вам конкретно непонятно-то? Массивов не видели? Строк? Работа с файлами, структуры и взятие параметра из командной строки есть у вас в пдфке. Спасение утопающих - дело рук самих утопающих.
дальше указателей я не вникал) кроме программирования есть другие предметы. что-то изучить можно нормально изучая только что-то одно. у нас почти каждый препод считает свой предмет самым важным. он считает что мы его предмет день и ночь учим. баланса нет. но я пытаюсь как-то балансировать.везде успевать. с помощью форумов, помощи. по другому никак не выйдет.
Добавлено (08.05.2011, 19:20:46) --------------------------------------------- чтобы самому это понять нужны дни... у меня нет времени на все это. я не считаю что мое будущее в программировании. поэтому и не вникаю сильно.
Добавлено (08.05.2011, 19:29:34) --------------------------------------------- я пытаюсь все закрыть автоматом. поэтому сижу днями за лаборатоными, подготовками
Вы не подумайте, я всё понимаю, сам такой, однако и вы поймите: никто не будет вот так вот просто, за спасибо, тратить пару часов времени чтобы сделать за вас вашу работу. Помочь и подсказать если есть вопросы - пожалуйста, но если вы не пытались ничего сделать сами - никто вам и помогать не будет.
я понимаю. но тем не менее мне помогали. писали код за спасибо. возможна людям хочеться потренироваться и они заходят на форум и пишут коды. и времени на это у них уходит ну чуть больше получаса)
Добавлено (14.05.2011, 13:36:31) --------------------------------------------- вот есть такая. выводит средний бал по математике физике и программированию. нужно переделать чтобы выводила оценки 4 и 5 по программированию. без физики математики без среднего балла
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) ){
Добавлено (15.05.2011, 15:00:49) --------------------------------------------- условие case 4: if( (Zap.s_programming > 3) ){ не работает. выводит имена по списку после 3, не завасимо от оценки