宿舍管理系统精选文档.docx

上传人:b****6 文档编号:12670805 上传时间:2023-06-07 格式:DOCX 页数:36 大小:633.34KB
下载 相关 举报
宿舍管理系统精选文档.docx_第1页
第1页 / 共36页
宿舍管理系统精选文档.docx_第2页
第2页 / 共36页
宿舍管理系统精选文档.docx_第3页
第3页 / 共36页
宿舍管理系统精选文档.docx_第4页
第4页 / 共36页
宿舍管理系统精选文档.docx_第5页
第5页 / 共36页
宿舍管理系统精选文档.docx_第6页
第6页 / 共36页
宿舍管理系统精选文档.docx_第7页
第7页 / 共36页
宿舍管理系统精选文档.docx_第8页
第8页 / 共36页
宿舍管理系统精选文档.docx_第9页
第9页 / 共36页
宿舍管理系统精选文档.docx_第10页
第10页 / 共36页
宿舍管理系统精选文档.docx_第11页
第11页 / 共36页
宿舍管理系统精选文档.docx_第12页
第12页 / 共36页
宿舍管理系统精选文档.docx_第13页
第13页 / 共36页
宿舍管理系统精选文档.docx_第14页
第14页 / 共36页
宿舍管理系统精选文档.docx_第15页
第15页 / 共36页
宿舍管理系统精选文档.docx_第16页
第16页 / 共36页
宿舍管理系统精选文档.docx_第17页
第17页 / 共36页
宿舍管理系统精选文档.docx_第18页
第18页 / 共36页
宿舍管理系统精选文档.docx_第19页
第19页 / 共36页
宿舍管理系统精选文档.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

宿舍管理系统精选文档.docx

《宿舍管理系统精选文档.docx》由会员分享,可在线阅读,更多相关《宿舍管理系统精选文档.docx(36页珍藏版)》请在冰点文库上搜索。

宿舍管理系统精选文档.docx

宿舍管理系统精选文档

TTMSsystemofficeroom【TTMS16H-TTMS2A-TTMS8Q8-TTMSHHJ8】

 

宿舍管理系统精选文档

HUBEIUNIVERSITYOFAUTOMOTIVETECHNOLOGY

 

C语言程序设计

课程设计报告

课设题目:

宿舍管理系统

系部:

电气与信息工程学院

专业:

电子信息科学与技术(车联网工程)

姓名:

李鑫

完成日期:

2014年6月25日-2014年7月5日

 

1.课程设计目的

1)通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。

2)通过课程设计,进一步掌握C语言中重要的数据结构。

掌握并熟练运用指针、链表、结构体、文件等数据结构。

3)通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。

4)通过课程设计,培养C语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。

5)通过课程设计,加强了自己的程序分析能力。

2.需求分析

要求

1)遵循软件开发过程的基本规范;能灵活应用,初步具备运用C程序解决实际问题的能力。

2)运用结构化程序设计方法,按照课程设计题目要求,完成包括需求分析、数据结构设计、概要设计、详细设计、编写代码、调试和测试C程序等过程。

3)学会利用数组、结构体、链表进行相关信息表示。

4)功能模块划分清晰,系统结构图符合功能操作要求,且有详尽的功能描述

5)各主要功能模块有详尽的流程图及描述,用函数的形式实现,且调用入口、功能、出口等关系正确。

6)所设计的C程序较好的可读性和可靠性;程序书写风格规范,注释清晰。

7)界面友好(良好的人机互交),凡需要输入信息时,都有较详尽的提示信息,并对输入信息有较完善的值域分析。

8)程序经上机调试通过,不应出现语法型、功能型错误,并获得满意的结果。

9)学会通过各功能性测试用例测试程序的能力,尽可能避免原则性错误的出现。

10)掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。

11)C语言课程设计报告的内容反应实际设计过程,且符合格式要求,无抄袭现象。

任务描述

现学校要管理宿舍入住的学生,请设计一宿舍管理程序,以方便学校宿舍管理员对学生进行管理,该程序应该具有以下功能:

1)能从键盘录入床位信息。

2)指定学号,显示该学生的住宿的信息。

3)指定宿舍号,显示住宿信息。

4)给定宿舍号、床位号,修改住宿信息。

5)给定宿舍号、床位号,删除住宿信息。

运行环境

1)WindowsXP/7系统

2)VC++编译环境

开发工具

C语言

3.总体设计

系统模块设计

1)欢迎及信息导入界面:

构造函数intmain(),显示欢迎及制作信息。

构造函数voidloadRec(),从磁盘文件导入住宿信息到内存。

2)主菜单界面:

构造函数intmenu_select(),实现系统主菜单的显示。

3)住宿信息新建:

构造函数voidcreateRec(),新建或录入学生住宿信息。

4)住宿信息查询:

