C#传真传址 结构体

1.传真  传址

namespace 传值_传址
{
    class Program
    {
        //格式1:无参无返
        public void LeiJia()
        {
            Console.Write("请输入一个正整数:");
            int a = int.Parse(Console.ReadLine());
            int sum = 0;
            for (int i = 1; i <= a;i++ )
            {
                sum += i;
            }
            Console.WriteLine(sum);
        }

        //格式2:有参无返
        public void LeiJia(int zhengshu)
        {
            int sum = 0;
            for (int i = 1; i <= zhengshu; i++)
            {
                sum += i;
            }
            Console.WriteLine(sum);
        }

        //格式3:有参有返
        public int LeiJia1(int zhengshu)
        {
            int sum = 0;
            for (int i = 1; i <= zhengshu; i++)
            {
                sum += i;
            }
            return sum;
        }

        //格式4:无参有返
        public int Leijia2()
        {
            Console.Write("请输入一个正整数:");
            int a = int.Parse(Console.ReadLine());
            int sum = 0;
            for (int i = 1; i <= a; i++)
            {
                sum += i;
            }
            return sum;
        }

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

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

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

        }

        public int AA = 5;

        static void Main(string[] args)
        {

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

            //调用函数之前需要先初始化该Class  类
            Program hanshu = new Program();
            //Console.Write("请输入一个正整数:");
            //int a = int.Parse(Console.ReadLine());
            //hanshu.Hanshu(a);
            //Console.WriteLine(a);
            hanshu.AA = 100;
            Console.WriteLine(hanshu.AA);

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

            //调用格式1
            //hanshu.LeiJia();
            //调用格式2
            //hanshu.LeiJia(15);
            //调用格式3
            //int sum = hanshu.LeiJia1(12);
            //Console.WriteLine(sum);
            //调用格式4
            //int sum = hanshu.Leijia2();
            //Console.WriteLine(sum);

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

传真 传址

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

 1 namespace 结构体
 2 {
 3     class Program
 4     {
 5
 6
 7         struct Student
 8         {
 9             public int xuehao;
10             public string name;
11             public string sex;
12             public Score score;
13         }
14
15         struct Score
16         {
17             public double yufen;
18             public double shufen;
19             public double yingfen;
20         }
21
22         struct Shop
23         {
24             public string name;
25             public double price;

26             public int shuliang;
27         }
28
29         static void Main(string[] args)
30         {
31             //实例化结构体
32             //Student st = new Student();
33             //st.xuehao = 1001;
34             //st.name = "张三";
35             //st.sex = "男";
36             //st.score = 33;
37
38             //Student st1 = new Student();
39             //st1.xuehao = 1002;
40             //st1.name = "李四";
41             //st1.sex = "女";
42             //st1.score = 44;
43
44
45             //ArrayList al = new ArrayList();
46             //Console.Write("请输入班级人数:");
47             //int a = int.Parse(Console.ReadLine());
48             //for (int i = 0; i < a;i++ )
49             //{
50             //    Student sst = new Student();
51             //    Console.Write("请输入第{0}个学生的学号:",(i+1));
52             //    sst.xuehao = int.Parse(Console.ReadLine()) ;
53             //    Console.Write("请输入第{0}个学生的姓名:", (i + 1));
54             //    sst.name = Console.ReadLine();
55             //    Console.Write("请输入第{0}个学生的性别:", (i + 1));
56             //    sst.sex = Console.ReadLine();
57             //    Console.Write("请输入第{0}个学生的分数:", (i + 1));
58             //    sst.score = double.Parse(Console.ReadLine());
59             //    al.Add(sst);
60             //}
61             //Console.WriteLine("所有人员信息输入完毕!请按回车键开始打印!");
62             //Console.ReadLine();
63
64             //for (int i = 0; i < al.Count;i++ )
65             //{
66             //    Student sst = (Student)al[i];
67             //    Console.WriteLine("第{0}个学生的学号是:{1},姓名是{2},性别是{3},分数是{4}。",(i+1),sst.xuehao,sst.name,sst.sex,sst.score);
68             //}
69
70
71             ////实例化
72             //Student st = new Student();
73             //st.score.yufen = 77;
74             //st.score.shufen = 88;
75             //st.score.yingfen = 99;

结构体

3.超市购物 例题 方法二

 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.结算(退出)");

            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;
                        //string[] array = new string[3];
                        Shop array = new Shop();
                        Console.Clear();
                        if (al.Count > 0)
                        {
                            for (int k = 0; k < al.Count; k++)
                            {
                                //string[] yigou = (string[])al[k];
                                Shop yigou = (Shop)al[k];
                                //Console.WriteLine("您选择了{0},单价为{1}元,数量为{2}。", yigou[0], yigou[1], yigou[2]);
                                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[0] = "洗发水";
                                //array[1] = "15";
                                array.name = "洗发水";
                                array.price = 15;
                                biao1++;
                                Console.Write("您选择的是洗发水,请问您需要多少瓶?");
                                break;
                            case 2:
                                //array[0] = "牙刷";
                                //array[1] = "5";
                                array.name = "牙刷";
                                array.price = 5;
                                biao1++;
                                Console.Write("您选择的是牙刷,请问您需要多少支?");
                                break;
                            case 3:
                                //array[0] = "可口可乐";
                                //array[1] = "3";
                                array.name = "可口可乐";
                                array.price = 3;
                                biao1++;
                                Console.Write("您选择的是可口可乐,请问您需要多少瓶?");
                                break;
                            case 4:
                                //array[0] = "水杯";
                                //array[1] = "12";
                                array.name = "水杯";
                                array.price = 12;
                                biao1++;
                                Console.Write("您选择的是水杯,请问您需要多少个?");
                                break;
                            case 5:
                                //array[0] = "毛巾";
                                //array[1] = "6";
                                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++)
                                    {
                                        //string[] yigou = (string[])al[k];
                                        Shop yigou = (Shop)al[k];
                                        //Console.WriteLine("您选择了{0},单价为{1}元,数量为{2},单品总价:{3}。", yigou[0], yigou[1], yigou[2], (int.Parse(yigou[1]) * int.Parse(yigou[2])));
                                        Console.WriteLine("您选择了{0},单价为{1}元,数量为{2},单品总价:{3}。", yigou.name, yigou.price, yigou.shuliang, yigou.price*yigou.shuliang);
                                        //zong += int.Parse(yigou[1]) * int.Parse(yigou[2]);
                                        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[2] = Console.ReadLine();
                            array.shuliang = int.Parse(Console.ReadLine());
                            //Console.WriteLine("您选择了{0},单价为{1}元,数量为{2}。请按回车键继续购买!", array[0], array[1], array[2]);
                            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("输入有误!请重新输入:");
                }
            }

Anaylist方法

4.用结构体做

   namespace 结构体
{
    class Program
    {

        struct Student
        {
            public int xuehao;
            public string name;
            public string sex;
            public double score;
        }

        //struct Student
        //{
        //    public int xuehao;
        //    public string name;
        //    public string sex;
        //    public Score score;
        //}

        //struct Score
        //{
        //    public double yufen;
        //    public double shufen;
        //    public double yingfen;
        //}

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

        static void Main(string[] args)
        {

            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);
            }

stract例题

时间: 2024-10-23 23:57:27

C#传真传址 结构体的相关文章

传值传址 结构体

传值 class Program { //传值 public void hs(int a,int b) { b = a + 10; } } static void Main(string[] args) { Program hanshu = new Program(); //传值:将变量名中存放的值进行传输 int x = 5; int y = 10; hanshu.hs(x,y); Console.WriteLine(y); }结果为10 传址class Program { //out 传址

结构体指针数组和结构体数组指针的区别

对于初学者的我来说,面对又是数组又是结构体还有指针,一下子就蒙了,在网上查找资料也没有相应的介绍,经过我的测试终于明白了其中的猫腻:结构体数组指针 *[]struct:结构体数组指针的指针是数组的指针,即表示数组的地址,数组里面存放的是结构体类型结构体指针数组 []*struct:即指针表示结构体的地址,数组里面存放的是结构体的指针有什么解释不对的地方请指正 代码测试:package mainimport ( "fmt") type XCDataStu struct { Id int

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

一传值 传值:将变量名中存放的值进行传输 传值        public void Hanshu(int a)        {            a += 10;                    } 主函数里写 Program hanshu = new Program(); hanshu.Hanshu(a); _______________________________________________________________________________________

2016年10月19日--传值、传址、结构体

传值---传址 传值:将变量名中存放的值进行传输 private void 传值(int a) { a += 10; } static void Main(string[] args) { //实例化 初始化 这个类 Program hs = new Program(); int a = 0; hs.传值(a);//a不变 } 格式 传址:将这个变量名直接传输过去,若在另一边有赋值情况,这边的值会发生变化 private void 传址(int a, out int b) { b = a + 1

传值、传址、结构体

传值是只传递这个变量的值,传值是传递这个变量的地址. out传址 public void hanshu1(int a , out int b) { b = a + 10; } int a = 5; int rr; hanshu.hanshu1(a,out rr); Console.WriteLine(rr); 以上使用out传址 打印出来的值是15 但如果需要函数返回多个值时,可以用减号拼接起来,返回后用split分割开 public string Fanhui(string name , st

C语言结构体,C语言结构体指针,java对象引用,传值,传地址,传引用

C语言结构体,C语言结构体指针,java对象引用,传值,传地址,传引用 传值 把实参的值赋值给行参 那么对行参的修改,不会影响实参的值 传地址 传值的一种特殊方式,只是他传递的是地址,不是普通的如int 那么传地址以后,实参和行参都指向同一个对象 传引用 真正的以地址的方式传递参数 传递以后,行参和实参都是同一个对象,只是他们名字不同而已 对行参的修改将影响实参的值 所谓变量是内存地址的一个抽象名字,在静态编译的程序中,所有变量名都会在编译时转换成内存地址,机器不知道变量名,只知道地址. C 语

Demo_张仕传_结构体考试-modify

/* 题目: //声明一个结构体类型 struct _AdvTeacher { char *name; char *tile; int age; char *addr; char *p1; //系统预留成员域 char **p2;//系统预留成员域 }; 要求定义一个结构体数组(6个元素),要求从键盘输入数据,并按照名称大小进行排序:打印输出. 1. 打印结构体数组,需要单独封装成函数:10 2. 排序结构体数组,需要单独封装成函数(按照名称进行排序):50 3. main函数中编写业务测试模型

Demo02_对结构体进行文件读写_张仕传_作业_

#include <iostream> using namespace std; #define StructArrarySize 5 // 老师数量 #define StudentNum 3 // 每位老师的学生的数量 #define FileName "f:/1.txt" // 文件路径和名称 #define LineMaxLen 1024 // 每行最大长读 #define KeyMaxLen 20 // key的最大长度 typedef struct _AdvTea

C# 调用C++DLL 传结构体数组

C# 调用C++DLL 传结构体数组,注意C#和C++数据类型占用字节数要对应.否则传进去的数组会错位.C++ BOOL 对应C#bool. 1.c++代码 //MyDLL.h #ifndef MYDLL_H_ #define MYDLL_H_ #include <iostream> #include <windows.h> #ifdef EXTERN_EXPORT #define EXTERN_EXPORT extern "C" _declspec(dllim