面向过程与面向对象的编程模式
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) 收藏 举报
浙公网安备 33010602011771号