课程设计:学生信息管理系统设计

<span style="color:#9999ff;">/*
 *烟台大学计算机与控制工程学院
 *作者:刘熠
 *完成时间:2015年12月25日
 *题目:学生信息管理系统设计
*/</span>

#ifndef HEAD_H_INCLUDED
#define HEAD_H_INCLUDED
using namespace std;


typedef struct student
{
    int num;
    char name[20];
    char sex;
    int age;
    char category[20];
    student *next;
} ElemType;
class List
{
private:
    ElemType *head;//链表头指针
public:
    void CreateList();//建立
    void DispList();//显示
    void ListInsert();//插入
    void LocateElem();//查找
    void Listchange();//修改
    void ListDelete();//删除
    List(){head=NULL;}
};//定义结构体,第一个结构体是数据结构课程中所学的只是,第二个是C++中的结构体,第二个结构体定义了所需要的函数


/* 文件名:*HEAD(1)。h
 *该函数的目的是建立学生信息,将学生信息加入到系统中去
*/
void List::CreateList()//建立
{
    ElemType *head1,*p;
    cout<<"请输入学生信息以”0“结束输入"<<endl;
    head=head1=new ElemType;
    while(cin>>head1->num&&head1->num)
    {
        cin>>head1->name>>head1->sex>>head1->age>>head1->category;
        p=new ElemType;
        head1->next=p;
        head1=p;
    }
    head1->next=NULL;
}


/*
*该函数的目的是显示所有学生的信息,运用了循环
*/
void List::DispList()//显示
{
    ElemType *head1;
    head1=head;
    while(head1->next!=NULL)
    {
        cout<<"**************************"<<endl;
        cout<<"学    号: "<<head1->num<<endl;
        cout<<"姓    名:  "<<head1->name<<endl;
        cout<<"性    别: "<<head1->sex<<endl;
        cout<<"年    龄:  "<<head1->age<<endl;
        cout<<"专    业: "<<head1->category<<endl;
        cout<<"**************************"<<endl;
        head1=head1->next;
    }
}


/*
 *该函数的目的是删除学生信息,但因为程序不够完美,所以删除的学生信息只能存在内存中,空间不能释放,浪费空间
*/
void List::ListDelete()//删除
{
    int D_num;
    ElemType *p1,*p2;
    cout<<"请输入要删除的学生的学号,以0结束删除操作:"<<endl;
    while(cin>>D_num&&D_num!=0)
    {
        p1=head;
        bool f=false;//寻找成功的标志
        while(D_num!=p1->num&&p1!=NULL)
        {
            p2=p1;
            p1=p1->next;
        }
        if(D_num==p1->num)
        {
            f=true;
            if(p1==head)head=p1->next;//删除头结点
            else p2->next=p1->next;
            cout<<"删除成功!"<<endl;
        }
        if(!f)
        {
            cout<<"查无此人,或该学生信息已被删除!"<<endl;
        }
        cout<<"请输入要删除的学生的学号,以0结束删除操作:"<<endl;
    }

}


/*
 *该函数的目的是插入学生信息
*/
void  List::ListInsert()//插入
{
    ElemType *p0,*p1,*p2;
    cout<<"请输入一个要插入的学号以”0“结束输入"<<endl;
    p1=head;
    p0=new ElemType;
    while(cin>>p0->num&&p0->num)
    {

        cout<<"请输入该学生的其他信息"<<endl;
        cout<<"姓    名:";
        cin>>p0->name;
        cout<<"性    别:";
        cin>>p0->sex;
        cout<<"年    龄:";
        cin>>p0->age;
        cout<<"专    业: ";
        cin>>p0->category;
        while(p0->num>p1->num&&p1->next->num!=0)//p1指向倒数第二个节点
        {
            p2=p1;
            p1=p1->next;
        }
        if(p0->num<=p1->num)
        {
            <span style="background-color: rgb(153, 153, 255);">if(head==p1)head=p0;//插在表头
            else p2->next=p0;//插在表中间</span>
            p0->next=p1;
            cout<<"学生信息已记录"<<endl;
            cout<<"请输入一个要插入的学号以”0“结束输入"<<endl;
            p0=new ElemType;
        }
        else//插在表尾
        {
            p0->next=p1->next;
            p1->next=p0;
            //cout<<p1->next->num<<"************"<<endl;
            cout<<"学生信息已记录"<<endl;
            cout<<"请输入一个要插入的学号以”0“结束输入"<<endl;
            p0=new ElemType;
        }

    }
}

/*
 *该函数的目的是查找学生信息
*/

