溫馨提示×

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

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

C語(yǔ)言如何實(shí)現(xiàn)學(xué)生宿舍信息管理系統(tǒng)

發(fā)布時(shí)間:2022-03-16 13:36:02 來(lái)源:億速云 閱讀:235 作者:iii 欄目:開(kāi)發(fā)技術(shù)

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

功能描述

該學(xué)生宿舍信息管理系統(tǒng)主要實(shí)現(xiàn)的功能有:創(chuàng)建學(xué)生宿舍信息,顯示學(xué)生宿舍信息,查詢學(xué)生宿舍信息,修改學(xué)生宿舍信息,刪除學(xué)生宿舍信息,保存學(xué)生宿舍信息,讀取學(xué)生宿舍信息。其系統(tǒng)功能模塊圖如下:

C語(yǔ)言如何實(shí)現(xiàn)學(xué)生宿舍信息管理系統(tǒng)

完整代碼如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<windows.h>
 
#define MAX 1000
int k=0;
 
//結(jié)構(gòu)體類型
typedef struct  
{       
    char name[20];    //姓名
    char sex[5];      //性別   
    char classs[20];  //班級(jí)
    int number;       //學(xué)號(hào)
    int age;          //年齡
    int dorm;         //宿舍號(hào)
    int year;         //年份
    int month;        //月份
}students;
 
 
 
//創(chuàng)建學(xué)生宿舍信息
int establish(students stu[])
{  int i,x;
   for(i=0;i<1000;i++)
   {
    system("cls");  
    printf("\n\n                 錄入學(xué)生信息  (最多%d個(gè))\n",MAX);
    printf("               ----------------------------\n");
   
        printf("\n                     第%d個(gè)學(xué)生",k+1);
        printf("\n 請(qǐng)輸入學(xué)生的學(xué)號(hào):");
        scanf("%d",&stu[k].number);
        printf("\n 請(qǐng)輸入學(xué)生的姓名:");
        scanf("%s",stu[k].name); 
        printf("\n 請(qǐng)輸入學(xué)生的性別:");
        scanf("%s",stu[k].sex);
        printf("\n 請(qǐng)輸入學(xué)生的年齡:");
        scanf("%d",&stu[k].age);  
        printf("\n 請(qǐng)輸入學(xué)生的班級(jí):");
        scanf("%s",stu[k].classs);                
        printf("\n 請(qǐng)輸入學(xué)生入住時(shí)間(如:2017 9):");            
        while((scanf("%d %d",&stu[k].year,&stu[k].month))!=EOF)
        {
            if(stu[k].year<1000||stu[k].year>9999||stu[k].month>12||stu[k].month<1)//限定輸入范圍
            {
                printf("對(duì)不起,輸入錯(cuò)誤,請(qǐng)重新輸入:");
            }
            else
                break;
        }
        printf("\n 請(qǐng)輸入學(xué)生的宿舍號(hào):");
        scanf("%d",&stu[k++].dorm);
        printf("\n 請(qǐng)按 1 鍵返回主菜單或按 0 鍵繼續(xù)創(chuàng)建:");
        scanf("%d",&x);
        if(x!=0)  break;
   }     
   return k;
}
 
 
 
