C语言实现学生宿舍信息管理系统

本文实例为大家分享了C语言实现学生宿舍信息管理系统的具体代码,供大家参考,具体内容如下

功能描述

该学生宿舍信息管理系统主要实现的功能有:创建学生宿舍信息,显示学生宿舍信息,查询学生宿舍信息,修改学生宿舍信息,删除学生宿舍信息,保存学生宿舍信息,读取学生宿舍信息。其系统功能模块图如下:

完整代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<windows.h>
 
#define MAX 1000
int k=0;
 
//结构体类型
typedef struct  
{       
    char name[20];    //姓名
    char sex[5];      //性别   
    char classs[20];  //班级
    int number;       //学号
    int age;          //年龄
    int dorm;         //宿舍号
    int year;         //年份
    int month;        //月份
}students;
 
 
 
//创建学生宿舍信息
int establish(students stu[])
{  int i,x;
   for(i=0;i<1000;i++)
   {
    system("cls");  
    printf("\n\n                 录入学生信息  (最多%d个)\n",MAX);
    printf("               ----------------------------\n");
   
        printf("\n                     第%d个学生",k+1);
        printf("\n 请输入学生的学号:");
        scanf("%d",&stu[k].number);
        printf("\n 请输入学生的姓名:");
        scanf("%s",stu[k].name); 
        printf("\n 请输入学生的性别:");
        scanf("%s",stu[k].sex);
        printf("\n 请输入学生的年龄:");
        scanf("%d",&stu[k].age);  
        printf("\n 请输入学生的班级:");
        scanf("%s",stu[k].classs);                
        printf("\n 请输入学生入住时间(如: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("对不起,输入错误,请重新输入:");
            }
            else
                break;
        }
        printf("\n 请输入学生的宿舍号:");
        scanf("%d",&stu[k++].dorm);
        printf("\n 请按 1 键返回主菜单或按 0 键继续创建:");
        scanf("%d",&x);
        if(x!=0)  break;
   }     
   return k;
}
 
 
 
