面向过程与面向对象的编程模式

C管理进程:

 1 #define  _CRT_SECURE_NO_WARNINGS
 2 #include <stdio.h>
 3 #include<string.h>
 4 #include<windows.h>
 5 
 6 //面向过程的模式
 7 //代码重用主要靠函数
 8 //权限,
 9 
10 void open(const char *path,const int mode)
11 {
12     ShellExecuteA(0, "open", path, 0, 0, mode);
13 }
14 
15 void all()
16 {
17     system("tasklist");
18 }
19 
20 void closebyname(const char *name)
21 {
22     char cmdstr[100] = { 0 };
23     sprintf(cmdstr, "taskkill /f /im %s", name);
24     system(cmdstr);
25 }
26 
27 void closebypid(const int num)
28 {
29     char cmdstr[100] = { 0 };
30     sprintf(cmdstr, "taskkill /pid %d", num);
31     system(cmdstr);
32 }
33 
34 
35 void main1()
36 {
37     all();
38     open("notepad", 1);
39     all();
40     Sleep(2000);
41     int  num;
42     scanf("%d", &num);
43     closebypid(num);
44     //closebyname("notepad.exe");
45     system("pause");
46 
47 }
48 
49 
50 struct fu
51 {
52     int a;
53     int b;
54 
55 };
56 
57 //a+ bi,
58 struct fu  add(struct fu  fu1, struct fu  fu2)
59 {
60     struct fu  fu3;
61     fu3.a = fu1.a + fu2.a;
62     fu3.b = fu1.b + fu2.b;
63     return fu3;
64 }
65 
66 void   main3()
67 {
68     // 数据可以随便被别人访问,可以随便被修改
69     struct fu  fu1 = { 3, 4 };
70     struct fu  fu2 = { 13, 4 };
71     fu1.a += 3;
72     struct fu  fu3 = add(fu1, fu2);
73     printf("%d+%di", fu3.a, fu3.b);
74     getchar();
75 }

Cpp面向对象管理进程:

 

  1 /* Cpp面向对象管理进程 */
  2 
  3 // C++类的继承实现代码重用,C是函数重用
  4 // 类的封装实现权限  封装 数据与代码何为一体 ,C语言封装主要是函数
  5 // 封装可以锁定代码的权限  锁定数据的权限 避免被随意修改
  6 // 类的多态实现一个接口根据实际需求完成很多功能
  7 
  8 #include<iostream>
  9 #include<string>
 10 #include<windows.h>
 11 
 12 class cmduse
 13 {
 14 private:
 15 
 16     char cmduser[100];// 用户名
 17     char cmd[100];// 存储指令
 18 
 19 public:
 20 
 21     void setuser(const char *name)
 22     {
 23         strcpy(cmduser,name);
 24     }
 25     
 26     char *getuser()
 27     {
 28         return this->cmduser;//返回 用户名
 29     }
 30 
 31     void open(const char *path,const int mode)
 32     {
 33         ShellExecuteA(0,"open",path,0,0.mode);
 34     }
 35 
 36     void all()
 37     {
 38         system("tasklist");
 39     }
 40 
 41     void closebyname(const char *name)
 42     {
 43         memset(this->cmd,0,100);// 清空字符串
 44 
 45         sprintf(this->cmd,"taskkill /f /im %s",name);
 46         
 47         system(this->cmd);
 48     }
 49 
 50     void closebypid(const int num)
 51     {        
 52         memset(this->cmd,0,100);// 清空字符串
 53 
 54         sprintf(this->cmd,"taskkill /pid %d",num);
 55 
 56         system(this->cmd);
 57     }
 58 
 59 
 60 };
 61 
 62 int main()
 63 {
 64     cmduse cmduse1;
 65 
 66     cmduse1.setuser("wuxl");
 67 
 68     std::cout << cmduse1.getuser() << std::endl;
 69 
 70     cmduse1.open("calc",1);
 71 
 72     cmduse1.open("notepad",0);
 73 
 74     Sleep(2000);
 75 
 76     cmduse1.all();
 77 
 78     cmduse1.closebyname("calc");
 79 
 80     int pid;
 81     cin >> pid;
 82 
 83     cmduse1.closebypid(pid);// 根据编号关闭
 84 
 85     //closebyid(100);
 86 
 87     std::cin.get();
 88     std::cin.get();
 89     return 0;
 90 }
 91 
 92 // 封装可以实现代码的权限  不可以随便调用
 93 
 94 // -------------------------------------------------------
 95 
 96 
 97 struct fu
 98 {
 99     int a;
100     int b;
101 };
102 
103 struct fu add(struct fu fu1,struct fu fu2)
104 {
105     struct fu fu3;
106     fu3.a = fu1.a+fu2.a;
107     fu3.b = fu1.b+fu2.b;
108     return fu3;
109 
110 }
111 
112 void main()
113 {
114     //int a;
115     //int b;
116     //a = b = 0;// a+bi
117 
118     // 数据可以随便被别人访问 和修改
119     struct fu fu1 = {3,4}
120 
121     struct fu fu2 = {13,4}
122 
123     //struct fu fu3
124 
125     fu1.a += 3;
126     struct fu fu3 = add(fu1,fu2);
127     printf("%d+%di",fu3.a+fu3.b);
128     
129 
130     getchar();
131 }
132 //-----------------------------------------------------
133 
134 class 
135 {
136 public:
137     
138     void seta(int a)
139     {
140         // 接口
141         this->a = a;
142     }
143 
144     int geta()
145     {
146         return this->a;
147     }
148 
149     void setb(int b)
150     {
151         // 接口
152         this->b = b;
153     }
154 
155     int getb()
156     {
157         return this->b;
158     }
159 private:
160     int a;
161     int b;
162     char password[32];
163 }myab;
164 
165 void  main()
166 {
167 //    myab.geta = 3;
168 
169     myab.seta(10);
170     // 封装可以解决:
171         // 类,代码与数据 一体化
172         // 代码的封装,限定代码谁可以执行谁不可以执行的权限
173         // 数据的封装,防止数据被意外修改
174 
175 }

 

posted on 2015-06-03 15:30  Dragon-wuxl  阅读(285)  评论(0)    收藏  举报

导航