1. 程式人生 > >課程設計---學生資訊管理系統

課程設計---學生資訊管理系統

/*
*煙臺大學計算機與控制工程學院
/*
 *Copyright (c) 2015,煙臺大學計算機與控制工程學院
 *All rights reserved.
 *檔名稱:lulu.cpp
 *作者:蘆亞茹
 *完成日期:2015年12月31日
 *版本號:v1.o
 *
 *問題描述:學生資訊管理系統
*/

#include <iostream>
#include <cstring>
#include <algorithm>
#include<conio.h>
#include "xinxi.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;
            cout<<"                   再見"<<endl<<endl<<endl;
            return 0;
            break;
        case 8:
            cout<<endl<<endl;
            cout<<"                 這個程式做起來真累"<<endl;
            cout<<endl<<endl;
            cout<<"                 老師"<<endl;
            cout<<"                 濃濃師生情"<<endl;
            system("pause");
            system("cls");
            Dis();
            break;
        default:
            system("cls");
            cout<<"輸入錯誤!請重新輸入:"<<endl;
            break;
        }

    }
    return 0;
}


#ifndef HEAD_H_INCLUDED
#define HEAD_H_INCLUDED
using namespace std;
typedef struct student
{
    int num;
    char name[20];
    char sex;
    int age;
    char zhuanye[20];
    int tel;
    student *next;
} ElemType;
class List
{
private:
    ElemType *head;               //連結串列頭指標
public:
    void CreateList();            //建立
    void DispList();              //顯示
    void ListInsert();            //插入
    void LocateElem();            //查詢
    void Listchange();            //修改
    void ListDelete();            //刪除
    List()
    {
        head=NULL;
        }
};
/************************ 
功能描述:建立學生資訊函式 
輸入引數:要錄入的學生學號以及資訊 
輸出引數:無
其他說明:無 
*************************/
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->zhuanye>>head1->tel;
        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->zhuanye<<endl;
        cout<<"電    話: "<<head1->tel<<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->zhuanye;
        cout<<"電    話: ";
        cin>>p0->tel;
        while(p0->num>p1->num&&p1->next->num!=0)//p1指向倒數第二個節點
        {
            p2=p1;
            p1=p1->next;
        }
        if(p0->num<=p1->num)
        {
            if(head==p1)head=p0;//插在表頭
            else p2->next=p0;//插在表中間
            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->zhuanye<<endl;
                cout<<"電    話: "<<p->tel<<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->zhuanye;
                cout<<"電    話: ";
                cin>>p->tel;
                //cin>>p->num>>p->name>>p->sex>>p->age>>p->zhuanye>>p->tel;
                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->zhuanye;
                cout<<"電    話: ";
                cin>>p1->tel;
                break;

            }

        }
    }
}
/************************ 
功能描述:主選單函式 
輸入引數:要選擇的功能按鍵 
輸出引數:進入相對應的功能 
其他說明:無 
*************************/
void Dis()
{
    cout<<endl<<endl<<endl;
    cout<<"      ◇◇◇◇◇◇◇歡迎使用學生管理系統◇◇◇◇◇◇◇"<<endl;
    cout<<"                     1.建立學生資訊                      "<<endl;
    cout<<"                     2.查詢學生資訊                      "<<endl;
    cout<<"                     3.修改學生資訊                      "<<endl;
    cout<<"                     4.刪除學生資訊                      "<<endl;
    cout<<"                     5.插入學生資訊                      "<<endl;
    cout<<"                     6.顯示所有學生資訊                  "<<endl;
    cout<<"                     7.退出                              "<<endl;
    cout<<"                     8.關於                              "<<endl;
    cout<<"請輸入您要選擇的服務專案:";
}


#endif // HEAD_H_INCLUDED

部分執行結果:

a


相關推薦

資料結構課程設計——學生資訊管理系統

