logo资料库

C++实现学生学习成绩管理程序.doc

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
该系统实现对若干个大学生的学习成绩进行管理。至少包括以下信息: 学号、姓名、科目、成绩,学期。学期取值范围可为 1-8。 功能要求: 1.使用中文菜单; 2. 将学生信息保存在文本文档中,具体对学生信息进行插入删除查询操作时,将保存在文 本文档中的学生信息提取出来,保存在链表中,然后再对链表进行操作,所有操作完成,或 者在相应的命令后,再将学生信息保存到文本文档中。 3.具有数据输入功能; 4.具有数据删除功能; 5.具有多种查询(如按学号查询、按姓名查询、按成绩查询等)及输出功能; 6.其它功能(如各种统计) #include #include #include #include using namespace std; #define max 100; class student { public: student *next; public: string name;//姓名 long num;//学号 int x,y,z;//数学,语文,英语 int AA;//总分 void play(){cout<
class cla { public: cla()//构造函数 { stu=0; sload(); } ~cla()//析构函数 { student *p; p=stu; while(p) { p=p->next; delete stu; stu=p; } stu=0; } void sadd(); //添加 void sremove(); //删除 void samend(); //修改 void ssearch(); //查询 void staxis(); //排序 void ssave(); //保存 void sload(); //读取 //排序函数 void pxh(); void psx(); void pyw(); void pyy(); void pAA(); private: student *stu; //头接点 }; void cla::sadd()//添加 {
student *q; string name1; long num1; int x1,y1,z1; system("cls"); cout<<"\n **增加的学生** \n"<>name1>>num1>>x1>>y1>>z1; q=new student(name1,num1,x1,y1,z1); q->next=0; q->AA=x1+y1+z1; if(stu) { student *t; t=stu; if(t->num==num1) { cout<<"学号已存在,请重新输入"<next) { if(t->num==num1) { cout<<"学号已存在,请重新输入"<next; } t->next=q; } else { stu=q; } cout<<"输入完毕"<
} void cla::sremove()//删除 { system("cls"); int num1; cout<<"\n** 删除学生信息 **\n"; cout<<"请输入想要删除学生的学号:"; cin>>num1; //查找要删除的结点 student *p1,*p2; p1=stu; while(p1) { if(p1->num==num1) break; else { p2=p1; p1=p1->next; } } //删除结点 if(p1!=NULL)//若找到结点,则删除 { p1->play(); cout<<"确定删除吗?[Y/N]"<>c; if(toupper(c)!='Y') return; if(p1==stu) //若要删除的结点是第一个结点 { stu=p1->next; delete p1; } else //若要删除的结点是后续结点 { p2->next=p1->next; delete p1; }
cout<<"找到学号为"<>num1; //查找要修改的结点 student *p1,*p2; p1=stu; while(p1) { if(p1->num==num1) break; else { p2=p1; p1=p1->next; } } if(p1!=NULL) { cout<<"学号是"<name<<"数学"<x<<"语文"<y<<"英语"<z<>p1->name>>p1->x>>p1->y>>p1->z; p1->AA=p1->x+p1->y+p1->z; cout<<"修改成功"<
system("cls"); cout<<"\n** 查询学生信息 **\n"<>c; switch (c) { case '1': { long num1; cout<<"要查询的学号"<>num1; //查找要查询的结点 student *p1,*p2; p1=stu; while(p1) { if(p1->num==num1) break; else { p2=p1; p1=p1->next; } } if(p1!=NULL) { cout<<"学号是"<name<<" 数学:"<x<<" 语文:"<y<<" 英 语:"<z<
cout<<"要查询的学生姓名"<>name1; //查找要查询的结点 student *p1,*p2; p1=stu; while(p1) { if(p1->name==name1) break; else { p2=p1; p1=p1->next; } } if(p1!=NULL) { cout<num<<" 数学:"<x<<" 语文:"<y<<" 英 语:"<z<next) { n++; p1=p1->next; } cout<<"共有"<
p1=stu; for(i=1;inum>p1->next->num) // 如果头结点大于第二个的 { p2=p1->next; p1->next=p1->next->next; p2->next=p1; //头结点交换 stu=p2; } p1=stu; while(p1->next->next) //中间的交换 { p2=p1; p1=p1->next; if(p1->num>p1->next->num) { p2->next=p1->next; p1->next=p1->next->next; p2->next->next=p1; p1=p2->next; //交换 } } } p1=stu; do { p1->play(); p1=p1->next; }while(p1); } void cla::psx()//按数学成绩排序 { student *p1,*p2; int n; p1=stu; n=1; while(p1->next) { n++; p1=p1->next; }
分享到:
收藏