学生宿舍管理系统.docx

上传人:b****2 文档编号:3188961 上传时间:2023-05-05 格式:DOCX 页数:14 大小:88.90KB
下载 相关 举报
学生宿舍管理系统.docx_第1页
第1页 / 共14页
学生宿舍管理系统.docx_第2页
第2页 / 共14页
学生宿舍管理系统.docx_第3页
第3页 / 共14页
学生宿舍管理系统.docx_第4页
第4页 / 共14页
学生宿舍管理系统.docx_第5页
第5页 / 共14页
学生宿舍管理系统.docx_第6页
第6页 / 共14页
学生宿舍管理系统.docx_第7页
第7页 / 共14页
学生宿舍管理系统.docx_第8页
第8页 / 共14页
学生宿舍管理系统.docx_第9页
第9页 / 共14页
学生宿舍管理系统.docx_第10页
第10页 / 共14页
学生宿舍管理系统.docx_第11页
第11页 / 共14页
学生宿舍管理系统.docx_第12页
第12页 / 共14页
学生宿舍管理系统.docx_第13页
第13页 / 共14页
学生宿舍管理系统.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生宿舍管理系统.docx

《学生宿舍管理系统.docx》由会员分享,可在线阅读,更多相关《学生宿舍管理系统.docx(14页珍藏版)》请在冰点文库上搜索。

学生宿舍管理系统.docx

学生宿舍管理系统

课程设计

 

学号

班级

姓名

指导教师

2007年9月16日

课程设计任务书

一、课程设计题目:

学生宿舍管理系统

二、课程设计工作自2007年09月11日起至2007年09月16日止

三、课程设计内容:

学生宿舍管理系统(200604021160)

该系统具有如下功能:

 

(1)添加学生入某宿舍手续

(2)查询某宿舍现有学生

(3)办理学生退某宿舍手续

学生的记录信息要保存在磁盘文件中(记录结构至少应该包括以下四项:

学号,姓名、班级、宿舍号)。

四、课程设计要求:

程序质量:

◆贯彻结构化程序设计思想。

◆用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。

◆代码应适当缩进,并给出必要的注释,以增强程序的可读性。

课程设计结束后上交课程设计说明书,课程设计说明书的内容及格式参见所给的模板。

指导教师:

学生签名:

 

五、说明书成绩

 

六、教师评语

 

目录

一、需求分析1

二、程序流程图2

三、核心技术的实现说明及相应程序段6

四、个人总结11

五、参考文献12

六、源程序12

 

一、需求分析

经过对程序设计题目的分析可知,整个程序的设计实现大致分为六个模块,其中每一个模块对应一个函数,他们的功能分别是:

建立学生信息链表函数creat,输出学生信息函数print,查询宿舍学生信息函数find以及删除学生信息函数del,添加学生信息函数insert。

在这些函数当中,前四个函数的实现严格按照题目的要求,而后面的两个函数属于附加功能。

1、建立学生信息链表函数creat主要实现程序最初运行时建立学生信息文件

2、输出学生信息函数print实现输出学生信息功能

3、查询宿舍学生信息函数find允许按照宿舍号对学生的信息进行查询

4、删除学生信息函数del实现的是删除学生记录信息。

5、添加学生信息函数insert实现的是添加新的学生信息

每一个学生记录都包含学号、姓名,宿舍号,班级,在程序当中,将学生记录类型定义为结构体类型,添加以及追加的学生信息直接写入c:

\\book.dat文件中,其他函数每次对学生记录的访问,其数据来源都是book.dat文件,这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次运行程序都可以采用原来的数据。

二、程序流程图

1.程序总体结构图

图1程序总体结构图

2、具体功能框图

(1)建立学生信息链表函数creat

图2建立学生信息链表函数creat

(2)输出学生信息函数print

图3输出学生信息函数print

(3)查询宿舍学生信息函数find

图4查询宿舍学生信息函数find

(4)删除学生信息函数del

图5删除学生信息函数del

(5)添加学生信息函数insert

图6添加学生信息函数insert

三、核心技术的实现说明及相应程序段

本程序主要由5个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。

在这些函数当中,添加数据函数、删除数据函数和输出函数、查询函数是程序中较为核心的部分,下面分别进行说明。

