宿舍管理系统课程总结

时间:2024.4.20

合肥学院管理系

《信息系统分析与设计》

课程设计

题目:宿舍管理系统

专业:信息管理与信息系统

班级:08信管

学号:0813011002

学生姓名:李兴鹏

指导教师:郭伟光

职称:

引言

 学生宿舍管理系统对于一个学校来说是必不可少的组成部分。目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。而且当查找某条记录时,由于数据量庞大,还只能靠人工去一条条的查找,这样不但麻烦还浪费了许多时间,效率也比较低。当今社会是飞速进步的世界,原始的记录方式已经被社会所淘汰了,计算机化管理正是适应时代的产物。信息世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并取代旧技术。21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。我们针对如此,设计了一套学生宿舍管理系统。学生宿舍管理系统采用的是计算机化管理,系统做的尽量人性化,使用者会感到操作非常方便,管理人员需要做的就是将数据输入到系统的数据库中去。由于数据库存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。这无疑是为信息存储量比较大的学校提供了一个方便、快捷的操作方式。本系统具有运行速度快、安全性高、稳定性好的优点,并且具备完善的报表生成、修改功能,能够快速的查询学校所需的住宿信息

                                                 

1 系统概述

1.1现状描述

合肥学院二期宿舍分为竹,梅,桂三栋,其中竹,桂为男生宿舍,梅栋为女生宿舍。宿舍管理处位于进门左侧,对于宿舍所有的人员信息都收录在一本信息管理册中,遇到需要核对的信息,需要与信息册逐条核对。对于贵重物品例如电脑等,和外来人员来访均需要登记。

1.2系统目标

设计出一个能够完成集系统管理、公寓管理、学生管理、信息查询、出入登记、报表管理等诸多强大功能的宿舍管理系统,节约人力,简化操作,推进后勤管理的信息化建设。

1.3系统开发方法

面向对象系统设计的基本思想是:将一个复杂的系统分解成一个多层次的模块化结构,每一个模块拥有独立的功能。UML模型图揭示了系统内各模块间逻辑关系和逻辑功能。

1.4开发计划

针对本系统的特点,制定开发计划如下:

1.      系统的规划:规划系统的全局。

2.      需求分析和可行性分析:针对系统功能进行。

3.      现状分析:对现在的宿舍管理的具体情况进行详细的了解和分析。

4.      逻辑设计:模块性能。

5.      总体设计:系统的所有功能分析。

6.      详细设计:模块性能设计,人机界面设计。

7.      系统实施:具体的程序的编写。

8.      系统的测试:模块的测试。

2  需求分析

2.1系统需求

2.1.1 基本功能需求   

  本课题要实现的是高校学生宿舍管理系统,在设计该系统时,应尽可能的贴近学生,便于用户操作。系统在实现上应该具有如下功能:   

  1.系统要求用户必须输入正确的用户名和密码才能进入系统。  

  2.系统应该提供学生住宿情况的基本登记。  

  3.系统应提供人员来访登记及结束访问的详细登记。  

  4.系统应提供学生在校期间物品出入宿舍楼的详细情况登记。  

  5.系统应提供查询功能,以方便用户对学生基本信息的查询(要实现按多种条件的查询)及楼房信息的查询。  

   6员工和学生信息的修改,删除。  

2.1.2 报表需求   

  学生宿舍管理系统的某些信息应当能够以报表形式打印出来。基本上应该能够实现学生基本信息的报表打印、某宿舍具体住宿情况的报表打印、某栋宿舍楼的所有员工信息打印、所有学生各年度宿舍交费情况打印、学生物品出入的信息打印及人员来访信息的打印等的功能。  

2.1.3 用户界面需求    

  学生宿舍管理系统应提供简单、层次关系明了、清晰的操作界面,使用户一目了然。尽可能的为用户的录入、查询等功能操作提供方便。快捷按钮的创建也是非常需要的,以方便用户操作。  

2.1.4性能需求      

  系统安全性   

  学生宿舍管理系统中的增加用户、学生学期注册(交住宿费方能注册)、学生毕业离校等的某些模块都是和学生住宿费相联系在一起的,只有每年度的住宿费用交纳完毕才准许该生离校,所以在系统的管理权限上应当进行严格控制,具体思想如下:  

  1.要想对该学生宿舍管理系统进行操作就应当具有某些操作权限。没有权限的用户将不能通过任何渠道来登录该系统,查看该系统的任何信息和数据,以确保系统的严密性和安全性。  

  2.在上述要求基础上可以为该系统设定两种登录方式,程序开始运行所有功能将是不可使用的,只有系统管理员登录和普通用户登录两个窗口可以使用,没有系统管理员或者普通用户的用户名和密码任何人都不能登录该系统。  

  3.在具体实现时还应为系统管理员和普通用户设定不同的权限,系统管理员应当可以使用系统的所有模块,普通用户对于用户管理模块以及牵扯到经济之类的模块是无权使用的。  

