(从浅入深)10个经典.NET习题

//1、 写一个Student类和一个Teacher类,他们都有一个打招呼的方法,不同的是Studetn打招呼是说"大家好,我叫XX,我今年XX岁了,我的爱好是XXX",Teacher的打招呼的方法是说"大家好,我叫XX,我今年XX岁了,我已经工作XX年了"?

        static void Main(string[] args)
        {
            //实例化Student类
            Student Stu = new Student();
            //调用Student的打招呼方法
            Stu.sHi("某", 21, "上班");
            //实例化Teacher类
            Teacher Ther = new Teacher();
            //调用Teacher的打招呼方法
            Ther.tHi("老师", 19,5);
            Console.ReadKey();

 class Student
    {
        //1、 写一个Student类和一个Teacher类,他们都有一个打招呼的方法,不同的是Studetn打招呼是说"大家好,我叫XX,我今年XX岁了,我的爱好是XXX",Teacher的打招呼的方法是说"大家好,我叫XX,我今年XX岁了,我已经工作XX年了"?
        /// 
        /// Student打招呼
        /// 
        /// Student姓名
        /// Student年龄
        /// Student爱好
        public void sHi(string name,int age,string like)
        {
            Console.WriteLine("大家好,我叫{0},我今年{1}岁了,我的爱好是{2}",name,age,like);
            
        }
    }

class Teacher
    {
        //1、 写一个Student类和一个Teacher类,他们都有一个打招呼的方法,不同的是Studetn打招呼是说"大家好,我叫XX,我今年XX岁了,我的爱好是XXX",Teacher的打招呼的方法是说"大家好,我叫XX,我今年XX岁了,我已经工作XX年了"?
        /// 
        /// Teacher打招呼
        /// 
        /// Teacher姓名
        /// Teacher年龄
        /// Teacher工作时间
        public void tHi(string name,int age,int year)
        {
            Console.WriteLine("大家好,我叫{0},我今年{1}岁了,我已经工作{2}年了",name,age,year);
        }
    }



        //2、 已知一个int类型的数组,用冒泡排序法将数组中的元素按从小到大的顺序排列
        static void Main(string[] args)
        {
            //已知一个int类型的数组
            int[] sz = { 9, 7, 8, 6, 4, 5, 2, 3, 1 };
            //用冒泡排序法将数组中的元素按从小到大的顺序排列
            for (int i = 0; i < sz.Length;i++ )
            {
                for (int j = 0; j < sz.Length - 1 - i;j++ )
                {
                    if(sz[j]>sz[j+1])
                    {
                        int temp = sz[j];
                        sz[j] = sz[j + 1];
                        sz[j + 1] = temp;
                    }
                }
            }
            //输出数组中的元素按从小到大的顺序排列
            for (int i = 0; i < sz.Length;i++ )
            {
                Console.Write(sz[i]+"  ");
            }
            Console.ReadKey();
        }

-



         //3、 定义父亲类Father(姓firstName,财产wealth,血型blood),儿子Son类(玩游戏PlayGame),女儿Daughter类(跳舞Dance),调用父类构造函数给子类字段赋值。
        static void Main(string[] args)
        {

            //实例化Son类,调用父类Father构造函数给子类字段赋值
            Son er = new Son("张", 999999999M, "A");
            Console.WriteLine("姓:{0},财产:{1},血型:{2}", er.FirstName, er.Wealth, er.Blood);
            //玩游戏PlayGame
            er.PlayGame();


            //实例化Daughter类,调用父类Father构造函数给子类字段赋值
            Daughter nv=new Daughter("田",88888888M,"B");
            Console.WriteLine("姓:{0},财产:{1},血型:{2}", nv.FirstName, nv.Wealth, nv.Blood);
            //跳舞Dance
            nv.Dance();


            Console.ReadKey();
        }
/// 
    /// Father类
    /// 
    class Father
    {
        //3、 定义父亲类Father(姓firstName,财产wealth,血型blood),儿子Son类(玩游戏PlayGame),女儿Daughter类(跳舞Dance),调用父类构造函数给子类字段赋值
        /// 
        /// 父类构造函数
        /// 
        /// 姓firstName
        /// 财产wealth
        /// 血型blood
        public Father(string firstName,decimal wealth,string blood)
        {
            this.FirstName = firstName;
            this.Wealth = wealth;
            this.Blood = blood;
        }
        string firstName;

        public string FirstName
        {
            get { return firstName; }
            set { firstName = value; }
        }
        decimal wealth;

        public decimal Wealth
        {
            get { return wealth; }
            set { wealth = value; }
        }
        string blood;

        public string Blood
        {
            get { return blood; }
            set { blood = value; }
        }
    }

 /// 
    /// Son类
    /// 
     class Son : Father
    {
          定义父亲类Father(姓firstName,财产wealth,血型blood),儿子Son类(玩游戏PlayGame),女儿Daughter类(跳舞Dance),调用父类构造函数给子类字段赋值。
        public Son(string SfirstName, decimal Swealth, string Sblood)
            : base(SfirstName, Swealth, Sblood)
        { }
        /// 
        /// 玩游戏PlayGame
        /// 
        public void PlayGame()
        {
            Console.WriteLine("玩游戏PlayGame");
        }
    }

/// 
    /// Daughter类
    /// 
    class Daughter:Father
    {
          定义父亲类Father(姓firstName,财产wealth,血型blood),儿子Son类(玩游戏PlayGame),女儿Daughter类(跳舞Dance),调用父类构造函数给子类字段赋值。
        public Daughter(string DfirstName, decimal Dwealth, string Dblood)
            : base(DfirstName, Dwealth, Dblood)
        { }
        /// 
        /// 跳舞Dance
        /// 
        public void Dance()
        {
            Console.WriteLine("跳舞Dance");
        }
    }

        定义父亲类Father(姓firstName,财产wealth,血型blood),儿子Son类(玩游戏PlayGame),女儿Daughter类(跳舞Dance),调用父类构造函数给子类字段赋值。
        static void Main(string[] args)
        {

            //实例化Son类,调用父类Father构造函数给子类字段赋值
            Son er = new Son("张", 999999999M, "A");
            Console.WriteLine("姓:{0},财产:{1},血型:{2}", er.FirstName, er.Wealth, er.Blood);
            //玩游戏PlayGame
            er.PlayGame();


            //实例化Daughter类,调用父类Father构造函数给子类字段赋值
            Daughter nv=new Daughter("田",88888888M,"B");
            Console.WriteLine("姓:{0},财产:{1},血型:{2}", nv.FirstName, nv.Wealth, nv.Blood);
            //跳舞Dance
            nv.Dance();


            Console.ReadKey();




        //4、 已知一个int类型的数组,用冒泡排序法将数组中的元素按从大到小的顺序排列;
        static void Main(string[] args)
        {
            //已知一个int类型的数组
            int[] sz = { 9, 7, 8, 6, 4, 5, 2, 3, 1 };
            //用冒泡排序法将数组中的元素按从大到小的顺序排列
            for (int i = 0; i < sz.Length; i++)
            {
                for (int j = 0; j < sz.Length - 1 - i; j++)
                {
                    if (sz[j] < sz[j + 1])
                    {
                        int temp = sz[j];
                        sz[j] = sz[j + 1];
                        sz[j + 1] = temp;
                    }
                }
            }
            //输出数组中的元素按从大到小的顺序排列
            for (int i = 0; i < sz.Length; i++)
            {
                Console.Write(sz[i] + "  ");
            }
            Console.ReadKey();

        }


  
        //5、 编写一个WinForm程序,界面上放置两个文本框,分别用户输入用户名和密码,然后放置一个【登录】按钮。当用户点击【登录】按钮的时候做如下的判断:
        //用户名、密码是否为空,如果用户名、密码为空则提示用户“用户名、密码都不能为空”;
        //检查用户名是否等于admin,如果不等于admin则提示用户名错误;
        //如果密码不等于0123456,则提示密码错误;
        //如果用户名、密码都正确(admin、0123456)则提示登录成功;


        private void button1_Click(object sender, EventArgs e)
        {

            //判断用户名、密码是否为空,如果用户名、密码为空则提示用户“用户名、密码都不能为空”;
            if (username.Text == "" || password.Text == "")
            {
                MessageBox.Show("用户名、密码都不能为空");
                return;
            }
            //判断用户名是否等于admin,如果不等于admin则提示用户名错误;
            if (username.Text != "admin")
            {
                MessageBox.Show("用户名错误");
                return;
            }
            //判断如果密码不等于0123456,则提示密码错误;
            if (password.Text != "0123456")
            {
                MessageBox.Show("密码错误");
                return;
            }
            //判断如果用户名、密码都正确(admin、0123456)则提示登录成功;
            if (username.Text == "admin" && password.Text == "0123456")
            {
                MessageBox.Show("登录成功");
                return;
            }


        }



       //6、 使用Winform编写简单的加法计算器,用户在文本框1、2中输入两个数,点击求和按钮,在文本框3中显示两个数的和。如果1或者2为错误的数据格式,则弹出对话框提示错误.

        private void button1_Click(object sender, EventArgs e)
        {
            //2个变量用来接收文本框中内容转换的数字
            int j1,j2;

            //获得文本框内的内容
            string a=textBox1.Text;
            string b = textBox2.Text;

            //判断文本框里面的内容数据格式是否正确
           if(!int.TryParse(a,out j1)||!(int.TryParse(b,out j2)))
           {
               MessageBox.Show("错误的数据格式,请重新输入");
               return;
           }

            //求和
           int sum = j2 + j1;

           //把和的值赋给textBox3
            textBox3.Text=Convert.ToString(sum);
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            //当用户触发textBox1的时候把上一次算出来的和清理掉
            textBox3.Clear();
        }



         //   7、 编写一个WinForm程序,有一个记录了学生成绩的文本文档,每个学生成绩是一行,每行是用|分割的数据,用|分割的域分别是姓名、年龄、成绩,写程序取出成绩最高学生的姓名和成绩。提示:读取文件可以使用File.ReadAllLines()函数。
        // 文件格式例子:
        // 张三|20|80
        //李四|22|90
        //王小明|30|83
        private void button1_Click(object sender, EventArgs e)
        {

            //获得成绩表文本
            OpenFileDialog dawn = new OpenFileDialog();
            if (dawn.ShowDialog() != DialogResult.OK)
            {
                return;
            }
           //获得成绩内容
            string[] sy = File.ReadAllLines(dawn.FileName, Encoding.UTF8);
            //设置最高成绩的名字
            string maxname = "";
            //设置最高成绩
            int maxcj = 0;
            //遍历每个人的成绩,把最高成绩的名字和成绩赋值给maxname和maxcj;
            foreach(string line in sy)
            {
                string[] str = line.Split('|');
                string name= str[0];
                int  cj =Convert.ToInt32( str[2]);
                if(cj>maxcj)
                {
                    maxcj = cj;
                    maxname = name;
                }
            }
            textBox1.Text = maxname + "是最高成绩" + "成绩为:" + maxcj;
           // MessageBox.Show(string.Format("{0}是最高成绩,成绩为{1}", maxname, maxcj));
            return;
        }




        //8、 判断一个字符串是否是合法的Email地址。一个Email地址的特征就是以一个字符序列开始,后边跟着“@”符号,后边又是一个字符序列,后边跟着符号“.”,最后是字符序列。
        private void button1_Click(object sender, EventArgs e)
        {
            //fg数组特指的元素[判断Email地址]用来分割接收到的文本
            char[] fg = { '@', '.' };
            //把接收到的文本进行分割
            string[] email = textBox1.Text.Split(fg, StringSplitOptions.RemoveEmptyEntries);
            //判断:如果emali数字长度为3,说明符合合法的Email地址
            if (email.Length == 3)
            {
                MessageBox.Show("这是合法的Email地址");
            }
            else
            {
                MessageBox.Show("这不是合法的Email地址");
            }
            

        }





//        9、 使用WinForm或者ASP.Net编写一个区号查询界面,用户在“所在省(自治区、直辖市)”中选择省,随着省选择的变化,“所在地市”的下拉列表中则显示所选省下面的所有市,用户选择一个市的时候,则在“区号”中显示所选择市的区号(省市数据要自己建数据库,然后从数据库中读取)
//注:不用实现所有省、市的,只要实现如下省、市即可:
// 河北:石家庄、唐山、秦皇岛、保定、廊坊;
// 山东:济南、青岛、淄博、烟台、泰安;
// 河南:郑州、平顶山、南阳、洛阳、焦作、新乡;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //项目内嵌mdf文件形式的连接字符串  必须加
            string dataDir = AppDomain.CurrentDomain.BaseDirectory;
            if (dataDir.EndsWith(@"\bin\Debug\")
                || dataDir.EndsWith(@"\bin\Release\"))
            {
                dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
                AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
            }
            //在打开程序时把省调出来
            using (SqlConnection coon = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=E:\新建文件夹\exam\test9\SQLtest9.mdf;Integrated Security=True"))
            {
                coon.Open();
                using (SqlCommand cmd = coon.CreateCommand())
                {
                    cmd.CommandText = "select * from shen;";
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            jh itm = new jh();
                            itm.s = reader.GetString(reader.GetOrdinal("省"));
                            cmb省.Items.Add(itm);
                            itm.id = reader.GetInt32(reader.GetOrdinal("id"));
                        }
                    }
                }
            }
        }

        private void cmb省_SelectedIndexChanged(object sender, EventArgs e)
        {
           
            cmb市.Items.Clear();
            //获得省的id去匹配市的id
            jh item = (jh)cmb省.SelectedItem;
            int id = item.id;
            using (SqlConnection coon = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=E:\新建文件夹\exam\test9\SQLtest9.mdf;Integrated Security=True"))
            {
                coon.Open();
                using (SqlCommand cmd = coon.CreateCommand())
                {

                    cmd.CommandText = "select * from city where id=@id";
                    //检索与省匹配的id
                    cmd.Parameters.Add(new SqlParameter("@id", id));
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            //显示省
                            jh q = new jh();
                            q.s = reader.GetString(reader.GetOrdinal("市"));
                            cmb市.Items.Add(q);
                        }
                    }

                }
            }
        }

        private void cmb市_SelectedIndexChanged(object sender, EventArgs e)
        {

            jh item = (jh)cmb市.SelectedItem;
            string s = item.s;
            // 获得市的名字去匹配市的区号
            using (SqlConnection coon = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=E:\新建文件夹\exam\test9\SQLtest9.mdf;Integrated Security=True"))
            {
                coon.Open();
                using (SqlCommand cmd = coon.CreateCommand())
                {

                    cmd.CommandText = "select * from city where 市=@s";

                    cmd.Parameters.Add(new SqlParameter("s", s));
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            //输出市的区号


                            textBox1.Text = reader.GetString(reader.GetOrdinal("quhao"));
                        }

                    }
                }
            }
        }
        
        class jh
        {
            public string s { get; set; }
            public int id { get; set; }
            public override string ToString()
            {
                return s;
            }
        }

       




--10、 SQL题
-- 表一:student_info(学生表)字段及数据如下:
-- 学号      姓名     性别  出生年月   家庭住址    备注
--0001     张三      男    1981-8-9      北京         NULL 

--表二:grade(成绩表)字段及数据如下:
-- 学号   课程编号 分数
--0001    0001        80
-- 0001    0002        90
--要求编写SQL语句分别实现如下的条件查询:
--1)在GRADE表中查找分数大于等于80小于等于90的学生学号和分数
--2)在GRADE 表中查找课程编号为002学生的平均分
--3)在GRADE 表中查询学习各门课程的人数
--4)查询所有姓张的学生的学号和姓名


--要求编写SQL语句分别实现如下的条件查询:
--1)在GRADE表中查找分数大于等于80小于等于90的学生学号和分数
select  学号,分数 from grade where 分数 between 80 and 90;
--2)在GRADE 表中查找课程编号为002学生的平均分
select avg(分数) as 平均分 from grade where 课程编号=002;
--3)在GRADE 表中查询学习各门课程的人数
select 课程编号,count(*) as 人数 from GRADE group by 课程编号
--4)查询所有姓张的学生的学号和姓名
select 学号,姓名 from student_info where 姓名 like N'张%';





你可能感兴趣的:(总结)