您的位置:

c语言宿舍,C语言宿舍管理系统报告总结与展望

本文目录一览:

C语言宿舍管理系统程序

#includestdio.h

#includestring.h

typedef struct DometoryMember{

    char sno[16];

    char name[32];

    char phone[16];

    char address[20];

}DB;

  

//创建一张宿舍成员信息表 

int createList(DB a[]){

    FILE *r = fopen("input.txt","r");

    int i=0;

    while(fscanf(r,"%s%s%s%s",a[i].sno,a[i].name,a[i].phone,a[i].address) != EOF){

        i++;

    }

    return i;

}

//根据学号查找某个学生,显示其基本信息 

int lookup(DB a[],int n,char sno[]){

    int i=0;

    while(strcmp(a[i].sno,sno) != 0  in){

        i++;

    }

    if(i==n){

        printf("没有此人\n");

        return -1;

    }

    else{

        printf("%s\t%s\t%s\t%s\n",a[i].sno,a[i].name,a[i].phone,a[i].address);

        return i;

    }

}

//根据学号删除某个学生 

int del(DB a[],int n,char sno[]){

    int i;

    printf("删除学号为%s的学生:\n",sno);

    i = lookup(a,n,sno);

      

    if(i != -1){

        int j;

        for(j=i+1;jn;j++){

            a[j-1] = a[j];

        }

        return n-1;

    }

    else{

        return -1;

    }

}

int main(){

    DB a[16];

    int n = createList(a);

    printf("总共%d个学生\n",n);

    char sno[20];

    scanf("%s",sno);

    int i = lookup(a,n,sno);

    n = del(a,n,sno);

    printf("删除之后还剩%d个学生\n",n); 

    getchar();

    getchar();

    return 0;

  

}

数据结构,C语言编写宿舍管理系统

。。。。。。。。。。。。。。。。。。。。正在写

/*学生宿舍信息管理系统*/

#includestdlib.h

#includestdio.h

#includeconio.h

#includedos.h

#includestring.h

#define LEN sizeof(struct commdity)

struct student

{

char name[15];/*学生姓名*/

int sex;/*学生性别*/

};

struct commdity

{

int num;/*宿舍号码*/

int number;/*容纳人数---并没有赋予实际作用*/

int money;/*住宿费用*/

struct student Student[8];/*最多能住个8人上限*/

};

struct commdity comm[50];

void menu()/*菜单*/

{

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

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

printf("\t\t\t\t1.录入宿舍的信息\n");

printf("\t\t\t\t2.录入学生的信息\n");

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

printf("\t\t\t\t4.查找学生信息\n");

printf("\t\t\t\t请选择:(0-7):");

}

void in()/*对宿舍信息的录入*/

{

int i,m=0;

char ch[2];

FILE *fp;

if((fp=fopen("data","ab+"))==NULL)

{

printf("不能打开文件\n");

return;

}

while(!feof(fp))

{

if(fread(comm[m],LEN,1,fp)==1)

{

m++;

}

}

fclose(fp);

if(m==0)

{

printf("没有任何记录");

}

else

{

system("cls");

printf("存在记录");

}

if((fp=fopen("data","wb"))==NULL)

{

printf("不能打开文件");

return;

}

for(i=0;im;i++)

{

if(fwrite(comm[i],LEN,1,fp)!=1)

{

printf("不能保存");

getch();

}

}

printf("是否输入(y\n)");

scanf("%s",ch);

while(strcmp(ch,"Y")==0 || strcmp(ch,"y")==0)

{

printf("宿舍编号");

scanf("%d",comm[m].num);

for(i=0;im;i++)

{

if(comm[i].num==comm[m].num)

{

printf("该宿舍已经存在,按任意键继续");

getch();

fclose(fp);

return;

}

}

printf("请输入宿舍容纳人数");

scanf("%d",comm[m].number);

printf("请输入住宿费用");

scanf("%d",comm[m].money);

if(fwrite(comm[m],LEN,1,fp)!=1)

{

printf("不能保存");

getch();

}

else

{

printf("已经保存 \n");

m++;

}

printf("是否继续");

scanf("%s",ch);

}

fclose(fp);

printf("OK!\n");

}

void studentInput()/*分配学生到指定宿舍*/