2.1.5数据库选择    

  数据库是数据管理的最新技术,是计算机科学的重要分支。十年来,数据库管理系统已从专用的应用程序包发展成为通用系统软件。由于数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。  

  由于用到的数据表格多,另外考虑到实际情况,学生基本信息的变动,还有员工信息的多少的变化,我们选用SQL Server作为数据库开发。  

2.1.6环境    

  本系统是以Windows系统为操作平台,用编程语言和SQL Server数据库来实现高校学生宿舍管理系统所需功能的

2.2主要功能模块介绍

在整体设计中,我们将宿舍管理系统分为八个大的模块:系统管理模块、公寓管理模块、学生管理模块、信息查询模块、出入登记模块、信息修改模块、报表管理模块。

2.2.1 系统管理模块   

  系统管理模块包括:超级用户登录、普通用户登录、用户密码修改、用户管理、退出系统五个部分。  

  1.超级用户登录:实现系统管理人员登录。  

  2.普通用户登录:实现一般管理人员登录。  

  3.用户管理:实现系统管理人员授予或取消一般用户登录该系统的用户名和密码。  

  4.密码修改:实现所用用户的密码更改功能。  

  5.退出系统:实现正常退出宿舍管理系统。  

2.2.2  公寓管理模块    

  公寓管理模块包括:楼房管理、宿舍管理、员工管理三个大的部分。  

  1.楼房管理:登记学校所有住宿楼情况。  

  2.宿舍管理:登记学校所有宿舍的情况。  

  3.员工原理:实现楼房管理人员的添加功能。  

2.2.3  学生管理模块    

学生管理模块包括:学生基本信息录入、学生财物登记。

1.学生基本信息录入:实现学生基本信息情况的登记及宿舍的分配功能。  

  2.学生财物登记:登记学生在校期间所拥有的公共及私有贵重物品情况。  

2.2.4  信息查询模块    

  信息查询模块基本上包括:按学号进行查询、按姓名进行查询、按班级查询、按寝室号查询、每栋楼房住宿情况查询五个部分。  

  1.按学号进行查询:实现每个学生基本信息情况的查询功能。  

  2.按姓名查询:通过学生姓名查询学生基本信息情况。  

  3.按班级查询:通过班级查询某班级学生住宿情况及该班级学生信息。  

  4.按寝室号查询:查看每个宿舍所住学生信息情况。  

5.楼房住宿情况查询:查询每栋楼房的所有宿舍的住宿情况及宿舍楼所住学生统计情况。  

2.2.5  出入登记模块   

出入登记模块包括:进楼物品登记、出楼物品登记、人员来访登记、结束访问登记四个功能模块。  

1.进楼物品登记:详细登记某学生搬入宿舍楼的物品情况。  

2.出楼物品登记:详细登记某学生搬出宿舍楼的物品情况。  

3.人员来访登记:详细登记进入宿舍楼的外来人员情况。  

4.结束访问登记:详细登记外来人员的离开情况。  

2.2.6  信息修改模块   

信息修改模块包括:学生基本信息修改、员工基本信息修改、个人财物信息修改三个大的功能。  

1.学生基本信息修改:实现系统管理人员对学生基本信息情况所作的添加、修改、删除。  

2.员工信息修改:实现系统管理人员对楼房员工的修改、删除功能。

3.个人财物修改:实现对学生个人财物的添加、修改、删除功能。  

2.2.7  报表管理模块   

报表管理模块包括:(按楼或系)学生信息打印、员工信息打印、物品出入楼信息打印、某宿舍住宿情况打印四个功能。  

1.学生信息:查询并打印每个学生的详细基本信息情况。  

2.员工信息:查询并打印每栋宿舍楼的所有员工信息情况。  

 

4.物品出入楼信息:查询并打印某学生的物品出入宿舍楼的信息情况。  

5.宿舍住宿情况:查询并打印某个宿舍的详细住宿情况。  

3系统的UML建模

4 系统实现

4.1 开发工具

本系统为移动公司内部使用,为C/S模式下的管理测评系统。主要是图形用户界面编程。基于此前台采用Visual C++6.0进行开发,后台采用SQL Server 2000作为数据库开发。

4.2 软件界面拷屏

由于时间有限,只实现了系统的登录模块,系统管理模块,基础信息维护模块这几个功能,相关的界面拷屏如下:

登录界面:

用户设置界面:

4.3 模块测试结果

由于时间有限,只是实现了登录模块,系统管理模块和基础信息维护模块,基本达到了预期的效果。登录模块可以实现用户ID和密码的匹配,并且可以获得相应的用户权限登录。系统管理模块可以实现对当前用户的密码修改,超级用户可以设置人员的权限,管理员可以进行系统员工的录,删,改。基础信息维护可以实现对员工信息的查询,超级用户可以对准则层评价数据和因数层评价数据进行录,删,改,查。模块测试成功。

