宿舍管理系统C语言实验报告材料.docx

上传人:b****6 文档编号:13436033 上传时间:2023-06-14 格式:DOCX 页数:30 大小:47.44KB
下载 相关 举报
宿舍管理系统C语言实验报告材料.docx_第1页
第1页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第2页
第2页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第3页
第3页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第4页
第4页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第5页
第5页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第6页
第6页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第7页
第7页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第8页
第8页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第9页
第9页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第10页
第10页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第11页
第11页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第12页
第12页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第13页
第13页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第14页
第14页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第15页
第15页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第16页
第16页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第17页
第17页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第18页
第18页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第19页
第19页 / 共30页
宿舍管理系统C语言实验报告材料.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

宿舍管理系统C语言实验报告材料.docx

《宿舍管理系统C语言实验报告材料.docx》由会员分享,可在线阅读,更多相关《宿舍管理系统C语言实验报告材料.docx(30页珍藏版)》请在冰点文库上搜索。

宿舍管理系统C语言实验报告材料.docx

宿舍管理系统C语言实验报告材料

 

C语言程序设计报告

题目:

宿舍管理系统

 

院系名称:

电子工程学院

专业名称:

计算机科学与技术

班级:

1001

学生姓名:

XXX

学号(8位):

13

指导教师:

XXX

设计起止时间:

2011年6月22日~2011年6月30日

 

一.设计目的

学生宿舍管理系统对于一个学校来说是必不可少的组成部分。

目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据的高校来说,人工记录是相当麻烦的。

而且当查找某条记录时,由于数据量庞大,还只能靠人工一条条去查找,这样不但麻烦还浪费了许多时间,效率也比较低。

当今社会是飞速进步的而世界,原始的记录方式已经被社会所淘汰,计算机化管理正是适应时代的产物。

信息世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并取代旧技术。

21世纪的今天,信息社会占着主流地位,,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。

故随着宿舍需要管理的信息快速增长,建立一个宿舍管理系统可使宿舍管理人员的管理工作系统化、规范化、自动化,大大提高管理效率。

二.设计内容

1.录入学生信息

2.显示学生信息

3.插入学生信息

4.修改学生信息

5.删除学生信息

6.排序学生信息

7.统计学生信息

8.管理员密码

三.概要设计

1.录入学生信息将信息保存至文件中

2.从文件中读取信息显示出学生信息

3.从文件中读取信息存至单链表中,传递头指针从而修改学生信息,再将修改完成的学生信息保存至文件中

4.从文件中读取信息存至单链表中,传递头指针从然后用冒泡法排序学生信息,再将修改完成的学生信息保存至文件中

5.统计学生信息按照宿舍号、楼层、楼号分别统计出人数

6.管理员进入此系统需输入密码,而学生进入则不需要

1.功能模块图;

2.各个模块详细的功能描述。

1.录入学生信息

录入学生信息将信息保存至文件中

2.显示学生信息

从文件中读取信息显示出学生信息

3.插入学生信息

从文件中读取信息存至单链表中,传递头指针从而插入学生信息,再将修改完成的学生信息保存至文件中

4.修改学生信息

从文件中读取信息存至单链表中,传递头指针从而修改学生信息,再将修改完成的学生信息保存至文件中

5.删除学生信息

从文件中读取信息存至单链表中,传递头指针从而删除学生信息,再将修改完成的学生信息保存至文件中

6.排序学生信息

从文件中读取信息存至单链表中,传递头指针从然后用冒泡法排序学生信息,再将修改完成的学生信息保存至文件中

7.统计学生信息

统计学生信息按照宿舍号、楼层、楼号分别统计出人数

 

四.测试数据及运行结果

1.正常测试数据和运行结果

要求提供3组正常测试数据和运行结果

排序

 

查找

 

2.异常测试数据及运行结果

要求提供2组异常测试数据和运行结果

 

五.调试情况,设计技巧及体会

1.改进方案

对自己的设计进行评价,指出合理和不足之处,提出改进方案;管理员密码不精致,会被管理员以外的人看到保密性不好。

插入、删除、修改等函数太过繁琐。

 

2.体会

对设计及调试过程的心得体会:

在这一周多的实习中,让我对C语言有了更深刻的认识,不但复习了原来所学的知识,更对新的知识有了了解。

在调试过程中,通过自己学习,寻求老师、同学的帮助解决了许多不懂的问题。

六.参考文献

C语言程序设计(第二版)

七.附录:

源代码(电子版)

#include

#include

#include

#include

#include

#include

#defineP"学号:

%-8ld姓名:

%-8s班级:

%-10s楼号:

%-3s楼层:

%-3s宿舍号:

