C语言课程设计学生宿舍管理系统.docx

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

C语言课程设计学生宿舍管理系统.docx

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

C语言课程设计学生宿舍管理系统.docx

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

****大学

C语言课程设计报告

 

题目:

学生宿舍管理系统

 

系部名称

专业名称

班级

学号

学生姓名

指导教师

时间

 

一、课程设计目的

1. 设计一个ubuntu下的学生宿舍管理系统

2. 掌握用C语言定义单链表结构,并实现其创建、插入、删除等基本操作。

二、课程设计内容

用C语言编写“学生宿舍管理系统”,要求如下:

1.创建链表,录入数据。

2.数据的读写操作。

3.数据的更新操作。

4.数据的删除和插入。

5.请你要求对数据进行查找。

6.按要求排序。

7.设计总体菜单界面。

三、实验要求

1、录入数据

学生的基本信息,包括学号、姓名、性别、年龄、专业、班级等。

宿舍楼的基本信息,包括宿舍楼号、学生所住的房间号和宿舍床位号等。

2、数据存储

信息的录入要求用链表,把输入的信息要求存储到指定文件夹中,以便随时查看,也可供程序调用,方便操作人员不用重复输入数据。

3、数据的更新

更新包括插入、删除、修改。

删除分根据学号删除和根据学生的楼层信息删除。

5、数据的查询

查询可以根据学号和宿舍信息不同方面进行查询,方便操作者使用。

6、数据的排序

操作者可以使所输入的信息按学号排序。

7、数据的统计

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

 

四、概要设计

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

p->num:

num

输出该学生的信息

按宿舍信息查找

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

p->lounum:

sushenu

p->sushenum:

sushenu

p->chuangnum:

chuangnum

输出该学生信息

结束

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

 

 

=

=

 

修改模块

 

=

 

==

 

排序模块

 

统计模块

 

六.参考文献:

《C语言程序设计》:

王曙燕

 

七.源代码

#include<>

#include<>

#include<>

根据学生学号删除\n");

printf("\n2.根据宿舍信息删除\n");

printf("\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->next;

}

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->next;

printf("删除成功!

");

break;

}

q=p;

p=p->next;

}

if(p==NULL)

{

printf("未找到此学生");

break;

}else

{

free(p);

}

}

break;

}

printf("\n\n是否继续:

Y/N");

scanf("%c",&h);

}while(h=='Y'||h=='y');

Write_to_File(head);

}

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

{

Stu*p,*head;

charch;

InitStu(&head);

Read_from_File(head);

system("clear");

do

{

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

p->next=NULL;

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

\n");

printf("\t学号:

");

scanf("%d",&p->num);

printf("\n\t姓名:

");

scanf("%s",p->name);

printf("\n\t性别:

");

scanf("%c",&p->sex);

printf("\n\t专业:

");

scanf("%s",p->zhuanye);

printf("\n\t楼号:

");

scanf("%d",&p->lounum);

printf("\n\t宿舍号:

");

scanf("%d",&p->sushenum);

printf("\n\t床号:

");

scanf("%d",&p->chuangnum);

p->next=head->next;

head->next=p;

printf("\n\n是否继续插入Y/N");

scanf("%c",&ch);

}while(ch=='y'||ch=='Y');

Write_to_File(head);

}

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

{

Stu*head;

Stu*p;

charch;

intN;

InitStu(&head);

Read_from_File(head);

system("clear");

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

");

scanf("%d",&N);

p=head->next;

do

{

while(p!

=NULL)

{

if(p->num==N)

{

system("clear");

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

\n");

printf("\n学号:

");

scanf("%d",&p->num);

printf("\n姓名:

");

scanf("%s",p->name);

printf("\n性别:

");

scanf("%c",&p->sex);

printf("\n专业:

");

scanf("%s",p->zhuanye);

printf("\n楼号:

");

scanf("%d",&p->lounum);

printf("\n宿舍号:

");

scanf("%d",&p->sushenum);

printf("\n床号:

");

scanf("%d",&p->chuangnum);

break;

}

p=p->next;

}

if(p==NULL)

printf("\n未找到此学生");

else

{

printf("修改成功\n");

}

printf("\n\n继续修改Y/N");

scanf("%c",&ch);

}while(ch=='y'||ch=='Y');

Write_to_File(head);

}

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

{

intnum;

Stu*p;

charch;

p=head->next;

do

{

system("clear");

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

");

scanf("%d",&num);

while(p!

=NULL)

{

if(p->num==num)

{

printf("学号姓名性别专业楼号宿舍号床号\n\n");

printf("%-8d%-8s%-4c%-8s%-8d%-8d%-5d\n",p->num,p->name,p->sex,p->zhuanye,

p->lounum,p->sushenum,p->chuangnum);

break;

}

p=p->next;

}

if(p==NULL)

printf("\n未找到此学生");

printf("\n\n继续查找Y/N");

scanf("%s",&ch);

}while(ch=='Y'||ch=='y');

}

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

{

intlounum,sushenum,chuangnum;

Stu*p;

charch;

p=head->next;

do

{

system("clear");

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

");

printf("\n楼号:

");

scanf("%d",&lounum);

printf("\n宿舍号:

");

scanf("%d",&sushenum);

printf("\n床号:

");

scanf("%d",&chuangnum);

while(p!

=NULL)

{

if(p->lounum==lounum&&p->sushenum==sushenum

&&p->chuangnum==chuangnum)

{

printf("学号姓名性别专业楼号宿舍号床号\n\n");

printf("%-8d%-8s%-4c%-8s%-8d%-8d%-5d\n",p->num,p->name,p->sex,

p->zhuanye,

p->lounum,p->sushenum,p->chuangnum);

break;

}

p=p->next;

}

if(p==NULL)

printf("\n未找到此学生");

printf("\n\n是否继续Y/N");

scanf("%s",&ch);

}while(ch=='y'||ch=='Y');

}

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

{

intchoose;

Stu*head;

InitStu(&head);

Read_from_File(head);

system("clear");

printf("\n1.根据宿舍信息查找.");

printf("\n2.根据学生学号查找.");

printf("\n3.退出.\n\n");

printf("\n请选择查找方式:

");

scanf("%d",&choose);

switch(choose)

{

case1:

sushe_search(head);

break;

case2:

xuehao_search(head);

break;

case3:

break;

}

}

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

{

Stu*head;

Stu*i,*j,*k;

Stu*m,*n;

Stu*temp;

intl=0;

InitStu(&head);

Read_from_File(head);入学生信息\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");

printf("8.统计学生信息\n\n");

printf("0.退出系统\n");

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

printf("请选择0-8:

\n");

printf("\n请选择要进行的操作:

");

scanf("%d",&choice);

switch(choice)

{

case1:

append();

break;

case2:

del();

break;

case3:

insert();

break;

case4:

modify();

break;

case5:

display();

break;

case6:

Search();

break;

case7:

sort();

break;

case8:

tongji();

break;

case0:

printf("\n\t\t确定退出(Y/N)");

scanf("%c",&ch);

if(ch=='Y'||ch=='y')

exit(0);

if(ch=='N'||ch=='n')

{

system("clear");

}

}

}

}

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

当前位置:首页 > 医药卫生 > 基础医学

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

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