精华内容
下载资源
问答
  • C语言课程设计,学生宿舍管理系统, 链表、文件版,纯原创,仅供参考!
  • 功能包含添加、删除,按学号查找记录,按姓名查找记录以及记录的添加修改删除。完美运行,课程设计必备,建议参考,自己编写才真的可以学到东西。想学到东西还得自动动手。.../*查询系统*/int search_stunam...

    功能包含添加、删除,按学号查找记录,按姓名查找记录以及记录的添加修改删除。完美运行,课程设计必备,建议参考,自己编写才真的可以学到东西。想学到东西还得自动动手。

    #include

    #include

    #include

    #include

    void menu();/*主菜单*/

    void searchmenu();/*查询菜单*/

    void search();/*查询系统*/

    int search_stuname(char str[]);/*按姓名查询*/

    int search_stunum(char str[]);/*按学号查询*/

    int search_number(char str[]);/*按宿舍号查询*/

    void sort_stunum();/*按学号排序*/

    int find_stunum();/*增加学生信息时检查学号是否存在*/

    int find1_stunum();/*修改学生信息时检查学号是否存在*/

    void modify_stuname();/*按姓名修改学生信息*/

    void modify_stunum();/*按学号修改学生信息*/

    void delete_stuname();/*按姓名删除学生信息*/

    void delete_stunum();/*按学号删除学生信息*/

    void quit();/*退出系统*/

    void bound();/*画一条直线*/

    int check();/*检查是否为第一次使用*/

    typedef struct student

    {

    char stuname[31];

    char stunum[11];

    char number[5];

    struct student *next;

    }STU;

    FILE *fp;/*定义数据文件为全局变量*/

    static char choice;/*定义操作代码为全局静态变量*/

    void menu()

    {

    do

    {

    system("cls");

    /*printf("\t**********************************\n");*/

    printf("\n\t\t\t宿舍管理系统\n");

    /*printf("\t**********************************\n");*/

    bound();

    printf("\n\t\t1. 显 示 所 有 学 生 信 息\n");

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

    printf("\t\t3. 查 询 学 生 信 息\n");

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

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

    printf("\t\t0. 退出系统\n");

    bound();

    printf("\t\t请输入操作代码(0~5):\t");

    fflush(stdin);

    choice=getchar();

    }while(choice'5');

    /*while(choice'5')

    {printf("\t\t输入的操作代码无效,请重新输入:");

    fflush(stdin);

    choice=getchar();

    }*/

    }

    void display()/*显示所有学生的信息*/

    {

    STU *sturecord;

    sturecord=(STU*)malloc(sizeof(STU));

    if(check()==0)

    return;

    system("cls");

    sort_stunum();

    fp=fopen("record.dat","r");

    if(fp==NULL)

    {printf("文件读取失败!\n");

    return;

    }

    printf("\t%-10s\t%-10s\t%-5s\n","姓名","学号","宿舍号");

    bound();

    while(fread(sturecord,sizeof(STU),1,fp)!=0)

    {

    printf("\t%-10s",sturecord->stuname);

    printf("\t%-10s",sturecord->stunum);

    printf("\t%-5s\n",sturecord->number);

    }

    fclose(fp);

    printf("\t请按任意键返回主菜单:");

    getch();

    menu();

    }

    void addrecord() /*增加学生信息*/

    {

    STU *sturecord;

    char ch;

    system("cls");

    sturecord=(STU*)malloc(sizeof(STU));

    printf("\n\t请输入学生的姓名:");

    scanf("%s",sturecord->stuname);

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

    scanf("%s",sturecord->stunum);

    if(find_stunum(sturecord->stunum)==1)

    {addrecord();

    return;

    }

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

    scanf("%s",sturecord->numb

    展开全文
  • C语言学生宿舍管理系统代码(可运行)

    千次阅读 多人点赞 2019-10-07 07:51:28
    printf("\n\n\n\t\t 欢迎进入学生宿舍管理系统\n"); printf("\t\t*********************************\n"); printf("\t\t1.输入床位信息\n"); printf("\t\t2.根据学号,显示学生住宿信息\n"); printf("\t\t3.根据...

    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    #include<string.h>
    #include<windows.h>
    #include <malloc.h>
    #include<dos.h>
    #define len sizeof(struct dorminfo)
    #define Max 100
    int a[Max]={0};
    int length;
    void showmenu();
    void processmenu();
    void create();
    void display();
    void disbed();
    void modify();
    void del();
    void save();
    void read();
    typedef struct
    {
    int dormno;
    int bedno;
    int isstay;
    }bedinfo;
    struct dorminfo
    {
    bedinfo bed;
    int stuno;
    char name[20];
    char stucla[20];
    int year;
    int month;
    struct dorminfo *next;
    };
    struct dorminfo *head=NULL,*p1,*p2,*p3;

    void showmenu()
    {
    printf("\n\n\n\t\t 欢迎进入学生宿舍管理系统\n");
    printf("\t\t*********************************\n");
    printf("\t\t1.输入床位信息\n");
    printf("\t\t2.根据学号,显示学生住宿信息\n");
    printf("\t\t3.根据宿舍号,显示住宿信息\n");
    printf("\t\t4.根据宿舍号、床位号,修改住宿信息\n");
    printf("\t\t5.根据宿舍号、床位号,删除住宿信息\n");
    printf("\t\t6.保存学生宿舍信息\n");
    printf("\t\t7.从文件读入学生信息\n");
    printf("\t\t8.退出 \n");
    printf("\t\t********************************\n") ;
    }
    void processmenu()
    {
    int caidan;
    printf("请输入您的选项<1~8>:");
    scanf("%d",&caidan);
    if(caidan>8||caidan<0)
    {
    printf("对不起,您输入的选项有误,请重新输入!");
    scanf("%d",&caidan);
    }
    switch(caidan)
    {
    case 1:create();break;
    case 2:display();break;
    case 3:disbed();break;
    case 4:modify();break;
    case 5:del();break;
    case 6:save();break;
    case 7:read();break;
    case 8:exit(0);
    }
    }
    void create()
    {
    int j;
    char ch;
    length=0;
    p1=(struct dorminfo *)malloc(len);
    if(head==NULL)
    head=p1;
    printf("开始输入床位信息....\n");
    Sleep(500);
    do
    {
    p2=(struct dorminfo *)malloc(len);
    printf("请输入宿舍号:");
    scanf("%d",&p2->bed.dormno);
    printf("请输入床号:");
    scanf("%d",&p2->bed.bedno);
    printf("是否有人居住(1/0):");
    scanf("%d",&p2->bed.isstay);
    printf("请输入学生学号:");
    scanf("%d",&p2->stuno);
    a[length]=p2->stuno;
    if(length>1)
    {
    for(j=1;j<length;j++)
    {
    if(a[length]==a[j])
    {
    printf("该床位号已存在,请重新输入:");
    scanf("%d",&p2->bed.bedno);}
    }
    }
    printf("请输入学生姓名:");
    scanf("%s",p2->name);
    printf("请输入学生班级:");
    scanf("%s",p2->stucla);
    printf("请输入学生入住时间(年 月)<如2015 5>:");
    scanf("%d%d",&p2->year,&p2->month);
    if(p2->year<1000||p2->year>9999||p2->month>12||p2->month<1)
    {
    printf("对不起,输入错误,请重新输入!\n");
    scanf("%d%d\n",&p2->year,&p2->month);
    }
    length++;
    p1->next=p2;
    p2->next=NULL;
    p1=p1->next;
    printf("第%d个住宿信息创建成功!\n",length);
    Sleep(300);
    fflush(stdin);
    printf("是否继续添加住宿信息?<y/Y>");
    ch=getchar();
    } while(ch=='y'||ch=='Y');
    }
    void display()
    {
    int flag=0,No;
    p3=head->next;
    printf("请输入学号:");
    scanf("%d",&No);
    while(p3!=NULL)
    {
    if(p3->stuno==No)
    {
    printf("\n住宿信息如下:");
    printf("\n宿舍号:%d",p3->bed.dormno);
    printf("\n床位号:%d",p3->bed.bedno);
    printf("\n是否有人入住:%d",p3->bed.isstay);
    printf("\n学生学号:%d",p3->stuno);
    printf("\n学生姓名:%s",p3->name);
    printf("\n学生班级:%s",p3->stucla);
    printf("\n入住时间为:%d年%d月\n",p3->year,p3->month);
    flag=1;
    }
    p3=p3->next;
    }
    if(!flag)
    printf("没有找到该学生住宿信息!\n");
    }
    void disbed()
    {
    int flag=0,DormNo;
    p3=head->next;
    printf("请输入宿舍号:");
    scanf("%d",&DormNo);
    while(p3!=NULL)
    {
    if(p3->bed.dormno==DormNo)
    {
    printf("\n住宿信息如下:");
    printf("\n宿舍号:%d",p3->bed.dormno);
    printf("\n床位号:%d",p3->bed.bedno);
    printf("\n是否有人入住:%d",p3->bed.isstay);
    printf("\n学生学号:%d",p3->stuno);
    printf("\n学生姓名:%s",p3->name);
    printf("\n学生班级:%s",p3->stucla);
    printf("\n入住时间为:%d年%d月\n",p3->year,p3->month);
    flag=1;
    }
    p3=p3->next;
    }
    if(!flag)
    printf("没有找到该学生住宿信息!\n");
    }
    void modify()
    {
    struct dorminfo *p;
    int DormNo,BedNo,flag;
    int Dormno,Bedno,Isstay,Stuno,Year,Month;
    char Name[20],Stucla[20];
    if(head==NULL){
    printf("住宿信息为空,不能修改,按任意键返回...\n");
    getch();
    system("cls");
    return ;
    }
    p1=p3=head;
    printf("请输入宿舍号、床位号:");
    scanf("%d %d",&DormNo,&BedNo);
    while(p3!=NULL)
    {
    if(p3->bed.dormno==DormNo&&p3->bed.bedno==BedNo)
    {
    printf("已找到要修改的宿舍号、床位号!\n");
    flag=1;
    p=p3;
    Sleep(1000);
    }
    p3=p3->next;
    }
    if(flag)
    {
    printf("请输入修改后的宿舍号:");
    scanf("%d",&Dormno);
    printf("请输入修改后的床号:");
    scanf("%d",&Bedno);
    printf("是否有人居住(1/0):");
    scanf("%d",&Isstay);
    printf("请输入修改后的学生学号:");
    scanf("%d",&Stuno);
    while(p1!=NULL)
    {
    if(p1->stuno==Stuno){
    printf("该床位号已存在,请重新输入:");
    scanf("%d",&Stuno);
    }
    p1=p1->next;
    }
    printf("请输入修改后的学生姓名:");
    scanf("%s",Name);
    printf("请输入修改后的学生班级:");
    scanf("%s",Stucla);
    printf("请输入修改后的学生入住时间(年月)<如2015 5>:");
    scanf("%d%d",&Year,&Month);
    if(Year<1000||Year>9999||Month>12||Month<1)
    {
    printf("对不起,输入错误,请重新输入!\n");
    scanf("%d%d",&Year,&Month);
    }
    p->bed.dormno=Dormno;
    p->bed.bedno=Bedno;
    p->bed.isstay=Isstay;
    p->stuno=Stuno;
    strcpy(p->name,Name);
    strcpy(p->stucla,Stucla);
    p->year=Year;
    p->month=Month;
    printf("修改成功,信息如下:\n");
    printf("-宿舍号--床号--有无人入住--学号--姓名--班级--入住时间(年月)");
    printf("\n");
    printf("%6d%5d%8d%9d%7s%8s%9d%2d\n",p->bed.dormno,p->bed.bedno,p->bed.isstay,p->stuno,p->name,p->stucla,p->year,p->month);
    }
    else
    {
    printf("没有找到该宿舍号与床号信息,按任意键返回...\n");
    getch();
    system("cls");
    return ;
    }
    }
    void del()
    {
    int DormNo,BedNo;
    p1=head,p2=head->next;
    printf("请输入宿舍号、床位号:");
    scanf("%d %d",&DormNo,&BedNo);
    while(p2!=NULL)
    {
    if(p2->bed.dormno==DormNo&&p2->bed.bedno==BedNo)
    {
    p1->next=p2->next;
    free(p2);
    length--;
    printf("删除成功!\n");
    system("cls");
    return ;
    }
    p2=p2->next;
    p1=p1->next;
    }
    if(p1==NULL)
    printf("找不到要删除的宿舍号、床位号!\n");
    }
    void save()
    {
    FILE *fp1;
    if(head==NULL)
    {
    printf("\n,没有找到该宿舍号与床号信息,按任意键返回....");
    getch();
    system("cls");
    return ;
    }
    if((fp1=fopen("学生宿舍管理系统.txt","w"))==NULL)
    {
    printf("\n信息无法保存,按任意键返回....");
    getch();
    system("cls");
    return ;
    }
    p1=head->next;
    printf("正在保存文件...\n");
    Sleep(800);
    fputs(" 宿舍号 床号 有无人入住 学号 姓名 班级 入住时间(年月) :\n",fp1);
    while(p1!=NULL)
    {
    fprintf(fp1,"%6d%5d%8d%7d%6s%4s%7d%2d\n",p1->bed.dormno,p1->bed.bedno,p1->bed.isstay,p1->stuno,p1->name,p1->stucla,p1->year,p1->month);
    p1=p1->next;
    }
    fclose(fp1);
    printf("文件保存成功!\n");
    printf("按任意键返回...\n");
    getch();
    system("cls");
    return ;
    }
    void read()
    {
    FILE *fp2;
    char ch;
    if((fp2=fopen("学生宿舍管理系统.txt","r"))==NULL)
    {
    printf("文件无法打开!\n");
    exit(0);
    }
    printf("正在读入文件...\n");
    Sleep(1000);
    ch=fgetc(fp2);
    while(!feof(fp2))
    {
    putchar(ch);
    ch=fgetc(fp2);
    }
    printf("\n");
    fclose(fp2);
    printf("文件读入成功!\n");
    }
    void main()
    {
    while(1)
    {
    showmenu();
    processmenu();
    system("pause");
    system("cls");
    }
    }

    转载于:https://www.cnblogs.com/jinmo/p/8535372.html

    展开全文
  • 这是一个学生宿舍管理系统C语言版。想学习C语言的朋友可以借鉴借鉴。
  • 宿舍管理系统C语言代码 #includestruct dorm{int num;int members_num;int Health_score;char member1[10];char member2[10];char member3[10];char member4[10];};struct student{int num;char name[10];int dorm...

    41528d3028836879cd698677c3999917.gif宿舍管理系统C语言源代码

    #includestruct dorm{int num;int members_num;int Health_score;char member1[10];char member2[10];char member3[10];char member4[10];};struct student{int num;char name[10];int dorm_num;char gender[10];char major[10];char class_name[10];char instructor[10];};static struct dorm dm[100];static struct student st[400];static int d_i=2;static int s_i=2;void pri_dorm(struct dorm d){printf(“\n 宿 舍 号:%d\n“,d.num);printf(“现住人数:%d\n“,d.members_num);printf(“卫生分数:%d\n“,d.Health_score);printf(“宿舍成员:\n“);if(d.member1[0]!=NULL) printf(“%s\n“,d.member1);if(d.member2[0]!=NULL) printf(“%s\n“,d.member2);if(d.member3[0]!=NULL) printf(“%s\n“,d.member3);if(d.member4[0]!=NULL) printf(“%s\n“,d.member4);printf(“\n“);}void pri_student(struct student s){printf(“\n 学 号:%d\n“,s.num);printf(“姓 名:%s\n“,s.name);printf(“宿舍号:%d\n“,s.dorm_num);printf(“性 别:%s\n“,s.gender);printf(“班 级:%s\n“,s.class_name);printf(“专 业:%s\n“,s.major);printf(“辅导员:%s\n“,s.instructor);printf(“\n“);}int panduansusherenshu(struct dorm d)//通过此函数,判断宿舍共多少人(宿舍人数最多住四个人){int i=0;if(d.member1[0]!=NULL){i++;}if(d.member2[0]!=NULL){i++;}if(d.member3[0]!=NULL){i++;}if(d.member4[0]!=NULL){i++;}return i;}int panduanxueshengxinxi(struct student s)//判断学生信息是否合法{int i=1;int j=0;int k=0;if(((s.num/100000000)0)){if(!strcmp(s.gender,“男“)||!strcmp(s.gender,“女“)){if((s.dorm_num/100)0){i=0;}}}for(j=0;j=0else {printf(“输入的分数有错误,请重新输入!\n“);}}dm[k].Health_score=j;system(“cls“);printf(“更改宿舍信息成功!\n“);printf(“\n 返回主界面:\n“);main_interface();}if(q==0){system(“cls“);printf(“输入的宿舍号不存在,请确认后重新输入!\n\n“);interface5();} }void interface6()//更改学生信息{int i=0;//存储学生学号int k=0;//判断该学号是否存在int j=0;int q=0;//存储选项struct student ss;printf(“请输入需要被更改的学生的学号:\n“);scanf(“%d“,for(j=0;jsizeof(st)/60;j++){if(st[j].num==i){k=1;break;}}if(k==0){printf(“该学号不存在,请确认后重新输入!\n“);interface6();}if(k==1){printf(“********************************\n“);printf(“****** 学生信息更改 ******\n“);printf(“*** 1.更改姓名 ***\n“);printf(“*** 2.更改班级 ***\n“);printf(“*** 3.更改专业 ***\n“);printf(“*** 4.更改辅导员 ***\n“);printf(“********************************\n“);printf(“\n 请输入选项:\n“);scanf(“%d“,switch(q){case 1:printf(“请输入改变后的姓名:\n“);scanf(“%s“,ss.name);strcpy(st[j].name,ss.name);system(“cls“);printf(“\n 更改信息成功,返回主界面!\n“);main_interface();break;case 2:printf(“请输入改变后的班级:\n“);scanf(“%s“,ss.class_name);strcpy(st[j].class_name,ss.class_name);system(“cls“);printf(“\n 更改信息成功,返回主界面!\n“);main_interface();break;case 3:printf(“请输入改变后的专业:\n“);scanf(“%s“,ss.major);strcpy(st[j].major,ss.major);system(“cls“);printf(“\n 更改信息成功,返回主界面!\n“);main_interface();break;case 4:printf(“请输入改变后的辅导员:\n“);scanf(“%s“,ss.instructor);strcpy(st[j].instructor,ss.instructor);system(“cls“);printf(“\n 更改信息成功,返回主界面!\n“);main_interface();break;default :system(“cls“);printf(“选项输入错误! 返回上一界面!\n“);interface6();break;}}}void start(){int j=103;int i=0;dm[0].num=101;dm[0].Health_score=10;dm[0].member1[0]=NULL;strcat(dm[0].member1,“赵钱 “);dm[0].member2[0]=NULL;dm[0].member3[0]=NULL;dm[0].member4[0]=NULL;dm[0].members_num=panduan

    展开全文
  • C语言设计学生宿舍管理系统

    万次阅读 多人点赞 2019-02-19 15:14:21
    这个只是简单的系统,只有一...当给宿舍添加学生时,遇到宿舍爆满,就会添加失败等功能。 以下为代码**:** #include"stdio.h" #include"stdlib.h" #include"string.h" #include...

    这个只是简单的系统,只有一个关系表。如果你是为了应付老师则足矣,如果是为了优秀,那就要自己添加更多的关系表和功能块,比如可以再添加宿舍表,通过这个关系表,可以查看,这个宿舍有没有空床位;当给宿舍添加学生时,遇到宿舍爆满,就会添加失败等功能。


    之前我发布上去的时候市可以运行的,后来可能是版本更新对语法要求更高,导致编译不过,现在已经对代码做了修改了。


    以下为代码**:**

    #include"stdio.h"
    
    #include"stdlib.h"
    
    #include"string.h"
    
    #include "conio.h" 
    
    #include "windows.h"
    
    #define MAX 1000
    
    
      /*结构体类型*/
    
    typedef struct  
    
    {   
    	int num;/*学号*/
    	
    	char name[20];/*姓名*/
    	
    	char sex[5];/*性别*/
    	
    	int age;/*年龄*/
    	
    	char studentclass[20];/*班级*/
    	
    	int dorm;/*宿舍号*/
    
    }STUDENTS;
    
    //查找指针 
    typedef struct Points
    {
       int a;
       struct Points *points;
    }Points;
    
    char xiugai[10]="修改";
    char chaxun[10]="查询"; 
    char xuehao[]="学号";
    char xingming[]="姓名";
    char xingbie[]="性别";
    char nianling[]="年龄";
    char banji[]="班级";
    char sushe[]="宿舍";
    
    
    
    /*共用的功能块 */
    
    
    void pause(){
    	int i;
    	printf("\n\n按任意键加回车返回主菜单!");
        scanf("%d",&i);
        getchar();
    } 
    
    void print(STUDENTS stu[],int point){
    	printf("\n\n\n学号:%d,姓名:%s,性别:%s,年龄:%d,班级:%s,宿舍号: %d\n",
    			 stu[point].num,stu[point].name,stu[point].sex,stu[point].age,stu[point].studentclass,stu[point].dorm);
    }
    
    void printfNotFound(){
    	printf("找不到该数据\n");
    }
    
    void printSearch(STUDENTS stu[],int i){
       printf("		     %7d%11s%10s%10d%12s%12d\n\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].studentclass,stu[i].dorm);
    }
    
    void printHead(){
    		printf(" 		-------------------------------------------------------------------------------\n");
    	    printf("		-------------------------------------------------------------------------------\n");
    	    printf("			学号:     姓名:     性别:     年龄:     班级:     宿舍号:     \n"); 
    	    printf(" 		-------------------------------------------------------------------------------\n");
    		printf(" 		-------------------------------------------------------------------------------\n\n\n");
    
    }
    
    //默认继续 
    int a=1;
    void selectOperate(){
    	
    	button:
    	    printf("继续操作请按1,返回主菜单请按0  ");
    		scanf("%d",&a);
    		if(!(a==1||a==0))	
    	 	{		
    	 		printf("请输入正确的指令"); 
    	 		goto button;		 		
    	 	}
    }
    
    
    
    
    
    
    //读取文件,返回的是总个数 
    int read_file(STUDENTS stu[])
    {
    	FILE *fp;	
        int point=-1;
    	fp=fopen("stu.txt","rt");
    	if(fp==NULL)	
    	{
    		printf("\n\n*****库存文件不存在!请创建");	
    		return 0;
    	}
    	while(!feof(fp))	
    	{
    		point++;
    		fread(&stu[point],sizeof(STUDENTS),1,fp);	
    	}	
    	fclose(fp);	
    	return point;
    
    }
    
    //存储数据到文件中 
    void save_file(STUDENTS stu[],int sum)//sum是总个数 
    {
    	FILE *fp;	
    	 int i;	
    	 if((fp=fopen("temp.txt","w"))==NULL)	
    	 {
    	 	printf("写文件错误!\n");	
    		return;	
    	 }	
    		for(i=0;i<sum;i++)	
    			if(fwrite(&stu[i],sizeof(STUDENTS),1,fp)!=1)	
    	  			printf("写文件错误!\n");
    	
    	fclose(fp);
    	remove("stu.txt");
    	rename("temp.txt","stu.txt");
    
    }
    
    
    /*创建学生信息*/
    //返回的是总数 
    int input(STUDENTS stu[],int sum)
    {  
    	int x;
       for(;sum<MAX;sum++)
      {
    	system("cls");    
    	
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▄        创建学生宿舍信息        ▄\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
    
        printf("\n\n                 录入学生信息  (最多%d个)\n",MAX);
        printf("               ----------------------------\n");
        printf("\n                     第%d个学生\n",sum+1);
    	printf("\n 请输入学生的学号:");
        scanf("%d",&stu[sum].num);
        printf("\n 请输入学生的姓名:");
        scanf("%s",stu[sum].name); 
    	printf("\n 请输入学生的性别:");
        scanf("%s",stu[sum].sex);
        printf("\n 请输入学生的年龄:");   
        scanf("%d",&stu[sum].age);  
        printf("\n 请输入学生的班级:");
        scanf("%s",stu[sum].studentclass);        
        printf("\n 请输入学生的宿舍号:");
        scanf("%d",&stu[sum].dorm);
        printf("		创建成功!");
    
    	//选择操作 
    		selectOperate();
    		if(a==0)
    			return sum+1;	
       }
           return sum+1;
    
    }
    
    
    /*打印学生信息*/                                                                                                                                                                                                                                                        
    void output(STUDENTS stu[],int sum)
    {  
       int i;
       system("cls");
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▄        打印学生宿舍信息        ▄\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
    
       printHead(); 
       for(i=0;i<sum;i++)      
      	 printSearch(stu,i);
     	 		
       pause();
    
    }
    
    
    /*排序  */ 
     
    
    
    /*复制student*/
    //将排好的装在一个新的students数组里 ,不要存到文件中 
     void cpStu(STUDENTS stu0[],STUDENTS stu[],int sum) {
     	int i;
     	for(i=0;i<sum;i++){
     		stu[i].num=stu0[i].num;
     		strcpy(stu[i].name,stu0[i].name);
     		strcpy(stu[i].sex,stu0[i].sex);
     		stu[i].age=stu0[i].age;
     		strcpy(stu[i].studentclass,stu0[i].studentclass);
     		stu[i].dorm=stu0[i].dorm;
     	}	
     }
    
    /*对数据元组排序*/
    void exchangeData(STUDENTS *stu1,STUDENTS *stu2){
    				stu1->num=stu2->num;
       				
       				stu1->dorm=stu2->dorm; 
    					 
    				stu1->age=stu2->age;
    					 
    				strcpy(stu1->name,stu2->name);
    					  
    				strcpy(stu1->sex,stu2->sex);
    					  
    				strcpy(stu1->studentclass,stu2->studentclass);	
    }
    
    
    int selectSort(){
    	
    	int choice;
    		
    	 printf("\n\n\n     ********请您选择条件进行排序********\n\n");
         printf("                1. 学号\n\n");
         printf("                2. 班级\n\n");
         printf("                3. 宿舍号\n\n");
         printf("                4. 姓名\n\n");
         printf("                0. 返回主菜单\n\n");
         printf("                 请选择(0-3):");
     	 scanf("%d",&choice);
     	 return choice; 
    }
    
    
    /*根据宿舍号从小到大排序   冒泡*/
    
    void sortByDorm(STUDENTS stu0[],int sum,STUDENTS stup[])
    
      {  
      	STUDENTS stu1;  //中间变量 
      	int i,j;
        
    	cpStu(stu0,stup,sum);
    	
        for(i=0;i<sum-1;i++)
    		for(j=0;j<sum-1-i;j++)
    			if(stup[j].dorm>stup[j+1].dorm)
    			  {
    				exchangeData(&stu1,&stup[j]);	
    				exchangeData(&stup[j],&stup[j+1]);	
    				exchangeData(&stup[j+1],&stu1);	
    			}
    
      }
     
      /*根据班级从小到大排序   选择*/
      
      void sortByClass(STUDENTS stu0[],int sum,STUDENTS stup[])
    
      {  
      	
      	STUDENTS stu1;			//中间变量 
      	int i,j,k;
    
    	cpStu(stu0,stup,sum);
    	
        for(i=0;i<sum-1;i++)
    	{
    		k=i;
    		for(j=i+1;j<sum;j++)
    			if(strcmp(stup[k].studentclass,stup[j].studentclass)>0)		
    					k=j;
    
    				
    		if(k!=i)
    		{
    			exchangeData(&stu1,&stup[i]);	
    			exchangeData(&stup[i],&stup[k]);	
    			exchangeData(&stup[k],&stu1);
    		}			
    	}
    	
    	
      }
      
       /*根据姓名从大到小排序   折半插入排序*/
    	//因为这里是从stu[1]开始操作的,所以得再创个中间变量 
      void sortByName(STUDENTS stu0[],int sum,STUDENTS stup[])
    
      {  
      	STUDENTS stu1;			//中间变量 
      	STUDENTS stu[1000];
      	int i,j,low,high,mid;
    
    		for(i=0;i<sum;i++){
     		stu[i+1].num=stu0[i].num;
     		strcpy(stu[i+1].name,stu0[i].name);
     		strcpy(stu[i+1].sex,stu0[i].sex);
     		stu[i+1].age=stu0[i].age;
     		strcpy(stu[i+1].studentclass,stu0[i].studentclass);
     		stu[i+1].dorm=stu0[i].dorm;
     	}	
    	
    	
    	for(i=2;i<sum+1;i++){
    		exchangeData(&stu1,&stu[i]);    /*保存待插入元素到stu1*/
    		 low=1;high=i-1;
    		 while(low<=high)
    		 {
    		 	mid=(low+high)/2;
    		 	if(strcmp(stu1.name,stu[mid].name)>0)
    		 		low=mid+1;
    		 	else
    		 		high=mid-1;
    		 	
    		 }
    		 for(j=i-1;j>=high+1;j--)
    			 exchangeData(&stu[j+1],&stu[j]);//后移元素,留出插入空位 
    		exchangeData(&stu[high+1],&stu1);		
    	}
    	
    	for(i=0;i<sum;i++){
     		stup[i].num=stu[i+1].num;
     		strcpy(stup[i].name,stu[i+1].name);
     		strcpy(stup[i].sex,stu[i+1].sex);
     		stup[i].age=stu[i+1].age;
     		strcpy(stup[i].studentclass,stu[i+1].studentclass);
     		stup[i].dorm=stu[i+1].dorm;
     	}	
    		
      }
      
      
      
    
       /*根据学号从大到小排序   插入的希尔排序*/
        
       void ShellInsert(STUDENTS stup[],int sum,int dk){   	
       	int i,j,k;
       	STUDENTS stu1;//中间变量 
       	for(k=0;k<dk;k++)
       		for(i=dk+k;i<sum;i=i+dk)
    			if(stup[i].num<stup[i-dk].num)
       			{
       			
       				exchangeData(&stu1,&stup[i]); 
       			
       				for(j=i-dk;j>=0&&stu1.num<stup[j].num;j=j-dk)//记录向后移    			
    					exchangeData(&stup[j+dk],&stup[j]); 
    			
    				exchangeData(&stup[j+dk],&stu1); 
    			}
       }    
      void sortByNum(STUDENTS stu[],int sum,STUDENTS stup[])
      {  
    
      	int i,x;
        
    	cpStu(stu,stup,sum);
    	
      	int dlta[5]={5,4,3,2,1};  	
      	for(x=0;x<5;x++)
      		ShellInsert(stup,sum,dlta[x]);
      	
      	
      }
      
      //总的函数 
      void sortStudent(STUDENTS stu[],int sum){
      	STUDENTS stup[1000];//引用,把排好序的放在这里,不跟原来的混淆 
      	int choice,x,i;
      	do{	
    	  	system("cls");
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▄        学生宿舍信息排序        ▄\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
    	  	
    	  	select:
    	  	choice=selectSort();
    	  	
    	  	system("cls");
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▄        学生宿舍信息排序        ▄\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
    		   
    	  	switch(choice)
    	    {	  
    	      case 1: sortByNum(stu,sum,stup); break;/*学生学号信息顺序*/
    	      case 2: sortByClass(stu,sum,stup);break;/*学生班级信息顺序*/     
    		  case 3: sortByDorm(stu,sum,stup); break;/*学生宿舍信息顺序*/
    		  case 4: sortByName(stu,sum,stup); break;/*学生姓名信息顺序*/
    	      case 0: break;
        	}
        	//打印排好序的 
        	printHead();
        	 for(i=0;i<sum;i++)
    			printSearch(stup,i);
        	
        	
        	if(choice==1||choice==2||choice==3||choice==4)
    		{
    	    	printf("\n\n");
    		   	button:
    			   printf("继续查询请按1,返回主菜单请按0  ");
    			   scanf("%d",&x);
    				if(x==1)	
    					x=1;
    				else if(x==0)
    				 	continue;
    				else
    				 	{		
    				 		printf("请输入正确的指令\n"); 
    				 		goto button;		 		
    				 	}
    		}
    		else if(choice==0)
    			x=0;
    		else
    		{
    			printf("\n\t\t请输入正确的指令\n"); 
    			goto select;
    		}
    		  
    	}while(x==1);
        
      } 
      
     
    
    
    
    
    
    
    /* 根据条件查找指针point*/ 
    ///
    
    
    //查询或者修改的选择; 
    int selectChoice(char tiaojian[20]){
    	
    	int choice;
    	
    	
    	 printf("\n\n\n     ********您想根据哪个条件%s********\n\n",tiaojian);
         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);
     	 return choice; 
    }
    
    
      ///????????????????????????????为什么这里的指针得返回菜可行,参数不是指针,操作的是地址的???? 
    Points *connectPoint(Points *r,Points *p,int i){
      		p=(Points *)malloc(sizeof(Points));
    		p->a=i;
    		r->points=p;
    		r=p;
    		return r;
      }
      
      //choice是指主菜单中的功能选项,字符数组tiaojian为相应的字符,比如如果选择查询的话,
      //tiaojian传参进来的应该为 "查询",这里是为了提高函数的复用性。 
      Points *findPoint(STUDENTS stu[],int sum,int choice,char tiaojian[])
      {
      	int i,j=0; Points *p,*q,*r; q=(Points *)malloc(sizeof(Points));r=q;
       	int num,age,dorm;char classs[20],sex[5],name[20];
    
        printf("     \n\n请输入您要查找的学生的%s",tiaojian);
       	switch(choice)
    	{
    		case 1: scanf("%d",&num);
    				for(i=0;i<sum;i++)
    					if(num==stu[i].num)
    						r=connectPoint(r,p,i);
    				break;
    		case 2: scanf("%s",name);for(i=0;i<sum;i++)if(strcmp(name,stu[i].name)==0)r=connectPoint(r,p,i);break;
    		case 3: scanf("%s",sex);for(i=0;i<sum;i++)if(strcmp(sex,stu[i].sex)==0)r=connectPoint(r,p,i);break;
    		case 4: scanf("%d",&age);for(i=0;i<sum;i++)if(age==stu[i].age)r=connectPoint(r,p,i);break;
    		case 5: scanf("%s",classs);for(i=0;i<sum;i++)if(strcmp(classs,stu[i].studentclass)==0)r=connectPoint(r,p,i);break;
    		case 6: scanf("%d",&dorm);for(i=0;i<sum;i++)if(dorm==stu[i].dorm)r=connectPoint(r,p,i);break;
    	}
    	  
    	r->points=NULL;
    	
     	return q;
      	
      } 
      
     
    
    // 
    
    
    
    /*查询学生信息*/
    void inquire(STUDENTS stu[],int sum) {
    	
    	int choice;
    	Points *p;
    		
    	do{
    	system("cls");
    	printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
        printf("                   ▄                                ▄\n");
        printf("                   ▄        查询学生宿舍信息        ▄\n");
        printf("                   ▄                                ▄\n");
        printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
    
    	button: 
    	choice=selectChoice(chaxun);
    	
    	system("cls");
    	
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▄        查询学生宿舍信息        ▄\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
       
    	
    switch里面不能调用排序功能,为什么?????????	
    	switch(choice)
    	{
    		case 1:p=findPoint(stu,sum,choice,xuehao);break;
    		case 2:p=findPoint(stu,sum,choice,xingming);break;
    		case 3:p=findPoint(stu,sum,choice,xingbie);break;
    		case 4:p=findPoint(stu,sum,choice,nianling);break;
    		case 5:p=findPoint(stu,sum,choice,banji);break;
    		case 6:p=findPoint(stu,sum,choice,sushe);break;
    		case 0:return; 
    		default :printf("请输入正确的指令");goto button;//不断循环;	
    	}
    	
    	if(p->points!=NULL)
    	{
    		p=p->points;
    		
    		printHead();
    		
    		while(p!=NULL)
    		{
    			printSearch(stu,p->a);
    			p=p->points;
    		}		
    	}
    	else
    		printfNotFound();
    	//选择操作 
    		selectOperate();	
    	}while(a);
    	
    }
     
      
      //二分法只适用于查找一个     目前只有学号,姓名,宿舍排序 
       Points *findPoint2(STUDENTS stu[],int sum,int choice,char tiaojian[])
      {
      	int i,j=0; Points *p,*q,*r; q=(Points *)malloc(sizeof(Points));r=q;
       	int num,age,dorm;char classs[20],sex[5],name[20];
    
    
    
        printf("     \n\n请输入您要查找的学生的%s",tiaojian);
        
        	switch(choice)
    	{
    		case 1: scanf("%d",&num);break;
    		case 2: scanf("%s",name);break;
    		case 3: scanf("%d",&dorm);break;
    	}
    	
    	
    	int flag=0;
      	int low=0,high=sum-1,mid;
      	while(low<=high){
      		mid=(low+high)/2;
      	
      	
      	switch(choice)
    	{
    		case 1:if(num==stu[mid].num){r=connectPoint(r,p,mid);printf("mid==%d",mid);flag=1;} 
    				else if(stu[mid].num>num)high=mid-1;else low=mid+1;
    				break;
    		case 2: if(strcmp(name,stu[mid].name)==0){r=connectPoint(r,p,mid);flag=1;} if(strcmp(stu[mid].name,name)>0)high=mid-1;else low=mid+1;break;
    		case 3: if(dorm==stu[mid].dorm){r=connectPoint(r,p,mid);flag=1;} if(stu[mid].dorm>dorm)high=mid-1;else low=mid+1;break;
    	}
    	//如果找到,就跳出循环 
      	if(flag)
      		break;
      		
      	}	
        	  
    	r->points=NULL;
    	
     	return q;
      	
      } 
    
    
    /*二分法查询学生信息*/
    void inquire2(STUDENTS stu[],int sum) {
    	STUDENTS stup1[1000];//引用,把排好序的放在这里,不跟原来的混淆 
    	STUDENTS stup2[1000];//引用,把排好序的放在这里,不跟原来的混淆 
    	STUDENTS stup3[1000];//引用,把排好序的放在这里,不跟原来的混淆 
    	//二分法得先排序 
    	sortByNum(stu,sum,stup1);
    	sortByName(stu,sum,stup2);
    	sortByDorm(stu,sum,stup3);
    	
    	int choice;
    	Points *p;
    	
    	
    	do{
    	system("cls");
    	printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
        printf("                   ▄                                ▄\n");
        printf("                   ▄        查询学生宿舍信息        ▄\n");
        printf("                   ▄                                ▄\n");
        printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
    
    	button: 
    	 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);
    	
    	system("cls");
    	
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▄        查询学生宿舍信息        ▄\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
       
    	
    switch里面不能调用排序功能,为什么?????????	
    	switch(choice)
    	{
    		case 1:p=findPoint2(stup1,sum,choice,xuehao);break;//二分法查询 
    		case 2:p=findPoint2(stup2,sum,choice,xingming);break;//二分法查询 
    		case 3:p=findPoint2(stup3,sum,choice,sushe);break;//二分法查询 
    		case 0:return; 
    		default :printf("请输入正确的指令");goto button;//不断循环;	
    	}
    	
    	if(p->points!=NULL)
    	{
    		p=p->points;
    		
    		printHead();
    		
    		while(p!=NULL)
    		{
    			if(choice==1) {
    			printSearch(stup1,p->a);
    			p=p->points;}
    			if(choice==2) {
    			printSearch(stup2,p->a);
    			p=p->points;}
    			if(choice==3) {
    			printSearch(stup3,p->a);
    			p=p->points;}
    		}		
    	}
    	else
    		printfNotFound();
    	//选择操作 
    		selectOperate();	
    	}while(a);
    	
    }
    
    
    //修改和删除判断输入学生个数 
    int operateNum(int sum){
    	int n;
    	printf("请输入你要操作的学生的个数:");
       scanf("%d",&n);
       if(n>sum)
       {
    	printf("\n\n	输入学生个数超过总量,操作失败\n");
    	selectOperate();
    	return 0;
       }
       else if(n<=0)
       	{ 
    	printf("\n\n	输入学生个数不能小于或等于0,操作失败\n");
    	selectOperate();
    	return 0;
       }
       return n;
    } 
    
    
    
    /*只能根据学号删除学生信息*/
    
    void exchangeData(STUDENTS *stu1,STUDENTS *stu2);
    
    //返回总数 
    int deletel(STUDENTS stu[],int sum)
      { 
      a=1;
        system("cls"); 
       int i,j=0,n=0,flag=1;
       Points *p;  
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▄        删除学生宿舍信息        ▄\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
         
       while(n==0)//这里接收到的两个数,n判断学生个数,a判断是否返回主菜单 
       {
       	n=operateNum(sum);
       	//选择操作 
    	if(a==0)
    		return sum;  //0就返回主菜单	
       }	 
         
       do{  
       
       if(flag){
       
       system("cls"); 
        Points *p;  
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▄        删除学生宿舍信息        ▄\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
    	}
    	
       //查一个删一个 
      	p=findPoint(stu,sum,1,xuehao); 
      	p=p->points;
    	if(p!=NULL)   
    	{	
    		i=p->a;		
    		//把后面的一次覆盖掉前面一个 
    		for(;i<sum-1;i++)
    			exchangeData(&stu[i],&stu[i+1]);
    
    		printf("删除成功\n");
    		flag=0;
    		j++;
    		if(j==n)
    		{
    			printf("\n\n删除操作已完成\n");
    			//选择操作 
    			selectOperate();
    			if(a==0)
    				return sum-n;
    			else 
    				deletel(stu,sum-n);
    		}
    	} 
    	else{
    		printf("输入的学号不存在,操作失败\n");
    		
    		//选择操作 
    		selectOperate();
    		if(a==0)
    			return sum-j;	
    	}
    	}while(a==1&&j<n);
    
    }
    
    
    
    /*只能根据学号修改学生信息*/
    
    void change(STUDENTS stu[],int sum)
      {  
    	 int choice;
          Points *p;
          
        do{
          system("cls");
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▄        修改学生宿舍信息        ▄\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
    	  p=findPoint(stu,sum,1,xuehao);
    		
    	  p=p->points;
    	  
        if(p!=NULL)
        {
        	system("cls");
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▄        修改学生宿舍信息        ▄\n");
       printf("                   ▄                                ▄\n");
       printf("                   ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");
        	
        	int i=p->a;
        	
    		print(stu,i);
    		button:
    		choice=selectChoice(xiugai);
    		 
    		 switch(choice)		
    		 {
    		  case 1:printf("\n   请输入你改的新学号");scanf("%d",&stu[i].num); break;
    		  case 2:printf("\n   请输入你改的新姓名");scanf("%s",stu[i].name); break;
    		  case 3:printf("\n   请输入你改的新性别");scanf("%s",stu[i].sex);  break;
    		  case 4:printf("\n   请输入你改的新年龄");scanf("%d",&stu[i].age);  break;
    		  case 5:printf("\n   请输入你改的新班级");scanf("%s",stu[i].studentclass); break;
    		  case 6:printf("\n   请输入你改的新宿舍");scanf("%d",&stu[i].dorm); break;
    		  case 0:return; 
    		  default :printf("请输入正确的指令");goto button;		  
    		 }
    		  
    		  printf("\n   修改成功:");
    		  print(stu,i);					
    	}
    	else	
    		printfNotFound();
    		
    	 //选择操作 
    	selectOperate();
    		if(a==0)
    			return;
    	}while(a);
    }
    
    
    
    void pagedis()
    {
       printf(" \n\n\n                   **********************************\n");
       printf("                   *                                *\n");
       printf("                   *                                *\n");
       printf("                   *                                *\n");
       printf("                   *  欢迎进入学生宿舍信息管理系统  *\n");
       printf("                   *                                *\n");
       printf("                   *                                *\n");
       printf("                   *                                *\n");
       printf("                   **********************************\n");
    }
    //欢迎 
    void welcome(){
    	
    			char heart[30][150]={
            "                           ************                           ************",
            "                        ******************         	        ******************",
            "                    ******************#*******        	    **************************",		
            "                 **********************#*********       ********************************",
            "                **********************##########***   **************#********************  ",
            "               **********************#*********#**** **##********#************************   ",
            "               *********##########**#****#****#**********##****#**************************  ",
            "               **********#*******#*#*****#***#***************#********#########***********  ",
            "                **********#*****#********#***********#####***#********#*******#**********  ",
            "                 ***********#***#********#***************#***#******#*#****#**#*********  ",
            "                  ***********##**********#**************#*****#****#***#*****#*#*******   ",
            "                   **********##*********#*#************#*****####*****#*******#*******  ",
            "                    ********#**#*******#***#************#*************#**************    ",
            "                      *****#****#*****#*****#************#************#************    ",
            "                        **#**********#*******#******######************#**********     ",
            "                          **********#*********#*****###########################     ",
            "                            **************************************************      ",
            "                              **********************************************     ",
            "                                ******************************************     ",
            "                                  **************************************    ",
            "                                    **********************************      ",
            "                                      ******************************   ",
            "                                        **************************   ",
            "                                          **********************  ",
            "                                            ******************  ",
            "                                              **************      ",
            "                                                **********       ",
            "                                                  ******    ",
            "                                                    **  "
    		};
    		
        int i;
        for(i=0;i<29;i++)   //逐行打印
            printf("%s\n",heart[i]);
    }
    
    
    
    void bye(){
    	system("cls");
    			char heart[11][150]={
    "\t\t  _____   _                        _             ",
    "\t\t |_   _| | |_     __ _    _ _     | |__    ___     o O O   ",
    "\t\t   | |   | ' \\   / _` |  | ' \\    | / /   (_-<    o        ",
    "\t\t  _|_|_  |_||_|  \\__,_|  |_||_|   |_\\_\\   /__/_   TS__[O]  ",
    "\t\t_|\"\"\"\"\"|_|\"\"\"\"\"|_|\"\"\"\"\"|_|\"\"\"\"\"|_|\"\"\"\"\"|_|\"\"\"\"\"| {======| ",
    "\t\t\"`-0-0-\'\"`-0-0-\'\"`-0-0-\'\"`-0-0-\'\"`-0-0-\'\"`-0-0-\'./o--000'  "			
    };
    		
       int i;
       printf("\n\n");
        for(i=0;i<6;i++)   //逐行打印
            printf("%s\n",heart[i]);
    }
    
    void designer(){
            printf("\n\n\t\t☆☆☆☆☆☆☆☆★★设计者信息★★☆☆☆☆☆☆☆☆\n\n");
            printf("\t\t	●●	                         ●●\n\n");
            printf("\t\t	●●	姓名:xxxx               ●●\n\n");
            printf("\t\t	●●	                         ●●\n\n");
            printf("\t\t	●●	班级:xxxxxxx            ●●\n\n");
            printf("\t\t	●●	                         ●●\n\n");
            printf("\t\t	●●	学号: xxxxxxxxxxxx      ●●\n\n");
            printf("\t\t	●●	                         ●●\n\n");
            printf("\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
    }
    
    void check()
    {
       char userName[5];/*用户名*/
    
       char userPWD[5];/*密码*/
    
       int i;
    
       system("color 5E");
    
       for(i = 1; i < 4; i++)
       {
          /*用户名和密码均为123;*/
      	
            printf("\n       请输入您的用户名(123):");
    
            gets(userName);
    
            printf("\n       请输入您的密码(123):");
    
            gets(userPWD);
    
            if ((strcmp(userName,"123")==0) && (strcmp(userPWD,"123")==0))/*验证用户名和密码*/
            {
                
                system("cls");
                welcome();
                 printf("\n      3秒后自动跳转");
                Sleep(3000); 
                return;
            }
            else
            {
                if (i < 3)
                    printf("用户名或密码错误,请重新输入!");
                else
                {
                    printf("您已连续3次将用户名或密码输错,系统将退出!");
                    exit(1); 
                }
            }
       }
    
    }
    
    
    void menu()
    {
    		
    	
      STUDENTS stu[20];
      int choice,sum;
      
      sum=read_file(stu);	
      	
      if(sum==0)
       {  
       	 printf("首先录入基本库存信息!按回车后进入*****\n");
         getch();
         
    	 sum=input(stu,sum);
       }
    
    	system("cls");
    
      do
      {  
        system("cls"); 
        
         button:	 	 
         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: sum=input(stu,sum); break;/*创建学生信息*/
          case 2: output(stu,sum) ; break;/*打印学生信息*/
          case 3: inquire(stu,sum); break;/*查询学生信息*/
          case 4: change(stu,sum); break;/*修改学生信息*/
          case 5: sum=deletel(stu,sum);break;/*删除学生信息*/
          case 6: sortStudent(stu,sum); break;/*学生信息顺序*/    
          case 0:  bye();designer();break;
          default:system("cls"); printf("\n		请输入正确的指令!\n");goto button;
        }
    
      }while(choice!=0);
    
      save_file(stu,sum);
    }
    
    
    int main()
    {  
      	 pagedis();
    
    	 check();
    
    	 menu();   
    
      return 0;
    
    }
    
    
    
    展开全文
  • 学生宿舍管理系统C语言课程设计报告程序功能简介我设计的是“学生宿舍管理系统”,主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学生的管理。包括学生的姓名、学号、性别、专业、...
  • C语言宿舍管理系统源程序
  • 本程序是一个用C语言写的学生宿舍管理系统。程序的主要功能有:住宿学生情况登记,修改和删除;寝室的住宿情况记录和修改;以及按要求输出某学生,某寝室,或某楼层的住宿情况。程序简明,已修改即添加新功能
  • 每个学生的信息包括:学号、姓名、性别、平时成绩、期末成绩。系统能够完成学生信息的查询、更新、插入、删除、排序功能
  • 学生宿舍管理软件C语言代码完整版一、需求分析该程序是由C语言编写的一个宿舍管理查询软件,其主要功能是实现对学生信息的增加、删除、修改、查询、排序、存储、加载。其中查询可以分别以姓名、学号、寝室号为...
  • 学生宿舍管理系统 C语言编程》由会员分享,可在线阅读,更多相关《学生宿舍管理系统 C语言编程(22页珍藏版)》请在人人文库网上搜索。1、“学生宿舍管理系统” C C 语言课程设计报告语言课程设计报告 一、一、 程序...
  • 宿舍管理人员设计一个宿舍管理查询系统,程序采用交互工作方式;实现下列功能:建立合适的数据结构作为查找表并输入数据;数据分别按关键字姓名、学号、宿舍号进行排序;设计查询菜单,分别按关键字姓名、学号、...
  • (原创) 学生宿舍管理系统(简易版) C语言

    千次阅读 多人点赞 2020-09-11 22:18:21
    学生宿舍管理系统实现功能一、功能结构二、代码实现1.头文件声明需要使用的函数名1.打印各个选项菜单函数2.选择选项函数3.创建结构体4.宿管录入学生信息函数5.宿管修改学生信息函数6.宿管浏览已录入学生信息3.学生...
  • c++ 编程实例 很详细的代码资源 欢迎下载
  • 学生宿舍管理软件C语言代码完整版》由会员分享,可在线阅读,更多相关《学生宿舍管理软件C语言代码完整版(8页珍藏版)》请在人人文库网上搜索。1、源程序代码:#include#includeTotal.S_number);getchar();S_...
  • C语言宿舍管理系统

    2012-10-08 09:42:15
    用纯C语言编写的简单的宿舍管理系统。包括文件的读写,信息的输入和输入;主要功能包括增删改、查看、检索等;输入输出在Dos界面。
  • 学生宿舍管理系统C语言代码一、需求分析该程序是由C语言编写的一个宿舍管理查询软件,其主要功能是实现对学生信息的增加、删除、修改、查询、排序、存储、加载。其中查询可以分别以姓名、学号、寝室号为关键字查询...
  • C语言编写宿舍管理系统(含源代码) 实现了 添加 修改 删除数据 查询系统 打印信息 等功能 很适合初学者使用!
  • 学生寝室管理系统-C语言版 项目包含文件: 1、main.c(执行该文件即可运行系统) 2、student.c(包含几乎所有要执行的系统功能的函数) 3、student.h(项目需要的头文件,相当于提前声明了一下student.c中的函数) ...
  • c语言写的学生信息管理系统,带修改,查询功能。,代码180行左右,之前写的,仅供学习使用,可以完美运行。
  • C语言课程设计之宿舍管理系统

    千次阅读 2020-12-27 11:44:45
    学生宿舍管理系统时应对学生宿舍管理的现代化、网络化,逐步摆脱学生宿舍管理的人工管理方式,提高学生宿舍管理效率而开发的,它包括了对学生宿舍基本信息管理,其功能包括对这些基本信息的增、删、改、查等基本功能...
  • 本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 /*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016...
  • C语言程序设计---学生宿舍管理系统仲恺农业技术学院课 程 设 计课程设计题目 学生宿舍管理系统目录需求分析: …………………………… 3概要设计: …………………………… 3~12详细设计: …………………………… 13...
  • 专业专注专业专注#i nclude #in clude#i nclude/...// 宿舍号char stuName[20];//学生姓名int stuNo;//学生学号char stuSex[10];//性别char dept[20];//系别char major[20];//专业int tel;// 电话} *stu;//函数指针v...
  • 宿舍管理系统代码

    2014-12-23 20:44:41
    宿舍管理系统,可以实现查找,登记,添加删除等多项功能。VC++实现的源代码
  • C语言程序设计课程设计--学生宿舍信息管理系统课 程 设 计课程名称C语言程序设计课程设计题目名称宿舍学生信息管理系统二○一五年6月20日计算机科学与技术系课程设计任务书课 程C语言程序设计班级指导教师题 目学生...
  • 实现简单的学生宿舍基本信息管理,宿舍的基本信息包括楼号、房间号、面积、所容纳人数、已入住人数等,系统以文本菜单形式工作。 登录时:用户名为asd 密码任意 #include &amp;amp;amp;lt;stdio.h&amp;amp;...
  • 对于C语言还有点基础,.NET和Java不太懂。 假期培训了iOS开发,才一个多月,本想用OC来做毕业设计的,现在要做开题报告了,不知道怎么写。所以决定用C来编写程序。 问题1:C语言怎么连接数据库,或是保证下次运行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 986
精华内容 394
关键字:

学生宿舍管理系统代码c语言

c语言 订阅