C++ 简单的学生信息管理系统

  1 //
  2 //  main.cpp
  3 //  2013-7-17作业1
  4 //
  5 //  Created by 丁小未 on 13-7-17.
  6 //  Copyright (c) 2013年 dingxiaowei. All rights reserved.
  7 //
  8 //1.有这样一个学生系统,用于学校存储学生信息,当有新生的时候存储新生信息,有学生毕业的时候删除学生信息,还可以修改学生信息,比如学生突然更改了姓名或者学生换了专业。学生信息至少要有姓名,学号,年龄,性别,专业,手机号码。
  9 //条件:使用类Student,完成。
 10 #include <iostream>
 11 #define NUM 50
 12 using namespace std;
 13 
 14 class Student
 15 {
 16 private:
 17     int num;//学号
 18     string name;//姓名
 19     int age; //年龄
 20     char sex; //性别
 21     string profession;//专业
 22     string telphone;
 23 public:
 24     Student()
 25     {
 26         
 27     }
 28     Student(int nu,string na,int ag,char sx,string pr,string te)
 29     {
 30         num = nu;
 31         name = na;
 32         age = ag;
 33         sex = sx;
 34         profession = pr;
 35         telphone = te;
 36     }
 37     void SetNum(int nu)
 38     {
 39         num = nu;
 40     }
 41     void SetName(string na)
 42     {
 43         name = na;
 44     }
 45     void SetAge(int ag)
 46     {
 47         age = ag;
 48     }
 49     void SetSex(char sx)
 50     {
 51         sex = sx;
 52     }
 53     void SetProfession(string pr)
 54     {
 55         profession = pr;
 56     }
 57     void SetTelphone(string te)
 58     {
 59         telphone = te;
 60     }
 61     Student* GetStudent()
 62     {
 63         Student *stu;
 64         return stu;
 65     }
 66     int GetNum()
 67     {
 68         return num;
 69     }
 70     string GetName()
 71     {
 72         return name;
 73     }
 74     int GetAge()
 75     {
 76         return age;
 77     }
 78     char GetSex()
 79     {
 80         return sex;
 81     }
 82     string GetProfession()
 83     {
 84         return profession;
 85     }
 86     string GetTelphone()
 87     {
 88         return telphone;
 89     }
 90     
 91     //还要有整体的赋值,可以用单目运算符重写=
 92     Student&operator = (const Student & other)
 93     {
 94         if (this == &other) {
 95             return *this;
 96         }
 97         this->num = other.num;
 98         this->name = other.name;
 99         this->age = other.age;
100         this->sex = other.sex;
101         this->profession = other.profession;
102         this->telphone = other.telphone;
103     }
104 };
105 
106 
107 //输入学生,返回输入的个数
108 int setStudent(Student stu[],int n)
109 {
110     int i=0;
111     int j;
112     int iTemp;
113     string sTemp;
114     char cTemp;
115     int f=0;
116     do {
117         cout<<"请输入学生学号"<<endl;
118         cin>>iTemp;
119         stu[i].SetNum(iTemp);
120         cout<<"请输入学生姓名"<<endl;
121         cin>>sTemp;
122         stu[i].SetName(sTemp);
123         cout<<"请输入学生年龄"<<endl;
124         cin>>iTemp;
125         stu[i].SetAge(iTemp);
126         cout<<"请输入学生性别"<<endl;
127         cin>>cTemp;
128         stu[i].SetSex(cTemp);
129         cout<<"请输入学生专业"<<endl;
130         cin>>sTemp;
131         stu[i].SetProfession(sTemp);
132         cout<<"请输入学生手机号"<<endl;
133         cin>>sTemp;
134         stu[i].SetTelphone(sTemp);
135         i++;
136         cout<<"请问要输入学生信息吗?(1.要 2.不要)";
137         cin>>f;
138     } while (1==f);
139 //    for (i=0; i<n; i++) {
140 //        printf("请问要输入学生信息吗?(1.要 2.不要)");
141 //        cin>>j;
142 //        if (2==j) {
143 //            break;
144 //        }
145 //        else
146 //        {
147 //            cout<<"请输入学生学号"<<endl;
148 //            cin>>iTemp;
149 //            stu[i].SetNum(iTemp);
150 //            cout<<"请输入学生姓名"<<endl;
151 //            cin>>sTemp;
152 //            stu[i].SetName(sTemp);
153 //            cout<<"请输入学生年龄"<<endl;
154 //            cin>>iTemp;
155 //            stu[i].SetAge(iTemp);
156 //            cout<<"请输入学生性别"<<endl;
157 //            cin>>cTemp;
158 //            stu[i].SetSex(cTemp);
159 //            cout<<"请输入学生专业"<<endl;
160 //            cin>>sTemp;
161 //            stu[i].SetProfession(sTemp);
162 //            cout<<"请输入学生手机号"<<endl;
163 //            cin>>sTemp;
164 //            stu[i].SetTelphone(sTemp);
165 //        }
166 //    }
167     return i;//返回输入的学生数
168 }
169 
170 //返回查找学号为什么的学生的下标
171 int findStudent(Student *stu,int n,int findNum)//要查询的Student数组,实际查询的条数,要查询的学号
172 {
173     int i;
174     int m=-1;
175     for (i=0; i<n; i++) {
176         if(stu[i].GetNum()==findNum)
177         {
178             m=i;
179             break;
180         }
181     }
182     return m; //返回Stu的下标
183 }
184 
185 //删除一条学生信息
186 int deleteStudent(Student *stu,int n,int deleteStudentNum) //在学生数组中删除学号为deleteStudentNum的学生,并且个数减少1
187 {
188     int i;
189     int j=0;
190     for (i=0; i<n; i++) {
191         if (stu[i].GetNum()==deleteStudentNum) {
192             for (j=i; j<n-1; j++) {
193                 stu[j]=stu[j+1];
194             }
195             n--;
196             i--;
197         }
198     }
199     return n;  //返回n-1
200 }
201 Student addStudent()
202 {
203     Student stu;
204     int iTemp;
205     char cTemp;
206     string sTemp;
207     cout<<"请输入学生学号"<<endl;
208     cin>>iTemp;
209     stu.SetNum(iTemp);
210     cout<<"请输入学生姓名"<<endl;
211     cin>>sTemp;
212     stu.SetName(sTemp);
213     cout<<"请输入学生年龄"<<endl;
214     cin>>iTemp;
215     stu.SetAge(iTemp);
216     cout<<"请输入学生性别"<<endl;
217     cin>>cTemp;
218     stu.SetSex(cTemp);
219     cout<<"请输入学生专业"<<endl;
220     cin>>sTemp;
221     stu.SetProfession(sTemp);
222     cout<<"请输入学生手机号"<<endl;
223     cin>>sTemp;
224     stu.SetTelphone(sTemp);
225     return stu;
226 }
227 //添加一个学生(可能有点问题)
228 int insertStudent(Student *stu,int n)
229 {
230     Student s=addStudent();
231     stu[n] = s;
232     return ++n;
233 }
234 
235 //修改学生信息
236 void alterStudent()
237 {
238     
239 }
240 
241 //打印标题行
242 void printTitle()
243 {
244     cout<<"学号       "<<"姓名      "<<"年龄 "<<"性别 "<<"专业        "<<"手机号"<<endl;
245 }
246 
247 //输出打印学生信息
248 void getStudent(Student *stu,int n)
249 {
250     int i;
251     printTitle();//打印标题
252     for (i=0; i<n; i++) {
253         cout<<stu[i].GetNum()<<"      "<<stu[i].GetName()<<"  "<<stu[i].GetAge()<<"  "<<stu[i].GetSex()<<"  "<<stu[i].GetProfession()<<"  "<<stu[i].GetTelphone()<<"   "<<endl;
254     }
255 }
256 //显示菜单
257 void showMenu()
258 {
259     cout<<">>>>>>>>>>>>欢迎使用学生信息管理系统<<<<<<<<<<<<<<<"<<endl;
260     cout<<"***********************************************"<<endl;
261     cout<<"*      1.初始化学生          2.添加学生          *"<<endl;
262     cout<<"*      3.修改学生            4.删除学生          *"<<endl;
263     cout<<"*      5.显示所有学生         6.退出             *"<<endl;
264     cout<<"***********************************************"<<endl;
265 }
266 //菜单选择
267 int get_menu_choice()
268 {
269     int menu_ch;
270     do {
271         cout<<"选择菜单选项:";
272         cin>>menu_ch;
273         if ((menu_ch<0)||(menu_ch>6)) {
274             cout<<"error!"<<endl;
275         }
276     } while ((menu_ch<0)||(menu_ch>6));
277     return menu_ch;
278 }
279 int main(int argc, const char * argv[])
280 {
281 
282     Student* stu = new Student[NUM];
283     
284     int r1=0;
285     int r2;//保存查找的学号
286     int choose;
287     while (1) {
288         showMenu();
289         switch (get_menu_choice()) {
290             case 1:
291                 r1=setStudent(stu,NUM);//返回输入的个数
292                 break;
293             case 2:
294                 r1=insertStudent(stu,r1);
295                 getStudent(stu, r1);
296                 break;
297             case 3:
298                 cout<<"请输入要修改的学生的学号:";
299                 int nn;
300                 cin>>nn;
301                 r2=findStudent(stu, r1, nn);
302                 if (r2==-1) {
303                     cout<<"没有该学生!";
304                 }
305                 else
306                 {
307                     int iTemp;
308                     char cTemp;
309                     string sTemp;
310                     cout<<"请输入学生学号"<<endl;
311                     cin>>iTemp;
312                     stu[r2].SetNum(iTemp);
313                     cout<<"请输入学生姓名"<<endl;
314                     cin>>sTemp;
315                     stu[r2].SetName(sTemp);
316                     cout<<"请输入学生年龄"<<endl;
317                     cin>>iTemp;
318                     stu[r2].SetAge(iTemp);
319                     cout<<"请输入学生性别"<<endl;
320                     cin>>cTemp;
321                     stu[r2].SetSex(cTemp);
322                     cout<<"请输入学生专业"<<endl;
323                     cin>>sTemp;
324                     stu[r2].SetProfession(sTemp);
325                     cout<<"请输入学生手机号"<<endl;
326                     cin>>sTemp;
327                     stu[r2].SetTelphone(sTemp);
328                 }
329                 break;
330             case 4:
331                 cout<<"请输入要删除学生的学号:";
332                 int n;
333                 cin>>n;
334                 r2=findStudent(stu, r1, n);
335                 if (r2==-1) {
336                     cout<<"没有该学生!";
337                 }
338                 else
339                 {
340                     r1=deleteStudent(stu, r1, n);
341                     cout<<"删除成功!"<<"\n"<<"显示所有学生"<<endl;
342                     getStudent(stu, r1);
343                 }
344                 break;
345             case 5:
346                 getStudent(stu, r1);
347                 break;
348             case 6:
349                 cout<<"您已经成功退出系统,欢迎再次使用!谢谢!"<<endl;
350                 break;
351             default:
352                 break;
353         }
354     }
355     return 0;
356 }
View Code

转载于:https://www.cnblogs.com/dingxiaowei/p/3197529.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值