%-3s\n",p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum

#defineNsizeof(structstud)

manager();

main();

student();

structstud

{

longnum;

charname[20];

charclasses[20];

charbnum[5];

charfnum[5];

charrnum[5];

structstud*next;

};

structnode

{

charmima[10];

structnode*next;

};

 

/*********************************************************************************************************/

//录入学生信息

/*********************************************************************************************************/

 

structstud*input_message()

{

structstud*p1,*p2,*head;

FILE*fp;

fp=fopen("student_message.txt","wt");

head=p2=(structstud*)malloc(N);/*headp2指向头结点*/

printf("请输入学号姓名班级楼号楼层宿舍号(输入0结束)\n");

p1=(structstud*)malloc(N);/*p1指向第一个结点*/

scanf("%ld%s%s%s%s%s",&p1->num,p1->name,p1->classes,p1->bnum,p1->fnum,p1->rnum);

if(p1->num!

=0)

fprintf(fp,"%ld%s%s%s%s%s\n",p1->num,p1->name,p1->classes,p1->bnum,p1->fnum,p1->rnum);

while(p1->num!

=0)

{

p2->next=p1;/*将新结点连接到表尾*/

p2=p1;/*p2指向新的表尾*/

p1=(structstud*)malloc(N);/*p1指向新申请的结点*/

scanf("%ld%s%s%s%s%s",&p1->num,p1->name,p1->classes,p1->bnum,p1->fnum,p1->rnum);

if(p1->num!

=0)

fprintf(fp,"%ld%s%s%s%s%s\n",p1->num,p1->name,p1->classes,p1->bnum,p1->fnum,p1->rnum);

}

fclose(fp);

p2->next=NULL;/*表尾结点next置空*/

free(p1);/*释放无效结点*/

returnhead;

}

 

/*********************************************************************************************************/

//将文件中的信息存入单链表

/*********************************************************************************************************/

 

structstud*inread()/*将文件中的信息存入单链表*/

{

structstud*head,*p,*p1;

FILE*fp;

fp=fopen("student_message.txt","rt");

if(fp==NULL)

{

printf("读出文件出错,按任意键退出");

exit

(1);

}

head=(structstud*)malloc(N);

head->next=NULL;

p=head;

while(!

feof(fp))

{

p1=(structstud*)malloc(N);

fscanf(fp,"%ld%s%s%s%s%s\n",&p1->num,p1->name,p1->classes,p1->bnum,p1->fnum,p1->rnum);

p->next=p1;/*连接结点*/

p=p1;

}

p->next=NULL;

fclose(fp);

returnhead;

}

/*********************************************************************************************************/

//显示学生信息

/*********************************************************************************************************/

revise_message()