//显示学生宿舍信息                                                                                                                                                                                                                                                        
void display(students stu[])
{  
 
    int i;
    for(i=0;i<k;i++)  
    {
        printf("学号:%d  姓名:%s  性别:%s  年龄:%d  班级:%s  宿舍号: %d  入住时间:%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 ;
}
 
//查询学生宿舍信息
void query(students stu[]) 
{ 
    int i,m=0;
    int number;   
    printf("\n\n      请输入您要查找的学生的学号: ");
    scanf("%d",&number);
    printf("     正在查询,请稍后.....\n");
    Sleep(1000);
    for(i=0;i<k;i++)
    { 
        if(number==stu[i].number)
        {            
            printf("\n\n学号:%d  姓名:%s  性别:%s  年龄:%d  班级:%s  宿舍号: %d  入住时间:%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("对不起,此学生信息不存在!\n");
    }
    printf("按任意键返回主菜单!");
    getch();
    system("cls");
    return ;
}
 
 
//修改学生信息 
void modify(students stu[])
{  
    int number,i,choose,m=0;
    system("cls"); 
    printf("\n\n\n      请输入您要修改的学生的学号:");
    scanf("%d",&number);
    printf("      正在查询,请稍后.....\n");
    Sleep(1000);
    for(i=0;i<k;i++)
    {       
        if(number==stu[i].number)
        {
            printf("\n\n学号:%d  姓名:%s  性别:%s  年龄:%d  班级:%s  宿舍号: %d  入住时间:%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     ********请输入您想要修改的数据********\n\n");
            printf("                1. 学号\n");
            printf("                2. 姓名\n");
            printf("                3. 性别\n");
            printf("                4. 年龄\n");
            printf("                5. 班级\n");
            printf("                6. 宿舍号\n");
            printf("                7. 入住时间\n\n");
            printf("                请选择(1-7):");
 
            while((scanf("%d",&choose))!=EOF)
            {
                if(choose<1||choose>7)
                {
                    printf("对不起,输入错误,请重新输入:");
                }
                else
                {
                    switch(choose)
                    {
                    case 1:
                        {
                            printf("\n   请输入你改的新学号:");
                            scanf("%d",&stu[i].number); 
                            break;
                        }
                    case 2:
                        {
                            printf("\n   请输入你改的新姓名:");
                            scanf("%s",stu[i].name); 
                            break;
                        }
                    case 3:
                        {
                            printf("\n   请输入你改的新性别:");
                            scanf("%s",stu[i].sex); 
                            break;
                        }
                    case 4:
                        {
                            printf("\n   请输入你改的新年龄:");
                            scanf("%d",&stu[i].age); 
                            break;
                        }
                    case 5:
                        {
                            printf("\n   请输入你改的新班级:");
                            scanf("%s",stu[i].classs); 
                            break;
                        }
                    case 6:
                        {
                            printf("\n   请输入你改的新宿舍:");
                            scanf("%d",&stu[i].dorm); 
                            break;
                        }
                    case 7:
                        {
                            printf("\n   请输入你改的新入住时间:");
                            scanf("%d %d",&stu[i].year,&stu[i].month);
                            break;
                        }
                    }
                    printf("修改成功!");
                    Sleep(500);
                    printf("\n\n学号:%d  姓名:%s  性别:%s  年龄:%d  班级:%s  宿舍号: %d  入住时间:%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("对不起,此学生信息不存在!\n");
    }
    printf("按任意键返回主菜单!");
    getch();
    return ;
}
 
//删除学生信息
void deletee(students stu[])
{ 
    
    char name1[20];
    int i,j,m=0;
 
    printf("请输入学生姓名:");
    scanf("%s",name1);
    printf("\n");
    printf("正在查找是否存在此学生信息.....\n");
    Sleep(1000);
    for(i=0;i<k;i++)
    {
        if(strcmp(stu[i].name,name1)==0)
        {
            m=1;
            printf("已找到此学生信息!\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("此学生信息不存在!\n");
    }
   printf("按任意键返回主菜单!");
   getch();
   system("cls");
   return ;
}
 
 
 
 
 
//保存学生住宿信息
void preservation(students stu[])
{
    int i;
    FILE  *fp;
    
    if((fp=fopen("学生宿舍信息.txt","w"))==NULL)
    {
        printf("未发现学生宿舍信息!\n");
        printf("按任意键返回...\n");
        getch();
        system("cls");
        return ;
    }
    else
    {
        for(i=0;i<k;i++)
        {    
            fprintf(fp,"\n\n学号:%d  姓名:%s  性别:%s  年龄:%d  班级:%s  宿舍号: %d  入住时间:%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 ;
    }
}
//读取学生住宿信息
void read(students stu[])
{
    FILE *fp; 
    char ch;
    if((fp=fopen("学生宿舍信息.txt","r"))==NULL)
    {
        printf("文件无法打开!\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("                   *  欢迎进入学生宿舍信息管理系统  *\n");
   printf("                   *                                *\n");
   printf("                   *                                *\n");
   printf("                   *                                *\n");
   printf("                   **********************************\n");
   printf("\n                   按任意键进入系统!\n");
   getch();
   
}
 
void start()
{
    students stu[20];
    int choose,k;
    while(choose!=0)
    {
        system("cls");  
        printf("\n\n\n               ********学生宿舍信息管理系统********\n\n");
        printf("                      1. 创建学生宿舍信息\n\n");
        printf("                      2. 显示学生宿舍信息\n\n");
        printf("                      3. 查询学生宿舍信息\n\n");
        printf("                      4. 修改学生宿舍信息\n\n");
        printf("                      5. 删除学生宿舍信息\n\n");
        printf("                      6. 保存学生宿舍信息\n\n");
        printf("                      7. 读取学生宿舍信息\n\n");
        printf("                      0. 退出系统\n\n");
        printf("                       请选择(0-7):");
 
        while((scanf("%d",&choose))!=EOF)
        {
            if(choose<0||choose>7)
            {
                printf("对不起,输入错误,请重新输入:");
            }
            else
            {
                switch(choose)
                {
                case 1: k=establish(stu); break;//创建学生宿舍信息
                case 2: display( stu) ; break;//显示学生宿舍信息
                case 3: query(stu); break;//查询学生宿舍信息
                case 4: modify(stu); break;//修改学生宿舍信息
                case 5: deletee(stu); break;//删除学生宿舍信息
                case 6: preservation(stu); break;//保存学生宿舍信息
                case 7: read(stu);break;//读取学生宿舍信息
                case 0: break;
                }
            break;
            }
        }
    }
}
int main()
{   
    title();
    start();
    return 0;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言版学生信息管理系统

    本文实例为大家分享了C语言版学生信息管理系统的具体代码,供大家参考,具体内容如下 一.题目分析 1.功能概述 1)查询学生信息 2)添加学生信息 3)修改学生信息 4)删除学生信息 5)刷新学生信息 6)保存学生信息 7)输出当前学生信息 2.题目要求: 1)使用结构体建立学生信息体制 2)实现七大基本功能 3)采用文件存储学生信息 二.算法构造 1.难点解析----对文件的操作 1.1文件读取 FILE * fp; if ((fp = fopen(filename, "r")) ==

  • C语言使用链表实现学生信息管理系统

    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 代码实现的功能: 1.插入学生信息 2.显示学生信息 3.删除学生信息 4.在指定位置插入学生信息 5.查找学生信息 代码内容: #include <stdio.h> #include <stdlib.h> #include <string.h> #define Max_Student_Num 10 #define Max_Str_len 20 typedef struct T_stud

  • C语言学生信息管理系统小项目

    本文为大家分享了C语言学生信息管理系统小项目,供大家参考,具体内容如下 /* 运行环境:我是在linux里面用gcc编译的,在windows里应该也能运行,用的一些文件库函数都是c标准库,没有用linux的系统调用(纠正一下:system("clear")这个系统调用是linux的,windows里面用system("cls") ) (1)问题描述 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等.试设计一学生信息管理系统,使之能提供以下功

  • C语言学生信息管理系统设计与实现

    本文实例为大家分享了C语言学生信息管理系统的具体代码,供大家参考,具体内容如下 #include"stdio.h" //标准的输入输出函数文件头部说明 #include"math.h" // 数学函数头部说明 #include"string.h" #include"stdlib.h" //通过该函数头部里的函数,改变控制台的背景和颜色 #include"windows.h" //头文件声明,下文用到了改变控

  • C语言实现学生信息管理系统(文件版)

    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 下面是我自己用写的学生信息管理系统,为了增加数据的利用率,分为学生端和教师端,同时实现账号密码登录,以文件的形式将其存入. 代码如下 #include <stdio.h> #include <string.h> #include <string> #include<Windows.h> #define USER "TOM" // 事先定义用户名,用于登录页

  • C语言单链表版学生信息管理系统

    本文实例为大家分享了C语言学生信息管理系统的具体代码,供大家参考,具体内容如下 代码: //以单链表作为存储结构,设计和实现课程成绩管理的完整程序. //程序包括如下功能. //1.建立学生成绩表,包含学生的学号.姓名和成绩. //2.可以显示所有学生成绩. //3.可以计算学生的总数. //4.可以按学号和序号查找学生. //5.可以在指定位置插入学生成绩数据. //6.可以删除指定位置的学生数据. //7.可以把学生成绩按从高到低的顺序排序. //作者: yinlinqvan //操作系统:

  • C语言实现学生信息管理系统(单链表)

    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 /*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016年7月1日 * 版本号:codeblock * * 问题描述: 学生信息管理系统 * 输入描述: * 程序输出: 输出结果 */ #include <stdio.h> #include <stdlib.h> #include

  • 学生信息管理系统C语言版

    C语言学生信息管理系统包括以下功能: 1.学生信息的整体注册 2.学生信息的修改 3.学生成绩信息的录入 4.学生信息的添加 5.恢复误删的学生信息 6.学生信息的删除 7.密码修改保存函数 8.学生信息的查询 9.密码修改函数 10.学生信息管理系统的菜单函数 #include "stdio.h" #include "malloc.h" #include "string.h" #include "stdlib.h" #inc

  • C语言数组实现学生信息管理系统设计

    概述 单纯只用多个数组管理学生成绩信息,不使用结构体,该程序最主要的难点是依据学号或总成绩对学生信息进行排序,借助了临时数组来标记排好序的下标. 运行结果如下: 输入数据: 打印数据: 根据学号对信息进行排序: 根据总成绩对信息进行排序: 根据学号删除某一信息: 代码如下: #include <stdio.h> #include <stdlib.h> //exit函数头文件 #include <string.h> //字符串相关操作头文件 #define MAX_STU

  • C语言数据结构之学生信息管理系统课程设计

    本文实例为大家分享了学生信息管理系统设计的具体代码,供大家参考,具体内容如下 建立一个动态链表,链表中每一结点包括:学号.姓名.性别.年龄.成绩.程序能实现以下功能: 建立链表      显示链表      查找链表中是否存在某个元素,并显示这个元素的所有信息,若没有这个元素则显示"无此记录!"的信息.      删除链表中指定学号的结点.      在链表中指定的位置插入一个新结点(学号不能和其他结点重复). 要求:程序运行中,先显示实现以上功能所构成的菜单,然后根据选项调用相应程序

随机推荐