学生成绩管理系统C++代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学
生
成
绩
管
理
系
统
班级:自动化
姓名:
学号:
学院:信息与电气工程学院
完成时间:2010-12-24
成绩:
指导老师签名:
一、项目说明:
该项目的主要作用是记录学生成绩,学生信息,并且对其进行管理,由两个类,一个主函数,调用函数包括添加函数、删除函数、查询函数、排序函数等。程序的大体流程是建立类,建立了类之后建立函数模型,主要属于调用函数,调用函数占了程序的大部分,属于应用部分,主函数的作用就是通过调用不同的调用函数来实现函数的目的,详细的说明会在结尾以及程序中给出。
二、心得体会:
通过做这次的作业,自己加深了对C++程序设计原理的理解,懂得了类的运用,以及通过学习,了解了在C语言上的升华,体会了C++的强大,最重要的去写,因为这样才可以锻炼自己,这个程序不复杂,通俗易懂,但是却有着极大的作用,这就是我们写程序所希望达到的境界。
三、运行结果
这个运行结果是关于对输入的学生的信息进行排列后的结果,这个程序最大的特点就是他的类,我们看到的是源程序代码以及自己对它的注释:
#include
#include
#include
#include
using namespace std;
#define max 100;
class student //定义类student定义了程序中主要使用的成员
{ public: student *next;
public: string name;//姓名long num;//学号int x,y,z;//数学,语文,英语
int AA;//总分
void play(){cout< student(string sname,long snum,int sx,int sy,int sz) { name=sname; num=snum; x=sx; y=sy; z=sz; } }; class cla //定义类2包括建立构造函数和解析函数 { 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(); //共有5个排序函数private: student *stu; //头接点}; void cla::sadd()//此处构造了添加学生函数 { student *q; string name1; long num1; int x1,y1,z1; system("cls"); cout<<"\n **增加的学生** \n"< cout<<"请输入学生的(中间用空格间隔) "< cout<<"姓名学号数学成绩语文成绩英语成绩:"< cin>>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<<"学号已存在,请重新输入"< while(t->next) { if(t->num==num1) { cout<<"学号已存在,请重新输入"< { 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]"< if(toupper(c)!='Y') return; if(p1==stu) //若要删除的结点是第一个结点 { stu=p1->next; delete p1; } else //若要删除的结点是后续结点 { p2->next=p1->next; delete p1; } cout<<"找到学号为"< else //未找到结点 cout<<"未找到想要删除的学生!\n"; } void cla::samend()//修改 { system("cls"); long 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) { cout<<"学号是"< cout<<"姓名"< cout<<"请输入修改后的信息:姓名数学成绩语文成绩英语成绩"< p1->AA=p1->x+p1->y+p1->z; cout<<"修改成功"< { system("cls"); cout<<"\n** 查询学生信息**\n"< cout<<"请输入查询方式:"< cout<<"1.按学号查询"< cout<<"2.按姓名查询"< cout<<"3.返回"< char c; cin>>c; switch (c) //通过switch语句来选择排序函数 {