{

FILE *fp;

int i,j,m=0,snum;

if((fp=fopen("data","ab+"))==NULL)

{

printf("不能打开文件!\n");

return;

}

while(!feof(fp))

{

if(fread(comm[m],LEN,1,fp)==1)

{

m++;

}

}

printf("一共有%d条记录",m);

fclose(fp);

if((fp=fopen("data","wb"))==NULL)

{

printf("不能打开文件\n");

return;

}

printf("请输入学生的宿舍编号\n");

scanf("%d",snum);

for(i=0;im;i++)

{

if(snum==comm[i].num)

{

printf("存在该宿舍!\n");

for(j=0;j8;j++)

{

if(comm[i].Student[j].sex==NULL)

{

printf("请输入学生的名称\n");

scanf("%s",comm[i].Student[j].name);

printf("请输入学生的性别(1-男,2-女)\n");

scanf("%d",comm[i].Student[j].sex);

for(i=0;im;i++)

{

if(fwrite(comm[i],LEN,1,fp)!=1)

{

printf("不能保存");

getch();

}

}

break;

}

}

fclose(fp);

return;

}

}

fclose(fp);

printf("没有找到");

return;

}

void search()/*对学生信息查找*/

{

int i,m=0;

FILE *fp;

int s;

char ch[2];

int num=0;

printf("请输入编号\n");

scanf("%d",num);

if((fp=fopen("data","ab+"))==NULL)

{

printf("文件不能打开!\n");

return;

}

while(!feof(fp))

{

if(fread(comm[m],LEN,1,fp)==1)

{

m++;

}

}

if(m==0)

{

printf("没有任何记录存在");

return;

}

printf("一共有%d记录\n",m);

for(i=0;im;i++)

{

if(num==comm[i].num)

{

printf("存在该记录 是否显示\n");

scanf("%s",ch);

if(strcmp(ch,"Y")==0 || strcmp(ch,"y")==0)

{

printf("%d宿舍: 住宿人数%d\n",comm[i].num,comm[i].number);

for(s=0;s8;s++)

{

if(comm[i].Student[s].sex!=NULL)

{

printf("\n学生:%s 性别:%d\n",comm[i].Student[s].name,comm[i].Student[s].sex);

}

}

}

return;

}

}

printf("没有找到");

}

void deleStudent()/*删除住宿的学生信息*/

{

FILE *fp;

int snum,s,i,j,m=0;

char ch[2];

char name[20];

if((fp=fopen("data","ab+"))==NULL)

{

printf("不能打开文件!\n");

return;

}

while(!feof(fp))

{

if(fread(comm[m],LEN,1,fp)==1)

{

m++;

}

}

fclose(fp);

if(m==0)

{

printf("没有记录\n");

return;

}

printf("请输入宿舍编号\n");

scanf("%d",snum);

for(i=0;im;i++)

{

if(comm[i].num==snum)

{

printf("已经找到该宿舍!\n");

printf("请输入该学生的名称!\n");

scanf("%s",name);

for(s=0;s8;s++)

{

if(strcmp(comm[i].Student[s].name,name)==0)

{

printf("已将查询到该学生 (是否删除y\n)\n");

scanf("%s",ch);

if(strcmp(ch,"Y")==0 || strcmp(ch,"y")==0)

{

for(j=s;j8;j++)

{

comm[i].Student[j]=comm[i].Student[j+1];

}

printf("删除成功!\n");

if((fp=fopen("data","wb"))==NULL)

{

printf("不能打开文件");

return;

}

for(i=0;im;i++)

{

if(fwrite(comm[i],LEN,1,fp)!=1)

{

printf("不能保存");

getch();

}

}

}

fclose(fp);

return;

}

}

}

}

printf("没有找到\n");

return;

}

int main()

{

int n;

menu();

scanf("%d",n);

while(n!=0)

{

switch(n)

{

case 1:

{

in();

break;

}

case 2:

{

studentInput();

break;

}

case 3:

{

deleStudent();

break;

}

case 4:

{

search();

break;

}

default:

{

break;

}

}

menu();

scanf("%d",n);

}

system("pause");

}

/*程序结束*/

/*保证语法上没有任何错误 有很多程序段重复,你可以自己改改,还有那个容纳人数我直接固定了8个 不过问题不大*/

c语言编程宿舍管理程序

#include string.h: y( {' S! G1 k8 I. g

#include stdio.h' I$ i0 L$ r8 U$ J2 I) n; G9 B

#include stdlib.h0 k$ q2 F4 @0 B$ \

struct student/*结构体的定义*/" O$ A7 h6 Z7 I! {' E) J

