最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

宿舍管理系统报告

来源:动视网 责编:小OO 时间:2025-09-24 16:50:26
文档

宿舍管理系统报告

学生宿舍管理系统一、实验目的1.熟练掌握线性表的基本操作在顺序存储和链式存储上的实现。、;2.以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点;3.掌握线性表的动态分配顺序存储结构的定义和基本操作的实现;4.通过实验帮助学生加深对C语言的使用(特别是函数的参数调用、指针类型的应用和链表的建立等各种基本操作)。二、实验内容我组设计的是“学生宿舍管理系统”,主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学生的管理。包括学生的姓名、学号、性别、专业、班级等等。在编写
推荐度:
导读学生宿舍管理系统一、实验目的1.熟练掌握线性表的基本操作在顺序存储和链式存储上的实现。、;2.以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点;3.掌握线性表的动态分配顺序存储结构的定义和基本操作的实现;4.通过实验帮助学生加深对C语言的使用(特别是函数的参数调用、指针类型的应用和链表的建立等各种基本操作)。二、实验内容我组设计的是“学生宿舍管理系统”,主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学生的管理。包括学生的姓名、学号、性别、专业、班级等等。在编写
学生宿舍管理系统

一、实验目的

1.熟练掌握线性表的基本操作在顺序存储和链式存储上的实现。、;

2.以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点;

3.掌握线性表的动态分配顺序存储结构的定义和基本操作的实现;

4.通过实验帮助学生加深对C语言的使用(特别是函数的参数调用、指针类型的应用和链表的建立等各种基本操作)。

二、实验内容

我组设计的是“学生宿舍管理系统”,主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学生的管理。包括学生的姓名、学号、性别、专业、班级等等。在编写过程中主要运用C语言的基本知识有:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的调用与使用)等。 

三、实验环境

台式计算机每人一台;

软件:Visual C++6.0;

四、需求分析

该程序是由C语言编写的一个宿舍管理查询软件,本程序在Microsoft Visual C++ 6.0下运行,其主要功能是实现对学生信息的录入、添加、删除、修改、查询、统计。其中查询可以分别以姓名、学号、宿舍号为关键字查询学生信息。统计可以分别以学号、宿舍号、性别、班级、专业为关键字进行统计,并且输出信息按学号大小从小到大输出。

五、概要设计

1、方案设计

2、数据结构说明

程序中数据主要是学生信息和宿舍信息,具体属于类型如下:

 struct stu

{

 char name[20];

 int num;

 char sex;

 int age;

 int grade;

 int nclass;

 char zhuanye[30];

};

struct dom

{

 int bui_num;

 int floor_num;

 int room_num;

 int bed_num;

 struct stu st;

}s[MAX],p;

3、模块功能说明

第一密码模块:调用cipher(),进行管理者的注册与登录操作。

第二录入模块:调用input_message(),对住宿学生信息进行录入。

第三添加模块:调用append_message(),对新来学生信息进行添加录入。

第四修改模块:调用revise_message(),对需修改学生的信息进行修改。

第五删除模块:调用delete_message(),对某一学生信息进行删除操作。

第六查询模块:调用find_message(),分别以姓名、学号、宿舍号对学生信息进行查询。

第七统计模块:调用census_message(),分别以学号、宿舍号、性别、班级、专业方式对学生信息进行统计,并按学号由小到大输出。

六、详细设计及运行结果

1、登陆界面

2、主界面

3、录入模块

4、录入界面

5、打印学生信息界面

6、更新学生信息界面

7、查询宿舍信息界面

8、统计宿舍信息界面

9、学生宿舍排序

七、源程序

#include

#include "string.h"

#define MAX 10

#define  PRINT1  printf("---------------------------------------------------------------------------\\n")

#define  PRINT2  printf("学号--学生姓名--性别--年龄--年级--班级--专业--楼号--楼层号--房间号--床号\\n\\n")

int sum;

struct stu

{

 char name[20];

 int num;

 char sex;

