数据结构课程设计--学生成绩管理系统

/********************************************************************
*版权所有 (C)2016
*
*文件名称:学生成绩管理系统
*文件标识:无
*内容摘要:简单模拟学生成绩管理过程,
            完成对学生成绩信息的建立、增加、删除、查找、修改等功能
*其他内容:无
*
*当前版本:VC6.0
*作者:车金阳
*完成日期:2017.01.01
*********************************************************************/
#include"head.h"

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<<"输入完毕"<>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<<"修改成功"<>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<>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<<"共有"<num>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::pAA()//按总分排序
{
    student *p1,*p2;
    int n;
    p1=stu;
    n=1;
    while(p1->next)
    {
        n++;
        p1=p1->next;
    }
    cout<<"共有"<AA>p1->next->AA) // 如果头结点大于第二个的
        {
            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->AA>p1->next->AA)
            {
                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::staxis()//排序
{

    system("cls");
    char c;
    cout<<"请选择以何种方式排序:"<>c;

    switch (c)
    {
    case '1':
        pxh();
        break;
    case '2':
        pAA();
        break;
    case '3':
        return;
    }
}


#include"head.h"


int  main()
{
	char c;
	cla a;
	do
	{
		cout<<"\n 学 生 成 绩 管 理 系 统 \n";
		cout<<"**************************************\n";
		cout<<"*            1……增加学生信息       *\n";
		cout<<"*            2……删除学生信息       *\n";
		cout<<"*            3……修改学生信息       *\n";
		cout<<"*            4……查询学生信息       *\n";
		cout<<"*            5……排序学生信息       *\n";
		cout<<"*            6……退出               *\n";
		cout<<"**************************************\n";
		cout<<"请选择(1-6):";
		cin>>c;
		//以下进行条件选择
		switch(c)
		{
		case '1': a.sadd();break;
		case '2': a.sremove();break;
		case '3': a.samend();break;
		case '4': a.ssearch();break;
		case '5': a.staxis();break;
		}
		
	}
	while(c!='6');
	return 0;
}

#include
#include
#include
#include
using namespace std;

#define max 500

class student
{

private:
	
    string name;//姓名
	long num;//学号
	int x,y,z;//离散数学,数据结构,英语
	int AA;//总分
	student *next;
	friend class cla;
public:

	void play(){cout<next;
			delete stu;
			stu=p;
		}
		stu=0;
	}
	void sadd(); //添加
	void sremove(); //删除
	void samend(); //修改
	void ssearch(); //查询
	void staxis(); //排序 .

	//排序函数
	void pxh();
	void pAA();
private:
	student *stu; //头接点
};


你可能感兴趣的:(数据结构课程设计--学生成绩管理系统)