Новичок
Профиль
Группа: Участник
Сообщений: 1
Регистрация: 8.7.2016
Репутация: нет Всего: нет
|
Всем доброго времени суток) Создаю программу для записей семейного бюджета на с# с помощью Windows Forms, нужна помощь... В код необходимо добавить следующее: - возможность выбора файла при загрузке и сохранении, а на форму кнопку, которая будет обнулять данные; - добавить в класс метод поиска наибольшего значения и его вывода, а на форму - кнопку для вызова этого метода; - ещё один объект класса Fields, который будет отвечать за ведение сбережений,а на форму -элементы для вывода полей в текстовое окно и в файл. Заранее спасибо) Код | 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("Данные загружены из файла"); }
private void label4_Click(object sender, EventArgs e) {
}
private void label5_Click(object sender, EventArgs e) {
}
private void cmbExpenseArticles_SelectedIndexChanged(object sender, EventArgs e) {
}
private void numExpenseDay_ValueChanged(object sender, EventArgs e) {
} } }
|
|