{

FILE*fp;

structstud*p;

intn=0,a,fsize;

p=(structstud*)malloc(N);

fp=fopen("student_message.txt","rt");

if(fp==NULL)

{

printf("\n打开文件失败!

");

exit

(1);

}

while(!

feof(fp))/*文件未结束执行循环*/

{

a=fileno(fp);

fsize=filelength(a);/*判断文件大小*/

if(fsize==0)

break;

fscanf(fp,"%ld%s%s%s%s%s\n",&p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum);

printf(P);

n=1;

}

fclose(fp);

if(n==0)printf("无记录!

!

!

\n");

}

 

/*********************************************************************************************************/

//将单链表的信息保存至文件中

/*********************************************************************************************************/

 

baocun(structstud*p)

{

structstud*p1;

FILE*fp;

fp=fopen("student_message.txt","wt");

if(fp==NULL)

{

printf("写入文件出错,按任意键退出");

exit

(1);

}

for(p1=p->next;p1!

=NULL;p1=p1->next)

fprintf(fp,"%ld%s%s%s%s%s\n",p1->num,p1->name,p1->classes,p1->bnum,p1->fnum,p1->rnum);

fclose(fp);

}

 

/*********************************************************************************************************/

//查询学生信息

/*********************************************************************************************************/

 

find_message()

{

longnnum;

inta,b,n,m;

FILE*fp;

structstud*p;

fp=fopen("student_message.txt","rt");

p=(structstud*)malloc(N);

system("cls");

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

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

printf("欢迎进入宿舍管理系统\n");

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

printf("\n1.返回上一级\n");

printf("\n1.按学生学号查找\n");

printf("\n2.按学生姓名查找\n");

printf("\n3.按宿舍号查找\n");

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

printf("请选择:

");

scanf("%d",&b);

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

//按学生学生学号

if(b==1)

{

printf("\n请输入要查找的人的学号:

\n");

scanf("%ld",&nnum);

while(!

feof(fp))

{

fscanf(fp,"%ld%s%s%s%s%s\n",&p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum);

if(p->num==nnum)

{

printf(P);

a=1;

}/*标志*/

}

if(a!

=1)printf("\n没有找到此人!

!

!

!

\n");

}

 

//按学生姓名查找

if(b==2)

{

charnname[20];

printf("\n请输入要查找的人的姓名:

");

scanf("%s",&nname);

while(!

feof(fp))

{

fscanf(fp,"%ld%s%s%s%s%s\n",&p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum);

n=strcmp(p->name,nname);

if(n==0)

{

printf(P);

a=1;}/*标志*/

}

if(a!

=1)printf("\n没有找到此人!

!

!

!

\n");

}

if(b==3)

{

charnrnum[20];

printf("\n请输入要查找的宿舍号:

");

scanf("%s",&nrnum);

while(!

feof(fp))

{

fscanf(fp,"%ld%s%s%s%s%s\n",&p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum);

m=strcmp(p->rnum,nrnum);

if(m==0)

{

printf(P);

a=1;}/*标志*/

}

if(a!

=1)printf("\n没有找到此宿舍!

!

!

!

\n");

}

if(b==0)

manager();

 

}

 

/*********************************************************************************************************/

//删除学生信息

/*********************************************************************************************************/

 

delete_message(structstud*p0)

{

structstud*p;

longnnum;

inta;

p=p0->next;

printf("请输入要删除的人的学号:

");

scanf("%ld",&nnum);

while(p!

=NULL)

{

if(p->num==nnum)

{

p0->next=p->next;/*后续结点接到前面的结点上*/

printf("已删除此人!

!

!

!

");

a=1;/*标志常量*/

}

p0=p;/*推移指针*/

p=p->next;

}

if(a!

=1)

printf("没有找到要删除的人!

!

!

!

");

 

}

 

/*********************************************************************************************************/

//插入和修改学生信息

/*********************************************************************************************************/

 

change_message(structstud*p0)

{

longnnum;

inta,b;

system("cls");

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

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

printf("欢迎进入宿舍管理系统\n");

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

printf("\n0.返回上一级\n");

printf("\n1.插入学生信息\n");

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

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

printf("请选择:

");

scanf("%d",&b);

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

if(b==1)

{

structstud*p;

p=(structstud*)malloc(N);

printf("请输入要插入的学号姓名班级楼号楼层宿舍号\n");

scanf("%ld%s%s%s%s%s",&p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum);

p->next=p0->next;/*后续结点连接到新结点后*/

p0->next=p;/*此时新接点处在头的位置*/

}

if(b==2)

{

printf("请输入要修改的人的学号:

");

scanf("%ld",&nnum);

while(p0->next!

=NULL)

{

p0=p0->next;/*指针后移*/

if(p0->num==nnum)

{

printf("请修改此人的姓名班级楼号楼层宿舍号:

");

scanf("%s%s%s%s%s",p0->name,p0->classes,p0->bnum,p0->fnum,p0->rnum);

printf("\n修改成功!

!

!

!

\n");

a=1;

}/*标志*/

}

if(a!

=1)printf("\n没有找到此人!

!

!

!

\n");

}

if(b==0)

manager();

 

}

 

/*********************************************************************************************************/

//统计学生信息

/*********************************************************************************************************/

 

dorm_message()

{

inta,b,m;

FILE*fp;

structstud*p;

fp=fopen("student_message.txt","rt");

p=(structstud*)malloc(N);

a=0;

system("cls");

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

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

printf("欢迎进入宿舍管理系统\n");

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

printf("\n0.返回上一级\n");

printf("\n1.输入楼号统计人数\n");

printf("\n2.输入楼层号统计人数\n");

printf("\n3.输入宿舍号统计人数\n");

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

printf("请选择:

");

scanf("%d",&b);

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

//按楼号统计

if(b==1)

{

charnbnum[20];

printf("\n请输入要统计的楼号:

\n");

scanf("%s",&nbnum);

while(!

feof(fp))

{

fscanf(fp,"%ld%s%s%s%s%s\n",&p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum);

m=strcmp(p->bnum,nbnum);

if(m==0)

{

printf(P);

a++;

}

}/*标志*/

printf("\n该楼共有%d人\n",a);

}

//按楼层号统计

if(b==2)

{

charnfnum[20];

printf("\n请输入要统计的楼层号:

\n");

scanf("%s",&nfnum);

while(!

feof(fp))

{

fscanf(fp,"%ld%s%s%s%s%s\n",&p->num,p->name,p->classes,p->bnum,p->fnum,p->rnum);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 制度规范

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2