溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用C語言實(shí)現(xiàn)學(xué)生宿舍管理系統(tǒng)

發(fā)布時(shí)間:2022-03-16 13:37:53 來源:億速云 閱讀:131 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“怎么用C語言實(shí)現(xiàn)學(xué)生宿舍管理系統(tǒng)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么用C語言實(shí)現(xiàn)學(xué)生宿舍管理系統(tǒng)”吧!

實(shí)現(xiàn)簡(jiǎn)單的學(xué)生宿舍基本信息管理,宿舍的基本信息包括樓號(hào)、房間號(hào)、面積、所容納人數(shù)、已入住人數(shù)等,系統(tǒng)以文本菜單形式工作。

登錄時(shí):用戶名為asd 密碼任意

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include <malloc.h> 
#include <windows.h>
#define N sizeof(struct Student) 

typedef struct Student
{
    int buildnum;  //宿舍樓棟號(hào) 
    int roomnum;   //房間號(hào) 
    int brnum;     //宿舍樓棟號(hào)+房間號(hào) 
    float area;    //宿舍房間面積
    int rnanum;    //所容納人數(shù)        
    char xy[100];  //學(xué)院 
    int bj;        // 班級(jí)
    int num;       //學(xué)號(hào) 
    char name[20]; //姓名
    char sex[10];  //性別 
    int date;        //日期        
    struct Student *next;    
}Stu,*stu;

int a[1000000];//記錄寢室入住人數(shù) 

void save_stu(stu p);

void login()
{
    system("cls");
    system("color  4E");
    printf("\n\n\n\n\n\n\n############################~歡迎進(jìn)入學(xué)生宿舍管理系統(tǒng)~##########################\n");
    printf("\n\n\n\t\t\t\t  ★ ★ ★ ★ ★");
    printf("\n\n\n\n\t\t\t\t\t\tLoading");
    for(int i=0;i<6;i++)
    {
        Sleep(400);
        printf(".");
    }
    system("cls");
    char username[10];
    char password;
    int p=0;
    system("color 6E");
    printf("\n\n\n   ==============================歡迎使用=================================\n");
    for(int i = 0; i < 3; i++)
    {     
        printf("\n\n\n\t\t請(qǐng)輸入用戶名:[            ]\b\b\b\b\b\b\b\b\b\b\b\b");   
        scanf("%s",username);
        if (strcmp(username,"asd") == 0)
        {
            printf("\t\t請(qǐng)輸入密碼:  [            ]\b\b\b\b\b\b\b\b\b\b\b\b");  
            while((password=getch()) != '\r')//判斷是否是回車  
            { 
                p++; 
                if(password == 8)//實(shí)現(xiàn)backspace鍵的功能,其中backspace鍵的ascii碼是8  
                {  
                    putchar('\b');  
                    putchar(' ');  
                    putchar('\b');  
                    if(p>0)  //最多只能刪到?jīng)]有字符  
                    p--;  
                }  
                if(!isdigit(password)&&!isalpha(password))//判斷是否是數(shù)字或字符  
                    continue;    
                putchar('*'); //在屏幕上打印星號(hào)  
            }
            printf("\n\n\n   ===============================登陸成功================================="); 
            Sleep(600);
            return;  
            system("pause"); 
        }  
        else 
        {
            if(i<2)
              printf("用戶名錯(cuò)誤,請(qǐng)重新輸入");
            else  
            {  
                printf("\n     您已連續(xù)3次將用戶名或密碼輸錯(cuò),系統(tǒng)將退出!");  
                exit(0);   //關(guān)閉所有文件,終止正在執(zhí)行的進(jìn)程 
            }  
        }  
    }    
}