{int xh;/*学号*/

, i! N, C4 ?; D% `/ y4 achar xm[10];/*姓名*/, j4 X3 @! i* k: D! w v

char xb[10];/*性别*/. g3 g% n/ V, C1 w+ B# C" e

char sr[20];/*生日*/$ x. E3 |; x3 I0 L2 c5 W

char xbb[20];/*所在系*/

: |; n9 U ?8 }/ C/ Zint sh;/*宿舍号*/

6 r% ^' l+ O* J! ~% Cint fy;/*费用*/# P- }5 ^5 T2 |1 z

char sz[10];/*宿舍长*/, y7 {4 {" ~- h8 V: p% k

struct student *next;/*指向下一个接点的指针*/ f' o4 x4 l( x1 U0 w! y6 y

};

2 l# X; ^( v5 tint table=0;

9 V7 U8 e: X# W0 L1 I; ?! Y. pmain()/*主函数*/; O( E) _/ B1 k8 |* v

{

* Q. s- o h1 |9 d; \8 k' h' Pstruct student *head=NULL;7 l/ g# z$ Q+ N4 z

struct student *createmain(struct student *head);/*新建函数的声明*/

7 A0 Q1 d, g$ K5 h- F b$ H7 Ystruct student *displaymain(struct student *head); /*查询函数的声明*/

0 `( p$ I( n7 L5 O1 [. hstruct student *addmain(struct student *head); /*添加函数的声明*/

+ A) \6 F1 v q! f. r7 r, hstruct student *delmain(struct student *head); /*删除函数的声明*/ ~7 K6 F! d6 b t2 v

struct student *repairmain(struct student *head); /*修改函数的声明*/

% r8 }3 t/ y, X8 K% g3 A+ }$ L. cstruct student *loadmain(struct student *head);. U8 c. r/ Y' |. ~; T

struct student *savemain(struct student *head);

5 ` p W, T7 k2 r) S7 j- @! m9 }3 sint pd;/*实现循环的变量*/

, P6 |) c9 E. }1 i+ phead=loadmain(head);6 Z% u Q% S$ B, S! y4 [" w

do{2 N# z) S1 y+ k4 t1 d) q$ v9 u. P

clrscr();2 G3 G3 M. K! N1 B

pd=1;

if(table 0){

' k5 [8 _9 @# L% w5 [fp=fopen("c:\data.txt","rb") ;8 G/ h9 T! b, `( p* ?+ J3 _* C

p2=p1=head;3 b# M1 d; P g8 Q% t5 I+ x

for(i=0;itable;i++)- w- N0 U$ `0 o4 s0 c$ z @

{ p1=(struct student *)malloc(sizeof(struct student));4 z5 f* Z) e3 Q8 U' s5 L) D3 X

fread(p1,sizeof(struct student),1,fp) ;

6 R+ n* a/ O C# l0 lif(head == NULL) { p2=p1,head=p1 ; }9 z. I5 w9 W6 \% _' `# s1 U: W

else {p2-next=p1 ; p2=p2-next;}

4 q* q9 k; z8 k" b7 W0 Qp2-next=NULL;} }

, w r" ~ c3 O8 q! ]3 q qelse printf("没有文件供您打开,可以建立新的数据\n");/ H; g; B7 X/ v" n- f/ p

return (head);8 c q! p0 l; q/ p4 @( r1 @1 t* n

}/ o. I. U6 f! ~$ W- j! [

C语言程序设计:学生宿舍管理系统设计

给你个学生成绩管理的,你改一下变量名就好了

#include

#include

#define LEN sizeof(struct student)

#define N 35

#include

#define NULL 0

int n=0;

char m[8]={'0','1','2','3','4','5','6','7'};

int i;char c[10];char d[10];

char fname[20],fname0[20],fname6[20]={"shanchu"};

struct student

{long num;

char name[10];

int eng;

int math;

int comp;

int ave;

int all;

}p;

void shuru()

{FILE *fp;

printf("\n\n\t请输入存储学生数据的文件名:");

scanf("%s",fname);

fp=fopen(fname,"w");

printf("\t输入的数据之间请用跳格键(Tab)隔开\n\t每输入完一个学生的信按回车键(Enter)\n");

printf("\t结束输入学生数据时,请输入一个学生的学号为0并按回车键\n");

printf("\t学号 姓名 英语 数学 计算机\n");

do{ printf("\t");

scanf("%ld",p.num);

if(p.num==0) break;

scanf("\t%s\t%d\t%d\t%d",p.name,p.eng,p.math,p.comp);

p.all=(p.eng+p.math+p.comp);

p.ave=(p.all/3);

fwrite(p,LEN,1,fp);

n++;

}while(1);

fclose(fp);

}

void chazhao()

{char fname1[20];

FILE *fp;

do{printf("\n\n\t请输入查找学生数据的文件名:");

scanf("%s",fname1);

if(strcmp(fname1,fname)==0){fp=fopen(fname,"r");break;}

else printf("\t你输入的文件不存在\n");}while(1);

long number;

do

{ printf("\t请输入要查找的学生的学号按回键(Enter):");

scanf("%ld",number); rewind(fp);

for(i=0;i { fread(p,LEN,1,fp);

if(number==p.num) { printf("\t学号 姓名 英语 数学 计算机 平均分 总? \n");

printf("\t%ld\t%s\t%d\t%d\t%d\t%d\t%d\n",p.num,p.name,p.eng,p.math,p.comp,p.ave,p.all);

}

}

printf("\t你还要查找吗?如果继续请输y'加回车键,否'n'加回车键:");

scanf("%s",c);}while(c[0]=='y');

fclose(fp);

}

void paixu()

{FILE *fp;char fname3[20];struct student k[N];

do{printf("\n\n\t请输入你要排序的学生数据的文件名:");

scanf("%s",fname3);

if(strcmp(fname3,fname)==0)

{fp=fopen(fname,"r");break;}

else printf("\t你输入的文件不存在\n");}while(1);

rewind(fp);

for(i=0;i fread(k[i],LEN,1,fp);

int w,q,j,g,t,t2,t3,t4,t5;char z[10];long t1;

for(q=0;q {g=q;

for(j=q+1;j if(k[j].ave t=k[g].ave;k[g].ave=k[q].ave;k[q].ave=t;

t1=k[g].num;k[g].num=k[q].num;k[q].num=t1;

t2=k[g].eng;k[g].eng=k[q].eng;k[q].eng=t2;

t3=k[g].math;k[g].math=k[q].math;k[q].math=t3;

t4=k[g].comp;k[g].comp=k[q].comp;k[q].comp=t4;

t5=k[g].all;k[g].all=k[q].all;k[q].all=t5;

for(w=0;w10;w++)

{z[w]=k[g].name[w];k[g].name[w]=k[q].name[w];k[q].name[w]=z[w];};

}

fclose(fp);

printf("\n\n\t请输入存储排完序的数据的文件名\n\t注意此文件名和存储原始数据的文件名不相同\n");

printf("\t");

scanf("%s",fname0);

fp=fopen(fname0,"w");

for(i=0;i fclose(fp);

}

void shuchu()

{FILE *fp;char fname2[20];

do{printf("\n\n\t请输入你要输出学生数据的文件名:");

scanf("%s",fname2);

if(strcmp(fname2,fname)==0){fp=fopen(fname,"r");break;}

else if(strcmp(fname2,fname0)==0){fp=fopen(fname0,"r");break;}

else if(strcmp(fname2,fname6)==0){fp=fopen(fname6,"r");break;}

else printf("\t你输入的文件不存在\n");}while(1);

rewind(fp);

printf("\t学号 姓名 英语 数学 计算机 平均分 总分\n");

printf("\t==============================================================\n");

for(i=0;i {fread(p,LEN,1,fp);

printf("\t%ld\t%s\t%d\t%d\t%d\t%d\t%d\n",p.num,p.name,p.eng,p.math,p.comp,p.ave,p.all);

}

printf("\t==============================================================\n");

fclose(fp);}

void tongji()

{FILE *fp;char fname4[20];int e1=0,e2=0,e3=0,e4=0,e5=0;

do{printf("\n\n\t请输入你要统计的学生数据的文件名:");

scanf("%s",fname4);

if(strcmp(fname4,fname)==0)

{fp=fopen(fname,"r");break;}

else printf("\t你输入的文件不存在\n");}while(1);

rewind(fp);

for(i=0;i {fread(p,LEN,1,fp);

if(p.ave=59p.ave=0)e1=e1+1;

if(p.ave=69p.ave=60)e2=e2+1;

if(p.ave=79p.ave=70)e3=e3+1;

if(p.ave=89p.ave=80)e4=e4+1;

if(p.ave=100p.ave=90)e5=e5+1;

}

fclose(fp);

printf("\t按平均分统计各分数段的学生人数 \n");

printf("\t==============================================================\n");

printf("\t分数段\t0--59\t60--69\t70--79\t80--89\t90--100 \n");

printf("\t人 数 \t %d\t %d\t %d\t %d\t %d\n",e1,e2,e3,e4,e5);

printf("\t==============================================================\n");

}

void shanchu()

{FILE *fp,*fp1;char fname5[20];long number;struct student M[N];

printf("\n\t");

do{printf("\n\t请输入你要删除学生数据的文件名:");

scanf("%s",fname5);

if(strcmp(fname5,fname)==0)

{fp=fopen(fname,"r");break;}

else printf("\n\t你输入的文件不存在 \n");}while(1);

rewind(fp);

fp1=fopen(fname6,"w");

do{printf("\t请输入要删除数据的学生的学号并按回车键:");

scanf("%ld",number);

for(i=0;i {fread(M[i],LEN,1,fp);

if(M[i].num!=number)fwrite(M[i],LEN,1,fp1);

}

n--;

fcloseall();

fp1=fopen(fname6,"r");fp=fopen(fname,"w");

for(i=0;i {fread(M[i],LEN,1,fp1);fwrite(M[i],LEN,1,fp);}

fcloseall();

printf("\t你还要删除吗?如果继续请输入'y'加回车键,否则'n'加回车键:");

scanf("%s",c);

}while(c[0]=='y');

}

void charu()

{FILE *fp;char fname7[20];

do{printf("\t请输入你要插入学生数据的文件名:");

scanf("%s",fname7);

if(strcmp(fname7,fname)==0){fp=fopen(fname,"r+");break;}

else printf("\t你输入的文件不存在 ");}while(1);

printf("\t请输入你要插入的数据\n\t输入的数据之间请用跳格键(Tab)隔开\n\t每输入完一个学生的数据按回车键(Enter) \n");

printf("\t结束插入学生数据时,请输入一个学生的学号为0并按回车键\n");

printf("\t学号\t姓名\t英语\t数学\t计算机 \n");

do{fseek(fp,n*LEN,0);printf("\t");

scanf("\t%ld",p.num);

if(p.num==0) break;

scanf("\t%s\t%d\t%d\t%d",p.name,p.eng,p.math,p.comp);

p.all=(p.eng+p.math+p.comp);

p.ave=(p.all/3);

fwrite(p,LEN,1,fp);

n++;}while(1);

fclose(fp);

}

void zhujiemian()

{

printf("\n\t 主菜单 \n");

printf("\n");

printf("\t============================================================== \n");

printf("\n");

printf("\t 1.数据输入 2.数据输出 \n");

printf("\n");

printf("\t 3.数据排序(按平均分) 4.数据查找(按学号) \n");

printf("\n");

printf("\t 5.数据的插入 6.数据的删除(按学号) \n");

printf("\n");

printf("\t 7.数据的统计(按平均分)? 0.退出 \n");

printf("\n");

printf("\t============================================================== \n");

printf("\t请输入你的选择(0---7)并按回车键:");

scanf("%s",d);

}

void main()

{do

{

zhujiemian();

if(d[0]==m[0])break;

else if(d[0]==m[1]){shuru();printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");}

else if(d[0]==m[2]){shuchu();}

else if(d[0]==m[3]){paixu();}

else if(d[0]==m[4]){chazhao();}

else if(d[0]==m[5]){charu();}

else if(d[0]==m[6]){shanchu();}

else if(d[0]==m[7]){tongji();}

else {printf("\t你的选择不正确!请重新选择! \n");

}

}while(1);

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

printf("\t\t谢谢你的使用!!! ") ;

}

C语言学生宿舍管理系统设计

1Java可以很简单的结合JS或其他方式实现BS模式访问的好看界面。而C如果要实现界面,或者要实现BS访问,则非常非常困难。至少对一个在校学生来说这几乎很难完成。2学生管理系统自然少不了数据库。JAVA的JDBC非常成熟,可以很简便的访问数据库。C访问数据库的库相对复杂,而且风格各异,需要一段时间学习和适应3JAVA语言相对简单,其内存回收,分配基本上都由系统完成。而C则需要自己完成。这意味着程序员需要花很多时间处理内存泄露问题。4C的优势,高效,简洁,自由。这些优点在学生管理系统或者毕业设计的场合几乎无法体现。至于跨不跨平台的毕业设计来说无所谓了吧