Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2010, 21:07   #1
Daniya.ru
Пользователь
 
Аватар для Daniya.ru
 
Регистрация: 24.11.2010
Сообщений: 17
Смех Stack и файловый ввод вывод

Здравствуйте!мне нужно а программке реализовать файловый ввод-вывод, где присутствует стек, ведомость...проблемы есть ошибки..Может что-то подскажите!?
Daniya.ru вне форума Ответить с цитированием
Старый 02.12.2010, 21:21   #2
Vistar
учащийся
Форумчанин
 
Аватар для Vistar
 
Регистрация: 26.04.2009
Сообщений: 144
По умолчанию

Цитата:
Сообщение от Daniya.ru Посмотреть сообщение
Здравствуйте!мне нужно а программке реализовать файловый ввод-вывод, где присутствует стек, ведомость...проблемы есть ошибки..Может что-то подскажите!?
давайте ваши наработки. какие именно ошибки?
Vistar вне форума Ответить с цитированием
Старый 03.12.2010, 12:49   #3
Daniya.ru
Пользователь
 
Аватар для Daniya.ru
 
Регистрация: 24.11.2010
Сообщений: 17
По умолчанию

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.IO;

namespace Laba
{

class IO
{
public static void Vvod(Stack st, string filename)
{
try
{
StreamWriter writer = File.CreateText(filename);//cоздание файла
Proizvod A;
for (int i = 0; i < st.Count; i++)
{
A = (Proizvod)st.Pop(i);//GetByIndex
writer.WriteLine(A.GetPr + "!" + A.GetK + "!" + A.GetZ + "!" + A.GetC + "!" + A.GetP + "!");
}
writer.Close();
}
catch (IndexOutOfRangeException)
{
// Перехватываем исключение.
Console.WriteLine("Нет соответствующего элемента.");
}
}
public static void Vuvod(Stack st, string filename)
{
try
{
int i = 0;
StreamReader sw = new StreamReader(filename);//вводим имя файла
string line = null;
while ((line = sw.ReadLine()) != null)
{
string[] token = line.Split('!');
Proizvod A = new Proizvod(token[0], int.Parse(token[1]), int.Parse(token[2]), int.Parse(token[3]), int.Parse(token[4], int.Parse(token[5])));
st.Push(i, A);
i++;
}
}
catch (FileNotFoundException)
{// Перехватываем исключение.
Console.WriteLine("Файл не найден!!!");
}
}
}

}
Daniya.ru вне форума Ответить с цитированием
Старый 03.12.2010, 12:51   #4
Daniya.ru
Пользователь
 
Аватар для Daniya.ru
 
Регистрация: 24.11.2010
Сообщений: 17
По умолчанию