//顯示學(xué)生宿舍信息                                                                                                                                                                                                                                                        
void display(students stu[])
{  
 
    int i;
    for(i=0;i<k;i++)  
    {
        printf("學(xué)號(hào):%d  姓名:%s  性別:%s  年齡:%d  班級(jí):%s  宿舍號(hào): %d  入住時(shí)間:%d/%d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month);
    }
    printf("按任意鍵返回主菜單!");
    getch();
    system("cls");
    return ;
}
 
//查詢學(xué)生宿舍信息
void query(students stu[]) 
{ 
    int i,m=0;
    int number;   
    printf("\n\n      請(qǐng)輸入您要查找的學(xué)生的學(xué)號(hào): ");
    scanf("%d",&number);
    printf("     正在查詢,請(qǐng)稍后.....\n");
    Sleep(1000);
    for(i=0;i<k;i++)
    { 
        if(number==stu[i].number)
        {            
            printf("\n\n學(xué)號(hào):%d  姓名:%s  性別:%s  年齡:%d  班級(jí):%s  宿舍號(hào): %d  入住時(shí)間:%d/%d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month);
            m=1;
        }        
    }
    if(m==0)
    {
        printf("對(duì)不起,此學(xué)生信息不存在!\n");
    }
    printf("按任意鍵返回主菜單!");
    getch();
    system("cls");
    return ;
}
 
 
//修改學(xué)生信息 
void modify(students stu[])
{  
    int number,i,choose,m=0;
    system("cls"); 
    printf("\n\n\n      請(qǐng)輸入您要修改的學(xué)生的學(xué)號(hào):");
    scanf("%d",&number);
    printf("      正在查詢,請(qǐng)稍后.....\n");
    Sleep(1000);
    for(i=0;i<k;i++)
    {       
        if(number==stu[i].number)
        {
            printf("\n\n學(xué)號(hào):%d  姓名:%s  性別:%s  年齡:%d  班級(jí):%s  宿舍號(hào): %d  入住時(shí)間:%d/%d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month);
 
            printf("\n\n     ********請(qǐng)輸入您想要修改的數(shù)據(jù)********\n\n");
            printf("                1. 學(xué)號(hào)\n");
            printf("                2. 姓名\n");
            printf("                3. 性別\n");
            printf("                4. 年齡\n");
            printf("                5. 班級(jí)\n");
            printf("                6. 宿舍號(hào)\n");
            printf("                7. 入住時(shí)間\n\n");
            printf("                請(qǐng)選擇(1-7):");
 
            while((scanf("%d",&choose))!=EOF)
            {
                if(choose<1||choose>7)
                {
                    printf("對(duì)不起,輸入錯(cuò)誤,請(qǐng)重新輸入:");
                }
                else
                {
                    switch(choose)
                    {
                    case 1:
                        {
                            printf("\n   請(qǐng)輸入你改的新學(xué)號(hào):");
                            scanf("%d",&stu[i].number); 
                            break;
                        }
                    case 2:
                        {
                            printf("\n   請(qǐng)輸入你改的新姓名:");
                            scanf("%s",stu[i].name); 
                            break;
                        }
                    case 3:
                        {
                            printf("\n   請(qǐng)輸入你改的新性別:");
                            scanf("%s",stu[i].sex); 
                            break;
                        }
                    case 4:
                        {
                            printf("\n   請(qǐng)輸入你改的新年齡:");
                            scanf("%d",&stu[i].age); 
                            break;
                        }
                    case 5:
                        {
                            printf("\n   請(qǐng)輸入你改的新班級(jí):");
                            scanf("%s",stu[i].classs); 
                            break;
                        }
                    case 6:
                        {
                            printf("\n   請(qǐng)輸入你改的新宿舍:");
                            scanf("%d",&stu[i].dorm); 
                            break;
                        }
                    case 7:
                        {
                            printf("\n   請(qǐng)輸入你改的新入住時(shí)間:");
                            scanf("%d %d",&stu[i].year,&stu[i].month);
                            break;
                        }
                    }
                    printf("修改成功!");
                    Sleep(500);
                    printf("\n\n學(xué)號(hào):%d  姓名:%s  性別:%s  年齡:%d  班級(jí):%s  宿舍號(hào): %d  入住時(shí)間:%d/%d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month);
                    m=1;
                    break;
                }
            }
        }
    }
    if(m==0)
    {
        printf("對(duì)不起,此學(xué)生信息不存在!\n");
    }
    printf("按任意鍵返回主菜單!");
    getch();
    return ;
}
 
//刪除學(xué)生信息
void deletee(students stu[])
{ 
    
    char name1[20];
    int i,j,m=0;
 
    printf("請(qǐng)輸入學(xué)生姓名:");
    scanf("%s",name1);
    printf("\n");
    printf("正在查找是否存在此學(xué)生信息.....\n");
    Sleep(1000);
    for(i=0;i<k;i++)
    {
        if(strcmp(stu[i].name,name1)==0)
        {
            m=1;
            printf("已找到此學(xué)生信息!\n刪除中....\n");
            Sleep(2000);
            for(j=i;j<k;j++)
            {
                strcpy(stu[j].name,stu[j+1].name);
                strcpy(stu[j].sex,stu[j+1].sex);
                strcpy(stu[j].classs,stu[j+1].classs);
                stu[j].age=stu[j+1].age;                
                stu[j].dorm=stu[j+1].dorm;
                stu[j].number=stu[j+1].number;
                stu[j].year=stu[j+1].year;
                stu[j].month=stu[j+1].month;
            }
            k--;
            printf("刪除成功!\n");
        }        
    }
    if(m==0)
    {
        printf("此學(xué)生信息不存在!\n");
    }
   printf("按任意鍵返回主菜單!");
   getch();
   system("cls");
   return ;
}
 
 
 
 
 
//保存學(xué)生住宿信息
void preservation(students stu[])
{
    int i;
    FILE  *fp;
    
    if((fp=fopen("學(xué)生宿舍信息.txt","w"))==NULL)
    {
        printf("未發(fā)現(xiàn)學(xué)生宿舍信息!\n");
        printf("按任意鍵返回...\n");
        getch();
        system("cls");
        return ;
    }
    else
    {
        for(i=0;i<k;i++)
        {    
            fprintf(fp,"\n\n學(xué)號(hào):%d  姓名:%s  性別:%s  年齡:%d  班級(jí):%s  宿舍號(hào): %d  入住時(shí)間:%d/%d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month);
        }
        fclose(fp);
        printf("正在保存文件....\n");
        Sleep(1000);
        printf("文件保存成功!\n");
        printf("按任意鍵返回...\n");
        getch();
        system("cls");
        return ;
    }
}
//讀取學(xué)生住宿信息
void read(students stu[])
{
    FILE *fp; 
    char ch;
    if((fp=fopen("學(xué)生宿舍信息.txt","r"))==NULL)
    {
        printf("文件無(wú)法打開(kāi)!\n");
        exit(0);
    }
    printf("正在讀入文件...\n");
    Sleep(1000);
    printf("文件讀入成功!\n");
    ch=fgetc(fp);
    while(!feof(fp))
    {
        putchar(ch);
        ch=fgetc(fp);
    }
    printf("\n");
    fclose(fp);
    printf("按任意鍵返回...\n");
    getch();
    system("cls");
    return ;
} 
 
 
void title()
{
   printf(" \n\n\n                   **********************************\n");
   printf("                   *                                *\n");
   printf("                   *                                *\n");
   printf("                   *                                *\n");
   printf("                   *  歡迎進(jìn)入學(xué)生宿舍信息管理系統(tǒng)  *\n");
   printf("                   *                                *\n");
   printf("                   *                                *\n");
   printf("                   *                                *\n");
   printf("                   **********************************\n");
   printf("\n                   按任意鍵進(jìn)入系統(tǒng)!\n");
   getch();
   
}
 
void start()
{
    students stu[20];
    int choose,k;
    while(choose!=0)
    {
        system("cls");  
        printf("\n\n\n               ********學(xué)生宿舍信息管理系統(tǒng)********\n\n");
        printf("                      1. 創(chuàng)建學(xué)生宿舍信息\n\n");
        printf("                      2. 顯示學(xué)生宿舍信息\n\n");
        printf("                      3. 查詢學(xué)生宿舍信息\n\n");
        printf("                      4. 修改學(xué)生宿舍信息\n\n");
        printf("                      5. 刪除學(xué)生宿舍信息\n\n");
        printf("                      6. 保存學(xué)生宿舍信息\n\n");
        printf("                      7. 讀取學(xué)生宿舍信息\n\n");
        printf("                      0. 退出系統(tǒng)\n\n");
        printf("                       請(qǐng)選擇(0-7):");
 
        while((scanf("%d",&choose))!=EOF)
        {
            if(choose<0||choose>7)
            {
                printf("對(duì)不起,輸入錯(cuò)誤,請(qǐng)重新輸入:");
            }
            else
            {
                switch(choose)
                {
                case 1: k=establish(stu); break;//創(chuàng)建學(xué)生宿舍信息
                case 2: display( stu) ; break;//顯示學(xué)生宿舍信息
                case 3: query(stu); break;//查詢學(xué)生宿舍信息
                case 4: modify(stu); break;//修改學(xué)生宿舍信息
                case 5: deletee(stu); break;//刪除學(xué)生宿舍信息
                case 6: preservation(stu); break;//保存學(xué)生宿舍信息
                case 7: read(stu);break;//讀取學(xué)生宿舍信息
                case 0: break;
                }
            break;
            }
        }
    }
}
int main()
{   
    title();
    start();
    return 0;
}

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

向AI問(wèn)一下細(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