C语言课程设计学生宿舍管理系统Word文档格式.docx

上传人:b****5 文档编号:17161483 上传时间:2022-11-28 格式:DOCX 页数:28 大小:133.03KB
下载 相关 举报
C语言课程设计学生宿舍管理系统Word文档格式.docx_第1页
第1页 / 共28页
C语言课程设计学生宿舍管理系统Word文档格式.docx_第2页
第2页 / 共28页
C语言课程设计学生宿舍管理系统Word文档格式.docx_第3页
第3页 / 共28页
C语言课程设计学生宿舍管理系统Word文档格式.docx_第4页
第4页 / 共28页
C语言课程设计学生宿舍管理系统Word文档格式.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

C语言课程设计学生宿舍管理系统Word文档格式.docx

《C语言课程设计学生宿舍管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计学生宿舍管理系统Word文档格式.docx(28页珍藏版)》请在冰豆网上搜索。

C语言课程设计学生宿舍管理系统Word文档格式.docx

按整体统计,统计所有学生人数,男生人数和女生人数。

四、概要设计

1.系统结构图(功能模块图)

2.功能模块说明:

(1).数据录入:

创建单链表,调用Initnode()函数申请头结点,在调用append(),在调用Write_to_File()函数将信息写入文件中,

(2)插入模块:

先将文件信息读出,再调用insert()函数,可以向文件中插入信息。

(3)插入模块:

先将文件信息读出,再调用del()函数,可以将输入错误或者

需要的信息删除。

(4)修改模块:

先将文件信息读出,再调用modify()函数,将输入错误的信息修改。

(5)查询模块:

先将文件信息读出,再调用search(),在search()中有调用两个

数,一个按照宿舍信息查询sushe_search(),需要楼号和宿舍号,一个按照生信息查询xuehao_search()需要学生学号或者姓名。

(6)排序模块:

先将文件信息读出,再调用sort(),按照学生学号排序,拍完续没有直接写入文件,如果要直接写入调用文件读入函数Write_to_File().

(7)统计模块:

先将文件信息读出,再调用tongji()函数,统计了女生人数和男生人数,还统计了总人数.

五.详细过程和运行结果:

删除模块

开始

输入要删除学生的学号num

p->

num:

num

删除该学生信息

结束

组织循环,扫描存储学生信息的链表

=

==

插入模块

查找模块

选择查找方式

按学生学号查找

输入要查找的学生学号num

输出该学生的信息

按宿舍信息查找

输入要查找的学生lounum,sushenum,chuangnum

lounum:

sushenu

sushenum:

chuangnum:

chuangnum

组织循环,扫描存储学生信息的链表表

=

修改模块

排序模块

统计模块

Count1++

Count2++

六.参考文献:

《C语言程序设计》:

曙燕

七.源代码

#include<

stdio.h>

stdlib.h>

string.h>

//#include<

conio.h>

typedefstructStudent

{

intnum;

/*学号*/

charname[15];

/*姓名*/

charsex;

/*性别*/

charzhuanye[20];

/*专业*/

intlounum;

/*楼号*/

intsushenum;

/*宿舍号*/

intchuangnum;

/*床号*/

structStudent*next;

}Stu;

voidWrite_to_File(Stu*L)/*将信息写入文件*/

FILE*fp;

Stu*p;

fp=fopen("

sushe.txt"

"

w"

);

if(fp==NULL)

{

printf("

打开失败!

"

getchar();

getchar();

exit(0);

}

p=L->

next;

while(p)

fprintf(fp,"

%d%s%c%s%d%d%d\n"

p->

num,p->

name,p->

sex,p->

zhuanye,p->

lounum,p->

sushenum,p->

chuangnum);

p=p->

fclose(fp);

}

voidInitStu(Stu**h)/*创建头结点*/

(*h)=(Stu*)malloc(sizeof(Stu));

if(h==NULL)

创建失败!

!

(*h)->

next=NULL;

voidappend()/*录入学生信息*/

Stu*head;

Stu*p,*q;

charch;

InitStu(&

head);

q=head;

while

(1)

system("

clear"

printf("

请录入学生信息\n"

p=(Stu*)malloc(sizeof(Stu));

\n学号:

scanf("

%d"

&

num);

\n姓名:

%s"

name);

\n性别:

%c"

sex);

\n专业:

zhuanye);

\n楼号:

lounum);

\n宿舍号:

sushenum);

\n床号:

p->

next=q->

q->

next=p;

q=p;

按任意键继续录入,按0结束录入"

ch=getchar();

if(ch=='

0'

break;

Write_to_File(head);

}

voidRead_from_File(Stu*h)/*读出文件信息*/

inti;

r"

打开失败"

q=h;

while(!

feof(fp))

p=(Stu*)malloc(sizeof(Stu));

i=fscanf(fp,"

name,&

sex,

p->

zhuanye,&

lounum,&

sushenum,&

if(i==EOF)

break;

next=NULL;

intdisplay()/*显示文件信息*/

Stu*head=NULL;

Read_from_File(head);

//printf("

ok!

\n"

p=head->

system("

if(!

p)

无容!

\n按任意键键返回\n"

return0;

学号姓名性别专业楼号宿舍号床号\n\n"

%-8d%-10s%-6c%-14s%-8d%-8d%-5d\n"

sex,p->

zhuanye,

\n按任意键返回\n"

return1;

voiddel()/*删除学生信息*/

charch,h;

intN;

intlounum,sushenum,chuangnum;

do

\n1.根据学生学号删除\n"

\n2.根据宿舍信息删除\n"

\n请选择删除式:

scanf("

&

ch);

while

(1)

{

if(ch=='

1'

{

printf("

\n请输入学生学号:

scanf("

N);

while(p)

{

if(p->

num==N)

{

q->

next=p->

printf("

删除成功!

break;

}

q=p;

p=p->

}

if(p==NULL)

printf("

\n未找到此学生"

break;

}else

{

free(p);

}

}

elseif(ch=='

2'

\n请输入宿舍信息(楼号宿舍床号):

%d%d%d"

while(p!

=NULL)

lounum==lounum&

&

sushenum==sushenum&

chuangnum)

{

未找到此学生"

}

\n\n是否继续:

Y/N?

h);

}while(h=='

Y'

||h=='

y'

voidinsert()/*用头插法插入学生信息*/

Stu*p,*head;

{

p=(Stu*)malloc(sizeof(Stu));

\t\t请输入插入的学生信息:

\n"

\t学号:

\n\t姓名:

\n\t性别:

\n\t专业:

\n\t楼号:

\n\t宿舍号:

\n\t床号:

next=head->

head->

next=p;

\n\n是否继续插入?

Y/N"

}while(ch=='

||ch=='

voidmodify()/*修改学生信息(按学号修改)*/

\n\n请输入修改的学生学号:

"

while(p!

if(p->

system("

\n请输入新的学生信息:

scanf("

break;

p=p->

if(p==NULL)

printf("

else

修改成功\n"

\n\n继续修改?

voidxuehao_search(Stu*head)/*按照学生学号查找*/

intnum;

next;

\n请输入要查找的学生学号:

while(p!

if(p->

num==num)

%-8d%-8s%-4c%-8s%-8d%-8d%-5d\n"

p->

if(p==NULL)

\n\n继续查找?

||ch=='

voidsushe_search(Stu*head)/*按照宿舍信息查找*/

\n请输入要查找的学生宿舍信息(楼号宿舍床号):

\n楼号:

\n宿舍号:

\n床号:

sushenum==sushenum

&

chuangnum==chuangnum)

{

p->

\n\n是否继续?

voidSearch()/*查找学生信息*/

{

intchoose;

\n1.根据宿舍信息查找."

\n2.根据学生学号查找."

\n3.退出.\n\n"

\n请选择查找式:

choose);

switch(choose)

case1:

sushe_search(head);

case2:

xuehao_search(head);

break;

case3:

voidsort()/*将学生信息按学号排序*/

Stu*i,*j,*k;

Stu*m,*n;

Stu*temp;

intl=0;

//冒泡排序法

for(m=head,i=head->

i;

m=i,i=i->

next)

k=i;

for(n=i,j=i->

j;

n=j,j=j->

if(j->

num<

k->

num)

k=j;

if(i!

=k)

m->

next=j;

n->

next=i;

temp=i->

i->

next=j->

j->

next=temp;

i=head;

\n\n输入学生信息:

\n\n"

i=head->

while(i)

i->

num,i->

name,i->

lounum,i->

sushenum,i->

i=i->

\n按任意键返回!

voidtongji()/*统计学生信息*/

Stu*head,*p;

intCount1,Count2;

Count1=0;

Count2=0;

if(p->

sex=='

w'

||p->

W'

Count1++;

}

else

Count2++;

p=p->

\t女生总数:

%d\n"

Count1);

\t男生总数:

Count2);

\t学生总数:

Count1+Count2);

\t按任意键返回!

voidmain()

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

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1