一个简单的学生宿舍管理系统(c语言)

2024-01-09 23:20

本文主要是介绍一个简单的学生宿舍管理系统(c语言),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

该程序是一个学生宿舍管理系统,具有以下功能:

  1. 添加学生信息:可以输入学号、姓名、性别、宿舍、联系方式和家庭住址,将学生信息添加到系统中。

  2. 查询学生信息:可以根据学号或姓名查询学生信息,并将查询结果打印出来。

  3. 删除指定学生的记录:可以根据学号或姓名删除指定学生的记录。

  4. 修改指定学生的记录:可以根据学号修改指定学生的姓名、性别、宿舍、联系方式和家庭住址。

  5. 打印学生信息:将系统中所有学生的信息打印出来。

  6. 保存退出:将学生信息保存并退出程序。

#include<stdio.h>
#include <conio.h>
#include<string.h>
#include <stdlib.h>
#include<windows.h>
typedef int datatype;
typedef struct s1                         //为struct s1取一个别名为STUDENT
{char       no[15] ;                      //学号char       name[15] ;                   //学生姓名char      score[20];                   //联系方式char      sushe[15];                   //宿舍 char      xingbei[10];                 //学生性别 char       hom[20] ;                 //学生家庭住址 struct s1  *next ;                    //指向后继结点的指针int          n;                       //添加学生信息的数量 
}changfa,*linklist;void InputData(linklist &H){            //添加学生信息linklist r,p;r=H;p=(linklist)malloc(sizeof(changfa));int i;printf("输入学号:");scanf("%s",p->no);printf("输入姓名:");scanf("%s",p->name);printf("输入性别(男或女):");scanf("%s",p->xingbei);printf("输入宿舍:");scanf("%s",p->sushe);printf("输入联系方式:");scanf("%s",p->score);printf("输入家庭住址:");scanf("%s",p->hom);p->next = r->next;r->next = p;printf("添加成功\n");getch();
}
void PrintMenu( )
{printf("\n\n");printf("***********************************************\n");printf("*                学生宿舍管理系统             *\n");printf("*   1. 添加学生信息                           *\n");printf("*   2. 查询学生信息(学号或姓名)             *\n");printf("*   3. 删除指定学生的记录                     *\n");printf("*   4. 修改指定学生的记录                     *\n");printf("*   5. 打印学生信息                           *\n");printf("*   6. 保存退出                               *\n");printf("***********************************************\n");printf("\n输入要进行的操作(1-6):");
}
int MenuSelect( )
{int key;PrintMenu();scanf("%d",&key);return(key);
}void find(linklist H)
{linklist p;char no[15]; //char name[15];                   //定义一个字符数组no,name和strint choose;int i;p=H;printf("要查询的方式(1是学号,0是姓名):");  //查询方式(姓名或学号)scanf("%d",&choose);if(choose==1){ printf("输入要查询学生的学号:");scanf("%s",no);                          //用输入语句输入一个学号存储到no中}else if(choose==0){  printf("输入要查询学生的姓名:");scanf("%s",no);                      //用输入语句输入一个姓名存储到name中}while(p!=NULL){if (strcmp(p->no,no)==0||strcmp(p->name,no)==0)              //找到了要查询的数据{break;}else{p=p->next;}}if(p!=NULL){printf("|----------------------------TUTE-------------------------|\n");printf("|    学号  |     姓名   | 性别| 宿舍 | 联系方式  |家庭住址| \n");printf("|%s|    %s    |  %s | %s  |%s|  %s  |\n",p->no,p->name,p->xingbei,p->sushe,p->score,p->hom);printf("|----------------------------TUTE-------------------------|\n"); }else{printf("没有此人");}getch();
}
void Delete( linklist &H)
{linklist q,p;p = H;q = H->next;char no[15]; //char name[15];                   //定义一个整数no(用来存储输入的学号)int choose;int flg=0;printf("要删除的方式(1是学号,0是姓名):");  //删除方式(姓名或学号)scanf("%d",&choose);if(choose!=0){ printf("输入要删除学生的学号:");scanf("%s",no);                          //用输入语句输入一个学号存储到no中}else{  printf("输入要删除学生的姓名:");scanf("%s",no);                      //用输入语句输入一个姓名存储到name中}while(q!=NULL){if (strcmp(q->no,no)==0||strcmp(q->name,no)==0)//找到了要查询的数据{flg = 1;p->next = q->next;free(q);printf("删除成功!\n");break;}else{p = q;q = q->next;}}if(flg==0) printf("未找到想删除的记录!\n");getch();
}
void change(linklist &H )   
{linklist p;                                  char no[15];  //定义一个字符数组noint i;p=H;printf("输入要修改学生的学号:");scanf("%s",no);  //用输入语句输入一个学号存储到no中while(p!=NULL){                   if (strcmp(p->no,no)==0) //找到了要查询的数据{break;}else{p=p->next;}}if(p!=NULL){printf("修改后姓名:");scanf("%s",p->name);printf("修改后性别:");scanf("%s",p->xingbei);printf("修改后宿舍:");scanf("%s",p->sushe);printf("修改后联系方式:");scanf("%s",p->score);printf("修改后地址:");scanf("%s",p->hom);printf("修该成功!\n");}else{printf("未找到需修改的记录!\n");}getch();
}
void print(linklist H)
{        linklist p;p=H->next;printf("\n");printf("|----------------------------TUTE-------------------------|\n");printf("|    学号  |     姓名   | 性别| 宿舍 | 联系方式  |家庭住址|\n");printf("|----------|------------|-----|------|-----------|--------|\n");  while(p!=NULL){printf("|%s|    %s    |  %s |  %s |%s|  %s  |\n",p->no,p->name,p->xingbei,p->sushe,p->score,p->hom);p=p->next;}printf("|----------------------------TUTE-------------------------|\n");getch();
}int main()
{linklist H=NULL;H=(linklist)malloc(sizeof(changfa));//生成新结点H->next = NULL;int key;system("color 0A");                  //改变执行窗口的背景色和字体色字体为绿色while(1)                             //死循环{system("cls");key=MenuSelect();switch(key){case 1:InputData(H);                //增加break;case 2:find(H);                  //查询学生信息(学号或姓名)break;case 3:Delete(H);                 //删除一个指定学生的记录数据break;case 4:                        //修改一个指定学生的记录数据change(H);break;case 5:                        //打印所有记录数据print(H);break;case 6:                        //退出程序exit(0);}}
}

