标题:类在进行属性的封装后,能否在主函数中由用户输入数据??
只看楼主
春阳
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-9-14
 问题点数:0 回复次数:5 
类在进行属性的封装后,能否在主函数中由用户输入数据??
类:
using System;
using System.Collections.Generic;
using System.Text;

namespace class_student2
{
    class student
    {
        private string sno;
        public string  _sno
        {
            set  {sno = value; }
            get { return sno; }
      
        }
        private string name;
        public string _name
        {
            set { name = value; }
            get { return name; }
        }
        private char sex;
        public char _sex
        {
            set
            {
                if (value == '男' || value == '女')
                    sex = value;
                else
                    Console.Write("请输入正确性别的格式!");
            }
            get { return sex; }
        }
    private int age;
        public int  _age
        {
            set{
        if(value>=15&&value<=20)
           age=value;
        else
            Console.Write("请输入正确的年龄!");
        }
            get{return age;}
        }
        private string email;
        public string _email
        {
   set
   {
    if( value=="")
        email = this.sno + "@
    else
        email = value + "@
    }
            get { return email;}
    }
        public void show()
        {
            Console.Write("学号:{0}\n姓名:{1}\n性别:{2}\n年龄:{3}\nE-mail:{4}",this.sno,this.name,this.sex,this.age,this.email);
        }
    }
}

主函数:
using System;
using System.Collections.Generic;
using System.Text;

namespace class_student2
{
    class student2
    {
        static void Main(string[] args)
        {
        student st1=new student();
       Console.Write("是否进行学生信息的输入y/n\n");
        char r;
           r= Convert.ToChar( Console.Read());
           if (r == 'y')
           {
               Console.Write("请输入学号:");
               st1._sno = Console.ReadLine();
               Console.Write("请输入学生姓名:");
               st1._name = Console.ReadLine();
               Console.Write("请输入性别:");
               st1._sex =Convert.ToChar( Console.Read());
               Console.Write("请输入年龄:");
               st1._age = Console.Read();
               Console.Write("请输入E-mail:");
               st1._email = Console.ReadLine();
           Console.Write("信息输入完毕是否进行显示?y/n");
           char f;
          f = Convert.ToChar( Console.Read());
               if (f == 'y')
                  st1.show();
               else
                  Console.Write("感谢您的使用!");
      Console.ReadLine();
           }
           else
           {
               Console.Write("感谢您的使用!");
               Console.ReadLine();
           }

        }
    }
}
各位大仙请问这程序如何修改才能通过啊。我再运行总是没有办法输入数据!!!!!
搜索更多相关主题的帖子: 用户 return public private 
2012-09-20 22:42
icedkl
Rank: 2
等 级:论坛游民
威 望:1
帖 子:18
专家分:37
注 册:2012-9-20
得分:0 
Console.Write("是否进行学生信息的输入y/n\n");//改:Console.WriteLine(...);
        char r;
           r= Convert.ToChar( Console.Read());//改里面Console.ReadLine();
           if (r == 'y')
           {
               Console.Write("请输入学号:");
               st1._sno = Console.ReadLine();
               Console.Write("请输入学生姓名:");
               st1._name = Console.ReadLine();
               Console.Write("请输入性别:");
               st1._sex =Convert.ToChar( Console.Read());//里面改:Console.ReadLine();
Console.Write("请输入年龄:");
               st1._age = Console.Read();//要转化为整形,所以改:int.Parse(Console.Read());
Console.Write("请输入E-mail:");
               st1._email = Console.ReadLine();



其他有需要的地方也可以照样改改,我在我电脑上试着可以。

有兴趣的共同探讨C#的同鞋朋友们可以一起进群讨论:QQ:203291000
2012-09-21 00:28
ZWYyj
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:9
帖 子:124
专家分:587
注 册:2012-8-10
得分:0 
在主函数中的如下(已修改):
             student st1=new student();
             Console.Write("是否进行学生信息的输入y/n\n");
             char r;
             r= Convert.ToChar( Console.ReadLine());//修改1
             if (r == 'y')
            {
               Console.Write("请输入学号:");
               st1._sno = Console.ReadLine(); //修改2
               Console.Write("请输入学生姓名:");
               st1._name = Console.ReadLine();
               Console.Write("请输入性别:");
               st1._sex =Convert.ToChar( Console.ReadLine());//修改3
               Console.Write("请输入年龄:");
               st1._age =Convert .ToInt32 ( Console.ReadLine());//修改4
               Console.Write("请输入E-mail:");
               st1._email = Console.ReadLine();
               Console.Write("信息输入完毕是否进行显示?y/n");
               char f;
               f = Convert.ToChar( Console.ReadLine());
               if (f == 'y')
                     st1.show();
                else
                     Console.WriteLine("感谢您的使用!");//不用在后面添加Console.Readline(),在主函数最后面添加就可以显示
                 
            }
            else
            {
                   Console.WriteLine("感谢您的使用!");
                  
            }

           Console.ReadKey();//修改5

[ 本帖最后由 ZWYyj 于 2012-9-21 09:30 编辑 ]
2012-09-21 09:25
春阳
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-9-14
得分:0 
回复 2楼 icedkl
st1._age = Console.Read();//要转化为整形,所以改:int.Parse(Console.Read());
这里的那个int.Parse(Console.Read())无法执行,所以我改成convert.toint16(console.readline())型可以运行了!!

谢谢2楼的回复!
2012-09-21 23:27
春阳
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-9-14
得分:0 
回复 3楼 ZWYyj
程序基本可以运行了!
谢谢3楼的指点!!
2012-09-21 23:28
枫叶离开树
Rank: 2
等 级:论坛游民
帖 子:17
专家分:72
注 册:2012-10-1
得分:0 
个别地方出错误了。可以多看看自己的代码。Read跟ReadLine是不一样的。
2012-10-01 00:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-381781-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.139957 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved