传值传址。以及结构体的知识点 例题

一传值 

传值:将变量名中存放的值进行传输
      

传值
        public void Hanshu(int a)
        {
            a += 10;
           
        }

主函数里写

  Program hanshu = new Program();

hanshu.Hanshu(a);

_______________________________________________________________________________________________________________________________

二。传址

传址:将这个变量名直接传输过去,
            若在另一边有赋值情况,这边的值会发生变化

  public void hanshu1(int a , out int b,out int c)
        {
            //int c = a + b;
            b = a + 10;
            c = b;
           
        }

主函数里写

 Program hanshu = new Program();

 int a = 5;
            int rr;
            int tt;
            hanshu.hanshu1(a,out rr,out tt);
            Console.WriteLine(rr);

用out的传址。一般用不到。

________________________________________________________________________________________________________________________________

三,利用split分割然后利用遍历集合输出。一串字符串的形式

写个函数,传值进去,传姓名、性别、年龄进入
        //将年龄+10岁
        //反馈回来
        public string Fanhui(string name , string sex,int age)
        {
            age += 10;
            return name + "-"+sex +"-"+ age;
        }

主函数里写

string s = hanshu.Fanhui("张三","男",33);
string[] aa = s.Split('-');
foreach(string q in aa)
       {
            Console.WriteLine(q);
        }

________________________________________________________________________________________________________________________________

结构体

结构体:自定义类型    值类型
        一组变量的组合
        需要定义的位置   class里面   main函数外面
        里面包含的变量可以是多种数据类型的

________________________________________________________________________________________________________________________________

例题

学生信息的结构体:学号、姓名、性别、分数
        struct Student
        {
            public int xuehao;
            public string name;
            public string sex;
            public Score score;
        }

主函数内写

ArrayList al = new ArrayList();
            Console.Write("请输入班级人数:");
           int a = int.Parse(Console.ReadLine());
            for (int i = 0; i < a;i++ )
            {
               Student sst = new Student();
               Console.Write("请输入第{0}个学生的学号:",(i+1));
                sst.xuehao = int.Parse(Console.ReadLine()) ;
                Console.Write("请输入第{0}个学生的姓名:", (i + 1));
               sst.name = Console.ReadLine();
                Console.Write("请输入第{0}个学生的性别:", (i + 1));
                sst.sex = Console.ReadLine();
               Console.Write("请输入第{0}个学生的分数:", (i + 1));
                sst.score = double.Parse(Console.ReadLine());
               al.Add(sst);
            }
            Console.WriteLine("所有人员信息输入完毕!请按回车键开始打印!");
            Console.ReadLine();

            for (int i = 0; i < al.Count;i++ )
            {
                Student sst = (Student)al[i];
               Console.WriteLine("第{0}个学生的学号是:{1},姓名是{2},性别是{3},分数是{4}。",(i+1),sst.xuehao,sst.name,sst.sex,sst.score);
            }

________________________________________________________________________________________________________________________________

例二

  Console.WriteLine("0.开始购买");
            Console.WriteLine("1.洗发水      15元");
            Console.WriteLine("2.牙刷        5元");
            Console.WriteLine("3.可口可乐    3元");
            Console.WriteLine("4.水杯        12元");
            Console.WriteLine("5.毛巾        6元");
            Console.WriteLine("6.结算(退出)");

请如如购买的商品,打印小票,商品名称,数量单价,单品总价,总价,结账日期,时间,如果不够提示继续缴费,如果多付钱,提示找零。如果刚好,离开超市。

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;

namespace 结构体
{
    class Program
    {

  struct Shop
        {
            public string name;
            public double price;
            public int shuliang;
        }

主函数里边写

 Console.WriteLine("0.开始购买");

  Console.WriteLine("6.结算(退出)");

