c++カリキュラム設計:行政区画管理システム
55124 ワード
大学1年生のカリキュラム設計は基本的に計算機を除いて、各種管理システムである.(たぶんね)
テーマを見て一年のc++が分からなかったような気がします.基础知识を身につけるのはまだしも、真刀真枪のコードを打って、しかもこのような机能を実现して、管理システムを作って、本当に自分の弱さと料理を感じました.
一年の基礎知識を学んで、突然1つの管理システムをしなければならなくて、期末試験と授業の2重の重圧の下で、私は期末試験を選んで、自主的に授業の設置を実現することを放棄して、1級のコードを参考にして、私は私がこのようにするのが恥ずかしいことを知らないで、ただとても悔しいです.どうすればいいですか.ああ.どうして期末試験と一緒に手配するのですか.本当に自分で作った人は、どうせあなたたちは私より優秀で、私は弟です.ああ.二度目のため息.
私は学生管理システムのコードを手に入れて、各セグメントを読んで、それから少し修正して、行政区画管理システムに変えました.△この一節を描いたとき、私の心は恥ずかしかった.
夏休みの間、Javaの勉強を続けます.△先の冬休みはずっと勉強していました.この夏休みは勉強と復習で、Javaを利用して自分で何かを実現しようと努力しました.もちろんこれは後の話です.
私はもともとJavaに重点を置きたいと思っていましたが、学校の手配は私たちの大学1年生の授業がc++で、仕方がありません.完全な暇な時間は休暇中しかありません.
次は私が変更したコードです.それを公開したのも、もともと私に属していないからで、耻ずかしいです.
3つのcppファイル、2つのヘッダファイルに分けられます.
district.cpp
districtmanage.cpp
main.cpp
district.h
districtmanage.h
私たちはVC 6に要求します.0で実行するのでemmmm・・・
気に入らないなら噴き出さないでください.こそこそした.
テーマを見て一年のc++が分からなかったような気がします.基础知识を身につけるのはまだしも、真刀真枪のコードを打って、しかもこのような机能を実现して、管理システムを作って、本当に自分の弱さと料理を感じました.
一年の基礎知識を学んで、突然1つの管理システムをしなければならなくて、期末試験と授業の2重の重圧の下で、私は期末試験を選んで、自主的に授業の設置を実現することを放棄して、1級のコードを参考にして、私は私がこのようにするのが恥ずかしいことを知らないで、ただとても悔しいです.どうすればいいですか.ああ.どうして期末試験と一緒に手配するのですか.本当に自分で作った人は、どうせあなたたちは私より優秀で、私は弟です.ああ.二度目のため息.
私は学生管理システムのコードを手に入れて、各セグメントを読んで、それから少し修正して、行政区画管理システムに変えました.△この一節を描いたとき、私の心は恥ずかしかった.
夏休みの間、Javaの勉強を続けます.△先の冬休みはずっと勉強していました.この夏休みは勉強と復習で、Javaを利用して自分で何かを実現しようと努力しました.もちろんこれは後の話です.
私はもともとJavaに重点を置きたいと思っていましたが、学校の手配は私たちの大学1年生の授業がc++で、仕方がありません.完全な暇な時間は休暇中しかありません.
次は私が変更したコードです.それを公開したのも、もともと私に属していないからで、耻ずかしいです.
3つのcppファイル、2つのヘッダファイルに分けられます.
district.cpp
1 //
2 #include
3 #include<string>
4 #include
5 #include
6 #include"district.h"
7 using namespace std;
8 void district::input()
9 {
10 cout << " :" << endl;
11 cout << " : ";
12 cin >> name;
13 cout << " ( ): ";
14 cin >> count;
15 cout << " ( ): ";
16 cin >> area;
17 cout << " : ";
18 cin >> postcode;
19 return;
20 }
21 void district::input(ifstream & is)
22 {
23 is >> name >> count >> area >> postcode ;
24 is.get(); // get
25 }
26 //
27 void district::output()
28 {
29 cout << " :" << endl;
30 cout
31 << " :" << name
32 << " ( ):" << count
33 << " ( ):" << area
34 << " :" << postcode
35 << endl << endl;
36 }
37 void district::output(ofstream & os)
38 {
39 os
40 << setw(15) << name
41 << setw(6) << count
42 << setw(6) << area
43 << setw(6) <<postcode
44 << endl;
45 }
districtmanage.cpp
1 #include
2 #include<string>
3 #include
4 #include
5 #include"district.h"
6 #include"districtmanage.h"
7 using namespace std;
8
9 //
10 void districtmanage::input()
11 {
12 district *p, *p2 = NULL; // , p2 null
13 p = head; // p head
14 int n=1; // 1
15 while (p->next) // p next ,p
16 p = p->next;
17 while (n)
18 {
19 p2 = new district; // p2
20 p2->input(); // p2
21 p->next = p2; // p2 p next
22 p2->next = NULL; // p2 next null input
23 p = p->next; // p next p
24 districtmanage::setkey(1); // key=1
25 cout << " 1 , 0 : ";
26 cin >> n; // 1 ,
27 }
28 }
29
30
31 //
32 int districtmanage::find(district *p1, int postcode1, char *pn)// found find
33 {
34 district *p;
35 p = head;
36 while (p->next) //
37 {
38 (*p) = (*p1);
39 if ((p->next)->getpostcode() == postcode1 || !strcmp((p->next)->getname(), pn)) //
40 return 1; // name , 1,
41 p = p->next; //
42 }
43 return 0;
44 }
45
46
47 //
48 void districtmanage::found()
49 {
50 district *p; //
51 p = head; // p head
52 int postcode = -1, n = 9;
53 char name[20] = "^"; // name ^
54 do
55 {
56 cout << "1: ,2: : ";
57 cin >> n;
58 } while (n<1 || n>2);
59 if (n == 1)
60 {
61 cout << " : ";
62 cin >> postcode;
63 }
64 if (n == 2)
65 {
66 cout << " : ";
67 cin >> name;
68 }
69 if (!find(p, postcode, name))
70 {
71 cout << "SORRY! !" << endl;
72 return; // if return
73 }
74 (p->next)->output(); // ,
75 }
76
77
78 //
79 void districtmanage::del() //
80 {
81 district *p, *p2; //
82 int postcode; // postcode
83 cout << " : "; //
84 cin >> postcode;
85 p = head; // p head
86 if (!find(p, postcode, "^")) // p
87 {
88 cout << "SORRY! !" << endl; // SORRY! !
89 return;
90 }
91 (p->next)->output(); // p next (p )
92 p2 = p->next; // p next p2
93 p->next = p2->next; // p p2
94 delete p2; // p2
95 districtmanage::setkey(1); // key 1
96 }
97 //
98 void districtmanage::show()
99 {
100 district *p;
101 p = head;
102 while (p->next)
103 {
104 (p->next)->output();
105 p = p->next;
106 }
107 }
108 //
109 void districtmanage::mend()
110 {
111 district *p; //
112 int postcode = -1, n; //
113 char name[20] = "^"; // name ^
114 do
115 {
116 cout << "1: ,2: : ";//
117 cin >> n;
118 } while (n<1 || n>2);
119 if (n == 1)
120 {
121 cout << " : ";
122 cin >> postcode;
123 }
124 if (n == 2)
125 {
126 cout << " : ";
127 cin >> name;
128 }
129 p = head;
130 if (!find(p, postcode, name))
131 {
132 cout << "SORRY! !" << endl;
133 return;
134 }
135 (p->next)->output(); //p
136 (p->next)->input(); //p input
137 districtmanage::setkey(1); // key 1
138 }
139 //
140 void districtmanage::save()
141 {
142 district *p;
143 p = head;
144 ofstream os("district.txt", ios::out);
145 if (districtmanage::getkey() == 1)
146 {
147 while (p->next)
148 {
149 (p->next)->output(os);
150 p = p->next;
151 }
152 }
153 cout << " ! " << endl;
154 districtmanage::setkey(0);
155 }
156 //
157 void districtmanage::begin()
158 {
159 district *p, *p2; //p2 p p next
160 p = head;
161 clear();
162
163 ifstream is("district.txt", ios::in);
164 if (!is)
165 {
166 ofstream os("district.txt", ios::out);
167 os.close();
168 return;
169 }
170 int num = -1;
171 while (1)
172 {
173 long t=1;
174 num = -1;
175 is.tellg(); //
176 is >> num;
177
178 is.seekg(t); // t
179 if (num<0)
180 {
181 is.close();
182 return;
183 }
184 p2 = new district;
185 p2->input();
186 p->next = p2; // p2 p next
187 p2->next = NULL; // p2 next null input
188 p = p->next; // p next p
189 }
190 }
191 //
192 void districtmanage::clear()
193 {
194 district *p, *p2;
195 p = head->next;
196 while (p)
197 {
198 p2 = p;
199 p = p->next;
200 delete p2;
201 }
202 }
203
204 //
205 char districtmanage::mainmenu()
206 {
207 char n[6];
208 cout << "
☆☆☆☆ ☆☆☆☆" << endl << endl;
209 cout << " * * * * * * * * * * * * * * * * * * * * * * * * * *" << endl;
210 cout << " * * * * * * * * * * * * * * * * * * * * * * * * * *" << endl;
211 cout << " * * 1: * *" << endl;
212 cout << " * * 2: * *" << endl;
213 cout << " * * 3: * *" << endl;
214 cout << " * * 4: * *" << endl;
215 cout << " * * 5: * *" << endl;
216 cout << " * * 6: * *" << endl;
217 cout << " * * 0: * *" << endl;
218 cout << " * * * * * * * * * * * * * * * * * * * * * * * * * *" << endl;
219 cout << " * * * * * * * * * * * * * * * * * * * * * * * * * *" << endl;
220 cout << " :";
221 cin >> n;
222 return n[0];
223 }
main.cpp
1 #include"district.h"
2 #include"districtmanage.h"
3 #include
4 using namespace std;
5 void main()
6 {
7 districtmanage p;
8 int k = 1;
9 char n;
10 p.begin(); // begin
11 while (k == 1)
12 {
13 n = p.mainmenu(); // p.mainmenu n
14 switch (n)
15 {
16 case '1':p.input(); break;
17 case '2':p.show(); break;
18 case '3':p.found(); break;
19 case '4':p.del(); break;
20 case '5':p.mend(); break;
21 case '6':p.save(); break;
22 case '0':
23 if (p.getkey() == 1) // p key 1
24 {
25 cout << "\t\t\t ? 1 : 0: : ";
26 cin >> k;
27 if (k == 1)
28 p.save();
29 }
30 p.clear(); //k=0, clear ,
31 k = 0; // k , k 0
32 break; // 1 0 while
33 }
34 }
35 }
district.h
1 #pragma once
2 #include<string>
3 #include
4 #include
5 using namespace std;
6 class district
7 {
8 protected:
9 char name[20]; //
10 float count; //
11 float area; //
12 int postcode; //
13
14 public:
15 district *next;
16 district(){ }
17 void output();
18 void input();
19 void input(ifstream & is);
20 void output(ofstream & os);
21 char* getname(){ return name; }
22 int getpostcode(){ return postcode; }
23 float getcount(){ return count; }
24 float getarea(){ return area; }
25
26 };
districtmanage.h
1 #include<string>
2 #include
3 #include
4 #include"district.h"
5 using namespace std;
6 class districtmanage
7 {
8 public:
9 districtmanage(){ head = new district ; head->next = NULL; key = 0; }
10 ~districtmanage(){ delete head; }
11 void input(); //
12 void mend(); //
13 void del(); //
14 int find(district *p, int postcode1, char *pn = "^"); //
15 void found(); //
16 void show(); //
17 void save(); //
18 void begin(); //
19 void clear(); //
20 char mainmenu(); //
21 int getkey(){ return key; }
22 void setkey(int k){ key = k; }
23 private:
24 district *head;
25 int key;
26 };
私たちはVC 6に要求します.0で実行するのでemmmm・・・
気に入らないなら噴き出さないでください.こそこそした.