/*Copyright (c)2017,煙臺大學計算機與控制工程學院 *All rights reservrd. *作者:趙楷文 *完成時間:2017年12月20日 *版本號:v1.0 *問題描述:設計一個管理學生資訊的

課程設計---學生資訊管理系統

/* *煙臺大學計算機與控制工程學院 /* *Copyright (c) 2015,煙臺大學計算機與控制工程學院 *All rights reserved. *檔名稱:lulu.cpp *作者:蘆亞茹 *完成日期:2015年12月31日 *版本號:v1.o *

資料結構課程設計學生資訊管理系統

問題描述: /* * Copyright (c)2015,煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱:aaaa.cbp * 作 者:張芸嘉 * 完成日期:2015年12月24日 * 版 本

資料結構課程設計-學生資訊管理系統

/* * 煙臺大學計算機與控制工程學院 *檔名稱:mian.cpp *作 者:王旭 *完成日期:2015年12月25日 *版 本 號:v1.0 *

課程設計————學生資訊管理系統(包含歷代思路和程式碼)

課程設計————學生管理系統(包含歷代思路和程式碼) 一.前言 學生資訊管理系統是我第一個獨立完成的比較長的程式碼,也算是花費了一些心血,這個系統是我一點點把它從幾百行的程式碼逐漸優化到上千行,功能從簡單到複雜。在這裡我把我的思路分享給大家,希望能給大家

課程設計-學生資訊管理系統

#include <iostream> #include <stdio.h> #include <stdlib.h> #include<windows.h> #include<string.h> #include<string> #inc

課程設計——學生資訊管理系統(順序表 連結串列)

實驗目的 : 1 、掌握線性表的定義; 2 、掌握線性表的基本操作,如建立、查詢、插入和刪除等。 實驗內容: 定義一個包含學生資訊(學號,姓名,成績)的的 順序表和連結串列,使其具有如下功能: (1) 根據指定學生個數,逐個輸入學生資訊; (2) 逐個顯示學生表

c語言課程設計學生成績管理系統

學生成績管理系統是比較適合初學者的。它涵蓋了c語言幾乎知識。對於學了c語言的人,把這個課程設計搞好(當然自己能設計出來是要有很好的基礎)。不管自己能不能夠完成,最重要的是能弄懂。參考其他資料,試著自己編寫是不錯的選擇。這個課程設計也是我參照資料,自己編寫的。自己適當地增加了

課程設計------學生考勤管理系統

#include <algorithm> #include <iomanip> #include <iostream> #include <vector> #include <stdexcept> #include <string> #i

MFC課程設計 --學生成績管理系統

MFC課程設計 ,C++課程設計 --學生成績管理系統 ps:因為課設完成的過程大家都不太一樣,以下的程式碼僅供學習一下在MFC下各個控制元件的用法,有問題歡迎留言討論。 實驗目的 使用MFC類庫編制應用程式:按鈕控制元件、靜態控制元件及編輯框的應用。 瞭解MF

資料結構課程設計——學生成績管理系統

} /************************************ * 功能描述:判斷學號是否重複 * 輸入引數:無 * 輸出引數:無 ************************************/ int num(LNode *a)//判斷學號是否重複 {   LNode *p=he

學生資訊管理系統資料庫課程設計

一.概述 學生資訊管理系統是學校管理的重要工具,是學校不可或缺的一部分。隨著在校人數的不斷增加,教務系統的數量也不斷的上漲。學校工作繁雜,資料眾多,人工管理資訊的難度也越來越大,顯然是不能滿足實際的需要,效率也是很低的。並且這種傳統的方式存在著眾多的弊端,如:保密性差.查詢不便.效率低,很難維

學生資訊管理系統課程設計

/************************************************************************************************************************************** *

學生資訊管理系統(課程設計)

#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> using namespace std; struct studen

C語言課程設計學生資訊管理系統

#include"stdio.h" //標準的輸入輸出函式檔案頭部說明 #include"math.h" // 數學函式頭部說明 #include"string.h" #include"stdlib.h" //通過該函式頭部裡的

C++課程設計學生資訊管理系統

課程設計內容 1.)學生資訊的錄入:錄入新的學生的資訊; 2.)學生資訊的新增:新增新的學生的資訊; 3.) 學生資訊的刪除:刪除不需要的學生的資訊。 4.)學生資訊的查詢:查詢你需要的學生的資訊。 5.)學生資訊的修改:修改錯誤的學生的資訊。 6.)學生資訊的顯示:顯示所

資料結構課程設計學生資訊管理系統(煙大版)】

/* * Copyright (c) 2016, 煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱:student.project * 作者:李瀟 * 完成日期:2016年12月28日 * 版本號:DEVC+

Java——Web開發之MVC設計模式的學生資訊管理系統(二)

為什麼這個標題為“(二)”,其實是對於上一個特別簡單學生資訊管理系統裡功能的完善。 所謂的“(一)”在這:學生資訊管理系統(一) 系統實現的功能: 實現新增學生 顯示查詢到的學生 刪除學生 更新學生資訊 模糊查詢符合相關資訊的學生

基於WEB的學生資訊管理系統,java畢業設計專案

**基於WEB的學生資訊管理系統,java畢業設計專案** 基於WEB的學生資訊管理系統mysql資料庫建立語句 基於WEB的學生資訊管理系統oracle資料庫建立語句 基於WEB的學生資訊管理系統sqlserver資料庫建立語句 基於WEB的學生資訊管理系統spr

學生資訊管理系統之第二篇主要功能模組設計和資料庫設計

 4.2系統主要功能模組設計: (1)基本資訊模組:是管理員對學生資訊進行新增操作。通過本介面管理員可以對學生資訊進行相應的修改,包括學號、姓名、出生日期等。可以通過該介面輸入學生姓名實現查詢該學生的所有資訊。管理員可以把學生的整條資訊進行刪除,同時也刪除學生的成績。