4.4 系统测试结果

由于时间有限,没有完成系统的整个开发,测试将在以后进行。

5 心得和体会

通过对宿舍管理系统的设计,使我们从理论的水平提升到实践操作层次,提高了我们的动手能力,以及运用所学的知识解决实际问题的能力,对我们以后的工作无疑会产生重要的影响。通过具体的实践操作加深了我们对课本知识的了解,同时也发现了我们自身的不足之处,例如在建模过程中,一些模型图刚开始总是弄错其中的一些关系问题,说明我们的理论知识还不够扎实,但通过我们的努力最终还是完成了整个课程设计。提高了我们团队意识,团结协作能力,毕竟这个课程设计是小组所有人员努力。由于我们自身能力的有限还有许多不完善的地方希望老师能够指出。

最后感谢老师在课程设计过程给出的建议和所有小组成员的努力。

参考文献:《信息系统分析与设计》耿骞,高等教育出版社

小组成员及任务分配


第二篇:c语言课程设计报告(宿舍管理系统)


西安郵電學院

C语言课程设计报告书

系部名称

学生姓名 专业名称

班 级

学号 通信工程系 xxx 通信工程专业 xxxxx班 xxxxxxxx

指导教师 xxxx

20xx年06月07日至

时间

20xx年06月18日

实验题目:学生宿舍管理系统

一、实验目的

通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法。通过这次实习练习,可以更进一步的熟悉所学的知识,还可以加强和巩固知识。长达两周的上机练习,为我们提供了很好的编程环境。更好的了解编程的意义,为将来参加实践活动以及以后的毕业设计打下坚实的基础。

二、实验内容

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

三、需求分析

该程序是由C语言编写的一个宿舍管理查询软件,本程序在Microsoft Visual C++ 6.0

下运行,其主要功能是实现对学生信息的录入、添加、删除、修改、查询、统计。其中查询可以分别以姓名、学号、宿舍号为关键字查询学生信息。统计可以分别以学号、宿舍号、性别、班级、专业为关键字进行统计,并且输出信息按学号大小从小到大输出。

四、概要设计

1、方案设计

2、数据结构说明

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

char name[20]; /*学生姓名*/

c语言课程设计报告宿舍管理系统

char dorm[7]; /*宿舍号*/

char num[10]; /*学号*/

char sex[5]; /*性别*/

char age[4]; /*年龄*/

char major[20]; /*专业*/

char classs[8]; /*班级*/

3、模块功能说明

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

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

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

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

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

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

五、详细设计及运行结果

1.函数之间调用关系图

c语言课程设计报告宿舍管理系统

c语言课程设计报告宿舍管理系统

2.登陆界面 主函数流程图

主页界面

c语言课程设计报告宿舍管理系统

录入模块

录入界面

c语言课程设计报告宿舍管理系统

修改模块

c语言课程设计报告宿舍管理系统

c语言课程设计报告宿舍管理系统

c语言课程设计报告宿舍管理系统

统计模块

c语言课程设计报告宿舍管理系统

统计界面

c语言课程设计报告宿舍管理系统

六、调试情况,设计技巧及体会

1、测试数据

对功能1(密码系统测试)的测试:先注册账号密码分别为:1,1,然后退出程序进行登录测试。输入一组错误账号密码系统显示“输入的账号或密码有误,请重新输入!”。在输入正确密码,系统显示“登陆成功”并进入主界面。

对功能2(录入学生信息)的测试:按照先后顺序分别输入学生信息:

学号 姓名 班级 宿舍号 性别 年龄 专业

03091002 张三 0901 13#401 男 20 通信工程

03091001 李四 0902 13#401 男 20 计算机

对功能3(添加学生信息)的测试:按照先后顺序分别输入学生信息:

学号 姓名 班级 宿舍号 性别 年龄 专业

03091004 王红 0901 14#401 女 20 通信工程

03091003 李娜 0902 14#401 女 20 计算机

对功能4(修改学生信息)的测试:输入要修改学生的姓名:王五,系统显示“该学生信息不存在”。输入修改学生姓名:张三,系统显示出该学生信息。选择修改学号为:03091005,系统显示出修改后的学生信息。

对功能5(删除学生信息)的测试:输入要删除学生的学号:03091001,系统显示“该学生信息不存在”。输入要删除的学生的学号:03091005,系统显示出该学生信息。选择删除该学生信息。

对功能6(查询学生信息)的测试:查询宿舍号为14#401的信息,系统显示为:

学号 姓名 班级 宿舍号 性别 年龄 专业

03091003 李娜 0902 14#401 女 20 计算机