int menu_select()  //主菜單選項(xiàng) 
{        
    int a;  
    do
    {
        system("cls");
        system("color 3E");  
        printf("\n\n\t======================學(xué)生宿舍管理系統(tǒng)※※※※※※※※※※※※\n\n");  
        printf("\t◆◆             1. 添加學(xué)生信息                          ◆◆\n\n");  
        printf("\t◆◆             2. 顯示學(xué)生信息                          ◆◆\n\n");  
        printf("\t◆◆             3. 對(duì)學(xué)生信息進(jìn)行排序                    ◆◆\n\n");    
        printf("\t◆◆             4. 查找學(xué)生信息                          ◆◆\n\n");  
        printf("\t◆◆             5. 修改學(xué)生信息                          ◆◆\n\n");  
        printf("\t◆◆             6. 刪除學(xué)生信息                          ◆◆\n\n");  
        printf("\t◆◆             0. 退出系統(tǒng)                              ◆◆\n\n");  
        printf("\t※※※※※※※※※※※※※※※================================\n");  
        printf("\t請(qǐng)選擇您要運(yùn)行的選項(xiàng)按(0-6):");  
        scanf("%d",&a);  
    }while(a<0 || a>6); 
    return a;  
}  

stu ss()      //將文件中的內(nèi)容讀出到鏈表中,返回值為表頭地址 
{
    FILE *fp;       //文件指針 
    int n = 0;
    stu head = NULL;
    stu p1,p,pr = NULL;
    fp=fopen("student","ab+");     //以只讀的方式打開文件 
    if(fp == NULL)
    {
        printf("文件打開失敗 !\n");
    }
    else
    {
        while(!feof(fp))        //判斷文件位置標(biāo)志是否移動(dòng)到文件末尾 
        {
            n++;
               p = (stu)malloc(N); //向內(nèi)存申請(qǐng)一段空間 
            fread(p,N,1,fp);     //將fp所指向的文件中的內(nèi)容賦給p 
            if(n == 1)
            {
                head = p;
                p1 = p;
            }
            else             //創(chuàng)建鏈表 
            {
                pr = p1;
                p1->next = p;
                p1 = p;
            }
        }
    }
    if(pr != NULL)
       pr->next = NULL;
    else
       head = NULL;
    fclose(fp);    //關(guān)閉文件 
    return head;   //返回頭指針 
}

Student *input(int n)
{
    int i;
    stu head,p,q; 
    if(n <= 0)  return NULL;
    p = (stu)malloc(sizeof(Stu));
    printf("--------------------------------------------------------------------------------\n");
    printf("樓棟號(hào) 房間號(hào) 樓棟房間號(hào) 房間面積 容納數(shù) 學(xué)院  班級(jí)  學(xué)號(hào)   姓名   性別  日期\n"); 
    printf("--------------------------------------------------------------------------------\n");
    scanf("%d%d%d%f%d%s%d%d%s%s%d",&p->buildnum,&p->roomnum,&p->brnum,&p->area,&p->rnanum,&p->xy,&p->bj,&p->num,&p->name,&p->sex,&p->date);   
       a[p->brnum]++;
    if(a[p->brnum] == p->rnanum)        
       printf("\n該寢室已入住滿,請(qǐng)安排后面的學(xué)生到其它空余寢室入住\n");
    head = p;
    save_stu(p);
    for(i = 1;i < n; i++)
    {
        q = (stu)malloc(sizeof(Stu));
        printf("--------------------------------------------------------------------------------\n");
        printf("樓棟號(hào) 房間號(hào) 樓棟房間號(hào) 房間面積 容納數(shù) 學(xué)院  班級(jí)  學(xué)號(hào)   姓名   性別  日期\n"); 
        printf("--------------------------------------------------------------------------------\n");
        scanf("%d%d%d%f%d%s%d%d%s%s%d",&q->buildnum,&q->roomnum,&q->brnum,&q->area,&q->rnanum,&q->xy,&q->bj,&q->num,&q->name,&q->sex,&q->date);   
        printf("\n");
        a[q->brnum]++;
        if(a[q->brnum] == q->rnanum)        
        {
            printf("\n該寢室已入住滿,請(qǐng)安排后面的學(xué)生到其它空余寢室入住\n");
            Sleep(300);
        }
        save_stu(q);
        p->next = q;
        p = q;
    }
    p->next=NULL;
    return head;     
}   