void List::LocateElem()//查找
{
    int b;
    ElemType *p;
    while(1)
    {
        bool f=false;
        cout<<"请输入要查找的学生的学号以”0“结束查找:"<<endl;
        cin>>b;
        if(b==0)
            break;
        p=head;
        while(p!=NULL)
        {
            if(b==p->num)
            {
                cout<<"**************************"<<endl;
                cout<<"学    号: "<<p->num<<endl;
                cout<<"姓    名:  "<<p->name<<endl;
                cout<<"性    别: "<<p->sex<<endl;
                cout<<"年    龄:  "<<p->age<<endl;
                cout<<"专    业: "<<p->category<<endl;
                cout<<"**************************"<<endl;
                f=true;
                break;
            }
            else
            {
                p=p->next;
            }
        }
        if(!f)
        {
            cout<<"查找失败,此学生不存在!"<<endl;
        }
    }
}

/*
 *该函数的目的是修改学生信息
 */
void List::Listchange()//修改学生信息
{
    int C_num;
    ElemType *p;
    while(1)
    {
        cout<<"请输入一个要修改学生信息,否则输入”0“结束修改"<<endl;
        cin>>C_num;
        if(C_num==0)
            break;
        p=head;
        bool f=false;
        while(p->next!=NULL)
        {
            if(C_num==p->num)//所输入学号与原有学号相同时,开始修改学生信息
            {
                f=true;
                cout<<"请重新输入学生信息:"<<endl;
                cout<<"姓    名:";
                cin>>p->name;
                cout<<"性    别:";
                cin>>p->sex;
                cout<<"年    龄:";
                cin>>p->age;
                cout<<"专    业: ";
                cin>>p->category;
                //cin>>p->num>>p->name>>p->sex>>p->age>>p->category;
                break;
            }
            else
            {
                p=p->next;
            }
        }
        if(!f)
        {
            cout<<"查无此人,是否插入该学生信息?"<<endl;
            cout<<"1.是          2.否"<<endl;
            int m;
            cin>>m;
            if(m==1)//p指向 0(即最后一个) 节点
            {
                //找到倒数第二个节点,
                p=head;
                while(p->next->num!=0)
                    p=p->next;
                //p指向倒数第二个节点
                ElemType *p1=new ElemType;
                p1->next=p->next;
                p->next=p1;
                cout<<"请输入该学生的其他信息:"<<endl;
                p1->num=C_num;
                cout<<"姓    名:";
                cin>>p1->name;
                cout<<"性    别:";
                cin>>p1->sex;
                cout<<"年    龄:";
                cin>>p1->age;
                cout<<"专    业: ";
                cin>>p1->category;
                break;

            }

        }
    }
}
void Dis()//主界面
{
    cout<<endl<<endl<<endl;
    cout<<"                 *********欢迎进入烟台大学学生管理系统********"<<endl;
    cout<<"                     1.创建学生信息        2.查找学生信息"<<endl;
    cout<<"                     3.修改学生信息        4.删除学生信息"<<endl;
    cout<<"                     5.插入学生信息        6.显示所有学生信息"<<endl;
    cout<<"                     7.退出                8.关于"<<endl;
    cout<<"请输入您要选择的服务项目:";
}


#endif // HEAD_H_INCLUDED

 
 
主函数:
<pre name="code" class="cpp">//2.学生管理系统链表
#include <iostream>
#include <cstring>
#include <algorithm>
#include<conio.h>
#include "HEAD(1).h"
using namespace std;
int main()
{
    Dis();
    int n;
    List s;
    while( cin>>n)
    {
        switch(n)
        {
        case 1:
            //system("cls");
            s.CreateList();

            system("cls");
            Dis();
            break;
        case 2:

            s.LocateElem();
            system("pause");
            system("cls");
            Dis();
            break;
        case 3:
            s.Listchange();

            Dis();
            break;
        case 4:
            s.ListDelete();
            system("pause");
            system("cls");
            Dis();
            break;
        case 5:
            s.ListInsert();
            system("pause");
            system("cls");
            Dis();
            break;
        case 6:
            s.DispList();
            system("pause");
            system("cls");
            Dis();
            break;
        case 7:
            system("cls");
            cout<<endl<<endl<<endl;
            cout<<"                     谢谢您的使用,再见!"<<endl<<endl<<endl;
            return 0;
            break;
        case 8:
            cout<<endl<<endl;
            cout<<"                 本程序由计146-1 刘熠完成"<<endl;
            cout<<endl<<endl<<endl;
            cout<<"                 版权所有    翻版必究"<<endl;
            cout<<"                 如有雷同    纯属巧合"<<endl;
            system("pause");
            system("cls");
            Dis();
            break;
        default:
            system("cls");
            cout<<"输入错误!请重新输入:"<<endl;
            break;
        }

    }
    return 0;
}
 
 



运行结果:


登陆界面:

课程设计:学生信息管理系统设计_第1张图片



你可能感兴趣的:(课程设计:学生信息管理系统设计)