Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите написать программу!

79K
21 января 2012 года
JimmyEarthworm
2 / / 21.01.2012
Уже несколько дней бьюсь и ничего не получается...
Есть программа вот код:
Код:
//файл заголовков TPlab4_1.h
#ifndef TPlab4_1_h
#define TPlab4_1_h
#include <iostream>
using std::cout;
using std::cin;
using std::cerr;
using std::endl;
using std::ios;
#include <fstream>
using std::ofstream;
using std::ostream;
using std::fstream;
using std::istream;
#include <iomanip>
using std::setiosflags;
using std::resetiosflags;
using std::setw;
using std::setprecision;

#include <cstdlib>


struct tip_client
{
    int nomer;
    char fam[15];
    char im[10];
    float balance;
};
int menu();
void textfile(fstream &);
void dobzap(fstream &);
void zamzap(fstream &);
void udzap(fstream &);
void vyvod(ostream &, const tip_client &);
int vvod_nomer(const char * const);
enum option{TEXTFILE=1, DOBAVLENIE, ZAMENA,
UDALENIE, END};
#endif


Код:
//файл кодов TPlab3_4.cpp
#include "stdafx.h"
#include "TPlab4_1.h"
int _tmain(int argc, _TCHAR* argv[])
{
    fstream inoutf("client.dat", ios::in|ios::out);
    if(!inoutf)
    {
        cerr<<"File client.dat ne otkr."<<endl;
        ofstream outf("client.dat",ios::out);
    tip_client client0={0, "", "", 0.0};
    for(int i=0; i<100; i++)
    outf.write((char *) &client0, sizeof(tip_client));
    outf.close();
    }
    int vybor;
    while((vybor=menu())!=END)
    {
        switch(vybor)
        {
        case TEXTFILE:
                textfile(inoutf);
                break;
        case DOBAVLENIE:
                dobzap(inoutf);
                break;
        case ZAMENA:
                zamzap(inoutf);
                break;
        case UDALENIE:
                udzap(inoutf);
                break;
        case END: break;
            default:
                cerr<<"Neprav. vybor\n";
                break;
        }
        inoutf.clear();
    }

    return 0;
}
int menu()
{
    cout<<"\nMENU\n"
        <<"1-Sozdanie textfile-vyvod\n"
        <<"2-Dobavlenie zap\n"
        <<"3-Zamena zap\n"
        <<"4-Udalenie zap\n"
        <<"5-Konec\n\n"
        <<"\nVash vybor: ";
    int menuvybor;
    cin>>menuvybor;
    return menuvybor;
}
void textfile(fstream &readf)
{
    ofstream outprintf("print.txt", ios::out);
    if(!outprintf)
    {
        cerr<<"File ne otkr."<<endl;
        exit(1);
    }
    outprintf<<setiosflags(ios::left)<<setw(10)
        <<"Nomer"<<setw(16)<<"Familija"<<setw(11)
        <<"Imja"<<resetiosflags(ios::left)
        <<setw(10)<<"Balance"<<endl;
    cout<<setiosflags(ios::left)<<setw(10)
        <<"Nomer"<<setw(16)<<"Familija"<<setw(11)
        <<"Imja"<<resetiosflags(ios::left)
        <<setw(10)<<"Balance"<<endl;
    readf.seekg(0, ios::beg);
    tip_client client;
    readf.read((char *)&client, sizeof(tip_client));
    while(!readf.eof())
    {
        if(client.nomer !=0)
        {
            vyvod(outprintf, client);
            vyvod(cout, client);
        }
        readf.read((char *)&client, sizeof(tip_client));
    }
}
void dobzap(fstream &dobf)
{
    int schet=vvod_nomer("Vvedite novyj nomer scheta: ");
    dobf.seekg((schet-1)*sizeof(tip_client), ios::beg);
    tip_client client;
    dobf.read((char *) &client, sizeof(tip_client));
    if(client.nomer==0)
    {
        cout<<"Vvedite familiju, imja, balance\n: ";
        cin>>client.fam>>client.im>>client.balance;
        client.nomer=schet;
        dobf.seekp((schet-1)*sizeof(tip_client), ios::beg);
        dobf.write((char *) &client, sizeof(tip_client));
    }
    else
        cerr<<"Schet № "<<schet<<" imeetcja"<<endl;
}
void zamzap(fstream &zamf)
{
    int schet=vvod_nomer("Vvedite nomer scheta zamenj: ");
    zamf.seekg((schet-1)*sizeof(tip_client), ios::beg);
    tip_client client;
    zamf.read((char *) &client, sizeof(tip_client));
    if(client.nomer!=0)
    {
        vyvod(cout, client);
        cout<<"Vvedite rashod (+) ili doplatu (-): ";
        float rasdop;
        cin>>rasdop;
        client.balance+=rasdop;
        vyvod(cout, client);
        zamf.seekp((schet-1)*sizeof(tip_client), ios::beg);
        zamf.write((char *) &client, sizeof(tip_client));
    }
    else
        cerr<<"Schet № "<<schet<<" ne imeet inf."<<endl;
}
void udzap(fstream &udf)
{
    int schet=vvod_nomer("Vvedite nomer scheta udalenija: ");
    udf.seekg((schet-1)*sizeof(tip_client), ios::beg);
    tip_client client;
    udf.read((char *) &client, sizeof(tip_client));
    if(client.nomer!=0)
    {
        tip_client client0={0, "", "", 0.0};
        udf.seekp((schet-1)*sizeof(tip_client), ios::beg);
        udf.write((char *) &client0, sizeof(tip_client));
        cout<<"Schet № "<<schet<<" udalen"<<endl;
    }
    else
        cerr<<"Schet № "<<schet<<" pustoj"<<endl;
}
void vyvod(ostream &output, const tip_client &cl)
{
    output<<setiosflags(ios::left)<<setw(10)
        <<cl.nomer<<setw(16)<<cl.fam<<setw(11)
        <<cl.im<<setw(10)<<setprecision(2)<<resetiosflags(ios::left)
        <<setiosflags(ios::fixed | ios::showpoint)<<cl.balance<<endl;
}
int vvod_nomer(const char * const nom)
{
    int schet;
    do
    {
        cout<<nom<<" (1 - 100):";
        cin>>schet;
    }
    while(schet<1 || schet>100);
    return schet;
}