void save_stu(stu p)   //將p中內(nèi)容寫入文件 
{
    FILE *fp;    //文件指針 
    fp = fopen("student","ab");   //以追加的方式打開名字為student的二進(jìn)制文件 
    if(fp == NULL)
    {
        printf("文件打開失敗 !");
    }
    if(fwrite(p,N,1,fp) != 1)   //將p所指向的一段大小為N的內(nèi)容存入fp所指向的文件中 
    {
        printf("寫入錯(cuò)誤 !");
    }
    fclose(fp);    //關(guān)閉文件  
} 

void output(stu head)   //輸出學(xué)生信息
{  
    printf("--------------------------------------------------------------------------------\n");
    printf("樓棟號(hào) 房間號(hào) 房間面積 容納數(shù) 學(xué)院  班級(jí)  學(xué)號(hào)   姓名   性別  日期   已住人數(shù)  \n"); 
    printf("--------------------------------------------------------------------------------\n");  
    stu p,q;
    int n=0;
    head = ss();  
    p = head;  
    if(head == NULL)  
    {  
        printf("\n\t\t\t學(xué)生信息為空 !\n");  
    }  
    else  
    {  
        for(p = head ;p != NULL ;p = p->next) 
        {
            for(q = head;q != NULL ;q=q->next)
            {
                if(p->brnum == q->brnum)
                  n++;
            }
            a[p->brnum]=n;  
            printf("%3d %5d   %.1f  %5d %10s %4d %4d %6s %3s %4d %3d\n",p->buildnum,p->roomnum,p->area,p->rnanum,p->xy,p->bj,p->num,p->name,p->sex,p->date, n);            
            n=0;   
        }  
    }  
}
  
int sort_menu()  //排序選擇菜單
{  
    int a;  
    do
    {  
        system("cls");  
        printf("\n\n\t\t------------------------------------------------------------\n\n");   
        printf("\t\t\t ▲▲ 1. 按照宿舍房間號(hào)排序\n\n");  
        printf("\t\t\t ▲▲ 2. 按照學(xué)號(hào)排序\n\n");  
        printf("\t\t\t ▲▲ 0. 返回到主菜單\n\n");  
        printf("\t\t------------------------------------------------------------\n");  
        printf("\t\t請(qǐng)選擇您要運(yùn)行的選項(xiàng)按(0-2):");  
        scanf("%d",&a);  
    }
    while(a<0 || a>2);  
    return a;  
} 
   
