亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用C++實現學生宿舍管理系統

發布時間:2022-03-16 14:44:00 來源:億速云 閱讀:199 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關如何使用C++實現學生宿舍管理系統的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

具體內容如下

非常簡易,完成個作業夠用,僅供初學者參考,不喜勿噴。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>

/*先用結構體定義學生信息*/
struct stud 
{
    int   num;            //學號 
    char  name[10];        //姓名 
    char  sex[8];        //性別 
    int   age;            //年齡 
    char  major[18];     //專業 
    int   grade;        //年級 
    int   classes;        //班級 
    int   building;        //樓號 
    int   floor;        //樓層 
    int   dormitary;    //宿舍號 
    struct stud *next; /*next是指向本結構體的類型的指針類型*/
};
struct stud *h;     /*定義結構體的指針變量*/

int N=sizeof(struct stud);//獲取結構體總長度,用于分配內存空間 

/*輸入模塊: 建立鏈表*/
void input_message()
{   struct stud *p1,*p2;
    int i,k;

    system("cls");
    printf("********** 您當前正在進行的操作是,輸入學生信息 **********\n\n");
    printf("請輸入本次注冊的生總數:");scanf("%d",&k);
    h=NULL;
    printf("\n您共有%d個學生信息需要錄入\n",k);
     
    if(k>0)
    { 
      h=p2=p1=(struct stud*)malloc(N);     /*為head,p2,p1申請存儲空間*/
      for(i=1;i<=k;i++)
      { 
        printf("\n請輸入第%d名學生的信息:\n\n",i);
        p1=(struct stud*)malloc(N);
        printf("學號:");
        scanf("%d",&p1->num);
        printf("姓名:");
        scanf("%s",p1->name);
        printf("性別(男或女):");
        scanf("%s",p1->sex);
        printf("年齡:");
        scanf("%d",&p1->age);
        printf("專業:");
        scanf("%s",p1->major);
        printf("年級:");
        scanf("%d",&p1->grade);
        printf("班級:");
        scanf("%d",&p1->classes);
        printf("樓號:");
        scanf("%d",&p1->building);
        printf("樓層:");
        scanf("%d",&p1->floor);
        printf("宿舍號:");
        scanf("%d",&p1->dormitary);
        p2->next=p1;                            /*將新結點連到表尾*/
        p2=p1;                                  /*p2指向新的表尾*/
       }
       p2->next=NULL;
       h=h->next;
      }
      
      getchar();//吸收掉上一行錄入時鍵入的回車符號,否則卡不住 
      printf("\n%*s%s\n",10," ","輸入完成,按任意鍵進入主菜單!!!!");
      getchar();
}

/*輸出模塊:顯示鏈表*/
void output_message()
{
    char v;
    struct stud *p=h;
    system("cls");
    printf("********** 您當前正在進行的操作是,顯示學生信息 **********\n\n");
    
    if(p==NULL)
    {
        printf("%*s%s\n",10," ","當前沒有找到任何學生信息,請您先輸入信息,再執行本操作!\n");
        getchar();//吸收掉上一行錄入時鍵入的回車符號,否則卡不住 
        printf("%*s%s\n",10," ","按任意鍵返回主菜單!!!!");
        getchar();
        return; 
    }

    printf("  學號      姓名  性別  年齡      專業  年級  班級  樓號  樓層  宿舍號\n\n");
    while(p!=NULL)
    {
        printf("%6d%10s%6s%6d%10s%6d%6d%6d%6d%8d\n",p->num,p->name,p->sex,p->age,p->major,p->grade,p->classes,p->building,p->floor,p->dormitary);
        p=p->next;
    }
    
    getchar();//吸收掉上一行錄入時鍵入的回車符號,否則卡不住 
    printf("\n%*s%s\n",10," ","輸出完成,按任意鍵返回主菜單!!!!");
    getchar();
}

