Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz

27.05.2010, 17:03
|
|
Постоянный
Регистрация: 15.03.2008
Сообщений: 441
Провел на форуме: 2052341
Репутация:
95
|
|
Начал писать исключения и нечто другое..создал отдельный класс Account.cs. Создал методов, но они не работают - хз почему
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication1
{
class Account
{
string FIO;
int sum;
int num;
public bool check;
public Account(string FIO, int num, int sum, bool check) //конструктор класса
{
this.FIO = FIO;
this.num = num;
this.sum = sum;
this.check = check;
}
public string fio //свойство - владелец
{
get
{
return FIO; //действие при обращении в свойству
}
set
{
FIO = value; //действие при изменении свойсва
}
}
public int Num //свойство - номеер автомобиля
{
get
{
return num; //действие при обращении в свойству
}
set
{
num = value; //действие при изменении свойсва
}
}
public int Sum //свойство - код региона
{
get
{
return sum; //действие при обращении в свойству
}
set
{
sum = value; //действие при изменении свойсва
}
}
public static int TryInt(string strnum) //метод проверяет тип переменной
{
int tryme = 0;
try //проверяем тип переменной
{
tryme = int.Parse(strnum);
return tryme; //если переменная целого типа, возвращаем ее
}
catch //если тип не int, выводим предупреждение и возвращаем 0
{
MessageBox.Show("Ошибка! Прочитайте инструкцию!", "Ошибка ввода");
return 0; //возвращаем 0 в случае ошибки
}
}
public static string TryName(string name) //проверяем введенное имя
{
string s = name.ToUpper(); //преобразуем все буквы в прописные
if (name.Length == 0 || name.Length == 1 || name.Length == 2 || name.Length > 20) //проверяем длину строки
{
MessageBox.Show("Ошибка! Прочитайте инструкцию!", "Ошибка ввода");
return "<Ошибка>"; //возвращаем строку <Ошибка> если условие не выполняется
}
else
{
for (int i = 0; i < name.Length; i++)
{
if ((s[i] < 'А') || (s[i] > 'Я')) //проверяем что все символы в строке - буквы
{
MessageBox.Show("Ошибка! Прочитайте инструкцию!", "Ошибка ввода");
break; //если нет - выходим из цикла и возвращаем строку <Ошибка>
}
else //выполняем если слово состоит из букв
{
if (i == (name.Length - 1))
{
string fl = (s[0].ToString()).ToUpper(); //первая буква в строке - делаем ее заглавной
s = fl;
for (int j = 1; j < name.Length; j++) //цикл для "составления" слова заново
{
s = s + (name[j].ToString()).ToLower(); //"Составляем" слово заново, превращая все буквы кроме первой в прописные
}
return s; //В результате получае фамилию владельца, написанную с заглавной буквы. Эту строку и возвращаем
}
}
}
return "<Ошибка>"; //возвращаем строку <Ошибка>
}
}
}
}
Ну и главный класс, который все проверяет и выполняет(Пока рассматриваю только первый ГрупБокс):
Код:
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;
namespace WindowsFormsApplication1
{
public partial class panel : Form
{
public panel()
{
InitializeComponent();
}
private void bt9_Click(object sender, EventArgs e)
{
Close();
}
private void btn1_Click(object sender, EventArgs e)
{
bool check = false; //устанавливаем значение логической переменной check
string FIO = Account.TryName(tb1.Text); //проверяем введенные данные в разных методах, и в зависимости от результата создаем новый автомобиль или неичего не делаем (в случае введения некорректных данных)
if (FIO != "<Ошибка>")
{
string strnum = Account.TryInt(tb2.Text);
if (strnum != "<Ошибка>")
{
int num = Account.TryInt(tb2.Text);
if (num != 0)
{
int sum = Account.TryInt(tb3.Text);
if (sum != 0)
{
if (rb1.Checked)
{
int AccCounter = 0;
rt1.Text = String.Format(
"{0}Вклад 'Под проценты'\n ФИО:{2}{5} номер счета:{3}{5} сумма:{4}{5}{5}",
rt1.Text, AccCounter++, tb1.Text, tb2.Text,
tb3.Text, Environment.NewLine);
}
else if (rb2.Checked)
{
int AccCounter = 0;
rt1.Text = String.Format(
"{0}Вклад 'Сберегательный'\n ФИО:{2}{5} номер счета:{3}{5} сумма:{4}{5}{5}",
rt1.Text, AccCounter++, tb1.Text, tb2.Text,
tb3.Text, Environment.NewLine);
}
else if (rb3.Checked)
{
int AccCounter = 0;
rt1.Text = String.Format(
"{0}Вклад 'Студенческий'\n ФИО:{2}{5} номер счета:{3}{5} сумма:{4}{5}{5}",
rt1.Text, AccCounter++, tb1.Text, tb2.Text,
tb3.Text, Environment.NewLine);
}
else if (rb4.Checked)
{
int AccCounter = 0;
rt1.Text = String.Format(
"{0}Вклад 'Пенсионный'\n ФИО:{2}{5} номер счета:{3}{5} сумма:{4}{5}{5}",
rt1.Text, AccCounter++, tb1.Text, tb2.Text,
tb3.Text, Environment.NewLine);
}
}
}
}
}
}
}
}
Ну во-первых, ругается на MessageBox, говорит не сущетсвует в текущем контексте=)
во-вторых,
"WindowsFormsApplication1.Account" не содержит определение для "TryName" Это самое основное... + ко всему методы не пашут...то есть я могу вводить шо хочу...очень странно...мож кто знает в чем трабла?))
Последний раз редактировалось jecka3000; 27.05.2010 в 17:26..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|