最近一直在学C,发现C的很多代码编写方式和C#很像,命名和机制和汇编又很像,今天看到结构,感觉和面向对象语言的类差不多,这里做了个简单的对比,首先,实现了一个写文件的功能,功能很鸡肋,主要是,熟悉一下结构

View Code
  1 #include "stdafx.h"
  2 #include <stdio.h>
  3 #include <string.h>
  4 #include<conio.h>
  5 #include<stdlib.h>
  6 #include<stddef.h>
  7 
  8 int _tmain(int argc, _TCHAR* argv[])
  9 {
 10      struct{                  /*定义一个结构变量*/  
 11 
 12                char name[8];  
 13 
 14                int age;  
 15 
 16                char sex[2];  
 17 
 18                char depart[20];  
 19 
 20                float wage1, wage2, wage3, wage4, wage5;  
 21 
 22           }a;
 23 
 24 
 25      FILE *fp;  
 26 
 27           float wage;  
 28 
 29           char c='y'; 
 30 
 31           fp=fopen("wage.dat", "w");
 32 
 33           /*创建一个文件只写*/  
 34 
 35           while(c=='Y'||c=='y')          
 36 
 37 /*判断是否继续循环*/  
 38 
 39           {  
 40 
 41                printf("/nName:");  
 42 
 43                scanf("%s", a.name);     /*输入姓名*/  
 44 
 45                printf("Age:");  
 46 
 47                scanf("%d", &a.age);    /*输入年龄*/  
 48 
 49                printf("Sex:");  
 50 
 51                scanf("%d", a.sex);  
 52 
 53                printf("Dept:");  
 54 
 55                scanf("%s", a.depart);  
 56 
 57                printf("Wage1:");  
 58 
 59                scanf("%f", &a.wage1);   /*输入工资*/  
 60 
 61                printf("Wage2:");  
 62 
 63                scanf("%f", &a.wage2);  
 64 
 65                printf("Wage3:");  
 66 
 67                scanf("%f", &a.wage3);  
 68 
 69                printf("Wage4:");  
 70 
 71                scanf("%f", &a.wage4);  
 72 
 73                printf("Wage5:");  
 74 
 75                scanf("%f", &a.wage5);  
 76 
 77                 
 78 
 79 wage=a.wage1+a.wage2+a.wage3+a.wage4+a.wage5;  
 80 
 81                printf("The sum of wage is  %6.2f/n", wage);/*显示结果*/  
 82 
 83                fprintf(fp,  
 84 
 85 "%s%d%s%s%f/n",  /*结果写入文件*/  
 86 
 87                             a.name, a.age, a.sex,  
 88 
 89 a.depart, wage);  
 90 
 91                while(1)  
 92 
 93                {  
 94 
 95                     printf("Continue?<Y/N>");  
 96 
 97                     c=getche();  
 98 
 99                      
100 
101 if(c=='Y'||c=='y'||c=='N'||c=='n')  
102 
103                          break;  
104 
105                }  
106 
107           }  
108 
109           fclose(fp);  
110 
111     //其中: addr为另一个结构的结构名, 必须要先进行, 说明, 即  
112      //嵌套结构
113   //   struct addr{  
114   //      char name[8];  
115   //        int age;  
116 
117   //   } test;
118 
119   //struct string{  
120 
121   //        char name[8];  
122 
123   //        int age;  
124 
125   //        struct addr address;  
126 
127   //   } student;
128 
129      //结构指针
130          //struct name{                  /*定义一个结构变量*/  
131 
132    //            char name[8];  
133 
134    //            int age;  
135 
136    //            char sex[2];  
137 
138    //            char depart[20];  
139 
140    //            float wage1, wage2, wage3, wage4, wage5;  
141 
142    //       }*b;
143          //b=(struct name*)malloc(sizeof(struct name));  //给指针分配空间
144    //      b->age=20;
145          //printf("%d",b->age);
146 
147 
148 
149 
150 }

代码中注释的,是,结构的一些常用的方式

下面是c#简单的实体类

View Code
 1   class Test
 2     {
 3         public string name { get; set; }
 4         public int age { get; set; }
 5         public string sex { get; set; }
 6         public string depart { get; set; }
 7         public wage wage_ { get; set; }
 8     }
 9     class wage 
10     {
11         public int wage1 { get; set; }
12         public int wage2 { get; set; }
13         public int wage3 { get; set; }
14         public int wage4 { get; set; }
15         public int wage5 { get; set; }
16     }


 

 

posted on 2012-09-12 14:08  笨 鸟  阅读(112)  评论(0)    收藏  举报