/*插入新學生信息:插入鏈表*/
void insert_message()
{  
    struct stud *p0,*p1;
    p1=(struct stud *)malloc(N);
    system("cls");
    printf("********** 您當前正在進行的操作是,插入學生信息 **********\n\n");
       
       printf("\n請輸入要插入學生的信息:\n\n");
    p1=(struct stud*)malloc(N);
    printf("學號:");
    scanf("%d",&p1->num);
    printf("姓名:");
    scanf("%s",p1->name);
    printf("性別(男或女):");
    scanf("%s",p1->sex);
    printf("年齡:");
    scanf("%d",&p1->age);
    printf("專業:");
    scanf("%s",p1->major);
    printf("年級:");
    scanf("%d",&p1->grade);
    printf("班級:");
    scanf("%d",&p1->classes);
    printf("樓號:");
    scanf("%d",&p1->building);
    printf("樓層:");
    scanf("%d",&p1->floor);
    printf("宿舍號:");
    scanf("%d",&p1->dormitary);
    p1->next=NULL;
   
    if(h==NULL)//如果鏈表為空,插入的節點設為表頭
    {  
           h=p1;
        getchar();//吸收掉上一行錄入時鍵入的回車符號,否則卡不住 
        printf("\n%*s%s\n",10," ","插入成功! 按任意鍵返回主菜單!!!!");
        getchar();
        return;
    }
    
    p0=h;
    while((p0->next)!=NULL&&(p0->next->num)<(p1->num))
    {
        p0=p0->next;
    }
   
    if(p0->next==NULL)
    {
        p0->next=p1; //如果到尾部了加到尾部
        getchar();//吸收掉上一行錄入時鍵入的回車符號,否則卡不住 
        printf("\n%*s%s\n",10," ","插入成功! 按任意鍵返回主菜單!!!!");
        getchar(); 
    }
    else if((p0->next->num)==(p1->num))
    {
        free(p1);    //如果已經存在這個學號,那就不能再插入了,釋放
        
        getchar();//吸收掉上一行錄入時鍵入的回車符號,否則卡不住 
        printf("\n%*s%s\n",10," ","插入失敗,本學號信息已經存在! 按任意鍵返回主菜單!!!!");
        getchar();
    }
    else
    {
        //插入 
        p1->next=p0->next;
        p0->next=p1; 
        
        getchar();//吸收掉上一行錄入時鍵入的回車符號,否則卡不住 
        printf("\n%*s%s\n",10," ","插入成功! 按任意鍵返回主菜單!!!!");
        getchar();            
    }
}

/*刪除學生信息*/
void del_message()
{  
    int num;
    bool delOk=false;
    
    struct stud *p0,*p1;
    
    system("cls");
    printf("********** 您當前正在進行的操作是,刪除學生信息 **********\n\n");
        
    if(h==NULL)
    {
        printf("%*s%s\n",10," ","當前沒有找到任何學生信息,請您先輸入信息,再執行本操作!\n");
        getchar();//吸收掉上一行錄入時鍵入的回車符號,否則卡不住 
        printf("%*s%s\n",10," ","按任意鍵返回主菜單!!!!");
        getchar();
        return; 
    }
    
    printf("請輸入要刪除學生的學號:");
    scanf("%d",&num);
    p0=h;
    if(p0->num==num)
    {
        h=p0->next;
        free(p0);                              /*若首結點是所要刪除的數據,則釋放首結點*/
        delOk=true;
    }
    else
    {
        p1=p0->next;
        while(p1!=NULL)
        {
            if(p1->num==num)
            {
                p0->next=p1->next;
                free(p1);
                delOk=true;
                break; //跳出循環 
            }
            p0=p1;
            p1=p1->next;
       }        
     } 
     
    getchar();//吸收掉上一行錄入時鍵入的回車符號,否則卡不住 
     if(delOk)
        printf("%*s%s\n",10," ","刪除成功! 按任意鍵返回主菜單!!!!");
     else
        printf("%*s%s\n",10," ","沒有找到匹配學號,刪除失敗! 按任意鍵返回主菜單!!!!");
        
    getchar();

}

//主函數 
int main(void){
    int choice;
    
      do{
        system("cls");
        printf("\n\n\n");
        printf("%*s%s",10," ","********** 學 生 宿 舍 管 理 系 統 **********\n\n");
        printf("%*s%s",25," ","1.輸入學生信息\n\n");
        printf("%*s%s",25," ","2.輸出學生信息\n\n");
           printf("%*s%s",25," ","3.插入學生信息\n\n");
           printf("%*s%s",25," ","4.刪除學生信息\n\n");
           printf("%*s%s",25," ","0.退出系統\n\n");
           printf("%*s%s",10," ","*********************************************\n\n");
           printf("%*s%s",10," ","請選擇0-4之間任意整數:");
        scanf("%d",&choice);
       
       switch(choice)
       {
         case 1:input_message();break;
         case 2:output_message();break;
         case 3:insert_message();break;
         case 4:del_message();break;
         case 0:break;
       }
     }while(choice!=0);
}

如何使用C++實現學生宿舍管理系統

可以用 Dev-C++ 進行編譯調試

如何使用C++實現學生宿舍管理系統

感謝各位的閱讀!關于“如何使用C++實現學生宿舍管理系統”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

株洲县| 龙山县| 延寿县| 邯郸县| 皮山县| 柏乡县| 区。| 尼木县| 富源县| 双峰县| 宜城市| 双城市| 兴文县| 南城县| 青铜峡市| 晴隆县| 融水| 梁山县| 临沧市| 邳州市| 托克托县| 武山县| 北安市| 上思县| 平昌县| 雅江县| 麻江县| 佛山市| 临桂县| 婺源县| 兴城市| 乐亭县| 延长县| 惠州市| 南皮县| 波密县| 丹江口市| 青岛市| 宁晋县| 安阳市| 宁安市|