Второй файл
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace Laba
{
/// <summary>
/// Класс Prod предназначен для ввода и вывода данных
/// </summary>
class Prod
{

string Pr;
double K = 0, Z = 0, C = 0, P = 0;
double ObshiyeK = 0, ObshiyeP = 0;
int i, n;
/// <summary>
/// Внутренняя статическая функция internal static void Vivod() для ввода-вывода данных
/// Модификатор static используется для объявления статического члена, принадлежащего собственно типу, а не конкретному объекту.
/// </summary>
///
Stack<Proizvod> st = new Stack<Proizvod>();
public void Process()
{

Console.Write("КОЛИЧЕСТВО СТРОК ВЕДОМОСТИ n= ");
n = int.Parse(Console.ReadLine());
while (n < 0 || n > 10)
{
Console.WriteLine("Введите количество строк ведомости от 1 до 10: ");
n = int.Parse(Console.ReadLine());
}

for (i = 0; i < n; i++)//цикл ввода данных
{
Console.WriteLine("Введите название продукции: " + (i + 1));
Pr = Console.ReadLine();
Console.WriteLine("Введите количество штук: " + (i + 1));
K = double.Parse(Console.ReadLine());
Console.WriteLine("Введите оптовую цену: " + (i + 1));
Z = double.Parse(Console.ReadLine());
Console.WriteLine("Введите себестоимость:" + (i + 1));
C = double.Parse(Console.ReadLine());
P = K * (Z - C);
st.Push(i, new Proizvod(Pr, K, Z, C, P));
}

i = 0;//обнуление для повторного прохождения цикла
}

public void PrintTable()
{

Console.WriteLine("Ведомость прибыли предриятия за отчетный период по видам продукции:");
Console.WriteLine(" -------------------------------------------------------------------");
Console.WriteLine(" |{0,0}|{1,13}|{2,12}|{3,11}|{4,9}|{ 5,10}|", " № ", "|ПРОД-Т", "КОЛИЧ-ВО,шт", "ОПТ ЦЕНА,грн", "СЕБЕСТ,грн", "ПРИБЫЛЬ,грн");
Console.WriteLine(" --------------------------------------------------------------------");
foreach (Proizvod tmpProd in st) //вывод таблицы
{
Console.WriteLine("| {0,-10}|{1,-6}|{2,-12:F2}|{3,-11:F2} |{4,-9:F2} |{5,-11:F2}|", i + 1, tmpProd.GetPr, tmpProd.GetK, tmpProd.GetZ, tmpProd.GetC, tmpProd.GetP);
}
Console.WriteLine(" --------------------------------------------------------------------");
i = 0;//обнуление для повторного прохождения цикла обработки и подсчета суммы элементов массивов
for (i = 0; i < n; i++)
{
ObshiyeK = ObshiyeK + K;
ObshiyeP = ObshiyeP + P;
}
Console.WriteLine(" Итого:" + "__________" + "|" + ObshiyeK + "___________" + "|" + "_____________" + "|" + "__________" + "|" + ObshiyeP + "_________" + "|");
Console.WriteLine(" -------------------------------------------------------------------");
}
Daniya.ru вне форума Ответить с цитированием
Старый 03.12.2010, 12:51   #5
Daniya.ru
Пользователь
 
Аватар для Daniya.ru
 
Регистрация: 24.11.2010
Сообщений: 17
По умолчанию

static void Main()// Основной метод программы
{

Prod My = new Prod();//создание объекта

Console.Write("Введите название создаваемого файла (in English, please): ");
string filename = Console.ReadLine();//введение имени файла
Console.WriteLine();
//проверка
if (File.Exists(filename))
{
do
{
Console.WriteLine("Данный файл уже существует. Загрузить его содержимое? (y/n)");
string ans = Console.ReadLine();
if (ans == "y" || ans == "Y")
{
IO.Vuvod(My.st, filename);
My.PrintTable();
Console.ReadLine();
return;
}

else
{
Console.Write("Введите название создаваемого файла (in English, please): ");
filename = Console.ReadLine();//введение названия файла
if (!File.Exists(filename))
break;
}
}
while (File.Exists(filename));
}
My.Process();
My.PrintTable();

IO.Vvod(My.st, filename);
Console.WriteLine("вы хотите загрузить содержимое из файла?? (y/n)");

string zag = Console.ReadLine();//введение y для загрузки содержимого файла
if (zag == "y" || zag == "Y")
{
IO.Vuvod(My.st, filename);
My.PrintTable();
}

}
}
}
Daniya.ru вне форума Ответить с цитированием
Старый 03.12.2010, 12:52   #6
Daniya.ru
Пользователь
 
Аватар для Daniya.ru
 
Регистрация: 24.11.2010
Сообщений: 17
По умолчанию

Третий файл

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;


namespace Laba
{
class Proizvod//объявление переменных экземпляра
{
private string Pr;//название продукции
private double K;//количество шт
private double Z;//оптовая цена грн

private double C;//себестоимость грн
private double P;//прибыль грн

public Proizvod(string Pr, double K, double Z, double C, double P)//конструкор с параметрами,инициализация переменных
{
this.Pr = Pr;
this.K = K;
this.Z = Z;
this.C = C;
this.P = P;
}
//свойства
public string GetPr { get { return Pr; } }//функции для вывода
public double GetK { get { return K; } }
public double GetZ { get { return Z; } }
public double GetC { get { return C; } }
public double GetP { get { return P; } }
}
}
Daniya.ru вне форума Ответить с цитированием
Старый 03.12.2010, 12:55   #7
Daniya.ru
Пользователь
 
Аватар для Daniya.ru
 
Регистрация: 24.11.2010
Сообщений: 17
По умолчанию

Не могу сказать точно с чем в чем у меня ошибки!Проблемы с функцией Pop, хотя я не уверена, что она там вообще должна быть, потому что я переделывала свою программку по примеру программки практически такой же, но там вместо стека был сортидлист!
Daniya.ru вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файловый ввод-вывод Кристюня Общие вопросы C/C++ 9 29.11.2010 20:02
Файловый ввод-вывод Оля_1991 Помощь студентам 0 10.10.2010 14:12
Файловый ввод вывод GrihaI Общие вопросы C/C++ 4 31.05.2010 02:45
Файловый ввод-вывод andrey-v-isaev Общие вопросы C/C++ 1 02.05.2010 19:54
Файловый ввод/вывод -=$V=- Общие вопросы C/C++ 8 13.12.2008 21:11