  Console.Write("请输入号码:");
            for (int i = 0; i == 0; )
            {
                int aa = int.Parse(Console.ReadLine());
                if (aa == 0)
                {

                    ArrayList al = new ArrayList();
                    int biao1 = 0;
                    for (int j = 0; j == 0; )
                    {
                        bool biaocuo = true;
                        Shop array = new Shop();
                        Console.Clear();
                        if (al.Count > 0)
                        {
                            for (int k = 0; k < al.Count; k++)
                            {
                                Shop yigou = (Shop)al[k];
                                Console.WriteLine("您选择了{0},单价为{1}元,数量为{2}。", yigou.name, yigou.price, yigou.shuliang);
                            }
                        }
                        Console.WriteLine("1.洗发水      15元");
                        Console.WriteLine("2.牙刷        5元");
                        Console.WriteLine("3.可口可乐    3元");
                        Console.WriteLine("4.水杯        12元");
                        Console.WriteLine("5.毛巾        6元");
                        Console.WriteLine("6.结算");

                        Console.Write("请输入选项:");
                        int aaa = int.Parse(Console.ReadLine());
                        switch (aaa)
                        {
                            case 1:
                                array.name = "洗发水";
                                array.price = 15;
                                biao1++;
                                Console.Write("您选择的是洗发水,请问您需要多少瓶?");
                                break;
                            case 2:
                                array.name = "牙刷";
                                array.price = 5;
                                biao1++;
                                Console.Write("您选择的是牙刷,请问您需要多少支?");
                                break;
                            case 3:
                                array.name = "可口可乐";
                                array.price = 3;
                                biao1++;
                                Console.Write("您选择的是可口可乐,请问您需要多少瓶?");
                                break;
                            case 4:
                                array.name = "水杯";
                                array.price = 12;
                                biao1++;
                                Console.Write("您选择的是水杯,请问您需要多少个?");
                                break;
                            case 5:
                                array.name = "毛巾";
                                array.price = 6;
                                biao1++;
                                Console.Write("您选择的是毛巾,请问您需要多少块?");
                                break;
                            case 6:
                                if (biao1 == 0)
                                {
                                    Console.Clear();
                                    Console.WriteLine("您什么也没有购买,您已经走出了超市。。。");
                                    j = 1;
                                    i = 1;
                                }
                                else
                                {
                                    double zong = 0;
                                    for (int k = 0; k < al.Count; k++)
                                    {
                                        Shop yigou = (Shop)al[k];
                                        Console.WriteLine("您选择了{0},        单价为{1}元,        数量为{2},        单品总价:{3}       。", yigou.name, yigou.price, yigou.shuliang, yigou.price*yigou.shuliang);
                                        zong += yigou.price * yigou.shuliang;
                                    }
                                    Console.Write("总价:" + zong + "元。请缴费:");
                                    double erjiao = 0;
                                    for (int l = 0; l == 0; )
                                    {
                                        double jiao = double.Parse(Console.ReadLine());
                                        jiao += erjiao;
                                        if (jiao >= zong)
                                        {
                                            Console.WriteLine("交易成功,交易时间为:" + DateTime.Now);
                                            Console.WriteLine("找零:" + (jiao - zong) + "元。");
                                            Console.WriteLine("谢谢惠顾!再见!");
                                            l = 1;
                                            j = 1;
                                            i = 1;
                                        }
                                        else
                                        {
                                            erjiao = jiao;
                                            Console.Write("缴费金额不足,请继续缴费:");
                                        }
                                    }
                                }
                                break;
                            default:
                                Console.WriteLine("查无此商品!请按回车键继续选择商品!");
                                Console.ReadLine();
                                biaocuo = false;
                                break;
                        }
                        if (i == 0 && j == 0 && biaocuo == true)
                        {
                            array.shuliang = int.Parse(Console.ReadLine());
                            Console.WriteLine("您选择了{0},       单价为{1}元,       数量为{2}。  请按回车键继续购买!", array.name, array.price, array.shuliang);
                            al.Add(array);
                            Console.ReadLine();
                        }
                    }
                }
                else if (aa == 6)
                {
                    Console.Clear();
                    Console.WriteLine("您什么也没有购买!您已走出超市。。。");
                    i = 1;
                }
                else
                {
                    Console.Write("输入有误!请重新输入:");
                }
________________________________________________________________________________________________________________________________

  //定义一个结构体,存放关于车辆的几个信息
            //将所有车的信息都放入集合中
            //车型号               价格(W)    轴距 (mm)         油耗(L/100km)
            //宝马320Li           38              2920                        6.9
            //宝马520Li           43              3108                        7.2
            //宝马730Li            89              3210                       6.3
            //奥迪A4L35TFSI   31              2869                        6.2
            //奥迪A6L30TFSI   43              3012                        7.6
            //奥迪A8L45TFSI   89              3122                        8.1
            //奔驰C200L           35              2920                        6.1
            //奔驰E260L           48              3014                        6.7
            //奔驰S320L           93              3165                        8

            //所有在售车辆中最便宜的

            //求宝马中最便宜的车型是什么,所有信息列出

            //选个轴距最长的

            //选个轴距最长的,必须是奔驰

            //想要一辆油耗最低的车

            //想要一辆油耗最低的奥迪车

            //我只有50万,看看能买什么车

            //我只需要60万以上的车,列出来所有车型和所有信息

            //轴距必须超过3m,列列表

            //油耗在8.5以下都行,列列表

            //我不在乎油耗,要油耗最高的车

            ArrayList al = new ArrayList();
            Car st = new Car();
            st.chexing = "宝马320Li";
            st.jiage = 38;
            st.zhouju = 2920;
            st.youhao = 6.9;
            al.Add(st);
            Car st1 = new Car();
            st1.chexing = "宝马730Li";
            st1.jiage = 89;
            st1.zhouju = 3210;
            st1.youhao = 6.3;
            al.Add(st1);
            Car st2 = new Car();
            st2.chexing = "宝马320Li";
            st2.jiage = 38;
            st2.zhouju = 2920;
            st2.youhao = 6.9;
            al.Add(st2);
            Car st3 = new Car();
            st3.chexing = "奥迪A4L35TFSI";
            st3.jiage = 31;
            st3.zhouju = 2869;
            st3.youhao = 6.2;
            al.Add(st3);
            Car st4 = new Car();
            st4.chexing = "奥迪A6L30TFSI";
            st4.jiage = 43;
            st4.zhouju = 3012;
            st4.youhao = 7.6;
            al.Add(st4);
            Car st5 = new Car();
            st5.chexing = "奥迪A8L45TFSI";
            st5.jiage = 89;
            st5.zhouju = 3122;
            st5.youhao = 8.1;
            al.Add(st5);
            Car st6 = new Car();
            st6.chexing = "奔驰C200L";
            st6.jiage = 35;
            st6.zhouju = 2920;
            st6.youhao = 6.1;
            al.Add(st6);
            Car st7 = new Car();
            st7.chexing = "奔驰E260L";
            st7.jiage = 48;
            st7.zhouju = 3014;
            st7.youhao = 6.7;
            al.Add(st7);
            Car st8 = new Car();
            st8.chexing = "奔驰S320L";
            st8.jiage = 93;
            st8.zhouju = 3165;
            st8.youhao = 8;
            al.Add(st8);
            for (int i = 0; i < 8; i++)
            {
                for (int j = 1; j < 9; j++)
                {
                    if (((Car)al[i]).jiage > ((Car)al[j]).jiage)
                    {
                        object zhong = al[i];
                        al[i] = al[j];
                        al[j] = zhong;
                    }
                }
            }
            Console.WriteLine("最便宜的车是{0},价格是{1},轴距是{2},油耗是{3}", ((Car)al[0]).chexing, ((Car)al[0]).jiage, ((Car)al[0]).zhouju, ((Car)al[0]).youhao);
            ArrayList bao = new ArrayList();
            Console.WriteLine("____________________________________________________________________");
            for (int k = 0; k < 9; k++)
            {
                if (((Car)al[k]).chexing.Contains("宝马"))
                {
                    bao.Add(al[k]);
                }
            }
            for (int m = 0; m < bao.Count - 1; m++)
            {
                for (int j = m + 1; j < bao.Count; j++)
                {
                    if (((Car)bao[m]).jiage > ((Car)bao[j]).jiage)
                    {
                        object zhong = bao[m];
                        bao[m] = bao[j];
                        bao[j] = zhong;
                    }
                }
            }
            Console.WriteLine("最便宜的宝马车是{0},价格是{1},轴距是{2},油耗是{3}", ((Car)bao[0]).chexing, ((Car)bao[0]).jiage, ((Car)bao[0]).zhouju, ((Car)bao[0]).youhao);
            Console.WriteLine("____________________________________________________________________");
            for (int k = 0; k < 8; k++)
            {
                for (int j = 1; j < 9; j++)
                {
                    if (((Car)al[k]).zhouju > ((Car)al[j]).zhouju)
                    {
                        object zhong = al[k];
                        al[k] = al[j];
                        al[j] = zhong;
                    }
                }
            }
            Console.WriteLine("轴距最小的是{0},价格是{1},轴距是{2},油耗是{3}", ((Car)al[0]).chexing, ((Car)al[0]).jiage, ((Car)al[0]).zhouju, ((Car)al[0]).youhao);
            Console.WriteLine("____________________________________________________________________");
            ArrayList ben = new ArrayList();
            for (int k = 0; k < 9; k++)
            {
                if (((Car)al[k]).chexing.Contains("奔驰"))
                {
                    ben.Add(al[k]);
                }
            }
            for (int m = 0; m < ben.Count - 1; m++)
            {
                for (int j = m + 1; j < ben.Count; j++)
                {
                    if (((Car)ben[m]).zhouju > ((Car)ben[j]).zhouju)
                    {
                        object zhong = ben[m];
                        ben[m] = ben[j];
                        ben[j] = zhong;
                    }
                }
            }
            Console.WriteLine("轴距最小的奔驰车是{0},价格是{1},轴距是{2},油耗是{3}", ((Car)ben[0]).chexing, ((Car)ben[0]).jiage, ((Car)ben[0]).zhouju, ((Car)ben[0]).youhao);
            Console.WriteLine("____________________________________________________________________");
            for (int k = 0; k < 8; k++)
            {
                for (int j = 1; j < 9; j++)
                {
                    if (((Car)al[k]).youhao > ((Car)al[j]).youhao)
                    {
                        object zhong = al[k];
                        al[k] = al[j];
                        al[j] = zhong;
                    }
                }
            }
            Console.WriteLine("油耗最小的是{0},价格是{1},轴距是{2},油耗是{3}", ((Car)al[0]).chexing, ((Car)al[0]).jiage, ((Car)al[0]).zhouju, ((Car)al[0]).youhao);
            Console.WriteLine("____________________________________________________________________");
            ArrayList ao = new ArrayList();
            for (int k = 0; k < 9; k++)
            {
                if (((Car)al[k]).chexing.Contains("奥迪"))
                {
                    ao.Add(al[k]);
                }
            }
            for (int m = 0; m < ao.Count - 1; m++)
            {
                for (int j = m + 1; j < ao.Count; j++)
                {
                    if (((Car)ao[m]).zhouju > ((Car)ao[j]).zhouju)
                    {
                        object zhong = ao[m];
                        ao[m] = ao[j];
                        ao[j] = zhong;
                    }
                }
            }
            Console.WriteLine("轴距最小的奔驰车是{0},价格是{1},轴距是{2},油耗是{3}", ((Car)ao[0]).chexing, ((Car)ao[0]).jiage, ((Car)ao[0]).zhouju, ((Car)ao[0]).youhao);
            Console.WriteLine("____________________________________________________________________");
            for (int k = 0; k < 8; k++)
            {
                for (int j = 1; j < 9; j++)
                {
                    if (((Car)al[k]).youhao < ((Car)al[j]).youhao)
                    {
                        object zhong = al[k];
                        al[k] = al[j];
                        al[j] = zhong;
                    }
                }
            }
            Console.WriteLine("油耗最高的是{0},价格是{1},轴距是{2},油耗是{3}", ((Car)al[0]).chexing, ((Car)al[0]).jiage, ((Car)al[0]).zhouju, ((Car)al[0]).youhao);
            Console.WriteLine("____________________________________________________________________");
            for (int i = 0; i < al.Count; i++)
            {
                if (((Car)al[i]).jiage <= 50)
                {
                    Console.WriteLine(((Car)al[i]).chexing + "\t," + ((Car)al[i]).jiage + "\t" + ((Car)al[i]).zhouju + "\t," + ((Car)al[i]).youhao + "\n");
                }
            }
            Console.WriteLine("____________________________________________________________________");
            for (int i = 0; i < al.Count; i++)
            {
                if (((Car)al[i]).jiage > 60)
                {
                    Console.WriteLine(((Car)al[i]).chexing + "\t," + ((Car)al[i]).jiage + "\t," + ((Car)al[i]).zhouju + "\t" + ((Car)al[i]).youhao + "\n");
                }
            }
            Console.WriteLine("____________________________________________________________________");
            for (int i = 0; i < al.Count; i++)
            {
                if (((Car)al[i]).zhouju > 3000)
                {
                    Console.WriteLine(((Car)al[i]).chexing + "\t," + ((Car)al[i]).jiage + "\t" + ((Car)al[i]).zhouju + "\t," + ((Car)al[i]).youhao + "\n");
                }
            }
            Console.WriteLine("____________________________________________________________________");
            for (int i = 0; i < al.Count; i++)
            {
                if (((Car)al[i]).youhao < 8.5)
                {
                    Console.WriteLine(((Car)al[i]).chexing + "\t," + ((Car)al[i]).jiage + "\t" + ((Car)al[i]).zhouju + "\t," + ((Car)al[i]).youhao + "\n");
                }
            }       
                Console.ReadLine();
        }
    }
}

 _______________________________________________________________________________________________________________________________

           

posted @ 2016-10-19 17:47  吴皓杰  阅读(444)  评论(0编辑  收藏  举报