广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言实现宿舍管理系统
  • 666
分享到

C语言实现宿舍管理系统

2024-04-02 19:04:59 666人浏览 泡泡鱼
摘要

本文实例为大家分享了C语言实现宿舍管理系统的具体代码,供大家参考,具体内容如下 本次大一课设的作品,从空项目开始写的,全部在txt文件中增改删。变量命名太土了,代码格式还有待优化,望

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

本次大一课设的作品,从空项目开始写的,全部在txt文件中增改删。变量命名太土了,代码格式还有待优化,望大佬指点。程序有个缺点就是不能把字符串互相对齐,看着不美观。mysubstr是参考了论坛某位大佬的代码,再此感谢。

主界面是这样的

以下为源代码: 

#include<stdio.h>
#include<string.h>
#include<process.h>
#include<coNIO.h>
#define MAX_LINE 1024
#include<malloc.h>
#include <assert.h>
char* mysubstr(char* srcstr, int offset, int length) {
    assert(length > 0);
    assert(srcstr != NULL);
    int total_length = strlen(srcstr);
    int real_length = ((total_length - offset) >= length ? length : (total_length - offset)) + 1;
    char *tmp;
    if (NULL == (tmp=(char*) malloc(real_length * sizeof(char)))) {
        printf("Memory overflow . \n");
        exit(0);
    }
    strncpy(tmp, srcstr+offset, real_length - 1);
    tmp[real_length - 1] = '\0';
 
    return tmp;
}    //首先获取srcstr的长度
    //判断srcstr的长度减去需要截取的substr开始位置之后,剩下的长度
    //是否大于指定的长度length,如果大于,就可以取长度为length的子串
    //否则就把从开始位置剩下的字符串全部返回。
int open=0,n,house=0;//open为判断是否登录的变量,登录为1否则为0 
void menu(void);
void admin(void);
void student(void);
void house1();
void search(void);    
void clean(void);
void delete1(void);
void sushe(void);
void weisheng(void);
void searweisheng(void);
void checkout(void);
struct student
{
int xuehao;
int sushe;
char name[100];
char zhuanye[100];
};
 
struct clean
{
    int sushe;
    char days[100];
    char time[20];
    char level;
    char fial[20];    
};
int main()
{
int flag=0;
 
menu();
do
{
    flag=1;
 switch(getch())
        {    
            case '1' : system("cls");admin();break;    
            case '2' : system("cls");student();break;    
            case '3' : system("cls");house1();break;    
            case '4' :system("cls");weisheng();break;    
            case '5' : system("cls");search();break;    
            case '6' : system("cls");clean();break;        
             case '7' : system("cls"); student();break;        
            case '8' : system("cls");delete1();break;    
            case '9' : system("cls");checkout();break;        
            case '0' :exit(0);             
            default : printf("输入有误\n");
        }
        printf("\n");
        printf("按任意键继续\n");
        getch();
        menu();
}while(flag==1);
}
void admin()
{
    int account=0,passWord=0,password_1=0,a=0;
    FILE  *fread=fopen("amdin.txt","r");
    FILE *fwrite=fopen("amdin.txt","a+");    ;
    fscanf(fread,"%*[^\n]");
    fscanf(fread,"%d\t%d",&account,&password);
if(account==0)//fwrite==null
{
printf("未查找到账号,请创建账号"); 
fprintf(fwrite,"账号\t密码\n");
loop:a=scanf("%d%d",&account,&password_1);
if(a==2){
printf("创建成功");
fprintf(fwrite,"%d\t%d",account,password_1);
}else{
printf("创建失败");
Goto loop;
}
}else{
 fscanf(fwrite,"%*[^\n]");
 printf("账号:");
 fscanf(fwrite,"%d\t",&account);    
 printf("%d",account);
 printf("请输入密码");
 scanf("%d",&password);
 fscanf(fwrite,"%d",&password_1);
 if(password_1==password)
{
  open=1;
  printf("登录成功");  
}
 else
 printf("登录失败,请检查密码是否错误");  
}
fclose(fread);
fclose(fwrite);
} 
void menu()
{
    system("cls");
    if(open==1)
    printf("                            当前状态:已登录                                \n");
    else
    printf("                            当前状态:未登录                                \n");
    printf("***************************欢迎进入宿舍管理系统****************************\n");
    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");
    printf("|9---------------------------退宿记录------------------------------------| \n");
    printf("|0---------------------------退出系统------------------------------------| \n");
    printf("***************************************************************************\n");
    printf("--------------------------请输入您的选择-----------------------------------\n");
 
}
 