int sort(stu head,int n)  //排序
{
    FILE *fp;
    head = ss();  
    stu p,q;  
    int buildnum;  //宿舍樓棟號(hào) 
    int roomnum;   //房間號(hào) 
    int brnum;     //宿舍樓棟號(hào)+房間號(hào) 
    float area;    //宿舍房間面積
    int rnanum;    //所容納人數(shù)        
    char xy[100];  //學(xué)院 
    int bj;        // 班級(jí)
    int num;       //學(xué)號(hào) 
    char name[20]; //姓名
    char sex[10];  //性別 
    int date;      //日期   
    switch(n)  
    {  
        case 1:  
            system("cls");  
            for(p = head; p != NULL; p = p->next)  
            {  
                for(q = p->next; q != NULL; q = q->next)  
                {  
                    if(p->brnum > q->brnum)  
                    {  
                        buildnum = q->buildnum;  
                        roomnum = q->roomnum;
                        brnum = q->brnum;
                        area = q->area;
                        rnanum = q->rnanum;   
                        strcpy(xy,q->xy);  
                        bj = q->bj;  
                        num = q->num;  
                        strcpy(name,q->name);  
                        strcpy(sex,q->sex);
                        date = q->date;  
                          
                        q->buildnum = p->buildnum;  
                        q->roomnum = p->roomnum;
                        q->brnum = p->brnum;
                        q->area = p->area;  
                        strcpy(q->xy,p->xy);  
                        q->bj = p->bj;
                        q->num = p->num;  
                        strcpy(q->name,p->name);  
                        strcpy(q->sex,p->sex);
                        q->date = p->date;  
                          
                        p->buildnum = buildnum;  
                        p->roomnum = roomnum;
                        p->brnum = brnum;
                        p->area = area;   
                        strcpy(p->xy,xy);  
                        p->bj = bj;  
                        p->num = num;  
                        strcpy(p->name,name);  
                        strcpy(p->sex,sex);
                        p->date = date;  
                    }  
                }  
            }
            fp = fopen("student","wb");
            if(fp == NULL)
            {
                printf("文件打開失敗 !"); 
            }
            if(fwrite(head,N,1,fp) != 1)
            {
                printf("寫入錯(cuò)誤 !"); 
            }
            fclose(fp);
            if(head != NULL)
            {
                p = head->next;
                fp = fopen("student","ab");
                if(fp == NULL)
                {
                    printf("文件打開失敗 !");
                }
                while(p != NULL)
                {
                    if(fwrite(p,N,1,fp) != 1)
                    {
                        printf("寫入錯(cuò)誤 !");
                    }
                    p = p->next;
                }
                fclose(fp);
            }    
            output(head);  
            system("pause");  
            return 1;         
        case 2:  
            system("cls");      
            for(p = head; p != NULL; p = p->next)  
            {  
                for(q = p->next;q != NULL; q = q->next)  
                {  
                    if(p->num > q->num)  
                    {  
                        buildnum = q->buildnum;  
                        roomnum = q->roomnum;
                        brnum = q->brnum;
                        area = q->area;   
                        strcpy(xy,q->xy);  
                        bj = q->bj;  
                        num = q->num;  
                        strcpy(name,q->name);  
                        strcpy(sex,q->sex);  
                        date = q->date; 
                          
                        q->buildnum = p->buildnum;  
                        q->roomnum = p->roomnum;
                        q->brnum = p->brnum;
                        q->area = p->area;   
                        strcpy(q->xy,p->xy);  
                        q->bj = p->bj;  
                        q->num = p->num;  
                        strcpy(q->name,p->name);  
                        strcpy(q->sex,p->sex);
                        q->date = p->date;  
                          
                        p->buildnum = buildnum;  
                        p->roomnum = roomnum;
                        p->brnum = brnum;
                        p->area = area;   
                        strcpy(p->xy,xy);  
                        p->bj = bj;  
                        p->num = num;  
                        strcpy(p->name,name);  
                        strcpy(p->sex,sex); 
                        p->date = date;  
                    }  
                }  
            }
            fp = fopen("student","wb");
            if(fp == NULL)
            {
                printf("文件打開失敗 !"); 
            }
            if(fwrite(head,N,1,fp) != 1)
            {
                printf("寫入錯(cuò)誤 !"); 
            }
            fclose(fp);
            if(head != NULL)
            {
                p = head->next;
                fp = fopen("student","ab");
                if(fp == NULL)
                {
                    printf("文件打開失敗 !");
                }
                while(p != NULL)
                {
                    if(fwrite(p,N,1,fp) != 1)
                    {
                        printf("寫入錯(cuò)誤 !");
                    }
                    p = p->next;
                }
                fclose(fp);
            }    
            output(head);  
            system("pause");  
            return 1;  
        case 0:  
            system("pause");  
            return 0;  
    }  
} 

int find_menu()  //查找菜單
{  
    int a;  
    do
    {  
        system("cls");  
        printf("\n\n\t\t------------------------------------------------------------\n\n");   
        printf("\t\t\t ▲▲ 1. 按照樓棟房間號(hào)查找(查找同一寢室人員)\n\n");     
        printf("\t\t\t ▲▲ 2. 按照學(xué)院查找(查找同一學(xué)院人員)\n\n");  
        printf("\t\t\t ▲▲ 3. 按照班級(jí)查找(查找同一班級(jí)人員)\n\n");  
        printf("\t\t\t ▲▲ 4. 按照學(xué)號(hào)查找\n\n");  
        printf("\t\t\t ▲▲ 5. 按照姓名查找\n\n");    
        printf("\t\t\t ▲▲ 0. 返回到主菜單\n\n");  
        printf("\t\t------------------------------------------------------------\n");  
        printf("\t\t請(qǐng)選擇您要運(yùn)行的選項(xiàng)按(0-5):");  
        scanf("%d",&a);  
    }while(a<0 || a>5);  
    return a;  
}  
 
