C语言课程设计报告——学生宿舍管理系统(下)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
****大学
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()函数,统计了女生人数和男生人数,还统计了总人数.
五.详细过程和运行结果:
删除模块
插入模块
查找模块
修改模块
排序模块
统计模块
六.参考文献:
《C语言程序设计》: 王曙燕
.
七.源代码
#include
#include
#include
//#include
typedef struct Student
{
int num; /*学号*/
char name[15]; /*姓名*/
char sex; /*性别*/
char zhuanye[20]; /*专业*/
int lounum; /*楼号*/
int sushenum; /*宿舍号*/
int chuangnum; /*床号*/
struct Student *next;
}Stu;
void Write_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->next;
}
fclose(fp);
}
void InitStu(Stu **h) /*创建头结点*/ {
(*h)=(Stu *)malloc(sizeof(Stu));
if(h==NULL)
{
printf("创建失败!!");
getchar();
getchar();
exit(0);
}
(*h)->next=NULL;
}
void append( ) /*录入学生信息*/ {
Stu *head;
Stu *p,*q;
char ch;
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性别:");
scanf(" %c",&p->sex);
printf("\n专业:");
scanf("%s",p->zhuanye);