void student()
{
    if(open==1)
{    
    int n,i,k=0;
    char Q;
printf("请输入需录入的学生个数(学号为八位数!):"); 
scanf("%d",&n);
struct student stu1[n];
printf("学号\t\t学生姓名\t专业班级\t宿舍号\n"); 
for(int i=0;i<n;i++)
{
scanf("%d",&stu1[i].xuehao);
scanf("%s",stu1[i].name);
scanf("%s",stu1[i].zhuanye);
scanf("%d",&stu1[i].sushe); 
}
printf("是否需要保存数据?(Y\\N)");
scanf("%s",&Q);
 
    if(Q=='Y')
    {
FILE*baocun=fopen("student.txt","ab+");//保存数据    
        //fscanf(baocun,"%*[^\n]");
        fscanf(baocun,"%d",&k);
        fseek(baocun,0,SEEK_SET);
        if(k==0)
        {
        k=1;
        fprintf(baocun,"%d\n",k);    
        fprintf(baocun,"学号\t学生姓名\t专业班级\t宿舍号\n");    
        for(i=0;i<n;i++)
        fprintf(baocun,"%d\t%s\t%s\t%d\n",stu1[i].xuehao,stu1[i].name,stu1[i].zhuanye,stu1[i].sushe);
        }else{
        
        for(i=0;i<n;i++)
        fprintf(baocun,"%d\t%s\t%s\t%d\n",stu1[i].xuehao,stu1[i].name,stu1[i].zhuanye,stu1[i].sushe);    
        }
        fclose(baocun);
        printf("录入成功!"); 
}
if(Q=='N')
printf    ("录入失败!"); 
}else{
    printf("请先登录,你还没有权限!"); 
}    
}
 
void house1()
{
    int i,sushe;
    char cx[100];    
FILE*check=fopen("student.txt","r");
fscanf(check,"%*[^\n]");
while(fscanf(check,"%[^\n]",cx)!=EOF)
{    
printf("%s\n",cx);
fgetc(check);
}
fclose(check);
}
 
void sushe()
{
    int p=0;
    char *linshi;
    char sushe[20];//搜索的宿舍号码 
    char buf[1024];//每次搜索的整行
    char *chuxu=(char*)malloc(10);//需对比的前三项 
        FILE* search=fopen("student.txt","r");
    if(fgets(buf,1024,search)==NULL)
    {
        printf("你还没有录入数据,请先录入!"); 
    }else{
    
    printf("请输入要搜索的宿舍号");
    scanf("%s",&sushe);
 
    printf("学号\t学生姓名\t专业班级\t宿舍号\n");//str[]="deheve"
    while(fgets(buf,1024,search)!=NULL)
    {
        p=strlen(buf);
linshi=    mysubstr(buf, p-4, 3);
 
        if(strcmp(linshi,sushe)==0)//开始对比 
        {
            printf("%s",buf);
        
        }
 
    }
 
fclose(search);
}
 
}
 
void clean()
{
int n1,k=0;
char Q;
if(open==1)
{
    printf("请输入需要录入的宿舍个数:\n");
    scanf("%d",&n1);
struct clean cleanning[n1];
printf("宿舍号  日期  具体时间段  卫生等级  是否消毒\n");//等级为ABCD 
for(int n=0;n<n1;n++)
{
    scanf("%d",&cleanning[n].sushe);
    scanf("%s",cleanning[n].days);
    scanf("%s",cleanning[n].time);
    scanf("%s",&cleanning[n].level);
    scanf("%s",cleanning[n].fial);
}
printf("\n");
printf("是否需要保存数据(Y\\N)?");
scanf("%s",&Q);
    
if(Q=='Y')
{
  
    FILE * clean=fopen("clean.txt","ab+");
    fscanf(clean,"%d",&k);
    fseek(clean,0,SEEK_SET);
//    printf("%d\n",k);
    if(k==0)
    {
        k=1;
        fprintf(clean,"%d\n",k);    
        fprintf(clean,"宿舍号  日期  具体时间段  卫生等级  是否消毒\n");    
        for(int i=0;i<n1;i++)
        fprintf(clean,"%d  %s  %s  %c  %s\n",cleanning[i].sushe,cleanning[i].days,cleanning[i].time,cleanning[i].level,cleanning[i].fial);
        printf("录入成功!");
    }else{
            fseek(clean,0,SEEK_SET);
        for(int i=0;i<n1;i++)
        fprintf(clean,"%d  %s  %s  %c  %s\n",cleanning[i].sushe,cleanning[i].days,cleanning[i].time,cleanning[i].level,cleanning[i].fial);
    
        printf("录入成功!");
    }
        fclose(clean);
 
}
if(Q=='N')
{    
printf    ("录入失败!");     
}
 
}else{
 
printf("你还没有权限,请先登录!");
 
}
 
}
void delete1()
{
    if(open==1)
{
FILE *fp,*fp2,*fp3;
char buf[1024];
char out[10];
char xuehao[8];
printf("请输入要删除的学生学号:");
scanf("%s",xuehao);
fp=fopen("student.txt","ab+");
fp2=fopen("student2.txt","ab+");
fp3=fopen("quit.txt","ab+");
while(fgets(buf,1024,fp)!=NULL)
{    
    memcpy(out,buf,9);//取buf字符串的前九位再把值赋给out 
    if(strstr(out,xuehao))
    {        
        fprintf(fp3,buf);
        continue;    
    }else{
    fprintf(fp2,buf);
    }    
    }
fclose(fp);
fclose(fp2);
fclose(fp3);
remove("student.txt");
rename("student2.txt","student.txt");
}else{
    printf("你还没有权限,请先登录");     
}
}
void search()
{
    system("cls");
    printf("*********欢迎进入宿舍管理系统**************\n");
    printf("                 菜单                          \n");
    printf("搜索宿舍-------------------------------------1\n");
    printf("搜索卫生-------------------------------------2\n");
    switch(getch())
        {    
            case '1' : system("cls");sushe();break; 
            case '2' : system("cls");searweisheng();break;    
            default : printf("输入有误\n");
        }    
}
void weisheng()
{
    int i,sushe;
    char cx[100];    
FILE*check=fopen("clean.txt","r");
fscanf(check,"%*[^\n]");
while(fscanf(check,"%[^\n]",cx)!=EOF)
{
printf("%s\n",cx);
fgetc(check);
 
}
fclose(check);
}
 
void searweisheng()
{
    int p=0;
    char *linshi;
    char sushe[20];
    char buf[1024];
    char *chuxu=(char*)malloc(10);
    FILE* search=fopen("clean.txt","r");
    if(fgets(buf,1024,search)==NULL)
    {
        printf("你还没有录入数据,请先录入!"); 
    }else{    
    printf("请输入要搜索的宿舍号");
    scanf("%s",&sushe);
    printf("宿舍号  日期  具体时间段  卫生等级  是否消毒\n");
    while(fgets(buf,1024,search)!=NULL)
    {
        p=strlen(buf);
linshi=    mysubstr(buf, 0, 3);
 
        if(strcmp(linshi,sushe)==0)//开始对比 
        {
            printf("%s",buf);    
        }
 
    }
fclose(search);
 
}
 
}
void checkout()
{
char cx[200],buf[1024];    
FILE*check=fopen("quit.txt","r");
fseek(check,0,SEEK_CUR);
printf("学号       学生姓名      专业班级      宿舍号\n"); 
while(fgets(buf,1024,check))
{
printf("%s",buf);
}
fclose(check);
}

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

--结束END--

本文标题: C语言实现宿舍管理系统

