Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с созданием меню. Программа на структуры 
:(
    Опции темы
texcel
Дата 2.3.2009, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 1.3.2009

Репутация: нет
Всего: нет



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

Код

#include"strukt.h"
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#define con 1
STUDENT* spisok()
{
    int p=0;
    STUDENT *m=new STUDENT[3];
    for (int i=0;i<con;i++)
    {
        
        printf("1.Manual\n2.File\n");
        scanf ("%i",&p);
        if (p==1){
        printf ("Enter the Second name\n");
        scanf ("%s",m[i].F_n);
        printf ("Enter the initials\n");
        scanf ("%s",m[i].I_o);
        printf("Enter the number of group\n");
        scanf ("%s",m[i].no);
        printf ("Enter the values of student\n");
        scanf ("%i %i %i %i %i",&m[i].v[0],&m[i].v[1],&m[i].v[2],&m[i].v[3],&m[i].v[4]);
        m[i].sred=(m[i].v[0]+m[i].v[1]+m[i].v[2]+m[i].v[3]+m[i].v[4])/5.0;
        printf ("%s %s %s ",m[i].F_n,m[i].I_o,m[i].no);
        printf("%i %i %i %i %i\n",m[i].v[0],m[i].v[1],m[i].v[2],m[i].v[3],m[i].v[4]);
        printf("Is it correct?\n");
        printf ("1.yes\n2.no\n");
        int k=0;
        scanf("%i",&k);
        if(k==2) i--;
        //getch();
        //delete *m;
        }
        else
        {
            char name[256];
            printf ("Type name of write file\n");    //1
            scanf ("%s",&name);
            FILE* f;
            if(!(f=fopen(name,"r")))
            {
                printf( "The file was not opened\n");
                getch();        
                return NULL;
            }
            fseek(f,0,SEEK_END);
            int len=ftell(f);
            char buf[8][16];
            const int l_block=2;
            int num_block=len/l_block+1;
            fseek(f,0,SEEK_SET);
            int b=0;
            while(!feof(f))    {
                fscanf (f,"%s",buf[b]);
                b++;
            }
            strcpy(m[i].F_n,buf[0]);
            strcpy(m[i].I_o,buf[1]);
            strcpy(m[i].no,buf[2]);
            m[i].v[0]=atoi(buf[3]);
            m[i].v[1]=atoi(buf[4]);
            m[i].v[2]=atoi(buf[5]);
            m[i].v[3]=atoi(buf[6]);
            m[i].v[4]=atoi(buf[7]);
            fclose(f);
            printf ("%s %s %s %i %i %i %i %i\n",m[i].F_n, m[i].I_o, m[i].no,m[i].v[0],m[i].v[1],m[i].v[2],m[i].v[3],m[i].v[4]);
            getch();
        }
    }
    return m;
}
STUDENT *sort(STUDENT* m)
{
    int v,v1;
    int k=0;
    while (k<con){
    for(int i=0;i<con-1;i++)
    {
        STUDENT k=m[i];
        if (atoi(m[i].no)>atoi(m[i+1].no))
        {
            m[i]=m[i+1];
            m[i+1]=k;
        }
    }
    k++;
    }
    return m;
}
void print(STUDENT* m)
{
    int d=0;
    for (int i=0;i<con;i++)
    {
        if(m[i].sred>4.1)
        {
        
                printf ("%s %s %s ",m[i].F_n,m[i].I_o,m[i].no);
                printf("%i %i %i %i %i\n",m[i].v[0],m[i].v[1],m[i].v[2],m[i].v[3],m[i].v[4]);
                d++;
                getch();
        }
    }
    if(d==0){ printf("Not student's with 4.1 or more middle value\n"); getch();}
}
int v_fail(char name[10],STUDENT* n)
{
    FILE *f;
    if(!(f=fopen(name,"w")))
    {    printf( "The file was not write\n");
        getch();
        return 1;
    }
    for(int i=0; i<3;i++)
    {
        fprintf(f,"%s %s %s %i %i %i %i %i",n[i].F_n, n[i].I_o, n[i].no, n[i].v[0], n[i].v[1], n[i].v[2], n[i].v[3], n[i].v[4]);
    }
    return 0;
}
void printall(STUDENT* m)
{
    for (int i=0;i<con;i++)
    {
        printf ("%s %s %s ",m[i].F_n,m[i].I_o,m[i].no);
        printf("%i %i %i %i %i\n",m[i].v[0],m[i].v[1],m[i].v[2],m[i].v[3],m[i].v[4]);
    }
}
int main()
{
    int p=0;
    int f=0;

    STUDENT* lk=sort(spisok());
    char n[10];
    print(lk); 

    
    printf ("print all?\n1.yes\n2.no\n");
    scanf ("%i",&f);
    if (f==1){printall(lk);};
    printf ("1.write in file\n2.Exit\n");
    scanf("%i",&p);
    if (p==1)    
        {
            printf ("Type name of write file\n");    
            scanf ("%s",&n);
            v_fail(n,lk);
            printf ("Complite\n");
            getch();
            delete [] lk;
        }                                            
    printf ("Press any key...");
    getch();
    return 0;
}



Вот само задание. 

1.Опишите структуру с заданными полями и реализуйте указанные действия.
2. Программа должна запрашивать все необходимые параметры, отслеживая правильность формата ввода. 
3. Упорядочивание должно происходить после каждого дополнения, вносимого в данные, а также позволять вводить не все записи сразу, а добавлять их по мере необходимости.
3.Описание структуры разместите в заголовочном файле, а определения функций и главную функцию – в двух отдельных файлах.
Часть 2
5.Реализуйте возможность считывания (записи) исходных данных из файла (в файл). 
6. Имя файла должно запрашиваться у пользователя.
7.Программа, исходя из содержимого файла, должна  выдавать сообщение об ошибке в случае, если данные не удовлетворяют условиям задачи. 

1. Описать структуру с именем STUDENT, содержащую следующие поля:
фамилия и инициалы
номер группы
успеваемость (массив из пяти элементов)
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по возрастанию номера группы;
вывод на дисплей фамилий и номеров групп для всех студентов, включенных в массив, если  средний балл студента больше 4.1; если таких студентов нет, вывести соответствующее сообщение.
вывод полного списка студентов.
PM MAIL   Вверх
bsa
Дата 2.3.2009, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



texcel, в чем собственно у тебя проблема?
PM   Вверх
texcel
Дата 3.3.2009, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 1.3.2009

Репутация: нет
Всего: нет



Нужно вписать меню, которое позволит выполнить следующее задание 
3. Упорядочивание должно происходить после каждого дополнения, вносимого в данные, а также позволять вводить не все записи сразу, а добавлять их по мере необходимости.
PM MAIL   Вверх
Anikmar
Дата 3.3.2009, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(texcel @  3.3.2009,  07:41 Найти цитируемый пост)
Нужно вписать меню, которое позволит выполнить следующее задание 
3. Упорядочивание должно происходить после каждого дополнения, вносимого в данные, а также позволять вводить не все записи сразу, а добавлять их по мере необходимости. 

Вы сами этот код писали?
PM MAIL ICQ   Вверх
texcel
Дата 3.3.2009, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 1.3.2009

Репутация: нет
Всего: нет



Нет.
PM MAIL   Вверх
Anikmar
Дата 3.3.2009, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(texcel @  3.3.2009,  19:45 Найти цитируемый пост)
Нет. 

Я так и думал, потому, что меню там есть. Простенькое, но есть.
PM MAIL ICQ   Вверх
texcel
Дата 3.3.2009, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 1.3.2009

Репутация: нет
Всего: нет



Но там нет меню, которое позволит после сортировки добавить еще одного студента и снова отсортировать.
PM MAIL   Вверх
Anikmar
Дата 3.3.2009, 21:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Такого конкретно нет. 

Вашу одну тему уже переместили в центр помощи - по идее эту туда же.

В центре помощи за вас могут написать. В остальных темах вам могут помочь. Но глядя на ваш вопрос и на код, который вы представили, я понял, что код не ваш и вы ничего не делали - это в центр помощи, без обид.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0478 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.