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

/* 
*文件名称:1.pp 
*作者:崔从敏 
*完成日期:2015年12月24日 
*问题描述:设计学生成绩管理系统,主要实现对学生成绩信息进行管理,需要实现以下几个方面的管理功能: 
(0)创建学生成绩信息:输入学生的信息。 
(1)查找学生成绩信息:按学号、姓名查找。 
(2)修改学生成绩信息:找到要修改的学号,修改相应信息。 
(3)追加学生成绩信息:找到要追加的学生成绩的学号,对相应科目的成绩进行追加。 
(4)显示学生成绩信息:显示全部学生的成绩信息 
(5)插入学生成绩信息:插入一个新的学生。 
(6)删除学生成绩信息;按学号、姓名删除。目或者总分排序 
*/
#include
#include
#include
#include
using namespace std;
#define MAX 100
typedef struct student
{
    int num;
    char name[20];
    int english;
    int chinese;
    int math;
    int total;
    int length;
    struct student *next ;
} s,*LinkList;
/***********************************************
*功能描述:一个学生成绩管理的主函数,实现输入、输出、追加、修改、删除功能
*输入参数:ch-选择的操作数 ,ch2-选择继续或退出
*返回值:0-成功 其他-失败
***********************************************/
int input( LinkList &L);//输入并存储学生信息int output(LinkList &L);//输出学生成绩信息int check(LinkList &L);//按学号查询学生成绩int check_name(LinkList &L);//按名字查询学生成绩信息
 
  
int add(LinkList &L);//追加学生成绩
int xiugai(LinkList &L);//修改学生成绩
int insert_stu(LinkList &L);//插入学生成绩信息
int Delete_stu(LinkList &L);//删除学生信息
int main()
{
    cout<<"\t\t\t       欢迎登录学生成绩管理系统!"<next=NULL;
    char ch,ch2;

    while(flag)
    {
        cout<<"请输入你要进行的操作数:"<>ch;
        while(ch>'7'||ch<'0')
        {
            cout<<"输入有误,请重新输入"<>ch;
        }
        switch(ch)
        {
        case '0':
            input(l);
            cout<<"学生的基本信息存储成功"<>ch2;
        while(flag1)
        {
            if((ch2=='Y')||(ch2=='y'))
            {
                flag=1;
                flag1=0;
            }
            else if((ch2=='N')||(ch2=='n'))
            {
//flag=0;
                //flag1=0;
            }
            else
            {
                flag1=1;
                cout<<"输入有误,请重新输入(y/n)(y:继续)(n:退出)!"<>ch2;
            }
        }
    }
    return 0;
}
int InitLink(LinkList &L){ L=(LinkList)malloc(sizeof(struct student)); L->next=NULL; return 0;}
 
  
/***********************************************
*功能描述:输入学生信息
*输入参数:学生人数n、学生学号、姓名、成绩信息
*输出参数:学生人数n、学生学号、姓名、成绩信息
*返回值:0-成功 其他-失败
***********************************************/
int input(LinkList &L){ int i, n; L->next=NULL; LinkList p; LinkList q; cout<<"请输入学生人数:"<>n; L->length=n; cout<<"请输入学生的基本信息:"<length; i++) { p = (LinkList)malloc(sizeof(student)); cout<<"学号:"; cin>>p->num; cout<>p->name; cout<>p->english; cout<>p->chinese; cout<>p->math; cout<total=p->english+p->chinese+p->math; cout<<"+----------------------------------------------+"<num<<" "<name<<" "<english<<" "<chinese<<" "<math<<" "<total<next == NULL) { L->next=p; p->next = NULL; q=p; } else { p->next=NULL; q->next=p; q=p; }//L=L->next; } return 0;}
 
  
/***********************************************
*功能描述:显示全部信息
*输入参数:学生学号、姓名、成绩信息
*输出参数:学生学号、姓名、成绩信息
*返回值:0-成功 其他-失败
***********************************************/
int output(LinkList &L){ LinkList p = L->next; if(L->next==NULL) cout<<"链表中没有学生信息,请先输入学生信息!"<num<<" "<name<<" "<english<<" "<chinese<<" "<math<<" "<total<next; } cout<<"+----------------------------------------------+"<
/***********************************************
*功能描述:按照学号查找学生信息
*输入参数:学生学号
*输出参数:学生学号、姓名、成绩信息
*返回值:0-成功 其他-失败
***********************************************/
 int check(LinkList &L){ int n; LinkList p=L->next; if(p==NULL) { cout<<"链表中没有学生信息,请先输入学生信息!"<>n; while(p&&p->num!=n) { p=p->next; } if(!p) cout<<"链表中没有学号为:"<num<<" "<name<<" "<english<<" "<chinese<<" "<math<<" "<total<
/***********************************************
*功能描述:按姓名查找学生信息
*输入参数:学生姓名
*输出参数:学生姓名、成绩信息
*返回值:0-成功 其他-失败
***********************************************/
int check_name(LinkList &L){ char name[20]; LinkList p=L->next; if(p==NULL) { cout<<"链表中没有学生信息,请先输入学生信息!"<>name; while(p&&strcmp(p->name,name))//strcmp(p->name,name)如果p->name=name,则比较的函数值为0 { p=p->next; } if(!p) cout<<"链表中没有姓名为:name"<num<<" "<name<<" "<english<<" "<chinese<<" "<math<<" "<total<
/***********************************************
*功能描述:追加学生信息
*输入参数:追加的同学成绩的学号、姓名、学号
*输出参数:追加的同学成绩的学号、姓名、学号
*返回值:0-成功 其他-失败
***********************************************/
int add(LinkList &L)//追加学生信息{ int n,i,j,k; LinkList p=L->next; if(p==NULL) { cout<<"链表中没有学生信息,请先输入学生信息!"<>n; while(p&&p->num!=n) { p=p->next; } if(!p) cout<<"链表中没有学号为:"<num<<" "<name<<" "<english<<" "<chinese<<" "<math<<" "<total<
/***********************************************
*功能描述:修改学生信息
*输入参数:需要修改的学生的信息
*输出参数:修改后学生的信息
*返回值:0-成功 其他-失败
***********************************************/
int xiugai(LinkList &L){ int n; char x; LinkList p=L->next; if(p==NULL) { cout<<"链表中没有学生信息,请先输入学生信息!"<>n; while(p&&p->num!=n) { p=p->next; } if(!p) cout<<"链表中没有学号为:"<num<<" "<name<<" "<english<<" "<chinese<<" "<math<<" "<total<>x; if((x=='Y')||(x=='y')) { cout<<"姓名修改为:"; cin>>p->name; cout<>p->english; cout<>p->chinese; cout<>p->math; cout<total=p->english+p->chinese+p->math; cout<<"学号为"<num<<" "<name<<" "<english<<" "<chinese<<" "<math<<" "<total<
/***********************************************
*功能描述:插入学生信息
*输入参数:需要插入学生的信息
*输出参数:插入后学生的信息
*返回值:0-成功 其他-失败
***********************************************/
int insert_stu(LinkList &L){ LinkList p,s=L; int j,i,flag=1; if(s->next==NULL) { cout<<"链表中没有学生信息,请先输入学生信息!"<>i; p=L; while(p&&jnext; ++j; } if(!p||j>i-1) { cout<<"输入i值小于1或者大于表长+1,请重新输入!"<>p->num; cout<>p->name; cout<>p->english; cout<>p->chinese; cout<>p->math; cout<total=p->english+p->chinese+p->math; cout<<"插入的学生信息为:"<num<<" "<name<<" "<english<<" "<chinese<<" "<math<<" "<total<next=p->next; p->next=s; } return 0;}
 
  
/***********************************************
*功能描述:删除学生信息
*输入参数:需要删除学生的学号
*输出参数:
*返回值:0-成功 其他-失败
***********************************************/
int Delete_stu(LinkList &L){ int n; char x; LinkList q=L,p=L->next; if(p==NULL) { cout<<"链表中没有学生信息,请先输入学生信息!"<>n; while(p&&p->num==n) { q=p; p=p->next; } if(!p) cout<<"链表中没有学号为:"<num<<" "<name<<" "<english<<" "<chinese<<" "<math<<" "<total<>x; if((x=='Y')||(x=='y')) { p=p->next; q->next=p; cout<<"该学生信息已删除!"<


 
  

运行结果:

数据结构课程设计——学生成绩管理系统_第1张图片

数据结构课程设计——学生成绩管理系统_第2张图片

数据结构课程设计——学生成绩管理系统_第3张图片

数据结构课程设计——学生成绩管理系统_第4张图片

数据结构课程设计——学生成绩管理系统_第5张图片

数据结构课程设计——学生成绩管理系统_第6张图片



数据结构课程设计——学生成绩管理系统_第7张图片

数据结构课程设计——学生成绩管理系统_第8张图片

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