本文链接: https://www.lsjlt.com/news/151546.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言实现宿舍管理系统
    本文实例为大家分享了C语言实现宿舍管理系统的具体代码,供大家参考,具体内容如下 本次大一课设的作品,从空项目开始写的,全部在txt文件中增改删。变量命名太土了,代码格式还有待优化,望...
    99+
    2022-11-13
  • C语言实现学生宿舍管理系统
    本文实例为大家分享了C语言实现学生宿舍管理系统的具体代码,供大家参考,具体内容如下 实现简单的学生宿舍基本信息管理,宿舍的基本信息包括楼号、房间号、面积、所容纳人数、已入住人数等,系...
    99+
    2022-11-13
  • C语言实现宿舍管理系统设计
    本文实例为大家分享了C语言实现宿舍管理系统的具体代码,供大家参考,具体内容如下 设计目的 《数据结构》课程主要介绍最常用的数据结构,进行数据结构课程设计要达到以下目的: (1)了解并...
    99+
    2022-11-13
  • C语言实现学生宿舍信息管理系统
    本文实例为大家分享了C语言实现学生宿舍信息管理系统的具体代码,供大家参考,具体内容如下 功能描述 该学生宿舍信息管理系统主要实现的功能有:创建学生宿舍信息,显示学生宿舍信息,查询学生...
    99+
    2022-11-13
  • C语言实现宿舍管理系统课程设计
    宿舍管理系统C语言源码,供大家参考,具体内容如下 内容摘要 学生宿舍管理系统时应对学生宿舍管理的现代化、网络化,逐步摆脱学生宿舍管理的人工管理方式,提高学生宿舍管理效率而开发的,它包...
    99+
    2022-11-13
  • 怎么用C语言实现学生宿舍管理系统
    这篇文章主要讲解了“怎么用C语言实现学生宿舍管理系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用C语言实现学生宿舍管理系统”吧!实现简单的学生宿舍基本信息管理,宿舍的基本信息包括楼号...
    99+
    2023-06-29
  • C语言如何实现学生宿舍信息管理系统
    这篇文章主要讲解了“C语言如何实现学生宿舍信息管理系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言如何实现学生宿舍信息管理系统”吧!功能描述该学生宿舍信息管理系统主要实现的功能有:创...
    99+
    2023-06-29
  • 基于C#实现宿舍管理系统
    目录前言一、项目创建二、主页面设计三、主页面代码1.登录按钮2.退出按钮3.注册按钮4.SQL配置5.主页总体代码前言 本次项目主要是因为我们的大作业要求要求,因为网上C#的资源不太...
    99+
    2022-11-13
  • C++实现学生宿舍管理系统
    本文实例为大家分享了C++实现学生宿舍管理系统的具体代码,供大家参考,具体内容如下 非常简易,完成个作业够用,仅供初学者参考,不喜勿喷。 #include<stdio.h>...
    99+
    2022-11-13
  • C++实现宿舍管理查询系统
    本文实例为大家分享了C++实现宿舍管理查询系统的具体代码,供大家参考,具体内容如下 C++使用IO流关联.txt文件 各模块之间的调用关系如下: 函数的调用关系反映了演示程序的层次...
    99+
    2022-11-13
  • C语言实现宿舍管理课程设计
    本文实例为大家分享了C语言实现宿舍管理的具体代码,供大家参考,具体内容如下 和本编前几个程序结构差不多,比较简单直观,希望可以给你带来帮助。 #include <stdio.h...
    99+
    2022-11-13
  • C语言实现学生宿舍信息管理系统的方法
    这篇文章主要介绍“C语言实现学生宿舍信息管理系统的方法”,在日常操作中,相信很多人在C语言实现学生宿舍信息管理系统的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言实现学生宿舍信息管理系统的方法”的疑...
    99+
    2023-06-29
  • 宿舍管理系统的设计与实现/学生宿舍管理系统
    摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,宿舍管理系统就是信息时代变革中的产物之一...
    99+
    2023-10-06
    java 数据库 开发语言
  • C语言实现学生宿舍信息管理系统课程设计
    本文实例为大家分享了C语言实现学生宿舍信息管理系统的具体代码,供大家参考,具体内容如下 一、问题陈述 宿舍对于大学生在校生活来说相当于家的存在,而宿舍管理又是学校后勤管理的重要环节,...
    99+
    2022-11-13
  • 基于C#如何实现宿舍管理系统
    本篇内容主要讲解“基于C#如何实现宿舍管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于C#如何实现宿舍管理系统”吧!一、项目创建首先通过创建C#的Windows窗体应用程序,名字可以自...
    99+
    2023-07-02
  • 期末作业C#实现学生宿舍管理系统
    🚀开发背景 完整代码下载地址:点我下载 优化移步: 《c#中在datagridview的表格动态增加一个按钮方法》 《C#实现多窗口切换:Panel详细教程(亲测)》 文章还在更新,...
    99+
    2023-09-12
    c# microsoft 数据库 mysql
  • 如何使用C++实现学生宿舍管理系统
    这篇文章给大家分享的是有关如何使用C++实现学生宿舍管理系统的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下非常简易,完成个作业够用,仅供初学者参考,不喜勿喷。#include<stdio.h&g...
    99+
    2023-06-29
  • 数据库系统实现 大学生宿舍管理系统
    目录 目录 第一章绪论 1.1项目研究的背景 第二章可行性分析与需求分析 2.1可行性分析 2.1.1操作可行性 2.1.2技术可行性 2.1.3设计可行性 2.2需求分析 2.2.1处理对象分析 ...
    99+
    2023-09-25
    java servlet mysql html5 Powered by 金山文档
  • 基于javaweb+jsp实现学生宿舍管理系统
    目录运行环境开发工具适用功能说明技术框架部分代码实现JSP 效果图运行环境 Java≥6、Tomcat≥7.0、MySQL≥5.5 开发工具 idea/eclipse/MyEclip...
    99+
    2022-11-12
  • java实现学生宿舍系统
    本文实例为大家分享了java实现学生宿舍管理系统的具体代码,供大家参考,具体内容如下 学生类代码 Student.java package dormitory; public c...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作