C语言实现宿舍管理系统

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

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

主界面是这样的

C语言实现宿舍管理系统_第1张图片

以下为源代码: 

#include
#include
#include
#include
#define MAX_LINE 1024
#include
#include 
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 
 

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

你可能感兴趣的:(C语言实现宿舍管理系统)