c++カリキュラム設計:行政区画管理システム

55124 ワード

大学1年生のカリキュラム設計は基本的に計算機を除いて、各種管理システムである.(たぶんね)
テーマを見て一年の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・・・
気に入らないなら噴き出さないでください.こそこそした.