Решение задачи по C#

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by gold-goblin, 13 Apr 2007.

  1. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    Короче задали задачку на курсах, я ее зделал а препод попрасил реализовать по другому!!! (Полный гад).
    Задача:
    сделать программу которая сможет записывать, считывать, редактировать, искать в базе учеников.

    Я зделал так:
    Code:
    using system;
    using system.IO;
    
    namespace studentlist 3
    {
           //класс ответственный за представление студетна в памяти
    public class memoryrepresent
    {
     //поле для хранения имени студента
     private string name;
     //свойство для доступа к полю имя
     public string name
     {
     //чтение зачения
      get
     {
     return name;
     }
     // Запись значения с проверкой корректности данных
    set
     {
    //если строка не пустая, то значение изменяется
    if(value !=string/Empty)
    name = value;
    else
    throw new argumentException("Имя не может быть пустым")
    }
    }
    private uint age;
    public uint age
    {
    get
    {
    return age;
    }
    set{
    if(value>0&&value<100)
    age = value;
    throw new argumentException("Возраст должен быть в пределах от 0 до 100")
    }
    }
    private uint group;
    public uint group
    {
    get
    {
    return group;
    }
    set
    {
    if(value>0&&<=10)
    group = value;
    else
    throw new argumentException("Номер группы должен быть в пределах от 1 до 10")
    }
    }
    public override string ToString()
    (
    return String.Format("Имя: {0}\n Возраст: {1}\n Группа:{2}\n", name, age, group);
    }
    public memoryrepresent()
    {
    name = String.Empty;
    age = 0;
    group = 0;
    }
    public memoryrepresent(string[] array)
    {
    Name = array[0];
    Age = uint.parse(array[]1);
    group = uint.parse(array[2]);
    }
    }
    public class filerepresent
    static char[] separators = new char[] {':'};
    string _str;
    public filerepresent(string str)
    {
    _str = str;
    }
    public filerepresent(string[] array)
    {
    _str = "";
    foreach)string s in arry)
    foreach(string s in array)
    _str+=s+":";
    }
    public override string tostring()
    {
    return _str;
    }
    public static implicit operator string[] (filerepresentfrep)
    {
    return frep._str.split(separators);
    }
    };
    class classl
    {
    statctic memoryrepresent[] students = newmemoryrepresent[100];
    static int count = 0;
    static void print()
    {
    for(int i=0;i<count; i++)
    console.writeline(students[1]);
    console/writeline("Нажмите ентер для продолжения...");
    }
    static void add()
    {
    students[cout] = new memoryrepresent();
    try
    {
    console.write("Введите имя студента:");
    students[cout] .name = console.readline()
    console.write("Введите возраст студента:");
    students[cout] .age = uint.parse(console.readline());
    console.write("Введите групу студента");
    students[count] .group = uint .parse(console.readline());
    count++;
    }
    catch(exception e)
    {
    console.writeline(e.message);
    }
    }
    static void remove()
    {
    console.write("Введите имя студента для удоления:");
    string name = console.readline()
    for(int i=0;i<count;i++)
    if (string. compare(students[i] .name, name, true)==0)
    {
    for(int j=i;j<count-1;j++)
    students[j] = students [j+1];
    count--;
    }
    }
    static void edit()
    {
    console.write ("введите имя студента для редактирования: ");
    string name = console.readline();
    name
    for(int i=0;i<count;i++)
    if(string.compare(students[i] .name, name, true)==0)
    try
    {
    console.write("введите новое имя студента или нажмите ентер чтобы не менять");
    string temp = console.readline();
    students[i] .name = temp==string.empty?students[i] .name:temp;
    console.write("введите новый возраст студента или нажмите ентер чтобы не менять:");
    temp = console.readline()
    temp==string.empty?students[i] .age:uint.parse(temp);
    console.write("введите новую группу студента или нажмите ентер чтобы не изменять:")
    temp = console.readline();
    students[i] .group = temp==string.empty?students[i] .group:uint.parse(temp);
    }
    catch(exception e)
    {
    console.writeline(e.message);
    }
    }
    static void loadfromfile()
    {
    count = 0;
    using(streamreader reader = new streamreader("data.txt"))
    {
    string temp;
    while((temp = reader.readline()) !=null)
    {
    {
    students[count] = new memoryrepresent(new filerepresent(temp));
    count++;
    }
    catch(exception e)
    {
    console.writeline(e.message);
    }
    }
    }
    }
    static void savefile()
    using(streamwritet writer = new streamwriter("data.txt"))
    {
    for(int i=0;i<count;i++)
    writer.writeline(new filerepresent(new string[] {students[i] .name, students[i] .age. tostring(),
    students[i] .group.tostring()}));
    }
    }
    [STATread]
    static void main(string[] args)
    {
    console.writeline("Добро пожаловать!");
    {
    showmenu:
    console.writeline("1 - Вывести список");
    console.writeline("2 - Добавить студента");
    console.writeline("3 - Удолить студента");
    console.writeline("4 - Редоктирывать студента");
    console.writeline("5 - Загрузить из файла");
    console.writeline("6 - Сохранить в фаил");
    console.writeline("0 - выход");
    console.write("Выберите пункт меню: ");
    switch(uint.parse(console.readline()))
    {
    case 1: print(); break;
    case 2: add(); break;
    case 3: remove(); break;
    case 4: edit(); break;
    case 5: loadfromfile(); break;
    case 6: savetofile(); break;
    case 0:
    console.write("Завершить работу с программой? y/n ");
    if(console.readline() .startswith("y")
    console.writeline("Спасибо за работу с нашей программой");
    return;
    }
    break;
    default: continue;
    }
    }while(true);
    }
    }
    }
    Подскажите как реализовать по другому?
     
  2. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    что никто в C# не рулит???
     
  3. iv.

    iv. Elder - Старейшина

    Joined:
    21 Mar 2007
    Messages:
    1,183
    Likes Received:
    438
    Reputations:
    107
    омг. объясни лучше как ты реализовал, что не понравилось преподу, как он попросил сделать. тогда мб помогу..
     
  4. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    Он просто сказал реализуй по другому, Хрен знает что ему не понравилось.
    Я склоняюсь на запись и изменение данных студента.
    А реализовал все просто, изменением, записью, чтением текстового файла и вывод его части по твоему запросу.
     
    #4 gold-goblin, 13 Apr 2007
    Last edited: 13 Apr 2007
  5. iv.

    iv. Elder - Старейшина

    Joined:
    21 Mar 2007
    Messages:
    1,183
    Likes Received:
    438
    Reputations:
    107
    тз есть? тз нет - нафик.
     
  6. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    iv.
    Ну помаги пожалуйста.
    Представь что ты учитель, что тебе тогда не понравится в программе?
     
  7. iv.

    iv. Elder - Старейшина

    Joined:
    21 Mar 2007
    Messages:
    1,183
    Likes Received:
    438
    Reputations:
    107
    ужасное форматирование кода, даже не стал разбираться поэтому =(
     
  8. Talisman

    Talisman Elder - Старейшина

    Joined:
    22 Apr 2006
    Messages:
    400
    Likes Received:
    151
    Reputations:
    80
    +1
    как такое накодить можно, чтоб верно скомпилилось ума не приложу!
     
  9. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Хм...попробуй другим цветом выводить(например розовым). Может он эмо.
     
  10. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    Спасибо, буду думать что можно по другому исполнить
     
  11. bxN5

    bxN5 Elder - Старейшина

    Joined:
    8 Jan 2006
    Messages:
    687
    Likes Received:
    138
    Reputations:
    32
    Попробуй с базой работать
     
  12. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    Учитель скажет что мы такова не проходили. :mad:
    Чтонибуть придумаю. (Наверно)
     
  13. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Хм... они обычно говорят "сделай по другому", когда не понимают твой код. Будь проще.
     
  14. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    да просто форматирование помения, сделай нормальные отступы, поубирай лишнии скобки, и скажи вот вам новый вариант!
     
  15. KEZ

    KEZ Ненасытный школьник

    Joined:
    18 May 2005
    Messages:
    1,604
    Likes Received:
    754
    Reputations:
    397
    Может учитель намекает что в программе нехватает бутылочки коньяка или пары пятясоток?
     
  16. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    Спасибо всем за советы, буду думать
     
  17. Nevir

    Nevir New Member

    Joined:
    18 Apr 2007
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    ну так ты спроси у него, какого конкретно результата он ждет от тебя.. Так хоть будет что предложить тебе