03091004 王红 0901 14#401 女 20 通信工程

对功能7(统计学生信息)的测试:选择按学号统计,系统显示为:

学号 姓名 班级 宿舍号 性别 年龄 专业

03091002 张三 0901 13#401 男 20 通信工程

03091003 李娜 0902 14#401 女 20 计算机

03091004 王红 0901 14#401 女 20 通信工程

学生总人数3人,其中男生1人,女生2人。

对功能8(退出系统)的测试:选择退出系统,程序关闭。

2、对调试中主要问题进行总结

调试过程中,经常会出现输入或显示为乱码的情况,这往往是上下定义的数据类型不同

或定义数组长度不够所造成的。有时候程序中还会出现录入五个数据而只显示四个的情况,

这也往往是由于定义的结构体数组长度过低所造成的。像这类问题只要把数据类型都定义成

字符型,并且定义一个合理的数组长度往往都能解决。在调试过程中我遇到最大的问题出现

在删除模块。在运用“rt+”打开文件并对某一数据进行删除后,往往显示会多显示一行数

据。这是由于“rt+”写数据时只会覆盖数据而不会清除原文件数据,因此文件最后一行数

据总会保留在原文件中。后来我先用“rt”打开文件并读取文件中的数据,然后再用“wt”

打开原文件将删除后的数据重新写入文件,最终检测运行成功。

3、对自己设计进行评价,指出合理和不足之处,提出改进的方案

本程序拥有很多的优点:第一,它具有作为一个宿舍管理系统的各个功能,包括录入信

息、添加信息、修改信息、删除信息、查询信息、统计信息六大主要功能。可以方便的进行

住宿学生信息的管理。第二,它的各个功能模块在实现时非常方便,例如:录入和添加学生

信息可以自己控制录入和添加的人数;统计学生信息可以分学号、班级、专业等进行统计等

等。第三,它也具有安全性,在进入学生信息管理系统之前要求输入账号和密码,所以非常

安全,不会造成信息的外泄。当然程序也有他的不足之处,比如密码不能回显“*”,这样很

容易造成密码的丢失。可以在密码模块中改为回显“*”形式,并且可以对密码进行算法加

密,这样更能确保信息的安全。

4、在设计过程中的感受

“万事开头难”这句话在我编写程序的过程中得到了真正的体现。在最初编写的几天里

出现了这样那样的错误一大堆,这主要是由于我对基础知识掌握不扎实所造成的。但是随后

几天里,我对课本知识进行了回顾并不时的向老师和同学进行请教,慢慢的对编写程序也开

始得心应手起来。程序的编写总归是一件费时费力的事情,但只要我们认真编写和调试最后

总能成功。

短短的两周实习时间我收获颇多,我相信经过这次实习必将为我以后的深入学习打下扎

实的基础。

参考文献:《C语言程序设计》(第二版) 王曙燕 科学出版社

七、源程序清单

#include"stdio.h"

#include"string.h"

#include"stdlib.h"

#include"io.h"

#define N 900

struct cipher

{char account[6];

char code[6];

}m[10];

cipher() /*密码模块*/

