宿舍管理系统_宿舍人员管理系统

2020-02-28 其他范文 下载本文

宿舍管理系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“宿舍人员管理系统”。

附件B:宿舍管理系统源代码

#include “stdio.h” #include “stdlib.h”

#define SIZE 1000

char grade;

typedef struct StuNode{

char num[11];

char name[20];

char sex[2];

char birth[11];

char hometn[13];

char dorNum[7];

char dorTel[8];

struct StuNode *next;}StuNode,*StuList;

int readToList(StuList sl,FILE *fp){

StuList p;

int i=0;

while(1){

p=(StuList)malloc(sizeof(StuNode));

if(fread(p,sizeof(StuNode),1,fp)!=1)break;

p->next=sl->next;

sl->next=p;

i++;

}

fclose(fp);

return i;}

void addNode(){

FILE *fp;

StuList sl,p,q;

if((fp=fopen(“stu_list”,“rb”))==NULL){ /*the file doesn't exist*/

p=(StuList)malloc(sizeof(StuNode));

printf(“Please enter the student's information:n”);

scanf(“%s%s%s%s%s%s%s”,&p->num,&p->name,&p->sex,&p->birth,&p->hometn,&p->dorNum,&p->dorTel);

getchar();

p->next=NULL;

if((fp=fopen(“stu_list”,“wb”))==NULL){

printf(“cannot open filen”);

return;

}

else{

if(fwrite(p,sizeof(StuNode),1,fp)!=1){

printf(“file write errorn”);

return;

}

}

fclose(fp);

}

else{

sl=(StuList)malloc(sizeof(StuNode));

sl->next=NULL;

readToList(sl,fp);

p=(StuList)malloc(sizeof(StuNode));

printf(“Please enter the student's information:n”);

scanf(“%s%s%s%s%s%s%s”,&p->num,&p->name,&p->sex,&p->birth,&p->hometn,&p->dorNum,&p->dorTel);

getchar();

q=sl->next;

while(q){

if(strcmp(q->num,p->num)==0){

printf(“This student %s existed!Pre Enter to continue....”,p->num);

getchar();

clrscr();

return;

}

else q=q->next;

}

p->next=sl->next;

sl->next=p;

p=sl->next;

if((fp=fopen(“stu_list”,“wb”))==NULL){

printf(“cannot open filen”);

return;

}

else{

while(p){

if(fwrite(p,sizeof(StuNode),1,fp)!=1){

printf(“file write errorn”);

return;

}

p=p->next;

}

}

fclose(fp);

}

printf(“nSucce!

Pre Enter to continue....”);

getchar();

clrscr();}

void delNode(){

FILE *fp;

StuList sl,p,q;

char num[11];

int flag=1;

printf(“Please enter the student's num:”);

scanf(“%s”,&num);

getchar();

sl=(StuList)malloc(sizeof(StuNode));

sl->next=NULL;

if((fp=fopen(“stu_list”,“rb”))==NULL){

printf(“cannot open filen”);

return;

}

readToList(sl,fp);

p=sl;

while(p){

q=p->next;

if(strcmp(q->num,num)==0){

p->next=q->next;

free(q);

flag=0;

}

else p=p->next;

}

if(flag==1){

printf(“Not exist this student--%s!Pre Enter to continue....”,num);

getchar();

clrscr();

return;

}

else if((fp=fopen(“stu_list”,“wb”))==NULL){

printf(“cannot open filen”);

return;

}

else{

p=sl->next;

while(p){

if(fwrite(p,sizeof(StuNode),1,fp)!=1){

printf(“file write errorn”);

return;

}

p=p->next;

}

fclose(fp);

}

printf(“nSucce!

Pre Enter to continue....”);

getchar();

clrscr();}

void editNode(){

FILE *fp;

StuList sl,p;

char num[11];

int flag=1;

printf(“Please enter the student's num:”);

scanf(“%s”,&num);

getchar();

sl=(StuList)malloc(sizeof(StuNode));

sl->next=NULL;

if((fp=fopen(“stu_list”,“rb”))==NULL){

printf(“cannot open filen”);

return;

}

readToList(sl,fp);

p=sl->next;

while(p){

if(strcmp(num,p->num)==0){

printf(“nThe student's old information is:n%s %s %s %s %s %s %snPlease enter the student's new information:n”,p->num,p->name,p->sex,p->birth,p->hometn,p->dorNum,p->dorTel);

scanf(“%s%s%s%s%s%s%s”,&p->num,&p->name,&p->sex,&p->birth,&p->hometn,&p->dorNum,&p->dorTel);

getchar();

flag=0;

break;

}

else p=p->next;

}

if(flag){

printf(“Not exist this student--%s!Pre Enter to continue....”,num);

getchar();

clrscr();

return;

}

else if((fp=fopen(“stu_list”,“wb”))==NULL){

printf(“cannot open filen”);

return;

}

else{

p=sl->next;

while(p){

if(fwrite(p,sizeof(StuNode),1,fp)!=1){

printf(“file write errorn”);

return;

}

p=p->next;

}

fclose(fp);

}

printf(“nSucce!

Pre Enter to continue....”);

getchar();

clrscr();}

void sort(StuList sl[],int n,char key[]){

int i,j,k;

if(strcmp(key,“num”)==0){

for(i=1;i

k=i;

for(j=i+1;j

if(strcmp(sl[j]->num,sl[k]->num)

if(k!=i){

sl[0]=sl[i];

sl[i]=sl[k];

sl[k]=sl[0];

}

}

}

if(strcmp(key,“name”)==0){

for(i=1;i

k=i;

for(j=i+1;j

if(strcmp(strlwr(sl[j]->name),strlwr(sl[k]->name))

if(k!=i){

sl[0]=sl[i];

sl[i]=sl[k];

sl[k]=sl[0];

}

}

}

if(strcmp(key,“dorNum”)==0){

for(i=1;i

k=i;

for(j=i+1;j

if(strcmp(sl[j]->dorNum,sl[k]->dorNum)

if(k!=i){

sl[0]=sl[i];

sl[i]=sl[k];

sl[k]=sl[0];

}

}

} }

void scan(char key[]){

FILE *fp;

StuList sortary[SIZE],sl,p;

int i,n;

sl=(StuList)malloc(sizeof(StuNode));

sl->next=NULL;

if((fp=fopen(“stu_list”,“rb”))==NULL){

printf(“cannot open filen”);

return;

}

n=readToList(sl,fp);

p=sl->next;

for(i=1;i

sortary[i]=p;

p=p->next;

}

sort(sortary,n,key);

printf(“n

num

name

sex

birth

hometown

dorNum dorTeln”);

printf(“---------------n”);

for(i=1;i

printf(“%-11s %-19s%-2s %-11s %-13s %-7s %-8sn”,sortary[i]->num,sortary[i]->name,sortary[i]->sex,sortary[i]->birth,sortary[i]->hometn,sortary[i]->dorNum,sortary[i]->dorTel);

}

printf(“---------------n”);

printf(“Pre Enter to continue...”);

getchar();}

void search(char key[],char value[]){

FILE *fp;

StuList sortary[SIZE],sl,p;

int i,n,low,high,mid,flag=1;

sl=(StuList)malloc(sizeof(StuNode));

sl->next=NULL;

if((fp=fopen(“stu_list”,“rb”))==NULL){

printf(“cannot open filen”);

return;

}

n=readToList(sl,fp);

p=sl->next;

for(i=1;i

sortary[i]=p;

p=p->next;

}

sort(sortary,n,key);

low=1;high=n;

while(low

mid=(low+high)/2;

if(strcmp(value,sortary[mid]->num)==0){

printf(“The student's information is:n”);

printf(“%-11s%-19s%-2s%-11s%-13s%-7s%-8sn”,sortary[mid]->num,sortary[mid]->name,sortary[mid]->sex,sortary[mid]->birth,sortary[mid]->hometn,sortary[mid]->dorNum,sortary[mid]->dorTel);

flag=0;

break;

}

else if(strcmp(strlwr(value),strlwr(sortary[mid]->name))==0){

printf(“Result set:n”);

printf(“%-11s%-19s%-2s%-11s%-13s%-7s%-8sn”,sortary[mid]->num,sortary[mid]->name,sortary[mid]->sex,sortary[mid]->birth,sortary[mid]->hometn,sortary[mid]->dorNum,sortary[mid]->dorTel);

for(i=mid+1;strcmp(strlwr(value),strlwr(sortary[i]->name))==0;i++)

printf(“%-11s%-19s%-2s%-11s%-13s%-7s%-8sn”,sortary[mid]->num,sortary[mid]->name,sortary[mid]->sex,sortary[mid]->birth,sortary[mid]->hometn,sortary[mid]->dorNum,sortary[mid]->dorTel);

for(i=mid-1;strcmp(strlwr(value),strlwr(sortary[i]->name))==0;i--)

printf(“%-11s%-19s%-2s%-11s%-13s%-7s%-8sn”,sortary[mid]->num,sortary[mid]->name,sortary[mid]->sex,sortary[mid]->birth,sortary[mid]->hometn,sortary[mid]->dorNum,sortary[mid]->dorTel);

flag=0;

break;

}

else if(strcmp(value,sortary[mid]->dorNum)==0){

printf(“Result set:n”);

printf(“%-11s%-19s%-2s%-11s%-13s%-7s%-8sn”,sortary[mid]->num,sortary[mid]->name,sortary[mid]->sex,sortary[mid]->birth,sortary[mid]->hometn,sortary[mid]->dorNum,sortary[mid]->dorTel);

for(i=mid+1;strcmp(value,sortary[i]->dorNum)==0;i++)

printf(“%-11s%-19s%-2s%-11s%-13s%-7s%-8sn”,sortary[i]->num,sortary[i]->name,sortary[i]->sex,sortary[i]->birth,sortary[i]->hometn,sortary[i]->dorNum,sortary[i]->dorTel);

for(i=mid-1;strcmp(value,sortary[i]->dorNum)==0;i--)

printf(“%-11s%-19s%-2s%-11s%-13s%-7s%-8sn”,sortary[i]->num,sortary[i]->name,sortary[i]->sex,sortary[i]->birth,sortary[i]->hometn,sortary[i]->dorNum,sortary[i]->dorTel);

flag=0;

break;

}

else if((strcmp(key,“num”)==0)&&(strcmp(value,sortary[mid]->num)

else if((strcmp(key,“name”)==0)&&(strcmp(strlwr(value),strlwr(sortary[mid]->name))

else if((strcmp(key,“dorNum”)==0)&&(strcmp(value,sortary[mid]->dorNum)

else low=mid+1;

}

if(flag)printf(“No result!n”);

printf(“Pre Enter to continue...”);

getchar();

clrscr();}

void printMenu(){

printf(“

******************************************n”);

printf(“

1.Add one student's record.n”);

printf(“

2.Delete one student's record.n”);

printf(“

3.Edit one student's record.n”);

printf(“

4.Scan all records ordered by num.n”);

printf(“

5.Scan all records ordered by name.n”);

printf(“

6.Scan all records ordered by dorNum.n”);

printf(“

7.Search one student's record.n”);

printf(“

8.Exit.n”);

printf(“

**************************************************n”);

printf(“Please enter your choice(1~8):”);

grade=getchar();

getchar();}

void main(){

char key[7],value[20];

while(1){

printMenu();

switch(grade){

case'1':addNode();break;

case'2':delNode();break;

case'3':editNode();break;

case'4':clrscr();scan(“num”);break;

case'5':clrscr();scan(“name”);break;

case'6':clrscr();scan(“dorNum”);break;

case'7':clrscr();

printf(“Please enter the key and value(eg:num 0606054230/name ZhangSan/dorNum 030615):n”);

scanf(“%s%s”,&key,&value);

while((strcmp(key,“num”)!=0)&&(strcmp(key,“name”)!=0)&&(strcmp(key,“dorNum”)!=0)){

printf(“Wrong key!It must be num/name/dorNum:n”);

scanf(“%s%s”,&key,&value);

getchar();

}

getchar();

clrscr();

search(key,value);

break;

case'8':exit(0);

default:clrscr();

printf(“n Have no this choice--%c!Pre Enter to continue...”,grade);

getchar();

clrscr();

}

} }

《宿舍管理系统.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
宿舍管理系统
点击下载文档
相关专题 宿舍人员管理系统 管理系统 宿舍 宿舍人员管理系统 管理系统 宿舍
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文