标签:
数据结构课程设计论文--学生信息管理系统
(1)问题描述。录入并保存一个班级学生多门课程的成绩,并对成绩进行分析。
(2)基本要求。a)通过键盘输入各学生的多门课程的成绩,建立相应的文件input.dat。b)对文件input.dat中的数据进行处理,要求具有如下功能:按各门课程成绩排序,并生成相应的文件输出;计算每个人的平均成绩,按平均成绩排序,并生成文件;求出各门课程的平均成绩、最高分、最低分、不及格人数、60~69分人数、70~79分人数、80~89分人数、90分以上人数;根据姓名或学号查询某人的各门课成绩。c)使用Visual C++ 6. 0控制台应用程序开发,界面美观。
(3)测试数据,如下图所示。
学号 |
姓名 |
数学 |
英语 |
计算机 |
01 |
王芳 |
78 |
77 |
90 |
02 |
张强 |
89 |
67 |
88 |
03 |
李浩 |
56 |
66 |
78 |
04 |
黄鹏 |
89 |
86 |
85 |
05 |
尚校 |
67 |
88 |
76 |
06 |
赵鹏 |
45 |
54 |
67 |
07 |
蒋泽 |
78 |
76 |
70 |
1 程序结构及清单 2 2.1.1 头文件 3 #define NUM1 30 4 class Students 5 { 6 public: 7 Students(char *sNane, int cNumber,int sMath,int sEnglish,int sComputer); 8 Students() 9 {} 10 ~Students() 11 {} 12 char* GetName(); 13 void SetName(char* sName);//获取姓名 14 int GetNumber(); 15 void SetNumber(int sNumber);//获取学号 16 int GetMath(); 17 void SetMath(int sMath);//获取数学成绩 18 int GetEnglish(); 19 void SetEnglish(int sEnglish);//获取英语成绩 20 int GetComputer(); 21 void SetComputer(int sComputer);//获取计算机成绩 22 void disply(Students &st1); 23 //void WriterData(); 24 //void DeleteData(int icount); 25 //void GetStudentsFromFile(int icount);//数据库接口 26 protected: 27 char Name[NUM1]; 28 int Number; 29 int Math; 30 int English; 31 int Computer; 32 }; 33 2.1.2 公共函数 34 #include "stuends.h" 35 #include<string> 36 #include<fstream> 37 #include<iostream> 38 #include<iomanip> 39 using namespace std; 40 41 Students::Students(char *sName,int sNumber,int sMath,int sEnglish,int sComputer) 42 { 43 strncpy(Name,sName,NUM1); 44 Number=sNumber; 45 Math=sMath; 46 English=sEnglish; 47 Computer=sComputer; 48 } 49 char* Students::GetName() 50 { 51 return Name; 52 } 53 int Students::GetNumber() 54 { 55 return Number; 56 } 57 int Students::GetMath() 58 { 59 return Math; 60 } 61 int Students::GetEnglish() 62 { 63 return English; 64 } 65 int Students::GetComputer() 66 { 67 return Computer; 68 } 69 void Students::SetName(char* sName) 70 { 71 strncpy(Name,sName,NUM1); 72 } 73 void Students::SetNumber(int sNumber) 74 { 75 Number=sNumber; 76 } 77 void Students::SetMath(int sMath) 78 { 79 Math=sMath; 80 } 81 void Students::SetEnglish(int sEnglish) 82 { 83 English=sEnglish; 84 } 85 void Students::SetComputer(int sComputer) 86 { 87 Computer=sComputer; 88 } 89 void Students::disply(Students &st1) 90 { 91 cout<<st1.GetName()<<" "<<"0"<<st1.GetNumber()<<" "<<st1.GetMath()<<" "<<st1.GetEnglish()<<" "<<st1.GetComputer()<<endl; 92 } 93 2.1.3 功能函数 94 #include "stuends.h" 95 //成绩的修改 96 #include<stdlib.h> 97 #include<conio.h> 98 99 #include<string> 100 #include<fstream> 101 #include<iostream> 102 #include<iomanip> 103 using namespace std; 104 105 Students st1[20]; 106 int mm; 107 int addmain() 108 { 109 cout<<"请输入要添加的学生成绩记录的个数"<<endl; 110 cin>>mm; 111 for(int i=0;i<mm;i++) 112 { 113 cout<<"正在添加第"<<i+1<<"个学生的成绩记录"<<endl; 114 char aName[NUM1]; 115 int aNumber; 116 int aMath; 117 int aEnglish; 118 int aComputer; 119 cout<<"请输入需要添加的学生的姓名、学号、数学成绩、英语成绩、计算机成绩"<<endl; 120 cin>>aName>>aNumber>>aMath>>aEnglish>>aComputer; 121 Students st(aName,aNumber,aMath,aEnglish,aComputer); 122 st1[i]=st; 123 cout<<"添加的记录为:"<<endl; 124 st1[i].disply(st1[i]); 125 cout<<endl; 126 } 127 cout<<"添加完成"<<endl; 128 return 0; 129 }//添加学生成绩记录 130 void miodefy() 131 { 132 int num; 133 cout<<"请输入要修改的学生成绩的学号"<<endl; 134 cin>>num; 135 for(int j=0;j<mm;j++) 136 { 137 if(st1[j].GetNumber()==num) 138 { 139 cout<<"要修改的学生的信息为"<<endl; 140 st1[j].disply(st1[j]); 141 char aName[NUM1]; 142 int aNumber; 143 int aMath; 144 int aEnglish; 145 int aComputer; 146 cout<<"请输入修改后的学生的姓名、学号、数学成绩、英语成绩、计算机成绩"<<endl; 147 cin>>aName>>aNumber>>aMath>>aEnglish>>aComputer; 148 Students st3(aName,aNumber,aMath,aEnglish,aComputer); 149 st1[j]=st3; 150 st1[j].disply(st1[j]); 151 return; 152 } 153 } 154 cout<<"未找到相应的学生的成绩"<<endl; 155 }//修改学生成绩记录 156 void deletea() 157 { 158 int num; 159 cout<<"请输入要删除的学生的学号"<<endl; 160 cin>>num; 161 for(int j=0;j<mm;j++) 162 { 163 if(st1[j].GetNumber()==num) 164 { 165 cout<<"要删除的学生的信息为"<<endl; 166 st1[j].disply(st1[j]); 167 for(int j1=j;j1<mm-1;j1++) 168 { 169 st1[j1]=st1[j1+1]; 170 } 171 mm--; 172 cout<<"删除完成"<<endl; 173 return ; 174 } 175 } 176 cout<<"未找到相应的学生的成绩"<<endl; 177 } 178 void displayall() 179 { 180 for(int i=0;i<mm;i++) 181 { 182 st1[i].disply(st1[i]); 183 } 184 }//全部信息 185 void chaxun() 186 { 187 int num; 188 cout<<"请输入要查询的学生成绩的学号"<<endl; 189 cin>>num; 190 for(int j=0;j<mm;j++) 191 { 192 if(st1[j].GetNumber()==num) 193 { 194 st1[j].disply(st1[j]); 195 return; 196 } 197 } 198 cout<<"未找到相应的学生的成绩"<<endl; 199 }//按学号查询成绩 200 void avgs() 201 { 202 double avg[20]; 203 for(int i1=0;i1<mm;i1++) 204 { 205 avg[i1]=double((st1[i1].GetEnglish()+st1[i1].GetMath()+st1[i1].GetComputer())/3.0); 206 cout<<st1[i1].GetName()<<" "<<st1[i1].GetNumber()<<" "<<avg[i1]<<endl; 207 } 208 }//每人的平均成绩 209 void avgcm() 210 { 211 double avg=0; 212 for(int i2=0;i2<mm;i2++) 213 { 214 avg+=st1[i2].GetMath(); 215 } 216 avg=avg/mm; 217 cout<<"数学成绩平均分为:"<<avg<<endl; 218 }//数学成绩平均分 219 void avgcE() 220 { 221 double avg=0; 222 for(int i2=0;i2<mm;i2++) 223 { 224 avg+=st1[i2].GetEnglish(); 225 } 226 avg=avg/mm; 227 cout<<"英语成绩平均分为:"<<avg<<endl; 228 }//英语成绩平均分 229 void avgcc() 230 { 231 double avg=0; 232 for(int i2=0;i2<mm;i2++) 233 { 234 avg+=st1[i2].GetComputer(); 235 } 236 avg=avg/mm; 237 cout<<"计算机成绩平均分为:"<<avg<<endl; 238 }//计算机成绩平均分 239 void avgca() 240 { 241 double avg=0; 242 for(int i2=0;i2<mm;i2++) 243 { 244 avg+=st1[i2].GetComputer()+st1[i2].GetEnglish()+st1[i2].GetMath(); 245 } 246 avg=avg/(mm*3); 247 cout<<"全部科目成绩平均分为:"<<avg<<endl; 248 }//全部科目成绩平均分 249 int max[20]; 250 int maxM[20]; 251 int maxE[20]; 252 int maxC[20]; 253 void temp() 254 { 255 for(int i=0;i<mm-1;i++) 256 for(int i2=i+1;i2<mm;i2++) 257 { 258 max[i]=st1[i].GetComputer()+st1[i].GetEnglish()+st1[i].GetMath(); 259 max[i2]=st1[i2].GetComputer()+st1[i2].GetEnglish()+st1[i2].GetMath(); 260 if(max[i]>max[i2]) 261 { 262 int temp; 263 temp=max[i]; 264 max[i]=max[i2]; 265 max[i2]=temp; 266 } 267 } 268 }//总成绩排序 269 void highall() 270 { 271 temp(); 272 cout<<"最高总分为:"<<max[mm-1]<<"分"<<endl; 273 }//最高总成绩 274 void lowall() 275 { 276 temp(); 277 cout<<"最低总分为:"<<max[0]<<"分"<<endl; 278 }//最低总成绩 279 void tempM() 280 { 281 for(int i=0;i<mm-1;i++) 282 for(int i2=i+1;i2<mm;i2++) 283 { 284 maxM[i]=st1[i].GetMath(); 285 maxM[i2]=st1[i2].GetMath(); 286 if(maxM[i]>maxM[i2]) 287 { 288 int temp; 289 temp=maxM[i]; 290 maxM[i]=maxM[i2]; 291 maxM[i2]=temp; 292 } 293 } 294 }//数学成绩排序 295 void highallM() 296 { 297 tempM(); 298 cout<<"最高数学成绩为:"<<maxM[mm-1]<<"分"<<endl; 299 }//最高数学成绩 300 void lowallM() 301 { 302 tempM(); 303 cout<<"最低数学成绩为:"<<maxM[0]<<"分"<<endl; 304 }//最低数学成绩 305 void tempE() 306 { 307 for(int i=0;i<mm-1;i++) 308 for(int i2=i+1;i2<mm;i2++) 309 { 310 maxE[i]=st1[i].GetEnglish(); 311 maxE[i2]=st1[i2].GetEnglish(); 312 if(maxE[i]>maxE[i2]) 313 { 314 int temp; 315 temp=maxE[i]; 316 maxE[i]=maxE[i2]; 317 maxE[i2]=temp; 318 } 319 } 320 }//英语成绩排序 321 void highallE() 322 { 323 tempE(); 324 cout<<"最高英语成绩为:"<<maxE[mm-1]<<"分"<<endl; 325 }//最高英语成绩 326 void lowallE() 327 { 328 tempE(); 329 cout<<"最低英语成绩为:"<<maxE[0]<<"分"<<endl; 330 }//最低英语成绩 331 void tempC() 332 { 333 for(int i=0;i<mm-1;i++) 334 for(int i2=i+1;i2<mm;i2++) 335 { 336 maxC[i]=st1[i].GetComputer(); 337 maxC[i2]=st1[i2].GetComputer(); 338 if(maxC[i]>maxC[i2]) 339 { 340 int temp; 341 temp=maxC[i]; 342 maxC[i]=maxC[i2]; 343 maxC[i2]=temp; 344 } 345 } 346 }//计算机成绩排序 347 void highallC() 348 { 349 tempC(); 350 cout<<"最高计算级成绩为:"<<maxC[mm-1]<<"分"<<endl; 351 }//最高计算机成绩 352 void lowallC() 353 { 354 tempC(); 355 cout<<"最低计算机为:"<<maxC[0]<<"分"<<endl; 356 }//最低计算机成绩 357 void sortnumber() 358 { 359 for(int i1=0;i1<mm-1;i1++) 360 for(int i2=i1+1;i2<mm;i2++) 361 { 362 if(st1[i1].GetNumber()>st1[i2].GetNumber()) 363 { 364 Students temp; 365 temp=st1[i1]; 366 st1[i1]=st1[i2]; 367 st1[i2]=temp; 368 } 369 } 370 cout<<"按学号排列为:"<<endl; 371 displayall(); 372 }//按学号排列 373 void sortchengji() 374 { 375 for(int i1=0;i1<mm-1;i1++) 376 for(int i2=i1+1;i2<mm;i2++) 377 { 378 max[i1]=st1[i1].GetComputer()+st1[i1].GetEnglish()+st1[i1].GetMath(); 379 max[i2]=st1[i2].GetComputer()+st1[i2].GetEnglish()+st1[i2].GetMath(); 380 if(max[i1]<max[i2]) 381 { 382 Students temp; 383 temp=st1[i1]; 384 st1[i1]=st1[i2]; 385 st1[i2]=temp; 386 } 387 } 388 cout<<"按成绩降序排列为:"<<endl; 389 displayall(); 390 }//按成绩排序 391 void coun1M() 392 { 393 int count=0; 394 for(int i=0;i<mm;i++) 395 { 396 if(st1[i].GetMath()>90) 397 { 398 count++; 399 } 400 } 401 cout<<"数学成绩大于90分的有"<<count<<"人"<<endl; 402 } 403 void coun2M() 404 { 405 int count=0; 406 for(int i=0;i<mm;i++) 407 { 408 if(st1[i].GetMath()>79 &&st1[i].GetMath()<90) 409 { 410 count++; 411 } 412 } 413 cout<<"数学成绩在80-89分的有"<<count<<"人"<<endl; 414 } 415 void coun3M() 416 { 417 int count=0; 418 for(int i=0;i<mm;i++) 419 { 420 if(st1[i].GetMath()>69 &&st1[i].GetMath()<80) 421 { 422 count++; 423 } 424 } 425 cout<<"数学成绩在70-79分的有"<<count<<"人"<<endl; 426 } 427 void coun4M() 428 { 429 int count=0; 430 for(int i=0;i<mm;i++) 431 { 432 if(st1[i].GetMath()>59 &&st1[i].GetMath()<70) 433 { 434 count++; 435 } 436 } 437 cout<<"数学成绩在60-69分的有"<<count<<"人"<<endl; 438 } 439 void coun5M() 440 { 441 int count=0; 442 for(int i=0;i<mm;i++) 443 { 444 if(st1[i].GetMath()<60) 445 { 446 count++; 447 } 448 } 449 cout<<"数学成绩不及格的有"<<count<<"人"<<endl; 450 } 451 void coun1C() 452 { 453 int count=0; 454 for(int i=0;i<mm;i++) 455 { 456 if(st1[i].GetComputer()>90) 457 { 458 count++; 459 } 460 } 461 cout<<"计算机成绩大于90分的有"<<count<<"人"<<endl; 462 } 463 void coun2C() 464 { 465 int count=0; 466 for(int i=0;i<mm;i++) 467 { 468 if(st1[i].GetComputer()>79 &&st1[i].GetComputer()<90) 469 { 470 count++; 471 } 472 } 473 cout<<"计算机成绩在80-89分的有"<<count<<"人"<<endl; 474 } 475 void coun3C() 476 { 477 int count=0; 478 for(int i=0;i<mm;i++) 479 { 480 if(st1[i].GetComputer()>69 &&st1[i].GetComputer()<80) 481 { 482 count++; 483 } 484 } 485 cout<<"计算机成绩在70-79分的有"<<count<<"人"<<endl; 486 } 487 void coun4C() 488 { 489 int count=0; 490 for(int i=0;i<mm;i++) 491 { 492 if(st1[i].GetComputer()>59 &&st1[i].GetComputer()<70) 493 { 494 count++; 495 } 496 } 497 cout<<"计算机成绩在60-69分的有"<<count<<"人"<<endl; 498 } 499 void coun5C() 500 { 501 int count=0; 502 for(int i=0;i<mm;i++) 503 { 504 if(st1[i].GetComputer()<60) 505 { 506 count++; 507 } 508 } 509 cout<<"计算机成绩不及格的有"<<count<<"人"<<endl; 510 } 511 void coun1E() 512 { 513 int count=0; 514 for(int i=0;i<mm;i++) 515 { 516 if(st1[i].GetEnglish()>90) 517 { 518 count++; 519 } 520 } 521 cout<<"英语成绩大于90分的有"<<count<<"人"<<endl; 522 } 523 void coun2E() 524 { 525 int count=0; 526 for(int i=0;i<mm;i++) 527 { 528 if(st1[i].GetEnglish()>79 &&st1[i].GetEnglish()<90) 529 { 530 count++; 531 } 532 } 533 cout<<"英语成绩在80-89分的有"<<count<<"人"<<endl; 534 } 535 void coun3E() 536 { 537 int count=0; 538 for(int i=0;i<mm;i++) 539 { 540 if(st1[i].GetEnglish()>69 &&st1[i].GetEnglish()<80) 541 { 542 count++; 543 } 544 } 545 cout<<"英语成绩在70-79分的有"<<count<<"人"<<endl; 546 } 547 void coun4E() 548 { 549 int count=0; 550 for(int i=0;i<mm;i++) 551 { 552 if(st1[i].GetEnglish()>59 &&st1[i].GetEnglish()<70) 553 { 554 count++; 555 } 556 } 557 cout<<"英语成绩在60-69分的有"<<count<<"人"<<endl; 558 } 559 void coun5E() 560 { 561 int count=0; 562 for(int i=0;i<mm;i++) 563 { 564 if(st1[i].GetEnglish()<60) 565 { 566 count++; 567 } 568 } 569 cout<<"英语成绩不及格的有"<<count<<"人"<<endl; 570 } 571 void coun1Z() 572 { 573 int count=0; 574 for(int i=0;i<mm;i++) 575 { 576 if(double((st1[i].GetComputer()+st1[i].GetEnglish()+st1[i].GetMath())/3.0)>90) 577 { 578 count++; 579 } 580 } 581 cout<<"平均成绩大于90分的有"<<count<<"人"<<endl; 582 } 583 void coun2Z() 584 { 585 int count=0; 586 for(int i=0;i<mm;i++) 587 { 588 double aa=double(st1[i].GetComputer()+st1[i].GetEnglish()+st1[i].GetMath())/3.0; 589 if(aa>79 &&aa<90) 590 { 591 count++; 592 } 593 } 594 cout<<"平均成绩在80-89分的有"<<count<<"人"<<endl; 595 } 596 void coun3Z() 597 { 598 int count=0; 599 for(int i=0;i<mm;i++) 600 { 601 double aa=double(st1[i].GetComputer()+st1[i].GetEnglish()+st1[i].GetMath())/3.0; 602 if(aa>69 && aa<80) 603 { 604 count++; 605 } 606 } 607 cout<<"平均成绩在70-79分的有"<<count<<"人"<<endl; 608 } 609 void coun4Z() 610 { 611 int count=0; 612 for(int i=0;i<mm;i++) 613 { 614 double aa=double(st1[i].GetComputer()+st1[i].GetEnglish()+st1[i].GetMath())/3.0; 615 if(aa>59 && aa<70) 616 { 617 count++; 618 } 619 } 620 cout<<"平均成绩在60-69分的有"<<count<<"人"<<endl; 621 } 622 void coun5Z() 623 { 624 int count=0; 625 for(int i=0;i<mm;i++) 626 { 627 if((double(st1[i].GetComputer()+st1[i].GetEnglish()+st1[i].GetMath())/3.0)<60) 628 { 629 count++; 630 } 631 } 632 cout<<"平均成绩不及格的有"<<count<<"人"<<endl; 633 } 634 2.1.4 功能组合 635 void mainloop1() 636 { 637 cout<<"输入1:查看全部成绩" <<endl; 638 cout<<"输入2:按学号查询"<<endl; 639 int xun; 640 cin>>xun; 641 if(xun==1) 642 { 643 displayall(); 644 } 645 else if(xun==2) 646 { 647 chaxun(); 648 } 649 system("pause"); 650 } 651 void mainloop2() 652 { 653 addmain(); 654 system("pause"); 655 } 656 void mainloop3() 657 { 658 miodefy(); 659 system("pause"); 660 } 661 void mainloop4() 662 { 663 deletea(); 664 system("pause"); 665 } 666 void mainloop5() 667 { 668 avgs(); 669 system("pause"); 670 } 671 void mainloop6() 672 { 673 cout<<"输入 1:查看数学平均成绩"<<endl; 674 cout<<"输入 2:查看英语平均成绩"<<endl; 675 cout<<"输入 3:查看计算机平均成绩"<<endl; 676 cout<<"输入 4:查看总平均成绩"<<endl; 677 int m; 678 cin>>m; 679 if(m==1) 680 { 681 avgcm(); 682 } 683 else if(m==2) 684 { 685 avgcE(); 686 } 687 else if(m==3) 688 { 689 avgcc(); 690 } 691 else if(m==4) 692 { 693 avgca(); 694 } 695 system("pause"); 696 } 697 void mainloop7() 698 { 699 cout<<"输入 1:查看数学最高成绩"<<endl; 700 cout<<"输入 2:查看英语最高成绩"<<endl; 701 cout<<"输入 3:查看计算机最高成绩"<<endl; 702 cout<<"输入 4:查看总最高成绩"<<endl; 703 int m; 704 cin>>m; 705 if(m==1) 706 { 707 highallM(); 708 } 709 else if(m==2) 710 { 711 highallE(); 712 } 713 else if(m==3) 714 { 715 highallC(); 716 } 717 else if(m==4) 718 { 719 highall(); 720 } 721 system("pause"); 722 } 723 void mainloop8() 724 { 725 cout<<"输入 1:查看数学最低成绩"<<endl; 726 cout<<"输入 2:查看英语最低成绩"<<endl; 727 cout<<"输入 3:查看计算机最低成绩"<<endl; 728 cout<<"输入 4:查看总最低成绩"<<endl; 729 int m; 730 cin>>m; 731 if(m==1) 732 { 733 lowallM(); 734 } 735 else if(m==2) 736 { 737 lowallE(); 738 } 739 else if(m==3) 740 { 741 lowallC(); 742 } 743 else if(m==4) 744 { 745 lowall(); 746 } 747 system("pause"); 748 } 749 void mainloop9() 750 { 751 cout<<"输入 1:查看不及格人数"<<endl; 752 cout<<"输入 2:查看60~69分人数"<<endl; 753 cout<<"输入 3:查看70~79分人数"<<endl; 754 cout<<"输入 4:查看80~89分人数"<<endl; 755 cout<<"输入 5:查看90分以上人数"<<endl; 756 int i1; 757 cin>>i1; 758 if(i1==1) 759 { 760 cout<<"输入 1:查看数学在此范围内人数"<<endl; 761 cout<<"输入 2:查看英语在此范围内人数"<<endl; 762 cout<<"输入 3:查看计算机在此范围内人数"<<endl; 763 cout<<"输入 4:查看平均成绩在此范围内人数"<<endl; 764 int jj; 765 cin>>jj; 766 if(jj==1) 767 { 768 coun1M(); 769 } 770 else if(jj==2) 771 { 772 coun1E(); 773 } 774 else if(jj==3) 775 { 776 coun1C(); 777 } 778 else if(jj==4) 779 { 780 coun1Z(); 781 } 782 } 783 else if(i1==2) 784 { 785 cout<<"输入 1:查看数学在此范围内人数"<<endl; 786 cout<<"输入 2:查看英语在此范围内人数"<<endl; 787 cout<<"输入 3:查看计算机在此范围内人数"<<endl; 788 cout<<"输入 4:查看平均成绩在此范围内人数"<<endl; 789 int jj; 790 cin>>jj; 791 if(jj==1) 792 { 793 coun2M(); 794 } 795 else if(jj==2) 796 { 797 coun2E(); 798 } 799 else if(jj==3) 800 { 801 coun2C(); 802 } 803 else if(jj==4) 804 { 805 coun2Z(); 806 } 807 } 808 else if(i1==3) 809 { 810 cout<<"输入 1:查看数学在此范围内人数"<<endl; 811 cout<<"输入 2:查看英语在此范围内人数"<<endl; 812 cout<<"输入 3:查看计算机在此范围内人数"<<endl; 813 cout<<"输入 4:查看平均成绩在此范围内人数"<<endl; 814 int jj; 815 cin>>jj; 816 if(jj==1) 817 { 818 coun3M(); 819 } 820 else if(jj==2) 821 { 822 coun3E(); 823 } 824 else if(jj==3) 825 { 826 coun3C(); 827 } 828 else if(jj==4) 829 { 830 coun3Z(); 831 } 832 } 833 else if(i1==4) 834 { 835 cout<<"输入 1:查看数学在此范围内人数"<<endl; 836 cout<<"输入 2:查看英语在此范围内人数"<<endl; 837 cout<<"输入 3:查看计算机在此范围内人数"<<endl; 838 cout<<"输入 4:查看平均成绩在此范围内人数"<<endl; 839 int jj; 840 cin>>jj; 841 if(jj==1) 842 { 843 coun4M(); 844 } 845 else if(jj==2) 846 { 847 coun4E(); 848 } 849 else if(jj==3) 850 { 851 coun4C(); 852 } 853 else if(jj==4) 854 { 855 coun4Z(); 856 } 857 } 858 else if(i1==5) 859 { 860 cout<<"输入 1:查看数学在此范围内人数"<<endl; 861 cout<<"输入 2:查看英语在此范围内人数"<<endl; 862 cout<<"输入 3:查看计算机在此范围内人数"<<endl; 863 cout<<"输入 4:查看平均成绩在此范围内人数"<<endl; 864 int jj; 865 cin>>jj; 866 if(jj==1) 867 { 868 coun5M(); 869 } 870 else if(jj==2) 871 { 872 coun5E(); 873 } 874 else if(jj==3) 875 { 876 coun5C(); 877 } 878 else if(jj==4) 879 { 880 coun5Z(); 881 } 882 } 883 system("pause"); 884 } 885 void mainloop10() 886 { 887 sortchengji(); 888 system("pause"); 889 } 890 2.1.5 主窗体设计及主函数 891 void SetScreenGrid() 892 { 893 //char sysSetBuf[80]; 894 //sprintf(sysSetBuf,"mode con cols=%d line=%d " ,CMD_COLS,CMD_LINES); 895 //system(sysSetBuf); 896 system("color 5"); 897 }//设置显示信息的行数,列数和背景颜色等信息 898 int mainlook() 899 { 900 SetScreenGrid(); 901 int c; 902 do 903 { 904 //设置字体为绿色 905 system("cls"); 906 cout<<endl; 907 cout<<endl; 908 cout<<" 学生成绩管理系统 " <<endl; 909 cout<<" =========================================="<<endl; 910 cout<<" \t 1.学生成绩查询 \t"<<endl; 911 cout<<" \t 2.添加学生成绩 \t"<<endl; 912 cout<<" \t 3.修改学生成绩 \t"<<endl; 913 cout<<" \t 4.删除学生成绩 \t"<<endl; 914 cout<<" \t 5.学生平均成绩 \t"<<endl; 915 cout<<" \t 6.科目平均成绩 \t"<<endl; 916 cout<<" \t 7.学生最高成绩 \t"<<endl; 917 cout<<" \t 8.学生最低成绩 \t"<<endl; 918 cout<<" 9.学生各个分数段人数 \t"<<endl; 919 cout<<" 10.成绩升序排列为 \t"<<endl; 920 cout<<" =========================================="<<endl; 921 cout<<"0-退出\t请选择(1-10): "; 922 cin>>c; 923 switch(c) 924 { 925 case 1: system("cls");mainloop1(); break; 926 case 2:system("cls");mainloop2();break; 927 case 3: system("cls");mainloop3();break; 928 case 4: system("cls");mainloop4(); break; 929 case 5: system("cls");mainloop5(); break; 930 case 6: system("cls");mainloop6(); break; 931 case 7: system("cls");mainloop7(); break; 932 case 8: system("cls");mainloop8(); break; 933 case 9:system("cls");mainloop9();break; 934 case 10:system("cls");mainloop10();break; 935 default: break; 936 } 937 }while(c!=0); 938 return 0; 939 } 940 int main() 941 { 942 mainlook(); 943 return 0; 944 }
1. 设置公共类students,设置姓名Name,学号Number,数学成绩Math,英语成绩English,计算机成绩Computer,四个属性来存储学生成绩记录。
2.公共类设置15个函数来获取信息与成绩及初始化。
1) Students(char *sNane, int cNumber,int sMath,int sEnglish,int sComputer);
2) Students()
3) {}
4) ~Students()
5) {}
6) char* GetName();
7) void SetName(char* sName);//获取姓名
8) int GetNumber();
9) void SetNumber(int sNumber);//获取学号
10) int GetMath();
11) void SetMath(int sMath);//获取数学成绩
12) int GetEnglish();
13) void SetEnglish(int sEnglish);//获取英语成绩
14) int GetComputer();
15) void SetComputer(int sComputer);//获取计算机成绩
3.功能函数。
1) 添加修改成绩功能。
2) 初始化一个对象数组,采用带参数的构造函数初始化记录,完成学生信息的添加,修改功能。
3) 2,删除学生成绩功能。
4) 设置计数器,与学号关联,查询到要删去的学号,去掉该学生的成绩,其他的成绩依次向前移动一位,学生成绩总数减一位。
5) 排序,最低最高成绩功能。
6) 进行学生成绩的排序,对象数组下标为0的是最低成绩,为计数器数字减一的是最高成绩。
7) 各个分数段人数。
8) 进行简单的筛选,外加计数器。
4.排序采用简单的冒泡排序,时间复杂度为O(n)。
5.菜单设计。
函数工能组合后,为mainloop1-10,为了能进行多次功能选择,采用永真的while(1)循环,只有当判断条件(c==0)满足时退出系统。
循环中采用switch,case结构方便进行选择。
6.主窗体设计。
采用system(“cls”)函数调动DOS下的清屏功能,system("color 5")进行文字背景颜色选择功能,使界面看起来美观。
使用system("pause")函数,是程序暂停,给使用者以选择的时间。
1.使各个功能能够持续不断地进行,而不丢失已经录入的数据。
设置一个全局变量的对象数组,每个函数对数组进行操作。
2.菜单设置每次单个功能完成后能再次回到菜单继续执行命令,以及程 序的退出。
为了能进行多次功能选择,采用永真的while(1)循环,只有当判断 条件(c==0)满足时退出系统。
循环中采用switch,case结构方便进行选择。
3.功能执行时,没有给以选择时间,程序闪退。
使用system("pause")函数,是程序暂停,给使用者以选择的时间。
4.快速设置改变背景色,样式,标题,等格式。
采用system(“cls”)系列的函数,调用系统命令,快速改变样式。
例如:
sprintf(sysSetBuf,"mode con cols=%d line=%d " ,CMD_COLS,CMD_LINES);
system(sysSetBuf);
system("color 5");
实验过程中学到了不少的知识,例如如何设置菜单,改界面,完一个简单的数据的增删改查的功能,以及简单的从文件中读取 数据的操作,对文件中的数据进行操作。
了解了做一个项目的大致的流程。感觉总体功能做的可以了,也设 置了一个简单的界面。
从文件中读入,写入数据可以采用文件的输入输出流。例如:
#include<iostream.h> #include<fstream> using namespace std; int main() { ofstream fout; fout.open("output.txt"); fout << "Here is a number: " << "/n"; fout << "Now here is a string: " << "/n"; fout << flush; fout.close(); ifstream fin("input.txt"); return 0; }
时间紧急没有来的及完成。
标签:
原文地址:http://www.cnblogs.com/chance88/p/4631055.html