{ int i,k=0,flag,flag1,flag2,fno,fsize,fnum,choice;

char account[6];

char code[6],code1[6];

FILE *fp1;

printf ("\n\n\n\n\n\n\n ***********学生宿舍管

理系统**********\n");

printf (" * 1.登陆 *\n");

printf (" * 2.注册

*\n");

printf

*************************************\n");

scanf("%d",&choice);

system("cls");

switch(choice)

{case 1: fp1=fopen("code.txt","rt");

if(fp1==NULL)

{printf("\n\n*****你还没有注册,按任意键退出!"); getchar();

exit(1);

}

fno=fileno(fp1);

fsize=filelength(fno);

fnum=fsize/sizeof(struct cipher);

while(k<3)

{getchar();

system("cls");

printf("请输入账号:");

gets(account);

printf("请输入密码:");

gets(code);

for(i=0;i<fnum;i++)

{ fread(&m,sizeof(struct cipher),1,fp1);

if(!strcmp(m[i].account,account)) flag1=0; else flag1=1;

if(!strcmp(m[i].code,code)) flag2=0;

else flag2=1;

if(flag1==0&&flag2==0)

{ fclose(fp1);

printf("登陆成功!\n");

system("pause");

return 1;

}

}

if(i==fnum)

{printf("输入的账号或密码有误,请重新输入!"); k++;

}

}

printf("连续3次输入错误,退出!\n"); system("pause"); ("

exit(1);

case 2:fp1=fopen("code.txt","at+");

if(fp1==NULL)

{printf("\n\n*****文件打开错误。按任意键退出!"); getchar();

exit(1);

}

do

{system("cls");

getchar();

printf("请输入注册账号:");

gets(m[0].account);

printf("请输入注册密码:");

gets(m[0].code);

printf("请再次输入注册密码:");

gets(code1);

if(!strcmp(m[0].code,code1))

{fwrite(&m[0],sizeof(struct cipher),1,fp1);

fclose(fp1);

flag=0;

}

else

{

printf("两次密码输入不同,请重新注册!"); getchar();

flag=1;

}

}while(flag==1);

printf("注册成功!\n");

getchar();

system("cls");

break;

}

return 1;

}

struct st_message /*学生信息*/

{

char name[20]; /*学生姓名*/

char dorm[7]; /*宿舍号*/

char num[10]; /*学号*/

char sex[5]; /*性别*/

char age[4]; /*年龄*/

char major[20]; /*专业*/

char classs[8]; /*班级*/

}st[N],t;

sort_message() /*排序模块*/

{int i,j,fno,fsize,fnum;

FILE *fp;

fp=fopen("student.txt","rt+");

if(fp==NULL)

{printf("\n\n*****文件打开错误。按任意键退出!"); getchar();

exit(1);

}

fno=fileno(fp);

fsize=filelength(fno);

fnum=fsize/sizeof(struct st_message);

for(i=0;i<fnum;i++)

fread(&st[i],sizeof(struct st_message),1,fp); for(i=0;i<fnum-1;i++)

for(j=i+1;j<fnum;j++)

if(strcmp(st[i].num,st[j].num)>0)

{t=st[i];

st[i]=st[j];

st[j]=t;

}

rewind(fp);

for(i=0;i<fnum;i++)

fwrite(&st[i],sizeof(struct st_message),1,fp); fclose(fp);

}

input_message() /*录用信息模块*/

{int i;

char choice;

FILE *fp;

fp=fopen("student.txt","at+");

if(fp==NULL)

{printf("\n\n*****库存文件不存在!请建立。按任意键退出!");

getchar();

exit(1);

}

for (i=0;;i++)

{ system ("cls");

getchar();

printf("请输入学生姓名:");

gets(st[i].name);

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

gets(st[i].classs);

printf("\n请输入学生宿舍号:");

gets(st[i].dorm);

printf("\n请输入学生学号:");

gets(st[i].num);

printf("\n请输入学生性别:");

gets(st[i].sex);

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

gets(st[i].age);

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

gets(st[i].major);

fwrite(&st[i],sizeof(struct st_message),1,fp);

printf("输入成功!\n是否继续录入(Y/N)?");

choice=getchar();

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

continue;

else

{ fclose(fp);

break;

}

}

}

append_message() /*添加模块*/

{int i;

char choice;

FILE *fp;

fp=fopen("student.txt","at+");

if(fp==NULL)

{printf("\n\n*****库存文件不存在!请建立。按任意键退出!"); getchar();

exit(1);

}

for (i=0;;i++)

{struct st_message st[N];

system ("cls");

getchar();

printf("请输入所添加学生姓名:"); gets(st[i].name);

printf("\n请输入所添加学生班级:"); gets(st[i].classs);

printf("\n请输入所添加学生宿舍号:"); gets(st[i].dorm);

printf("\n请输入所添加学生学号:"); gets(st[i].num);

printf("\n请输入所添加学生性别:"); gets(st[i].sex);

printf("\n请输入所添加学生年龄:"); gets(st[i].age);

printf("\n请输入所添加学生专业:"); gets(st[i].major);

fwrite(&st[i],sizeof(struct st_message),1,fp); printf("输入成功!\n是否继续添加(Y/N)?"); choice=getchar();

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

continue;

else

{fclose(fp);

break;

}

}

}

revise_message() /*修改模块*/

{int i,choice,flag,fno,fsize,fnum;

char re_name[20],s[20];

FILE *fp;

do

{fp=fopen("student.txt","rt+");

fno=fileno(fp);

fsize=filelength(fno);

fnum=fsize/sizeof(struct st_message); system("cls");

gets(s);

printf("请输入需要修改的学生姓名:"); gets(re_name);

for (i=0;i<fnum;i++)

{

fread(&st[i],sizeof(struct st_message),1,fp);

if(!strcmp(re_name,st[i].name))

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

printf("学号------姓名----班级--宿舍号--性别--年龄--专业---\n");

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

printf("%-8s %-6s %-4s %-6s %-4s %-4s %-20s\n",st[i].num,st[i].name,

st[i].classs,st[i].dorm,st[i].sex,st[i].age,st[i].major); printf("您要修改哪一项?\n");

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

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

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

printf("4.宿舍号\n");

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

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

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

printf("8.返回主页\n");

scanf("%d",&choice);

switch(choice)

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

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

case 2:printf("\n请输入修改后的姓名:"); scanf("%s",st[i].name);break;

case 3:printf("\n请输入修改后的班级:"); scanf("%s",st[i].classs);break;

case 4:printf("\n请输入修改后的宿舍号:"); scanf("%s",st[i].dorm);break;

case 5:printf("\n请输入修改后的性别:"); scanf("%s",st[i].sex);break;

case 6:printf("\n请输入修改后的年龄:"); scanf("%s",st[i].age);break;

case 7:printf("\n请输入修改后的专业:"); scanf("%s",st[i].major);break;

case 8:return 1;

}

getchar();

system("cls");

printf("\n -----修改后的学生信息-----\n\n"); printf("学号------姓名----班级--宿舍号--性别--年龄--专业---\n");

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

printf("%-8s %-6s %-4s %-6s %-4s %-4s %-20s\n",st[i].num,st[i].name,

st[i].classs,st[i].dorm,st[i].sex,st[i].age,st[i].major); rewind(fp);

fseek(fp,sizeof(struct st_message)*i,0);

fwrite(&st[i],sizeof(struct st_message),1,fp);

fclose(fp);

break;

}

}

if(i==fnum)

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

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

choice=getchar();

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

{flag=1;

system("pause");

}

else flag=0;

}while(flag==1);

return 1;

}

delete_message() /*删除模块*/

{int i,j,choice,fno,fsize,fnum;

char d_num[10];

FILE *fp;

system("cls");

getchar();

fp=fopen("student.txt","rt");

if(fp==NULL)

{printf("\n\n*****库存文件不存在!请先建立。按任意键退出!"); getchar();

exit(1);

}

fno=fileno(fp);

fsize=filelength(fno);

fnum=fsize/sizeof(struct st_message);

for(i=0;i<fnum;i++)

fread(&st[i],sizeof(struct st_message),1,fp);

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

gets(d_num);

system("cls");

for(i=0;i<fnum;i++)

{if(!strcmp(d_num,st[i].num))

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

printf("学号------姓名----班级--宿舍号--性别--年龄--专业---\n"); printf("-----------------------------------------------------\n");

printf("%-8s %-6s %-4s %-6s %-4s %-4s %-20s\n",st[i].num,st[i].name,

st[i].classs,st[i].dorm,st[i].sex,st[i].age,st[i].major);

printf("\n是否删除该学生信息:\n");

printf("1.是\n");

printf("2.否\n");

scanf("%d",&choice);

switch(choice)

{case 1:for(j=i;j<fnum-1;j++)

st[j]=st[j+1];

rewind(fp);

fp=fopen("student.txt","wt");

for(i=0;i<fnum-1;i++)

fwrite(&st[i],sizeof(struct st_message),1,fp);

fclose(fp);

getchar();

break;

case 2:printf("按任意键返回主菜单!");

getchar();

return 0;

}

break;

}

}

if(i==fnum)

{printf("所查学生信息不存在,按任意键返回主菜单!"); getchar();

return 0;

}

printf("删除信息成功,按任意键返回主菜单!");

return 1;

}