1、输出学生信息函数print该函数的核心内容是实现打印出学生信息。

voidprint(structstudent*head)

{structstudent*p;

printf("\ngongyou%dtiaojilu:

\n",n);

p=head;

puts("\t\bnum\tname\t\t\b\bsushe\t\b\bbanji");

do

{

printf("\t\b%ld\t%s\t\t\b\b%ld\t\b\b%s\n",p->num,p->name,p->sushe,p->banji);

p=p->next;}while(p!

=NULL);

}

2、查询宿舍学生信息函数find

该函数的核心内容是查找学生信息。

该函数执行时,输入宿舍号后,查询该宿舍所有学生信息

structstudent*find(structstudent*head,longsushe)

{structstudent*p1;

if(head==NULL){printf("wuyaozhaodejilu");gotoend;}

printf("\t\bnum\tname\t\t\b\bsushe\t\b\bbanji\n");

for(p1=head;p1!

=NULL;p1=p1->next)

{if(sushe!

=p1->sushe)

continue;printf("\t\b%ld\t%s\t\t\b\b%ld\t\b\b%s\n",p1->num,p1->name,p1->sushe,p1->banji);};

printf("shurujinxingdecaozuo:

1.shanchu2.tianjia3.chaxun4.tuichu\n");

end:

return(head);

}

3、删除学生信息函数del

该函数的核心内容是删除学生信息。

该函数执行时,输入学号后就能删除。

直到输入学号为0跳出该函数。

structstudent*del(structstudent*head,longnum)

{structstudent*p1,*p2;

if(head==NULL){printf("\kongbiao\n");gotoend;}

p1=head;

while(num!

=p1->num&&p1->next!

=NULL)

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

if(num==p1->num)

{if(p1==head)head=p1->next;

elsep2->next=p1->next;

printf("shanchu:

%ldhaojilu!

\n",num);

n=n-1;

}

elseprintf("wucijilu\n");

end:

return(head);

}

4.添加学生信息函数insert该函数的核心功能时添加学生信息。

该函数执行时,输入学生信息,就能插入到链表中。

直到输入学号为0跳出该函数。

structstudent*insert(structstudent*head,structstudent*stud)

{structstudent*p0,*p1,*p2;

p1=head;

p0=stud;

if(head==NULL)

{head=p0;p0->next=NULL;}

else

{while((p0->num>p1->num)&&(p1->next!

=NULL))

{p2=p1;

p1=p1->next;}

if(p0->num<=p1->num)

{if(head==p1)head=p0;

elsep2->next=p0;

p0->next=p1;}

else

{p1->next=p0;p0->next=NULL;}

}

n=n+1;

return(head);

}

四、个人总结

通过这次课程设计,使我增加了c语言学习的兴趣。

期间我与阅读了许多资料,上网查阅了大量的源程序,这不仅使我的见识大长,还给了我很大的信心,让我在以后的学习中更有兴趣和动力。

总之c语言课设是一件即提高人的知识又锻炼人的意志的事情。

五、参考文献

1谭浩强.C程序设计.北京:

清华大学出版社,2005

2刘成等.C语言程序设计实验指导与习题集.北京:

中国铁道出版社,2006

六、源程序

#include

#include

#include

#defineLENsizeof(structstudent)

FILE*fp;

structstudent

{longnum;

charname[10];

longsushe;

charbanji[10];

structstudent*next;};

intn;

structstudent*creat(void)

{structstudent*p1,*p2;

structstudent*head;

n=0;

fp=fopen("c:

\\book,dat","wr");

p1=p2=(structstudent*)malloc(LEN);

scanf("%ld%s%ld%s",&p1->num,&p1->name,&p1->sushe,&p1->banji);

fprintf(fp,"%ld%s%ld%s",p1->num,p1->name,p1->sushe,p1->banji);

head=NULL;

while(p1->num!

=0)

{n=n+1;

if(n==1)head=p1;

elsep2->next=p1;

p2=p1;

p1=(structstudent*)malloc(LEN);

scanf("%ld%s%ld%s",&p1->num,&p1->name,&p1->sushe,&p1->banji);

fprintf(fp,"%ld%s%ld%s",p1->num,p1->name,p1->sushe,p1->banji);

}

p2->next=NULL;

fclose(fp);

return(head);

}

voidprint(structstudent*head)

{structstudent*p;

printf("\ngongyou%dtiaojilu:

\n",n);

p=head;

puts("\t\bnum\tname\t\t\b\bsushe\t\b\bbanji");

do

{

printf("\t\b%ld\t%s\t\t\b\b%ld\t\b\b%s\n",p->num,p->name,p->sushe,p->banji);

p=p->next;}while(p!

=NULL);

}

structstudent*find(structstudent*head,longsushe)

{structstudent*p1;

if(head==NULL){printf("wuyaozhaodejilu");gotoend;}

printf("\t\bnum\tname\t\t\b\bsushe\t\b\bbanji\n");

for(p1=head;p1!

=NULL;p1=p1->next)

{if(sushe!

=p1->sushe)

continue;printf("\t\b%ld\t%s\t\t\b\b%ld\t\b\b%s\n",p1->num,p1->name,p1->sushe,p1->banji);};

printf("shurujinxingdecaozuo:

1.shanchu2.tianjia3.chaxun4.tuichu\n");

end:

return(head);

}

structstudent*del(structstudent*head,longnum)

{structstudent*p1,*p2;

if(head==NULL){printf("\kongbiao\n");gotoend;}

p1=head;

while(num!

=p1->num&&p1->next!

=NULL)

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

if(num==p1->num)

{if(p1==head)head=p1->next;

elsep2->next=p1->next;

printf("shanchu:

%ldhaojilu!

\n",num);

n=n-1;

}

elseprintf("wucijilu\n");

end:

return(head);

}

structstudent*insert(structstudent*head,structstudent*stud)

{structstudent*p0,*p1,*p2;

p1=head;

p0=stud;

if(head==NULL)

{head=p0;p0->next=NULL;}

else

{while((p0->num>p1->num)&&(p1->next!

=NULL))

{p2=p1;

p1=p1->next;}

if(p0->num<=p1->num)

{if(head==p1)head=p0;

elsep2->next=p0;

p0->next=p1;}

else

{p1->next=p0;p0->next=NULL;}

}

n=n+1;

return(head);

}

voidmain()

{

inta;

structstudent*head,*stu;

longdel_num,find_sushe;

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

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

printf("\t\t*1.shanchu2.tianjia*\n");

printf("\t\t*3.chaxun4.tuichu*\n");

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

printf("shuruxueshengjilu:

\n");

puts("numnamesushebanji\n");

head=creat();

print(head);

printf("shurujinxingdecaozuo:

1.shanchu2.tianjia3.chaxun4.tuichu\n");

scanf("%d",&a);

while(a!

=0)

{switch(a)

{

case1:

{printf("shurushanchudexuehao:

\n");

scanf("%ld",&del_num);

while(del_num!

=0)

{

head=del(head,del_num);

print(head);

printf("shurushanchudexuehao:

\n");

scanf("%ld",&del_num);

printf("shurujinxingdecaozuo:

1.shanchu2.tianjia3.chaxun4.tuichu\n");

break;}

break;

}

case2:

{

printf("\nshuruyaotianjiadejilu:

");

stu=(structstudent*)malloc(LEN);

puts("numnamesushebanji");

scanf("%ld%s%ld%s",&stu->num,&stu->name,&stu->sushe,&stu->banji);

while(stu->num!

=0)

{head=insert(head,stu);

print(head);

printf("\nshuruyaotianjiadejilu:

");

stu=(structstudent*)malloc(LEN);

puts("numnamesushebanji\n");

scanf("%ld%s%ld%s",&stu->num,&stu->name,&stu->sushe,&stu->banji);

printf("shurujinxingdecaozuo:

1.shanchu2.tianjia3.chaxun4.tuichu\n");

break;}

break;

}

case3:

{

printf("\nshuruchaxundesushehao\n");

scanf("%ld",&find_sushe);

head=find(head,find_sushe);

break;

}

default:

gotoQ;

}

scanf("%d",&a);}

Q:

}

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

当前位置:首页 > 工程科技 > 能源化工

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

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