int find(stu head,int n)  //查找選擇菜單  
{  
    stu p; 
    head = ss(); 
    switch(n)  
    {  
        case 1:  
            system("cls");   
            int sou;  
            printf("\n\t\t\t要查找的宿舍房間號(hào)為:");  
            scanf("%d",&sou);  
            printf("--------------------------------------------------------------------------------\n");
            printf("樓棟號(hào) 房間號(hào) 房間面積 容納數(shù) 學(xué)院  班級(jí)  學(xué)號(hào)   姓名   性別  日期   已住人數(shù)  \n"); 
            printf("--------------------------------------------------------------------------------\n");  
            for(p = head ;p != NULL ;p = p->next)  
            {  
                if(p->brnum == sou)  
                    printf("%3d %5d   %.1f  %5d %10s %4d %4d %6s %3s %4d %3d\n",p->buildnum,p->roomnum,p->area,p->rnanum,p->xy,p->bj,p->num,p->name,p->sex,p->date,a[p->brnum]);               
            }  
            system("pause");  
            return 1;  
        case 2:  
            system("cls");  
            p = head;  
            char d[30];  
            printf("\n\t\t\t要查找的學(xué)院為:");  
            scanf("%s",&d);  
            printf("--------------------------------------------------------------------------------\n");
            printf("樓棟號(hào) 房間號(hào) 房間面積 容納數(shù) 學(xué)院  班級(jí)  學(xué)號(hào)   姓名   性別  日期   已住人數(shù)  \n"); 
            printf("--------------------------------------------------------------------------------\n");  
            for(p = head ;p != NULL ;p = p->next) 
            {  
                if(strcmp(p->xy,d) == 0)  
                    printf("%3d %5d   %.1f  %5d %10s %4d %4d %6s %3s %4d %3d\n",p->buildnum,p->roomnum,p->area,p->rnanum,p->xy,p->bj,p->num,p->name,p->sex,p->date,a[p->brnum]);             
            }  
            system("pause");  
            return 1;  
        case 3:  
            system("cls");    
            int cl;  
            printf("\n\t\t\t要查找的班級(jí)為:");  
            scanf("%d",&cl);  
            printf("--------------------------------------------------------------------------------\n");
            printf("樓棟號(hào) 房間號(hào) 房間面積 容納數(shù) 學(xué)院  班級(jí)  學(xué)號(hào)   姓名   性別  日期   已住人數(shù)  \n"); 
            printf("--------------------------------------------------------------------------------\n");
            for(p = head ;p != NULL ;p = p->next)  
            {  
                if(p->bj == cl)  
                    printf("%3d %5d   %.1f  %5d %10s %4d %4d %6s %3s %4d %3d\n",p->buildnum,p->roomnum,p->area,p->rnanum,p->xy,p->bj,p->num,p->name,p->sex,p->date,a[p->brnum]);           
            }  
            system("pause");  
            return 1;  
        case 4:  
            system("cls");    
            int f;  
            printf("\n\t\t\t要查找的學(xué)號(hào)為:");  
            scanf("%d",&f);  
            printf("--------------------------------------------------------------------------------\n");
            printf("樓棟號(hào) 房間號(hào) 房間面積 容納數(shù) 學(xué)院  班級(jí)  學(xué)號(hào)   姓名   性別  日期   已住人數(shù)  \n"); 
            printf("--------------------------------------------------------------------------------\n");
            for(p = head ;p != NULL ;p = p->next)  
            {  
                if(p->num == f)  
                    printf("%3d %5d   %.1f  %5d %10s %4d %4d %6s %3s %4d %3d\n",p->buildnum,p->roomnum,p->area,p->rnanum,p->xy,p->bj,p->num,p->name,p->sex,p->date,a[p->brnum]);               
            }  
            system("pause");  
            return 1;  
        case 5:  
            system("cls");    
            char g[20];  
            printf("\n\t\t\t要查找的姓名為:");  
            scanf("%s",g);  
            printf("--------------------------------------------------------------------------------\n");
            printf("樓棟號(hào) 房間號(hào) 房間面積 容納數(shù) 學(xué)院  班級(jí)  學(xué)號(hào)   姓名   性別  日期   已住人數(shù)  \n"); 
            printf("--------------------------------------------------------------------------------\n");
            for(p = head ;p != NULL ;p = p->next)  
            {  
                if(strcmp(p->name, g) == 0)  
                    printf("%3d %5d   %.1f  %5d %10s %4d %4d %6s %3s %4d %3d\n",p->buildnum,p->roomnum,p->area,p->rnanum,p->xy,p->bj,p->num,p->name,p->sex,p->date,a[p->brnum]);                
            }  
            system("pause");  
            return 1;  
        case 0:  
            system("pause");  
            return 0;  
    }  
}  
  