find_message() /*查找信息模块*/

{int i,choice,flag,fno,fsize,fnum;

char f_name[20];

char f_num[10];

char f_dorm[7];

FILE *fp;

system("cls");

do

{ sort_message();

fp=fopen("student.txt","rt");

if(fp==NULL)

{printf("\n\n*****库存文件不存在!请先建立。按任意键退出!"); getchar();

exit(1);

}

fno=fileno(fp);

fsize=filelength(fno);

fnum=fsize/sizeof(struct st_message);

system("cls");

printf("请选择查询方式:\n");

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

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

printf("3.按宿舍号查询\n");

printf("4.返回主页\n");

scanf("%d",&choice);

system("cls");

getchar();

switch(choice)

{case 1:printf("请输入需要查询的姓名:\n");

gets(f_name);

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

printf("学号------姓名----班级--宿舍号--性别--年龄--专业---\n");

printf("-----------------------------------------------------\n"); for (i=0;i<fnum;i++)

if(!strcmp(f_name,st[i].name))

printf("%-8s %-6s %-4s %-6s %-4s %-4s %-20s\n",st[i].num,st[i].name,

st[i].classs,st[i].dorm,st[i].sex,st[i].age,st[i].major);

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

case 2:printf("请输入要查询的学号:");

gets(f_num);

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

printf("学号------姓名----班级--宿舍号--性别--年龄--专业---\n");

printf("-----------------------------------------------------\n"); for (i=0;i<fnum;i++)

{fread(&st[i],sizeof(struct st_message),1,fp);

if(!strcmp(f_num,st[i].num))

printf("%-8s %-6s %-4s %-6s %-4s %-4s %-20s\n",st[i].num,st[i].name,

st[i].classs,st[i].dorm,st[i].sex,st[i].age,st[i].major); }

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

case 3:printf("请输入要查询的宿舍号:");

gets(f_dorm);

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

printf("学号------姓名----班级--宿舍号--性别--年龄--专业---\n");

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

for (i=0;i<fnum;i++)

{fread(&st[i],sizeof(struct st_message),1,fp);

if(!strcmp(f_dorm,st[i].dorm))

printf("%-8s %-6s %-4s %-6s %-4s %-4s %-20s\n",st[i].num,st[i].name,

st[i].classs,st[i].dorm,st[i].sex,st[i].age,st[i].major); }

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

case 4:return 0;

}

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

choice=getchar();

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

{flag=1;

system("pause");

}

else flag=0;

}while(flag==1);

return 1;

}