构造函数voidsearchRec()查询指定学号的学生住宿信息。

5)住宿信息修改:

构造函数voidmodifyRec()修改指定宿舍号及床位号的学生住宿信息。

6)住宿信息删除:

构造函数voiddeleteRec()实现对指定宿舍号及床位号的学生住宿信息记录的删除。

并通过函数free(),释放内存空间。

7)住宿信息浏览:

构造函数voidlistRec(),实现对指定宿舍住宿信息浏览界面的显示。

8)住宿信息统计:

构造函数voidcountRec(),实现对床位信息中空床位数的统计。

9)住宿信息保存:

构造函数voidwriteInfo(),保存学生住宿信息。

10)退出界面:

构造函数voidexit0()退出程序。

系统功能模块图

 

4.详细设计

数据结构设计

根据系统要求,系统中需要保存的数据信息,其结构如下:

数据项名称

数据项系统表示

数据类型

数据长度

备注

姓名

p1->name

字符串

20

学号

p1->id

字符串

20

班级

p1->classs

字符串

10

入住时间

p1->

p1->

p1->

整形

床位信息

p1->,

p1->

p1->

字符型

字符型

整形

10

5

根据系统要求,系统中需要保存的类别信息,其结构如下:

类别代号

charname[20]

charid[20]

charclasss[10]

DATEintake

类别名称

姓名

学号

班级

入住时间

类别代号

INFObed

类别名称

住宿情况

基本信息结构体

Typedefstruct

{

intyear;

intmonth;

intday;

}DATE;

Typedefstruct

{

chardorm[10];

charbedid[5];

intk;

}INFO;

structstudent

{

charname[20];

charid[20];

charclasss[20];

DATEintake;

INFObed;

structstudent*next;

};

模块接口设计

1)所有函数模块声明如下:

voidcreateRec();/*新建住宿信息记录*/

voidloadRec();/*从磁盘文件导入住宿信息到内存

voidsearchRec();/*查询住宿记录*/

voidmodifyRec();/*修改住宿记录*/

voidcountRec();/*统计空床位记录*/

voiddeleteRec();/*删除住宿记录*/

voidlistRec();/*显示住宿信息*/

voidwriteInfo();/*保存住宿记录*/

voidexit0();/*退出*/

intmenu_select();/*主菜单*/

2)定义一个全局变量以及结构体指针:

structstudent*head=NULL,*p1,*p2,*p3;定义结构体指针head为头指针,p1为输入数据缓存空间指针,p2为尾指针,p3为中间指针

intwriteinfo_flag=0;保存住宿信息标志的全局变量标志。

3)主要模块的实现

系统以主函数intmain()为入口

调用voidloadRec()函数导入住宿信息,然后调用intmenu_select();函数,进入主菜单界面。

系统接收用户输入的选择,调用相应的函数,进入到下一级菜单进行相关工作。

 

以下是几个主要模块的流程图:

1)主菜单函数:

 

 

否是

 

图1主函数流程图

2)查询指定学号学生住宿信息函数:

 

图2显示指定宿舍学生住宿信息结构框图

3)新建或添加学生住宿信息函数:

 

 

图3新建若干组学生住宿信息结构框图

 

4)修改(删除)指定宿舍号及床位号的学生住宿信息函数:

 

图4修改(删除)指定宿舍号及床位号的学生住宿信息结构框图

 

5)显示指定宿舍号学生住宿信息函数:

 

 

图5显示指定宿舍号学生住宿信息函数结构框图

 

6)保存学生住宿信息函数:

 

图6保存学生住宿信息函数结构框图

5.运行结果

欢迎界面及文件信息导入:

图1欢迎界面及文件信息导入

主菜单界面:

图2主菜单界面

新建学生住宿信息:

图3新建学生住宿信息

查询指定学号的学生住宿信息:

图4查询指定学号的学生住宿信息:

修改指定宿舍号及床位号的学生住宿信息

图5修改指定宿舍号及床位号的学生住宿信息

删除指定宿舍号及床位号的学生住宿信息:

图6删除指定宿舍号及床位号的学生住宿信息

显示指定宿舍号的学生住宿信息:

图7显示指定宿舍号的学生住宿信息

统计空床位数:

图8统计空床位数

保存学生住宿信息

图9保存学生住宿信息

退出界面

图10退出界面

6.程序前后文本

1导入的文本

路径:

张强1112012-08-0612511

王阳明2112012-08-0612520

陈超3112012-08-0612530

李可4112012-08-0612841

2保存后的文本

路径:

王阳明2112012-8-612520

陈超3112012-8-612530

李可4112012-8-612841

陈东5112012-8-612810

7.编程体会

本次课程设计总体感觉要较之去年的简单了不少。

但由于C语言初学较差,基础薄弱,感觉还是存在较大的问题。