int alter(stu head)  //修改學(xué)生信息 
{
    FILE *fp;  
    int y;  
    printf("\n\t\t\t請(qǐng)輸入將要修改的學(xué)生的學(xué)號(hào):");  
    scanf("%d",&y);  
    stu p;
    head = ss();  
    p = head;  
    while(p != NULL)  
    {  
        if(y == p->num)  
        { 
            printf("--------------------------------------------------------------------------------\n");
            printf("樓棟號(hào) 房間號(hào) 房間面積 容納數(shù) 學(xué)院  班級(jí)  學(xué)號(hào)   姓名   性別  日期   已住人數(shù)  \n"); 
            printf("--------------------------------------------------------------------------------\n"); 
            printf("%3d %5d   %.1f  %5d %10s %4d %4d %6s %3s %4d %3d\n",p->buildnum,p->roomnum,p->area,p->rnanum,p->xy,p->bj,p->num,p->name,p->sex,p->date,a[p->brnum]);
            printf("\n\t\t對(duì)信息進(jìn)行修改:\n");
            printf("--------------------------------------------------------------------------------\n");
            printf("樓棟號(hào) 房間號(hào) 宿舍房間號(hào) 房間面積 容納數(shù) 學(xué)院  班級(jí)  學(xué)號(hào)   姓名   性別  日期\n"); 
            printf("--------------------------------------------------------------------------------\n");
            scanf("%d%d%d%f%d%s%d%d%s%s%d",&p->buildnum,&p->roomnum,&p->brnum,&p->area,&p->rnanum,&p->xy,&p->bj,&p->num,&p->name,&p->sex,&p->date);   
            a[p->brnum]++;
            if(a[p->brnum] == p->rnanum)        
              printf("\n該寢室已入住滿,請(qǐng)安排后面的學(xué)生到其它空余寢室入住\n");
            printf("\n");  
        }  
        p = p->next;  
    }
    fp = fopen("student","wb");   //以只寫的方式打開名為student的二進(jìn)制文件,打開的同時(shí)清空文件中的內(nèi)容 
    if(fp == NULL)
    {
        printf("文件打開失敗 !"); 
    }
    if(fwrite(head,N,1,fp) != 1)   //將head寫入fp所指向的文件中 
    {
        printf("寫入錯(cuò)誤 !"); 
    }
    fclose(fp);   //關(guān)閉文件 
    if(head != NULL)   //如果head不為空 
    {
        p = head->next;     //讓p指向第二個(gè)結(jié)點(diǎn) 
        fp = fopen("student","ab");   //以追加的方式打開文件 
        if(fp == NULL)
        {
                printf("文件打開失敗 !");
        }
        while(p != NULL)
        {
            if(fwrite(p,N,1,fp) != 1)//將p寫入fp所指向的文件中
            {
                printf("寫入錯(cuò)誤 !");
            }
            p = p->next;
        }
        fclose(fp);   
    }
    Sleep(500);      
}    

int del_menu()
{
    int a;  
    do
    {  
        system("cls");  
        printf("\n\n\t\t------------------------------------------------------------\n\n");   
        printf("\t\t\t ▲▲ 1.刪除某個(gè)學(xué)生信息\n\n");  
        printf("\t\t\t ▲▲ 2.刪除全部學(xué)生信息\n\n");  
        printf("\t\t\t ▲▲ 0. 返回到主菜單\n\n");  
        printf("\t\t------------------------------------------------------------\n");  
        printf("\t\t請(qǐng)選擇您要運(yùn)行的選項(xiàng)按(0-2):");  
        scanf("%d",&a);  
    }
    while(a<0 || a>2);  
    return a;  
} 
 