census_message() /*统计信息模块*/

{int i,choice,fno,fsize,fnum;

int m=0,n=0,k=0;

char dorm[7];

char classs[8];

char major[20];

FILE *fp;

sort_message();

fp=fopen("student.txt","rt");

if(fp==NULL)

{printf("\n\n*****文件打开错误。按任意键退出!");

getchar();

exit(1);

}

fno=fileno(fp);

fsize=filelength(fno);

fnum=fsize/sizeof(struct st_message);

system("cls");

printf("请选择显示方式:\n");

printf("1.按学号显示\n");

printf("2.按宿舍号显示\n");

printf("3.按性别显示\n");

printf("4.按班级显示\n");

printf("5.按专业显示\n");

printf("6.返回主页\n");

scanf("%d",&choice);

system("cls");

switch(choice)

{case 1: printf("\n -----学生信息-----\n\n");

printf("学号------姓名----班级--宿舍号--性别--年龄--专业---\n");

printf("-----------------------------------------------------\n"); for(i=0;i<fnum;i++)

{ fread(&st[i],sizeof(struct st_message),1,fp);

{ printf("%-8s %-6s %-4s %-6s %-4s %-4s %-20s\n",st[i].num,st[i].name,

st[i].classs,st[i].dorm,st[i].sex,st[i].age,st[i].major); k++;

if(!strcmp(st[i].sex,"男")) m++;

if(!strcmp(st[i].sex,"女")) n++;

}

}

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

printf("\n\n学生总人数为%d,其中男生为%d,女生为%d。",k,m,n);

break;

case 2: getchar();

printf("请输入要显示的宿舍号:");

gets(dorm);

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

printf("学号------姓名----班级--宿舍号--性别--年龄--专业---\n");

for (i=0;i<fnum;i++)

if(!strcmp(dorm,st[i].dorm))

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

printf("%-8s %-6s %-4s %-6s %-4s %-4s %-20s\n",st[i].num,st[i].name,

st[i].classs,st[i].dorm,st[i].sex,st[i].age,st[i].major); }

break;

case 3:printf("请输入需要显示的性别:\n");

printf("1.男\n");

printf("2.女\n");

scanf("%d",&choice);

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

printf("学号------姓名----班级--宿舍号--性别--年龄--专业---\n");

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

{case 1: for(i=0;i<fnum;i++)

if(!strcmp(st[i].sex,"男"))

{ printf("%-8s %-6s %-4s %-6s %-4s %-4s %-20s\n",st[i].num

,st[i].name,

st[i].classs,st[i].dorm,st[i].sex,st[i].age,st[i].major);

m++;

}

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

printf("\n\n男生人数为%d。",m); break;

case 2: for(i=0;i<fnum;i++)

if(!strcmp(st[i].sex,"女"))

{ printf("%-8s %-6s %-4s %-6s %-4s %-4s %-20s\n",st[i].num,st[i].name,

st[i].classs,st[i].dorm,st[i].sex,st[i].age,st[i].major);

n++;

}

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

printf("\n\n女生人数为%d。",n);

break;

}

break;

case 4: getchar();

printf("请输入要显示的班级:");

gets(classs);

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

printf("学号------姓名----班级--宿舍号--性别--年龄--专业---\n");

printf("-----------------------------------------------------\n"); for (i=0;i<fnum;i++)

if(!strcmp(classs,st[i].classs))

{ printf("%-8s %-6s %-4s %-6s %-4s %-4s %-20s\n",st[i].num,st[i].name,

st[i].classs,st[i].dorm,st[i].sex,st[i].age,st[i].major); k++;

if(!strcmp(st[i].sex,"男")) m++;

if(!strcmp(st[i].sex,"女")) n++;

}

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

printf("\n\n该班学生总人数为%d,其中男生为%d,女生为%d。",k,m,n);

break;

case 5: getchar();

printf("请输入要显示的专业:");

gets(major);

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

printf("学号------姓名----班级--宿舍号--性别--年龄--专业---\n");

printf("-----------------------------------------------------\n"); for (i=0;i<fnum;i++)

if(!strcmp(major,st[i].major))

{ printf("%-8s %-6s %-4s %-6s %-4s %-4s %-20s\n",st[i].num,st[i].name,

st[i].classs,st[i].dorm,st[i].sex,st[i].age,st[i].major); k++;

if(!strcmp(st[i].sex,"男")) m++;

if(!strcmp(st[i].sex,"女")) n++;

}

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

printf("\n\n该专业学生总人数为%d,其中男生为%d,女生为%d。",k,m,n);

break;

case 6: return 0;

}

