🌀 技术人生
凡事有交代,件件有着落,事事有回音
我的C++课程设计

学生信息管理系统

代码:

/#include using namespace std; /#include<stdio.h> /#include <string.h> /#include <stdlib.h> /#include <conio.h> /#define N 1000 typedef struct student { int number; char name[20]; int grade; int gaoshu; int yingyu; int jisuanji; int sum; }STUDENT; STUDENT student[N]; int shuliang=0; //用于记录有多少学生 class Student { public: void fhzjm(); void DengJi(); void ShanChu(); void LiuLan(); void ChaZhao(); void PaiXu(); void Save(); void menu(); void DaoRu(); }; void Student::fhzjm() //每次操作结束 来提醒是否继续进行操作 { char biaozhi[20]; cout«endl; cout«“还需要操作么?如果需要操作请输入:yes,否则请输入:no”«endl; cin»biaozhi; if(strcmp(biaozhi,“yes”)==0) { menu(); } else if(strcmp(biaozhi,“no”)==0) exit(0); //退出系统 这是一个库函数 用于结束程序 else { cout«“请输入正确的字符,谢谢!"«endl; fhzjm(); } } void Student::DengJi() //登记学生信息函数 { int rs; //用于记录要输入多少条学生信息 int i,k=1; system(“CLS”); cout«“请输入需要输入几个学生信息:"«endl; cin»rs; for(i=shuliang;i<shuliang+rs;i++,k++) { cout«“请输入第”«k«“个学生的学号:”; cin»student[i].number; cout«“请输入学生的姓名:”; cin»student[i].name; //cout«“请输入学生3门课的成绩:”; cout«“请输入第高数课的成绩:”; cin»student[i].gaoshu; cout«“请输入英语课的成绩:”; cin»student[i].yingyu; cout«“请输入第计算机课的成绩:”; cin»student[i].jisuanji; } shuliang=shuliang+rs; fhzjm(); } void Student::ShanChu() //删除学生信息 { char shanchuinfo[10]; system(“CLS”); //清屏函数 这是一个库函数 用于清除控制台中的所有信息 cout«“删除全部学生信息请输入"all",删除指定学号的学生信息请输入"one"\n”; cin»shanchuinfo; if(strcmp(shanchuinfo,“all”)==0) { int j; cout«“你删除的学生信息如下:"«endl; cout«”———–学号————-姓名————-高数————–英语————–计算机\t”«endl; for(j=0;j<shuliang;j++) cout«”—-%d——-%s——-%d——-%d——-%d\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].jisuanji; shuliang=0; cout«“删除成功”«endl; } else if(strcmp(shanchuinfo,“one”)==0) { struct student /p=NULL; int choice; int i,j,k=0; cout«“请输入你要删除的人的学号:”; cin»choice; for(i=0;i<shuliang;i++) { if(choice==student[i].number) { k=1;j=i;break; } } if(k) { if(shuliang==1) { p=&student[0]; free(p); shuliang=0; } else { for(i=j;i<shuliang;i++) { student[i]=student[i+1]; } shuliang=shuliang-1; } cout«“删除成功”«endl; } else { cout«“输入数据错误!"«endl; } } fhzjm(); } void Student::LiuLan() //浏览操作函数 { int i; system(“CLS”); if(shuliang==0) { cout«“系统里面没有任何学生的信息!"«endl; } else { for(i=0;i<shuliang;i++) { cout«“第”«i+1«“个学生的学号为:"«student[i].number«endl; cout«“第”«i+1«“个学生的姓名为:"«student[i].name«endl; cout«“第”«i+1«“个学生的高数课的成绩为:"«student[i].gaoshu«endl; cout«“第”«i+1«“个学生的英语课的成绩为:"«student[i].yingyu«endl; cout«“第”«i+1«“个学生的计算机课的成绩为:"«student[i].jisuanji«endl; student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuanji; cout«“第”«i+1«“个学生的总成绩为:"«student[i].sum«endl; } } fhzjm(); } void Student::ChaZhao() //查找函数 实现查找功能 分为三种查询 按学号查询 按姓名 按成绩 { int xx; char choice,yy[20]; int i,j,k=0; system(“CLS”); if(shuliang==0) { cout«“系统里面没有任何学生的信息!"«endl; fhzjm(); } cout«“三种查找方式:学号,姓名,成绩”«endl; cout«“如果按学号查找请输1,如果按姓名查找请输2,如果按成绩查找请输3”«endl; cout«“请输入您查找的方式:”; cin»choice; if(choice==‘1’) { cout«“请输入需要查找学生的学号:”; cin»xx; cout«“您所查找的学生的信息为:"«endl; cout«”—-学号—-姓名—-高数成绩—-英语成绩—-计算机成绩—-\t”«endl; for(i=0;i<shuliang;i++) { if(xx==student[i].number) { j=i;k=1; cout«”—-%d——-%s——-%d——-%d——-%d—-\t\n”,student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jisuanji; } } if(k==0) cout«“输入信息有误:"«endl; } else if(choice==‘2’) { cout«“请输入需要查找学生的姓名:”; cin»yy; cout«“您所查找的学生的信息为:"«endl; cout«”—-学号—-姓名—-高数成绩—-英语成绩—-计算机成绩—-\t”«endl; for(i=0;i<shuliang;i++) { if(strcmp(yy,student[i].name)==0) { j=i;k=1; cout«”—-%d——-%s——-%d——-%d——-%d—-\t\n”,student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].jisuanji; } } if(k==0) cout«“输入信息有误:"«endl; } else if(choice==‘3’) { cout«“请输入需要查找学生的成绩:"«endl; cin»xx; cout«“您所查找的学生的信息为:"«endl; cout«”—-学号—-姓名—-高数—-英语—-计算机—-\t”«endl; for(i=0;i<shuliang;i++) { if(xx==student[i].grade) { j=i;k=1; cout«”—-%d——-%s——-%d——-%d——-%d—-\t\n”,student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jisuanji; } } if(k==0) cout«“输入信息有误:"«endl; } fhzjm(); } void Student::PaiXu() //排序函数 执行排序操作 { struct student /p1[N],//p2,/temp; int i,j; system(“CLS”); p2=p1; for( i=0;i<shuliang;i++) { p1[i]=student+i; } for( i=0;i<shuliang;i++) { for( j=i+1;j<shuliang;j++) { if((/(p2+i))->sum<(/(p2+j))->sum) { temp=/(p2+i);/(p2+i)=/(p2+j);/(p2+j)=temp; } } } cout«“按照总成绩排序之后的信息为:"«endl; cout«”—-学号—-姓名—-总成绩—-\t”«endl; for( i=0;i<shuliang;i++) { student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuanji; cout«”—-%d—–%s—-%d—–\n”,(/(p2+i))->number,(/(p2+i))->name,(/(p2+i))->sum; } fhzjm(); } void Student::Save() //保存数据 把数据写到文件操作 { int i; FILE /rs; if((rs=fopen(“student.txt”,“w”))==NULL) { cout«“not open”; exit(0); } for(i=0;i<shuliang;i++) { fwrite(&student[i], sizeof(student[i]), 1, rs); } if(ferror(rs)) { fclose(rs); perror(“写文件失败!\n”); return; } cout«“存储文件成功!"«endl; fclose(rs); fhzjm(); } void Student::DaoRu() { struct student t; int i=0; FILE/ fp = fopen(“student.txt”, “r”); shuliang=0; if(NULL==fp) { perror(“读取文件打开失败!\n”); return; } memset(student,0x0,sizeof(student)); while(1) { fread(&t,sizeof(t),1,fp); if(ferror(fp)) { fclose(fp); perror(“读文件过程失败!\n”); return; } if(feof(fp)) { break; } student[i]=t; i++; } fclose(fp); shuliang=i; cout«“导入文件成功!"«endl; fhzjm(); } void Student::menu() { int n=0; system(“CLS”); cout«” ==================学生信息管理系统==============="«endl; cout«” = 1.登记学生信息 ="«endl; cout«” = 2.删除学生信息 ="«endl; cout«" = 3.浏览学生信息 ="«endl; cout«" = 4.查找学生信息 ="«endl; cout«" = 5.根据总成绩排序 ="«endl; cout«" = 6.存储到文件 ="«endl; cout«" = 7.从文件导入 ="«endl; cout«" = 8.退出系统 ="«endl; cout«" ================================================="«endl; cout«" 请选择:"; cin»n; switch (n) { case 1: DengJi();break; //等记信息 case 2: ShanChu();break; //删除信息 case 3: LiuLan();break; //浏览信息 case 4: ChaZhao();break; //查找信息 case 5: PaiXu();break; //对成绩记性排序 case 6: Save();break; //保存数据到文件中 case 7: DaoRu();break; //把文件中的数据导入到程序中 case 8: exit(0);break; //退出系统 } } int main() { Student student; student.menu(); return 0; }


最后修改于 2017-05-23

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。