 int age;

 int grade;

 int nclass;

 char zhuanye[30];

};

struct dom

{

 int bui_num;

 int floor_num;

 int room_num;

 int bed_num;

 struct stu st;

}s[MAX],p;

 /*保存信息*/

 save_message()

 { FILE *fp;

    int i;

 if((fp=fopen("dom.txt

 {

   printf("读文件错误!\\n");

   return 0;

  }

for(i=0;i  if(fwrite(&s[i],sizeof(struct dom),1,fp)!=1)

  printf("写文件错误!\\n");

  fclose(fp);

 }

 /*输入模块*/

 input_message()

{ int i=0;

  //clrscr();

  printf("\\n\\n            录入学生信息(最多%d个)\\n",MAX);

  printf("                ----------------------------\\n");

  do

  {

      printf("\\n          第%d个学生\\n\\n",i+1);

      printf("\\n          学号: ");

      scanf("%d",&s[i].st.num);

      if(s[i].st.num==0) break;

      printf("\\n          学生姓名: ");

      scanf("%s",s[i].st.name);

      printf("\\n          学生性别(男生用M表示,女生用F表示):");

      getchar();

      scanf("%c",&s[i].st.sex);

      printf("\\n          学生年龄: ");

      scanf("%d",&s[i].st.age);

      printf("\\n          学生年级: ");

      scanf("%d",&s[i].st.grade);

      printf("\\n          学生班级: ");

      scanf("%d",&s[i].st.nclass);

      printf("\\n          学生专业: ");

      scanf("%s",&s[i].st.zhuanye);

      printf("\\n          宿舍楼号: ");

      scanf("%d",&s[i].bui_num);

      printf("\\n          宿舍楼层号: ");

      scanf("%d",&s[i].floor_num);

      printf("\\n          宿舍房间号: ");

      scanf("%d",&s[i].room_num);

      printf("\\n          宿舍床号: ");

      scanf("%d",&s[i].bed_num);

      i++;

}while(i      printf("\\n           --%d个学生的信息输入完毕!--\\n",i);

      sum=i;

      printf("\\n           按任意键返回主菜单!");

      getchar();

     // bioskey(0);

      return 0;

}

 /*读取信息*/

 int read_message()

 {

   FILE *fp;

   int i=0;

   if((fp=fopen("dom.txt

    {

       printf("\\n\\n*****暂时还没有任何信息,按任意键进入主菜单选择基本信息的录入!*****\\n");

       return 0;

    }

    while(!feof(fp))

      {

        fread(&s[i],sizeof(struct dom),1,fp);

        i++;

      }

      fclose(fp);

      return(i);

 }

 /*输出模块*/

 output_message()

   {  int i=0;

//   clrscr();

printf("\\n\\n              --学生信息表--                   \\n\\n");

PRINT2;

PRINT1;

for(i=0;iif(s[i].st.num!=0)

{

  printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\\n\\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age,

   s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);

  

  printf("\\n");

//  bioskey(0);

}

return 0; ///

}

  /*添加学生信息*/

  insert_message()

  {int i=sum,flag=0;

 char choice;

 printf("\\n\\n                  添加一个新同学\\n");

 printf("                      ---------------\\n");

  do

  {

    printf("\\n                 新学号: ");

    scanf("%d",&s[i].st.num);

    printf("\\n          学生姓名: ");

      scanf("%s",s[i].st.name);

      printf("\\n          学生性别(男生用M表示,女生用F表示):");

      getchar();

      scanf("%c",&s[i].st.sex);

      printf("\\n          学生年龄: ");

      scanf("%d",&s[i].st.age);

      printf("\\n          学生年级: ");

      scanf("%d",&s[i].st.grade);

      printf("\\n          学生班级: ");

      scanf("%d",&s[i].st.nclass);

      printf("\\n          学生专业: ");

      scanf("%s",s[i].st.zhuanye);

      printf("\\n          宿舍楼号: ");

      scanf("%d",&s[i].bui_num);

      printf("\\n          宿舍楼层号: ");

      scanf("%d",&s[i].floor_num);

      printf("\\n          宿舍房间号: ");

      scanf("%d",&s[i].room_num);

      printf("\\n          宿舍床号: ");

      scanf("%d",&s[i].bed_num);

      sum++;

      printf("\\n             要继续吗?(Y/N)");

      getchar();

      scanf("%c",&choice);

      if(choice=='y' || choice=='Y')

       {

        flag=1;

        i++;

        printf("\\n           继续!\\n");

       }

       else flag=0;

   }while(flag==1);

    printf("\\n                 按任意键返回主菜单!");

    return 0;

}

  /*删除模块*/

  del_message()

  {int flag,del_num,i,k;

   char choice;

    do

     {printf("\\n                  输入要删除的学生学号: ");

      scanf("%d",&del_num);

for(i=0;i        if(del_num==s[i].st.num)

for(k=i;k           s[k]=s[k+1];

    sum--;

        printf("\\n\\n            继续吗?(Y/N)");

        getchar();

        scanf("%c",&choice);

        if(choice=='y' || choice=='Y')

         {

            flag=1;

            printf("\\n          继续!\\n");

         }

          else flag=0;

   }while(flag==1);

    printf("\\n\\n                 按任意键返回主菜单!");

    getchar();

    return 0;

}

  /*修改模块*/

  revise_message()

{int i=0,choices,revise_num,flag=0;    char choice;

 do

  {

    printf("\\n                 输入要修改的学生号: ");

    scanf("%d",&revise_num);

for(i=0;i      if(s[i].st.num==revise_num)

      {

         printf("\\n            --学生信息--\\n");

         PRINT1;

         PRINT2;

         printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\\n\\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age,s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);

         printf("\\n            您要修改哪一项?\\n");

         printf("\\n              1.学号\\n");

         printf("\\n              2.性别\\n");

         printf("\\n              3.姓名\\n");

         printf("\\n              4.年龄\\n");

         printf("\\n              5.年级\\n");

         printf("\\n              6.班级\\n");

         printf("\\n              7.专业\\n");

         printf("\\n              8.楼号\\n");

         printf("\\n              9.楼层号\\n");

         printf("\\n              10.房间号\\n");

         printf("\\n              11.床号\\n");

         printf("\\n               请选择(1-11): ");

         scanf("%d",&choices);

         switch(choices)

          {

            case 1:printf("\\n      输入修改后的学号");

             scanf("%d",&s[i].st.num);break;

            case 2:printf("\\n      输入修改后的姓名");

             scanf("%s",s[i].st.name);break;

            case 3:printf("\\n      输入修改后的性别");

             scanf("%s",s[i].st.sex);break;

            case 4:printf("\\n     输入修改后的年龄");

             scanf("%d",&s[i].st.age);break;

            case 5:printf("\\n      输入修改后的年级");

             scanf("%d",&s[i].st.grade);break;

            case 6:printf("\\n      输入修改后的班级");

             scanf("%d",&s[i].st.nclass);break;

            case 7:printf("\\n     输入修改后的专业");

             scanf("%s",&s[i].st.zhuanye);break;

            case 8:printf("\\n      输入修改后的楼号");

             scanf("%d",&s[i].bui_num);break;

            case 9:printf("\\n      输入修改后的楼层号");

             scanf("%d",&s[i].floor_num);break;

            case 10:printf("\\n     输入修改后的房间号");

             scanf("%d",&s[i].room_num);break;

            case 11:printf("\\n     输入修改后的床号");

             scanf("%d",&s[i].bed_num);break;

        }

        PRINT1;

        PRINT2;

        printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\\n\\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age,s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);

        break;

        }

        if(i==sum)

          printf("\\n               该学生不存在!");

//          bioskey(0);

          return 0;

/*          printf("\\n\\n              继续修改吗?(Y/N)");

         getchar();

          scanf("%c",&choice);

          if(choice=='y'|| choice=='Y')

          {

            flag=1;

            printf("\\n              继续!\\n");

          }

          else flag=0;   */

         }while(flag==1);

         getchar();

         printf("\\n                 按任意键返回主菜单! ");

         return 0;

  }

             

             

             

 /*更新模块*/

  renew_message()

{

    int choice;

    do

    {

        printf("\\n\\n\\n                    *****更新学生信息*****\\n\\n");

        printf("                          1.添加学生信息\\n\\n");

        printf("                          2.删除学生信息\\n\\n");

        printf("                          3.修改学生信息\\n\\n");

        printf("                          0.返回主菜单\\n\\n");

        printf("                          请选择(0-3): ");

        scanf("%d",&choice);

        switch(choice)

        {

        case 1:insert_message();break;

        case 2:del_message();break;

        case 3:revise_message();break;

        case 0:break;

        }

    }while(choice!=0);

    return 0;

}

    inquire_name()       /*按姓名查询*/

    {

    int  i,j=0;

    char inquire_name[10];

    printf("\\n                     输入要查询的学生姓名: ");

    scanf("%s",inquire_name);

for(i=0;i        if(strcmp(s[i].st.name,inquire_name)==0&&s[i].st.num!=0)

        {

            printf("\\n                       --学生信息--      \\n");

            PRINT1;

            PRINT2;

            

            printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\\n\\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age,

            s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);

        }

        else j++;

        if(j==sum)

            printf("\\n                      该学生不存在!");

                return 0;

    }

   int inquire_num()                  /*按学号查询*/

    {

    int i,j=0,inquire_num;

    printf("\\n                     输入要查询的学生学号: ");

    scanf("%d",&inquire_num);

for(i=0;i        if(inquire_num==s[i].st.num)

        {

            printf("\\n                       --学生信息--\\n");

            PRINT1;

            PRINT2;

            printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\\n\\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age,

            s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);

        }

        else j++;

        if(j==sum)

            printf("\\n                     该学生不存在!");

        return 0;

    }

     /*查询模块*/

  inquire_message()

  {int choice;

   do

   {

    printf("\\n\\n                *****查询学生信息*****\\n\\n");

    printf("                    1.按学生姓名查询\\n");

    printf("                    2.按学生学号查询\\n");

    printf("                    0.回主菜单\\n");

    printf("                    请选择(0-2): ");

    scanf("%d",&choice);

    switch(choice)

    {

    case 1:inquire_name();break;

    case 2:inquire_num();break;

    case 0:break;

    }

   }while(choice!=0);

    return 0;

}

   count_person()                   /*学生住宿情况统计*/

{

    int i,j=0,count_grade,count_nclass;

    char count_zhuanye[20];

    printf("\\n               输入要统计的学生专业,年级,班级: ");

    scanf("%10s %8d %8d",&count_zhuanye,&count_grade,&count_nclass);

         printf("\\n              住宿情况");

         printf("\\n      -------------------------------\\n");

         printf("\\n        姓名    学号    楼号   楼层号   房间号  床号  \\n");

for(i=0;i             if(s[i].st.grade==count_grade&&s[i].st.nclass==count_nclass&&strcmp(s[i].st.zhuanye,count_zhuanye)==0)

              printf("\\n%10s%8d%8d%8d%8d%8d\\n",s[i].st.name,s[i].st.num,s[i].bui_num,s[i].floor_num,

               s[i].room_num,s[i].bed_num);

             else j++;

             if(j==sum)

                 printf("\\n           该学生不存在!");

             return 0;

}

  /*统计模块*/

  count_message()

{

  int choice;

 do

 {

    printf("\\n\\n         *****统计住宿信息*****\\n");

    printf("              1.学生住宿情况统计\\n");

    printf("              0.返回主菜单\\n");

    printf("                请选择(0-1): ");

    scanf("%d",&choice);

    switch(choice)

    {

    case 1:count_person();break;

    case 0:break;

    }

 }while(choice!=0);

  return 0;

}

sort_domitry()                 /*学生宿舍情况排序*/

{

   int i,j ;

    printf("\\n                     宿舍排序\\n");

    printf("       --------------------------------------------\\n");

    printf("\\n        排序   姓名   学号   性别   楼号  楼层号  房间号  床号\\n");

for(i=0;i    {

for(j=i+1;j if(s[i].bui_num            {

                p=s[i];

                s[i]=s[j];

                s[j]=p;

            }

            else if(s[i].bui_num==s[j].bui_num)

if(s[i].floor_num                {

                    p=s[i];

                    s[i]=s[j];

                    s[j]=p;

                }

                else if(s[i].floor_num==s[j].floor_num)

if(s[i].room_num                    {

                        p=s[i];

                        s[i]=s[j];

                        s[i]=p;

                    }

                    else if(s[i].room_num==s[j].room_num)

if(s[i].bed_num                        {

                            p=s[i];

                            s[i]=s[j];

                            s[j]=p;

                        }

    }

for(i=0;i                            if(s[i].st.num!=0)

                                printf("\\n%12d%8s%8d%8c%8d%8d%8d%6d\\n\\n",i+1,s[i].st.name,s[i].st.num,s[i].st.sex,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);

                            return 0;

}

    

  /*排序模块*/

  sort_message()

  { int choice;

    do

    {

        printf("\\n                *****宿舍排序*****\\n");

        printf("                 1.宿舍情况排序\\n");

        printf("                 0.返回主菜单!\\n");

        printf("                 请选择(0-1): ");

        scanf("%d",&choice);

        switch(choice)

        {

        case 1:sort_domitry();break;

        case 0:break;

        }

    }

    while(choice!=0);

    return 0;

}

 void main()

 {

   int choice;

   sum=read_message();

//   bioskey(0);

   do

    {

//    clrscr();

    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("           0.退出系统\\n\\n");

    printf("           请选择(0-6):");

    scanf("%d",&choice);

   switch(choice)

   {

     case 1: input_message(); break;         /*录入模块*/

     case 2: output_message(); break;        /*输出模块*/

     case 3: renew_message(); break;         /*更新模块*/

     case 4: inquire_message(); break;       /*查询模块*/

     case 5: count_message(); break;         /*统计模块*/

     case 6: sort_message(); break;            /*排序模块*/

   ;  case 0: break;                          /*退出系统*/

    }

   }while(choice!=0);

   save_message();

   //save_message(sum)

   printf("\\n以上学生信息已保存!-(文件名:domitry.txt)\\n");

}

八、心得体会

做了一个星期的程序设计终于做完了,在这次程序设计课中,真是让我获益匪浅,我突然发现写程序还挺有意思的。

通过这次的程序设计,发现一个程序设计就是算法与数据结构的结合体,自己也开始对程序产生了前所未有的兴趣,以前偷工减料的学习也不可能一下子写出一个程序出来,于是我就认真看老师写的程序,发现我们看懂了一个程序其实不难,难的是对于一个程序的思想的理解,我们要掌握一个算法,不仅仅限于读懂,主要的是要理解老师的思路,学习老师的解决问题的方法。自己在写程序的时候,发现自己的知识太少了,特别是基础知识很多都是模模糊糊的一个概念,没有落实到真正的程序,所以自己写的时候也感到万分痛苦!

我以后一定会好好学习,学以致用!

文档

宿舍管理系统报告

学生宿舍管理系统一、实验目的1.熟练掌握线性表的基本操作在顺序存储和链式存储上的实现。、;2.以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点;3.掌握线性表的动态分配顺序存储结构的定义和基本操作的实现;4.通过实验帮助学生加深对C语言的使用(特别是函数的参数调用、指针类型的应用和链表的建立等各种基本操作)。二、实验内容我组设计的是“学生宿舍管理系统”,主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学生的管理。包括学生的姓名、学号、性别、专业、班级等等。在编写
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top