int del(stu head,int g)  //刪除學(xué)生信息
{ 
    FILE *fp;   
    stu p,q; 
    head = ss(); 
    p = head;
    q = NULL;    
    switch(g)  
    {  
        case 1:  
            system("cls"); 
            int x,y; 
            printf("\n\t\t\t請(qǐng)輸入將要?jiǎng)h除學(xué)生的學(xué)號(hào):");          
            scanf("%d",&y);   
            while(p != NULL && p->num != y)
            {
                q = p;
                p = p->next; 
                x = p->brnum;
            }
            if(p != NULL)
            {
                if(q == NULL)
                {
                    head = head->next;
                }
                else if(p->next!=NULL)
                {
                    q->next = p->next;
                }
                else
                q->next=NULL;
            }
           free(p);
           printf("\n\t\t\t刪除成功 !\n");
           a[x]--;
           fp = fopen("student","wb");
           if(fp == NULL)
           {
                printf("文件打開失敗 !"); 
           }
           if(fwrite(head,N,1,fp) != 1)
           {
                printf("寫入錯(cuò)誤 !"); 
           }
           fclose(fp);
           if(head != NULL)
           {
                p = head->next;
                fp = fopen("student","ab");
                if(fp == NULL)
                {
                    printf("文件打開失敗 !");
                }
                while(p != NULL)
                {
                    if(fwrite(p,N,1,fp) != 1)
                    {
                        printf("寫入錯(cuò)誤 !");
                    }
                    p = p->next;
                }
                fclose(fp);
           }  
           system("pause");  
           return 1; 
       case 2:
              system("cls");
              head = NULL;  
           printf("\n\t\t\t刪除成功 !\n");
           fp=fopen("student","wb");
           fclose(fp); 
           system("pause"); 
           return 1;
       case  0: 
           return 0; 
    }
}
  
int main()            
{       
    int m,n,x,y,g;
    login();    
    stu head = NULL;    
    for(;;)  
    {  
        switch(menu_select())  
        {  
            case 1:  
                system("cls");    
                printf("\t\t輸入學(xué)生的個(gè)數(shù)和數(shù)據(jù)(以回車結(jié)束):");  
                scanf("%d",&n);  
                if(n <= 0)  
                {  
                    printf("\n\t\t\t請(qǐng)輸入正確的人數(shù) !");  
                    Sleep(500);  
                    break;  
                }  
                else  
                {                    
                    head = input(n);  
                    break;  
                }  
            case 2:  
                system("cls"); 
                system("color 5E"); 
                output(head);  
                system("pause");  
                break;   
            case 3:  
                do  
                {  
                    x = sort(head,sort_menu());  
                }while(x != 0);  
                break;            
            case 4:  
                system("cls");  
                do  
                {  
                    y = find(head,find_menu());  
                }while(y != 0);  
                break;  
            case 5:  
                system("cls");    
                alter(head);  
                printf("\n\t\t\t修改成功 !\n");  
                system("pause");  
                break;  
            case 6:  
                system("cls"); 
                do  
                {  
                    g = del(head,del_menu());  
                }while(g != 0);    
                system("pause");  
                break;  
            case 0:
                system("cls");       
                printf("\t\t∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");
                printf("\t\t\t\\(^V^)メ(^V^)/  "); 
                printf("\t謝謝使用 !\n");
                printf("\t\t∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");
                Sleep(2000);
                system("cls");   
                exit(0);  
        }  
    }  
}

怎么用C語言實(shí)現(xiàn)學(xué)生宿舍管理系統(tǒng)

怎么用C語言實(shí)現(xiàn)學(xué)生宿舍管理系統(tǒng)

感謝各位的閱讀,以上就是“怎么用C語言實(shí)現(xiàn)學(xué)生宿舍管理系統(tǒng)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)怎么用C語言實(shí)現(xiàn)學(xué)生宿舍管理系統(tǒng)這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI