C语言课程设计报告——学生宿舍管理系统(下)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

相关文档
最新文档