надо её переделать, чтобы соответствовала заданию:

Имеются данные нарядов на выполнение работ: табельный номер рабочего, ФИО, код работы, норма времени. Имеется справочник тарифов работ: код работы, наименование, тариф часа в руб. Рассчитать ведомость стоимости работ рабочего, задаваемого по запросу.

Есть у кого какие соображения?
Вы не подумайте, я не ленюсь сам сделать, просто мыслей даже никаких нормальных нет.
Пытался делать, но увы ничего не вышло...
316
21 января 2012 года
Alm3n
889 / / 29.05.2009
Никогда не понимал, зачем люди просят переделать чей-то код, вместо того чтобы написать программу с нуля? Это же может быть даже быстрее.
79K
21 января 2012 года
JimmyEarthworm
2 / / 21.01.2012
Цитата: Alm3n
Никогда не понимал, зачем люди просят переделать чей-то код, вместо того чтобы написать программу с нуля? Это же может быть даже быстрее.



Там задание такое, написать на подобие этой программы.

Я просто даже переделать не знаю как, с нуля вообще не представляю...

316
21 января 2012 года
Alm3n
889 / / 29.05.2009
Цитата: JimmyEarthworm

Я просто даже переделать не знаю как, с нуля вообще не представляю...


Ви так говог'ите, как будто пг'едставляете, как уже имеющееся пег'еделать.

75K
21 января 2012 года
Sonyk
4 / / 25.10.2011
Помогу, пиши в лс...
76K
24 января 2012 года
kmaks
10 / / 10.12.2011
Да это просто жирный тролль захотел халявы!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог