Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > С/С++
Перезагрузить страницу Программирование форм windows, на С#
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
PositiveGirl PositiveGirl вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.07.2016
Question Программирование форм windows, на С# - 09.07.2016, 17:46

Создаю программу для записей семейного бюджета на с# с помощью Windows Forms. В код необходимо добавить следующее:
- возможность выбора файла при загрузке и сохранении, а на форму кнопку, которая будет обнулять данные;
- добавить в класс метод поиска наибольшего значения и его вывода, а на форму - кнопку для вызова этого метода;
- ещё один объект класса Fields, который будет отвечать за ведение сбережений,а на форму -элементы для вывода полей в текстовое окно и в файл.
Очень нужна помощь... Заранее спасибо)
csharp Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Threading.Tasks;
namespace WindowsFormsApplication4
{
    public partial class frmFinance : Form
    {
        public frmFinance()
        {
            InitializeComponent();
        }
        static string[] sIncomeArticles = new string[] { "Осн.доход.мужа\t", "Осн.доход.жены\t", "Доп.доход.мужа\t", "Доп.доход.жены\t",
            "Подарки\t\t", "Соц.выплаты\t" };
        static string[] sExpenseArticles = new string[] { "Еда\t\t", "Жильё\t\t", "Одежда\t\t", "Транспорт\t", "Связь\t\t", "Обучение\t",
            "Развлечения\t", "Путешествия\t", "Благотворительность\t", "Прочее\t\t" };
        public class Fields
        {
            public int Rows, Columns = 32;
            public string[,] Articles = new string[50, 32];
            public Fields(int rows)
            {
                Rows = rows;
            }
            public void SetFirstColumn(string[] mas)
            {
                Articles[0, 0] = "Статья/День\t";
                for (int i = 1; i < Rows; i++)
                    Articles[i, 0] = mas[i - 1];
            }
            public void SetDayNumbers()
            {
                for (int i = 1; i <= Columns - 1; i++)
                    Articles[0, i] = Convert.ToString(i);
            }
            public string Output()
            {
                string str = "";
                for (int i = 0; i < Rows; i++)
                {
                    for (int j = 0; j < Columns; j++)
                    {
                        if (Articles[i, j] != null)
                            str = str + Articles[i, j] + " \t";
                        else
                            str = str + "- \t";
                    }
                    str = str + "\r\n";
                }
                return str;
            }
            public int SumOfElements()
            {
                int iSum = 0;
                for (int i = 1; i < Rows; i++)
                    for (int j = 1; j < Columns; j++)
                        if (Articles[i, j] != "" && Articles[i, j] != "-")
                            iSum = iSum + Convert.ToInt32(Articles[i, j]);
                return iSum;
            }
        }
        string TextBoxLine(string sIncome, string sAllIncome, string sExpense, string sAllExpense, string sDifference)
        {
            string str = "";
            str = "Доходы:\r\n" + sIncome;
            str = str + "Общий доход: " + sAllIncome + "\r\n\r\n";
            str = str + "Расходы:\r\n" + sExpense;
            str = str + "Общий расход: " + sAllExpense + "\r\n\r\n";
            str = str + "В наличии: " + sDifference;
            return str;
        }
        Fields Income = new Fields(sIncomeArticles.Length + 1);
        Fields Expense = new Fields(sExpenseArticles.Length + 1);
        private void Form1_Load(object sender, EventArgs e)
        {
            Income.SetFirstColumn(sIncomeArticles);
            Expense.SetFirstColumn(sExpenseArticles);
            Income.SetDayNumbers();
            Expense.SetDayNumbers();
            for (int i = 0; i < Income.Rows - 1; i++)
                cmbIncomeArticles.Items.Add(Income.Articles[i + 1, 0]);
            for (int i = 0; i < Expense.Rows - 1; i++)
                cmbExpenseArticles.Items.Add(Expense.Articles[i + 1, 0]);
            rtbOutput.Text = TextBoxLine(Income.Output(), Convert.ToString(Income.SumOfElements()),
                Expense.Output(), Convert.ToString(Expense.SumOfElements()),
                Convert.ToString(Income.SumOfElements() - Expense.SumOfElements()));
        }
        private void btnIncomeAdd_Click(object sender, EventArgs e)
        {
            if (cmbIncomeArticles.SelectedIndex != -1)
            {
                if (txtIncomeAdd.Text != "")
                {
                    if (Income.Articles[(cmbIncomeArticles.SelectedIndex + 1), Convert.ToInt32(numIncomeDay.Value)] != "-")
                        Income.Articles[(cmbIncomeArticles.SelectedIndex + 1), Convert.ToInt32(numIncomeDay.Value)] =
                        Convert.ToString(Convert.ToInt32(Income.Articles[(cmbIncomeArticles.SelectedIndex + 1),
                        Convert.ToInt32(numIncomeDay.Value)]) + Convert.ToInt32(txtIncomeAdd.Text));
                    else
                        Income.Articles[(cmbIncomeArticles.SelectedIndex + 1), Convert.ToInt32(numIncomeDay.Value)] = txtIncomeAdd.Text;
                    rtbOutput.Text = TextBoxLine(Income.Output(), Convert.ToString(Income.SumOfElements()),
                        Expense.Output(), Convert.ToString(Expense.SumOfElements()), Convert.ToString(Income.SumOfElements() - Expense.SumOfElements()));
                }
                else
                    MessageBox.Show("Введите значение дохода");
            }
            else
                MessageBox.Show("Выберите статью дохода");
        }
        private void btnExpenseAdd_Click(object sender, EventArgs e)
        {
            if (cmbExpenseArticles.SelectedIndex != -1)
            {
                if (txtExpenseAdd.Text != "")
                {
                    if (Expense.Articles[(cmbExpenseArticles.SelectedIndex + 1), Convert.ToInt32(numExpenseDay.Value)] != "-")
                        Expense.Articles[(cmbExpenseArticles.SelectedIndex + 1), Convert.ToInt32(numExpenseDay.Value)] =
                        Convert.ToString(Convert.ToInt32(Expense.Articles[(cmbExpenseArticles.SelectedIndex + 1),
                        Convert.ToInt32(numExpenseDay.Value)]) + Convert.ToInt32(txtExpenseAdd.Text));
                    else
                        Expense.Articles[(cmbExpenseArticles.SelectedIndex + 1), Convert.ToInt32(numExpenseDay.Value)] = txtExpenseAdd.Text;
                    rtbOutput.Text = TextBoxLine(Income.Output(), Convert.ToString(Expense.SumOfElements()),
                        Expense.Output(), Convert.ToString(Expense.SumOfElements()), Convert.ToString(Income.SumOfElements() - Expense.SumOfElements()));
                }
                else
                    MessageBox.Show("Введите значение расхода");
            }
            else
                MessageBox.Show("Выберите статью расхода");
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            FileStream fsFile = new FileStream("Семейные финансы.txt", FileMode.Create);
            StreamWriter fileWrite = new StreamWriter(fsFile);
            fileWrite.Write(TextBoxLine(Income.Output(), Convert.ToString(Income.SumOfElements()),
                Expense.Output(), Convert.ToString(Expense.SumOfElements()), Convert.ToString(Income.SumOfElements() - Expense.SumOfElements())));
            fileWrite.Close();
            MessageBox.Show("Данные сохранены в файл");
        }
        private void btnLoad_Click(object sender, EventArgs e)
        {
            FileStream fsFile = new FileStream("Семейные финансы.txt", FileMode.Open);
            try
            {
                using (StreamReader fileRead = new StreamReader(fsFile))
                {
                    string temp;
                    temp = fileRead.ReadLine();
                    for (int i = 0; i < Income.Rows; i++)
                    {
                        string[] separator = new string[] { " " };
                        string[] mas = new string[Income.Columns];
                        mas = fileRead.ReadLine().Split(separator, StringSplitOptions.None);
                        for (int j = 0; j < Income.Columns; i++)
                            Income.Articles[i, j] = mas[j].Trim(new char[] { '\t' });
                    }
                    temp = fileRead.ReadLine();
                    temp = fileRead.ReadLine();
                    temp = fileRead.ReadLine();
                    for (int i = 0; i < Expense.Rows; i++)
                    {
                        string[] separator = new string[] { " " };
                        string[] mas = new string[Expense.Columns];
                        mas = fileRead.ReadLine().Split(separator, StringSplitOptions.None);
                        for (int j = 0; j < Expense.Columns; j++)
                            Expense.Articles[i, j] = mas[j].Trim(new char[] { '\t' });
                    }
                    fileRead.Close();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Файл не может быть прочитан");
            }
            Income.SetFirstColumn(sIncomeArticles);
            Expense.SetFirstColumn(sExpenseArticles);
            rtbOutput.Text = TextBoxLine(Income.Output(), Convert.ToString(Income.SumOfElements()),
                Expense.Output(), Convert.ToString(Expense.SumOfElements()), Convert.ToString(Income.SumOfElements() -
                Expense.SumOfElements()));
            MessageBox.Show("Данные загружены из файла");
        }
Ответить с цитированием
  (#2 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,394
Сказал(а) спасибо: 22
Поблагодарили 936 раз(а) в 920 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 10.07.2016, 20:23

Какого рода помощь?
Написать всё за Вас? Или совет?
Это учебная задача или для себя?
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форм фактор Amigo31 Материнские платы 15 08.02.2011 20:24
Форм-фактор S.D.I. Любые вопросы от новичков 3 10.01.2011 02:27
Программирование в Windows CE 5.0 bva_rzn Windows CE 2 20.12.2009 15:53
Как сохранить автозаполнение форм, пароли при перестановке Windows? arz88 Любые вопросы от новичков 8 22.02.2009 12:02
Программирование в Borland C++ 3.1 под Windows Axaxa Вопросы начинающих программистов 3 12.11.2007 19:28
Программирование под Windows Smartphone 2003, начало bartwell Windows CE 1 17.12.2005 00:11
Программирование драйверов под Windows Postum Железо. Написание драйверов 5 03.08.2005 10:03
Чем отличается программирование на Linux от Windows dimax C++ на Unix 2 27.04.2005 19:03
Программирование LPT порта в Windows XP Anonymous WinAPI 17 28.09.2004 07:28
Перенос форм из VBA в VB. choutov Visual Basic 0 16.08.2004 13:05
Программирование под Windows, основы работы с Visual Studio Ril' Вопросы начинающих программистов 2 18.06.2003 18:15



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов