C语言课程设计学生宿舍管理系统ubuntu下Word文档下载推荐.docx
- 文档编号:21251192
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:24
- 大小:201.04KB
C语言课程设计学生宿舍管理系统ubuntu下Word文档下载推荐.docx
《C语言课程设计学生宿舍管理系统ubuntu下Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言课程设计学生宿舍管理系统ubuntu下Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
(4)修改模块:
先将文件信息读出,再调用modify()函数,将输入错误的信息修改。
(5)查询模块:
先将文件信息读出,再调用search(),在search()中有调用两个
数,一个按照宿舍信息查询sushe_search(),需要楼号和宿舍号,一个按照生信息查询xuehao_search()需要学生学号或者姓名。
(6)排序模块:
先将文件信息读出,再调用sort(),按照学生学号排序,拍完续没有直接写入文件,如果要直接写入调用文件读入函数Write_to_File().
(7)统计模块:
先将文件信息读出,再调用tongji()函数,统计了女生人数和男生人数,还统计了总人数.
五.详细过程和运行结果:
删除模块
!
=
==
插入模块
查找模块
=
!
修改模块
排序模块
统计模块
六.参考文献:
《C语言程序设计》:
王曙燕
七.源代码
#include〈stdio.h〉
#include〈stdlib。
h〉
#include〈string。
//#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)
printf(”创建失败!
!
);
getchar();
exit(0);
(*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));
printf(”\n学号:
scanf(”%d”,&p->
num);
printf(”\n姓名:
scanf("
%s”,p-〉name);
printf("
\n性别:
”);
%c"
&p->
sex);
printf(”\n专业:
%s"
,p—>
zhuanye);
\n楼号:
”);
scanf(”%d"
&p—〉lounum);
printf(”\n宿舍号:
scanf(”%d”,&
p—>
sushenum);
printf(”\n床号:
scanf(”%d"
&
chuangnum);
p-〉next=q->
q—〉next=p;
q=p;
按任意键继续录入,按0结束录入"
getchar();
ch=getchar();
if(ch==’0'
)
break;
}
Write_to_File(head);
}
voidRead_from_File(Stu*h)/*读出文件信息*/
FILE*fp;
Stu*p,*q;
inti;
fp=fopen(”sushe。
,”r”);
打开失败”);
q=h;
while(!
feof(fp))
p=(Stu*)malloc(sizeof(Stu));
i=fscanf(fp,”%d%s%c%s%d%d%d\n"
&p—>
num,p—〉name,&
p->
sex,
p->
zhuanye,&p—〉lounum,&p-〉sushenum,&
p-〉chuangnum);
if(i==EOF)
break;
q->
next=p;
next=NULL;
intdisplay()/*显示文件信息*/
Stu*head=NULL;
Stu*p;
Read_from_File(head);
//printf("
ok!
\n”);
p=head->
next;
system("
clear"
if(!
p)
printf(”无内容!
\n按任意键键返回\n”);
return0;
printf(”学号姓名性别专业楼号宿舍号床号\n\n”);
%—8d%-10s%-6c%-14s%-8d%-8d%-5d\n"
,p—〉num,p—>
name,p-〉sex,p—>
zhuanye,
lounum,p-〉sushenum,p—>
p=p—>
\n按任意键返回\n"
return1;
voiddel()/*删除学生信息*/
Stu*head;
Stu*p,*q;
charch,h;
intN;
intlounum,sushenum,chuangnum;
InitStu(&head);
Read_from_File(head);
do
system(”clear”);
printf(”\n1。
根据学生学号删除\n"
\n2。
根据宿舍信息删除\n"
\n请选择删除方式:
scanf(”%c”,&
ch);
while
(1)
{
if(ch=='
1'
{
printf(”\n请输入学生学号:
scanf(”%d"
,&N);
while(p)
{
if(p—>
num==N)
{
q—>
next=p-〉next;
printf("
删除成功!
break;
}
q=p;
p=p->
}
if(p==NULL)
{
printf("
\n未找到此学生”);
break;
}else
{
free(p);
}
}
elseif(ch=='
2’)
{
printf("
\n请输入宿舍信息(楼号宿舍床号):
scanf("
%d%d%d"
,&
lounum,&
sushenum,&chuangnum);
while(p!
=NULL)
if(p->
lounum==lounum&
&
p—〉sushenum==sushenum&&
p->
chuangnum)
{
q->
next=p—>
printf(”删除成功!
q=p;
p=p—>
}
{
printf(”未找到此学生"
}else
free(p);
break;
}
printf(”\n\n是否继续:
Y/N?
scanf("
%c”,&h);
}while(h==’Y’||h==’y'
}
voidinsert()/*用头插法插入学生信息*/
Stu*p,*head;
charch;
InitStu(&head);
{
p=(Stu*)malloc(sizeof(Stu));
p—>
next=NULL;
\t\t请输入插入的学生信息:
\n"
printf(”\t学号:
,&p—>
\n\t姓名:
%s”,p-〉name);
\n\t性别:
%c”,&p—〉sex);
\n\t专业:
%s”,p—>
zhuanye);
\n\t楼号:
scanf(”%d”,&
lounum);
printf(”\n\t宿舍号:
%d"
&p-〉sushenum);
\n\t床号:
scanf(”%d”,&
p—〉chuangnum);
next=head-〉next;
head—>
next=p;
\n\n是否继续插入?
Y/N”);
%c"
,&ch);
}while(ch==’y'
||ch==’Y’);
Write_to_File(head);
voidmodify()/*修改学生信息(按学号修改)*/
Stu*head;
Stu*p;
head);
system(”clear"
\n\n请输入修改的学生学号:
”);
,&N);
while(p!
if(p—>
system("
printf(”\n请输入新的学生信息:
\n”);
printf(”\n学号:
%d”,&p-〉num);
printf(”\n姓名:
scanf(”%s"
p-〉name);
scanf(”%c”,&p—〉sex);
printf(”\n专业:
scanf(”%s”,p->
printf(”\n楼号:
%d”,&p-〉lounum);
\n宿舍号:
%d"
,&p—〉sushenum);
printf(”\n床号:
break;
}
p=p-〉next;
}
if(p==NULL)
printf("
\n未找到此学生”);
else
printf(”修改成功\n”);
\n\n继续修改?
Y/N"
%c”,&ch);
}while(ch==’y’||ch==’Y'
voidxuehao_search(Stu*head)/*按照学生学号查找*/
intnum;
next;
clear”);
printf(”\n请输入要查找的学生学号:
"
scanf(”%d”,&
num);
while(p!
{
if(p—〉num==num)
printf(”学号姓名性别专业楼号宿舍号床号\n\n"
%—8d%—8s%-4c%—8s%—8d%—8d%—5d\n"
p—〉num,p—>
zhuanye,
p-〉lounum,p—>
sushenum,p—〉chuangnum);
p=p-〉next;
if(p==NULL)
printf(”\n未找到此学生"
\n\n继续查找?
%s”,&ch);
}while(ch==’Y'
||ch==’y’);
voidsushe_search(Stu*head)/*按照宿舍信息查找*/
intlounum,sushenum,chuangnum;
p=head—〉next;
system(”clear"
printf(”\n请输入要查找的学生宿舍信息(楼号宿舍床号):
”);
printf(”\n楼号:
%d”,&
lounum);
\n宿舍号:
&sushenum);
printf(”\n床号:
,&chuangnum);
if(p->
lounum==lounum&&p->
sushenum==sushenum
&
&p-〉chuangnum==chuangnum)
{
学号姓名性别专业楼号宿舍号床号\n\n”);
%-8d%—8s%—4c%—8s%—8d%—8d%—5d\n"
p—>
num,p-〉name,p->
p-〉zhuanye,
p->
lounum,p-〉sushenum,p-〉chuangnum);
break;
p=p—>
\n未找到此学生"
\n\n是否继续?
scanf(”%s”,&ch);
}while(ch=='
y'
||ch==’Y’);
voidSearch()/*查找学生信息*/
{
intchoose;
\n1。
根据宿舍信息查找。
printf(”\n2。
根据学生学号查找."
printf(”\n3。
退出.\n\n"
printf(”\n请选择查找方式:
choose);
switch(choose)
case1:
sushe_search(head);
case2:
xuehao_search(head);
break;
case3:
voidsort()/*将学生信息按学号排序*/
Stu*head;
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-〉next;
i-〉next=j->
j-〉next=temp;
i=head;
\n\n输入学生信息:
\n\n"
i=head—>
学号姓名性别专业楼号宿舍号床号\n\n"
while(i)
%-8d%—8s%—4c%-8s%—8d%-8d%-5d\n”,i—>
num,i—〉name,i-〉sex,
i->
i—〉lounum,i—〉sushenum,i—>
i=i->
printf(”\n按任意键返回!
voidtongji()/*统计学生信息*/
Stu*head,*p;
intCount1,Count2;
Count1=0;
Count2=0;
while(p!
if(p—〉sex==’w’||p—〉sex==’W'
Count1++;
}
else
Count2++;
}
p=p—>
\t女生总数:
%d\n”,Count1);
\t男生总数:
%d\n”,Count2);
\t学生总数:
%d\n"
,Count1+Count2);
\t按任意键返回!
voidmain()
intchoice;
\n学生宿舍管理系统\n"
=========================================\n"
1.录入学生信息\n\n"
printf(”2.删除学生信息\n\n”);
printf(”3.插入学生信息\n\n”);
printf(”4.修改学生信息\n\n"
printf(”5。
显示学生信息\n\n"
printf(”6。
查找学生信息\n\n”);
printf(”7。
排序学生信息\n\n”);
8。
统计学生信息\n\n”);
0。
退出系统\n”);
==========================================\n”);
请选择0—8:
printf(”\n请选择要进行的操作:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 学生宿舍 管理 系统 ubuntu