这篇关于一个简单的学生宿舍管理系统(c语言)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/588770

相关文章

Python中Request的安装以及简单的使用方法图文教程

《Python中Request的安装以及简单的使用方法图文教程》python里的request库经常被用于进行网络爬虫,想要学习网络爬虫的同学必须得安装request这个第三方库,:本文主要介绍P... 目录1.Requests 安装cmd 窗口安装为pycharm安装在pycharm设置中为项目安装req

SpringBoot简单整合ElasticSearch实践

《SpringBoot简单整合ElasticSearch实践》Elasticsearch支持结构化和非结构化数据检索,通过索引创建和倒排索引文档,提高搜索效率,它基于Lucene封装,分为索引库、类型... 目录一:ElasticSearch支持对结构化和非结构化的数据进行检索二:ES的核心概念Index:

C语言逗号运算符和逗号表达式的使用小结

《C语言逗号运算符和逗号表达式的使用小结》本文详细介绍了C语言中的逗号运算符和逗号表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接其一般形式为:表达

Go语言实现桥接模式

《Go语言实现桥接模式》桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化,本文就来介绍一下了Go语言实现桥接模式,感兴趣的可以了解一下... 目录简介核心概念为什么使用桥接模式?应用场景案例分析步骤一:定义实现接口步骤二:创建具体实现类步骤三:定义抽象类步骤四:创建扩展抽象类步

GO语言实现串口简单通讯

《GO语言实现串口简单通讯》本文分享了使用Go语言进行串口通讯的实践过程,详细介绍了串口配置、数据发送与接收的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录背景串口通讯代码代码块分解解析完整代码运行结果背景最近再学习 go 语言,在某宝用5块钱买了个

SpringBoot整合Apache Spark实现一个简单的数据分析功能

《SpringBoot整合ApacheSpark实现一个简单的数据分析功能》ApacheSpark是一个开源的大数据处理框架,它提供了丰富的功能和API,用于分布式数据处理、数据分析和机器学习等任务... 目录第一步、添加android依赖第二步、编写配置类第三步、编写控制类启动项目并测试总结ApacheS

C++简单日志系统实现代码示例

《C++简单日志系统实现代码示例》日志系统是成熟软件中的一个重要组成部分,其记录软件的使用和运行行为,方便事后进行故障分析、数据统计等,:本文主要介绍C++简单日志系统实现的相关资料,文中通过代码... 目录前言Util.hppLevel.hppLogMsg.hppFormat.hppSink.hppBuf

GO语言zap日志库理解和使用方法示例

《GO语言zap日志库理解和使用方法示例》Zap是一个高性能、结构化日志库,专为Go语言设计,它由Uber开源,并且在Go社区中非常受欢迎,:本文主要介绍GO语言zap日志库理解和使用方法的相关资... 目录1. zap日志库介绍2.安装zap库3.配置日志记录器3.1 Logger3.2 Sugared

Go语言中如何进行数据库查询操作

《Go语言中如何进行数据库查询操作》在Go语言中,与数据库交互通常通过使用数据库驱动来实现,Go语言支持多种数据库,如MySQL、PostgreSQL、SQLite等,每种数据库都有其对应的官方或第三... 查询函数QueryRow和Query详细对比特性QueryRowQuery返回值数量1个:*sql

GO语言中gox交叉编译的实现

《GO语言中gox交叉编译的实现》本文主要介绍了GO语言中gox交叉编译的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、安装二、使用三、遇到的问题1、开启CGO2、修改环境变量最近在工作中使用GO语言进行编码开发,因