所以这次的编程实现主要是对教师模板进行的在修改,使得其满足课设中所提众多要求。

编程中大体要满足的一般都是新建、修改、删除、保存、查询、文件读入等功能,其中的删除和文件读入较为复杂。

个人认为这次课设的一个难点是要求运用链表实现编程。

不得不说链表的运用会提高程序的清晰度和可读性。

但由于链表理解起来较难,这会在应用上存在极大的难度。

课设中信息较为复杂,如床位信息、入住时间,都是作为一个信息存在,但本省包含多个信息量。

所以在定义结构体时,对结构体进行了另命名和结构体嵌套。

在创建、删除等链表等功能的实现中,经常需要找到当前结点之前的结点,也就是前驱结点。

随着程序的进展,也需要更新前驱结点指针。

在真正的程序应用中,总是会有许多出错的地方,比如各函数对输入数据格式的限制。

文件读入时,文件不存在,文件读取错误等。

还有指针应用中,申请空间及对废弃指针存储内容的释放等。

细节决定成败,程序编写中一个微小的错误就会引发一系列的错误,造成修改难度大,程序无法运行的诸多麻烦。

所以在程序编写之初,便应保持良好的心态,认真对待,有条不紊。

通过这次课程设计,我可以说是获益匪浅,不仅使得我回顾了大量的C语言知识,巩固了已知,在此基础之上,我还了解理解了虚度哦故去不是很理解或根本不知道的东西。

而且从另一侧面锻炼了我的心性,让我在对待事物上可以统筹,又可以对每一个部分进行充分的认识。

以及耐心,认真,反复检查,精益求精等良好的品行等。

总之,本次课设于我意义重大,受益良多。

8.程序源代码

/*已知一个宿舍的信息为:

床位信息(宿舍号、床位号、是否入住)、学号、姓名、班级、入住时间,从键盘输入n个宿舍的信息,并

将其保存在()文件中。

*/

/*所使用的有头文件*/

#include<>

#include<>

#include<>

#include<>

#include<>

#defineLENsizeof(structstudent)

/*结构体定义*/

typedefstruct

{

intyear;/*年*/

intmonth;/*月*/

intday;/*日*/

}DATE;

typedefstruct

{

chardorm[10];/*宿舍号*/

charbedid[5];/*床位号*/

intk;/*入住情况k=(0/1)*/

}INFO;

structstudent

{charname[20];/*姓名*/

charid[20];/*学号*/

charclasss[10];/*班级*/

DATEintake;/*入住时间*/

INFObed;/*床位信息*/

structstudent*next;

};

/*函数声明*/

voidcreateRec();/*新建住宿信息记录*/

voidloadRec();/*从磁盘文件导入住宿信息到内存*/

voidsearchRec();/*查询住宿记录*/

voidmodifyRec();/*修改住宿记录*/

voidcountRec();/*统计空床位记录*/

voiddeleteRec();/*删除住宿记录*/

voidlistRec();/*显示住宿信息*/

voidwriteInfo();/*保存住宿记录*/

voidexit0();/*退出*/

intmenu_select();/*主菜单*/

/*链表操作所用结构体指针*/

structstudent*head=NULL,*p1,*p2,*p3;/*定义结构体指针head为头指针p1为输入数据缓存空间指针p2为尾指针*/

/*宿舍记录保存标志全局变量*/

intwriteinfo_flag=0;

/*主函数*/

intmain()

{

printf("\n\t\t\n");

printf("\n\t\t○●○●○●○\n");

printf("\n\t\tC语言课程设计--宿舍管理\n\n");

printf("\n\t\t☆◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆☆\n");

printf("\n\t\t\n");

printf("\n\t\t※指导老师:

张吴波\n");

printf("\n\t\t※制作人:

李鑫班级:

T1223-11\n");

printf("\n\t\t※\n");

printf("\n\t\t※电话:

\n");

printf("\n\n\t\t***************************************************\n");

getchar();

system("cls");

loadRec();

for(;;)

{switch(menu_select())

{case1:

system("cls");createRec();break;

case2:

system("cls");searchRec();break;

case3:

system("cls");modifyRec();break;

case4:

system("cls");deleteRec();break;

case5:

system("cls");listRec();break;

case6:

system("cls");countRec();break;

case7:

system("cls");writeInfo();break;

case0:

system("cls");exit0();return0;

default:

{getchar();

system("cls");

printf("\n选择错误,请正确输入你的选择(0~7),:

\n");

printf("\n按任意键返回......\n");

getchar();

system("cls");/*清屏*/

}

}

}

return0;

}

/*主菜单*/

intmenu_select()

{intc;

printf("\n\t\t○●○●○●○●○●○●○●○\n");

printf("\n\t\t★欢迎使用简易宿舍管理系统\n");

printf("\n\t\t*********************************\n\n");

printf("\t\t*1.新建学生住宿信息\n");

printf("\t\t*2.查询指定学号的学生住宿信息\n");

printf("\t\t*3.修改指定宿舍号及床位号的学生住宿信息\n");

printf("\t\t*4.删除指定宿舍号及床位号的学生住宿信息\n");

printf("\t\t*5.显示指定宿舍号学生住宿信息\n");

printf("\t\t*6.统计空床位数\n");

printf("\t\t*7.保存学生住宿信息\n");

printf("\t\t*0.退出(任何情况下按Ctrl+C退出程序)\n\n");

printf("\t\t**********************************\n");

printf("\n请输入相应选择(0~7):

\n");

scanf("%d",&c);

returnc;

}

/*从磁盘文件导入学生住宿信息到内存*/

voidloadRec()

{FILE*fp;

intn=0;

if((fp=fopen("","r"))==NULL)/*打开文件*/

{printf("文件不存在或无法打开!

\n");

return;

}

head=p1=(structstudent*)malloc(LEN);/*开辟一个新单元*/

p1->next=NULL;

while(!

feof(fp))

{n++;

fscanf(fp,"%s%s%s%d-%d-%d%s%s%d",p1->name,p1->id,p1->classs,&p1->,&p1->,&p1->,p1->,p1->,&p1->;

if(p1->id[0]<'0'||p1->id[0]>'9'){n--;break;}

p2=(structstudent*)malloc(LEN);/*开辟一个新单元*/

p1->next=p2;

p3=p1;

p1=p2;

p1->next=NULL;

}

free(p2);

p3->next=NULL;

printf("\n\t\t%d项信息输入完毕,按任意键返回......\n",n);

getchar();

system("cls");/*清屏*/

writeinfo_flag=0;/*设置保存记录标志*/

if(fclose(fp))/*关闭文件*/

{

printf("Cannotclosethefile!

\n");

exit(0);

}

}

/*新建宿舍信息记录*/

voidcreateRec()

{intn,i;

if(head!

=0){p3=head;

while(p3->next!

=NULL)

p3=p3->next;

getchar();

printf("\n住宿信息数据库已存在,新建住宿信息将接续在原信息库的后面,按任意键继续......:

\n");

getchar();

system("cls");/*清屏*/

p3->next=p1=(structstudent*)malloc(LEN);/*开辟一个新单元*/

}

elsehead=p1=(structstudent*)malloc(LEN);/*开辟一个新单元*/

p1->next=NULL;

printf("\n\n请输入希望建立的住宿基本信息条数n(n<1&&n<10):

\n");

do{scanf("%d",&n);

if(n<1||n>10)printf("\n\n输入范围有误,请重新输入希望建立的宿舍基本信息条数n(n<1&&n<10):

\n");

}while(n<1||n>10);

/*开始建立n条学生住宿基本信息记录*/

printf("\n\n请输入学生的住宿信息如:

\n姓名学号班级入住时间宿舍号床位号入住情况(0/1)\n");

for(i=0;i

{

scanf("%s%s%s%d-%d-%d%s%s%d",p1->name,p1->id,p1->classs,&p1->,&p1->,&p1->,p1->,p1->,&p1->;

p2=(structstudent*)malloc(LEN);/*开辟一个新单元*/

p1->next=p2;

p3=p1;

p1=p2;

p1->next=NULL;

}

free(p2);

p3->next=NULL;

printf("\n%d项信息输入完毕,按任意键返回......\n",n);

getchar();

system("cls");/*清屏*/

writeinfo_flag=1;/*清除保存记录标志*/

}

/*查询指定学号的学生住宿信息记录*/

voidsearchRec()

{

charid[20];

p1=head;

if(p1==NULL)

{printf("\n\n住宿信息数据库为空!

!

!

\n");

printf("\n按任意键返回......\n");

getch();

system("cls");/*清屏*/

return;

}

printf("\n\n请输入学生学号以便查证:

\n");

scanf("%s",id);

while(p1!

=NULL)

{if(strcmp(p1->id,id)==0)

{printf("\t该学生住宿信息如下:

\n\t姓名:

");

printf("%s\n",p1->name);

printf("\t学号:

");

printf("%s\n",p1->id);

printf("\t班级:

");

printf("%s\n",p1->classs);

printf("\t入住时间:

");

printf("%d-%d-%d\n",p1->,p1->,p1->;

printf("\t床位信息:

");

printf("%s%s%d\n",p1->,p1->,p1->);

break;

}

else{p1=p1->next;}

}

if(p1==NULL)printf("\n\n找不到该学生的相应住宿信息!

!

!

\n");

printf("\n按任意键返回......\n");

getch();

system("cls");/*清屏*/

}

/*修改指定宿舍号及床位号的学生住宿记录*/

voidmodifyRec()

{

chardorm

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2