fclose(fp);

system("pause");

return 1;

}

void main()

{int choice;

cipher();

do

{

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(" 0.退出系统\n\n"); printf("请选择0-6:");

scanf("%d",&choice);

switch(choice)

{case 1: input_message();break;

case 2: append_message();break;

case 3: revise_message();break;

case 4: delete_message();break;

case 5: find_message();break;

case 6: census_message();break;

case 0: break;

}

}while(choice!=0);

}

更多相关推荐:
学校宿舍管理总结

20xx-20xx年上学期宿舍管理总结我校是一所农村寄宿制中学,现有住校生115人,其中男生56人,女生59人。近年来,在学校领导和全校师生的共同努力下,我校在宿舍管理工作中取得了一定的成绩。现将具体工作汇报如…

宿舍管理总结

学生宿舍管理工作总结学生宿舍管理在学校领导的关心,支持和学生处的正确领导下,紧紧围绕学校的中心工作,坚持教育,管理,指导和服务相结合的原则,以育人为核心,从服务为宗旨,以制度建设和科学管理为手段,积极致力于营造…

食堂宿舍管理总结

苍溪县东溪镇中心小学校食堂宿舍规范管理工作总结二〇20xx年x月东溪教育督导站组织召开东溪片区学校幼儿园食堂宿舍规范管理推进会,对学校幼儿园食堂宿舍规范管理提出新的要求和期望,我校积极贯彻落实会议精神,突出重点…

男生宿舍管理总结+宋士江

男生宿舍管理工作总结上龛中学:宋士江我校是一所农村寄宿制中学,现有男住宿生8人。近年来,在学校领导和全校师生的共同努力下,我校在宿舍管理工作中取得了一定的成绩。现将具体工作总结汇报如下:一、领导重视,职责明确强…

宿舍管理总结ok

20xx-20xx学年第一学期宿舍管理工作总结新学期伊始,我校迎来了本校第一批住校生。在学校领导的关心、支持和正确领导下,在全体班主任老师的大力配合下,紧紧围绕学校的中心工作,坚持教育、管理、指导和服务相结合的…

20xx-20xx宿舍管理总结

20xx-20xx学年第一学期宿舍管理总结一学期的工作即将结束,回顾本学期我在宿舍的管理历程,既有成功的经验,也有许多不足的方面和失败的教训。现将本学期工作总结如下:一、卫生方面本学期,在校领导的关心和支持下,…

学校宿舍管理总结

朱坑一中宿舍管理工作总结我校是一所农村寄宿制中学,在学校领导和全校师生的共同努力下,我校在宿舍管理工作中取得了一定的成绩。现将具体工作汇报如下:一、领导重视,职责明确强化宿舍管理,不单是学生健康成长问题,更重要…

宿管部个人工作总结

宿管部个人工作总结在我加入学生会这半年里对宿管部了解很多宿管部是一个很重要的部门它与学生们的日常生活密切相关宿管部是协助老师为学生建设良好的学习生活环境帮助同学提出问题的部门同时宿管部又是协助学生会搞好各项活动...

宿舍管理总结

动之以情晓之以理站街初级中学男寝管理点滴动之以情晓之以理一切都在情理中管理学生从中学会合作学会生活从中培养自理能力养生良好的习惯做合格的中学生提高学校教学质量作为寝管我是这样想的也是这样做的我校男寝共25个宿舍...

宿舍管理工作总结

20xx20xx学年第一学期学生宿舍管理工作总结商丘科技职业学院管理系二一一年六月管理系学生宿舍管理工作总结本学期在学校领导的关心支持和学工部的正确领导下在全体辅导员老师学生干部的大力配合下我系紧紧围绕学院的中...

后勤宿舍管理员年度总结精选

年度工作总结光阴似箭日月同辉时如瞬间兴度转眼20xx年即将过去这一年来后勤工作在部门主管的直接领导和同时的共同努力下总体情况较上年有所好转本职一切工作均围绕公司根本利益及员工的切身利益和着重点而开展尽最大的努力...

员工宿舍管理条例

员工宿舍管理条例一目的为加强员工宿舍管理营造一个整洁舒适安全有序的住宿环境二日常管理1入住人员一律凭员工宿舍入住申请单安排入住2离职人员或要求退宿人员须在3天之内搬离宿舍并把钥匙归还财务室由校区购买的相关物资不...

宿舍管理总结(61篇)