C程序设计学生宿舍管理系统课程设计_第1页
C程序设计学生宿舍管理系统课程设计_第2页
C程序设计学生宿舍管理系统课程设计_第3页
C程序设计学生宿舍管理系统课程设计_第4页
C程序设计学生宿舍管理系统课程设计_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

+成绩课程设计设计课程名称C语言课程设计题目1C程序的多文件实现2学生宿舍管理系统设计学院专业班级学号姓名指导教师部门计算机教研室设计时间2016年6月15日2016年7月8日C语言课程设计任务书学院班同学:一、设计题目1C程序的多文件实现2学生宿舍管理系统设计二、C语言课程设计的目的和意义C语言课程设计是C语言程序设计课程的一个重要的环节。它是根据教学计划的要求,在老师指导下,对学生实施程序设计训练的必要过程,是对前期课堂教学效果的检验。其目标在于培养学生综合应用理论知识来分析和解决实际问题的能力。通过本次课程,要求学生能够遵循软件开发过程的基本规范,应用结构化程序设计的方法,按照题目要求,独立完成设计任务,使学生更加深刻地理解和掌握C语言的基本概念、语言特点和编程技巧,为以后相关课程的学习打下良好基础。三、设计内容任务一C程序的多文件实现目的:(1)树立项目意识,体验C语言的模块化设计风格;(2)掌握函数调用及其参数传递的方法;(3)学习多文件程序的编写和调试方法;(4)学习基于软件工程的项目实现方法和文档编写方法。内容和要求:(1)使用多文件结构形式完成本设计。(2)使用结构体结构存储学生的信息,通过函数调用实现学生信息的增加、显示、指定信息的删除、查找和排序。(3)为各项操作功能设计菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。(4)各功能使用相应的函数实现,各函数包含在不同的文件中。(5)构造独立的头文件,包含所需的所有的头文件和函数原型说明。(6)设计报告包括课题的需求分析、系统设计、详细设计、系统实现和测试。(7)扩展:扩展一:必做1输入成绩时,对数据的有效性(0≤成绩≤100)进行判断。2删除操作后,显示当前成绩。3排序操作后,显示当前成绩。

扩展二:必做1循环做删除操作。2循环做查询操作。

扩展三:选做1增加用户账号和密码验证功能。2允许输入三次,三次后信息仍然不对,则退出。

扩展四:选做1修改”输入功能”为“插入”:输入一个数据,如果在成绩表中存在,输出提示信息;如果不在,将其插入在表的末尾。然后输出整个表。2如果扩展了插入功能,那么循环做插入操作。扩展五:选做将成绩表存入文件。从文件中读出成绩。任务二学生宿舍管理系统设计目的:(1)熟悉使用软件工程的思想完成一个信息系统的设计步骤和方法。(2)熟悉软件设计各步骤表示的常用工具。(3)掌握使用C语言进行多文件程序编写和调试的方法。内容和要求:【题目描述】本项目要求完成一个学生宿舍管理系统,包含诸如楼号,类别(男女),宿舍号,床位数,入住数,空位数等宿舍信息。系统能对这些基本信息进行管理,具有用户身份验证,宿舍信息添加、删除、输出和统计功能,系统能够将宿舍信息格式化保存(至文件)和格式化读出(从文件中)。其中统计功能为分别统计男女生宿舍数,统计入住的男女生人数,统计男女生床位空置数,计算并显示每栋楼每个宿舍还可入住的男女生人数。【题目要求】要求实现以上题目要求中的全部功能,可进行必要的功能和性能扩展。1为各项操作功能设计一个菜单。系统运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。2功能要求(1)用户验证功能:用户身份验证功能。系统运行后先进行身份验证,输入用户账号和密码,只有输入的账号密码正确,才进入学生宿舍管理系统。(2)添加宿舍信息:添加学生宿舍信息,包括楼号,类别,宿舍号,床位数,入住数。能重复添加操作。(3)删除宿舍信息:删除学生宿舍信息,能重复删除操作。完成删除宿舍信息后,能够输出系统中剩余的宿舍信息。(4)输出宿舍信息:输出学生宿舍信息,包括楼号,类别,宿舍号,床位数,入住数,空床数。(5)统计宿舍信息:分别统计男女生宿舍数,统计入住的男女生人数,统计男女生床位空置数,计算并显示每栋楼每个宿舍还可入住的男女生人数。(6)其他拓展功能:查找学生宿舍信息,能重复查询操作。3各功能使用相应的函数实现,各函数包含在不同的文件中。4要求将产生的数据和结果保存在文件中,宿舍信息可至保存(至文件),也可查看(从文件中)。【输入/输出要求】总体要求:界面友好,系统易用。(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。进入每个操作后,根据程序的提示输入相应的信息;(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。(3)信息输出语义清晰,格式整齐、美观。四、设计要求1、编写源程序的要求:(1)实现任务书中的所有功能,可扩展;(2)尽可能使界面友好、直观、易操作;(3)源程序要有注释,使程序容易阅读;(4)使用多文件实现。2、撰写“课程设计报告”,要求如下:(1)封面:统一采用《常州大学课程设计说明书》封面格式(2)任务书(3)目录(4)正文。每部分按各自的要求编写,依次按照任务一和任务二完成。“课程设计报告”排版要求:4、课程设计答辩验收要求:(1)运行所设计的系统;(2)回答有关问题;(3)电子稿:提交源程序和课程设计报告电子稿,打包上传至网络课堂相关节点书面稿:提交课程设计报告书面稿五、进度安排1任务一C程序的多文件实现:24学时+课外2任务二学生宿舍管理系统设计系统分析和系统设计阶段:8学时+课外编程及系统调试阶段:26学时+课外总结和书写课程设计报告阶段:课外考核阶段:2学时六、设计时间:2016年6月15日到2016年7月8日目录\o"1-3"\h\z\u任务一C程序的多文件实现 455086666\h11问题描述 455086667\h12系统设计 455086668\h12.1系统功能结构图 455086669\h12.2系统流程设计图 455086670\h22.3数据设计 455086671\h42.4系统文件设计 455086672\h43详细设计 455086673\h43.1结构体定义 455086674\h43.2文件和自定义函数间的关系 455086675\h53.3函数之间调用关系 455086676\h53.4函数设计 455086677\h63.4.1用户账号和密码验证 455086678\h63.4.2菜单函数 455086679\h63.4.3学生信息的输入 455086680\h63.4.4学生信息的删除 455086681\h63.4.5学生信息的查询 455086682\h73.4.6学生信息的排序 455086683\h73.4.7学生信息的显示 455086684\h74系统实现 455086685\h84.1系统文件结构图 455086686\h84.2系统开发和运行环境 455086687\h84.3源程序清单 455086688\h84.3.1头文件1 455086689\h84.3.2函数文件 455086690\h94.3.3函数文件 455086691\h104.3.4函数文件 455086692\h104.3.5函数文件 455086693\h114.3.6函数文件 455086694\h114.3.7函数文件 455086695\h124.3.8函数文件 455086696\h134.3.9函数文件 455086697\h145系统测试和结果 455086698\h14任务二学生宿舍管理系统设计 455086699\h171题目描述 455086700\h171.1题目基本要求 455086701\h171.2输入/输出要求 455086702\h182系统设计 455086703\h182.1系统功能结构设计 455086704\h182.2系统流程设计 455086705\h192.3数据设计 455086706\h212.4界面设计 455086707\h212.5文件设计 455086708\h213详细设计 455086709\h223.1数据定义 455086710\h223.2文件和自定义函数间的关系 455086711\h233.3函数之间调用关系 455086712\h233.4函数设计 455086713\h243.4.1用户身份验证 455086714\h243.4.2菜单函数 455086715\h243.4.3宿舍信息的添加 455086716\h243.4.4宿舍信息的删除 455086717\h243.4.5宿舍信息的查询 455086718\h253.4.6宿舍信息的输出 455086719\h253.4.7宿舍信息的统计 455086720\h253.4.8统计男女生宿舍数 455086721\h263.4.9统计入住的男女生人数 455086722\h263.4.10统计男女生床位空置数 455086723\h263.4.11统计每栋楼每个宿舍还可入住的男女生人数 455086724\h263.4.12宿舍信息的保存 455086725\h273.4.13宿舍信息的查看 455086726\h274系统实现 455086727\h274.1系统开发和运行环境 455086728\h274.2系统构架 455086729\h274.3源程序清单 455086730\h284.3.1头文件2 455086731\h284.3.2函数文件 455086732\h294.3.3函数文件 455086733\h304.3.4函数文件 455086734\h314.3.5函数文件 455086735\h314.3.6函数文件 455086736\h324.3.7函数文件 455086737\h334.3.8函数文件 455086738\h344.3.9函数文件 455086739\h354.3.10函数文件 455086740\h374.3.11函数文件 455086741\h385测试和结果 455086742\h396结论 455086743\h436.1课题完成情况说明 455086744\h436.2系统的亮点 455086745\h436.3系统的不足 455086746\h436.4系统可能的改进 455086747\h436.5系统可能的扩展 455086748\h44总结 455086749\h44参考文献 455086750\h44致谢 455086751\h44任务一C程序的多文件实现1问题描述本系统将构造一个学生信息管理系统,然后能对这些基本信息进行管理,具有诸如登录验证功能,学生信息查询、添加、删除、排序和显示等的功能。主要功能如下:(1)主模块功能:定义一个结构体数组来存储学生信息,然后通过调用以下几个函数来实现相应的功能。(2)登录验证功能:系统运行后先进行登录验证。输入用户账号和用户密码,允许输入三次,三次后输入信息仍然不对,则退出。(3)菜单模块功能:为各项操作功能设计菜单。用户登录验证后,先显示这个菜单,然后用户通过菜单选项选择希望进行的操作项目。(4)输入模块:完成学生信息的输入功能。具体方法是先输入学生的实际人数,再依次输入学生的学号、姓名和成绩并保存到结构体数组中。在输入成绩时会对输入成绩的有效性进行判断(0≤成绩≤100),若输入的成绩有效,则将该学生信息保存;否则,提示成绩输入有误,重新输入。(5)删除模块:完成删除某个学生信息功能。具体方法是先输入一个要删除的学生的学号,然后在保存学生信息的结构体数组中查找该项,若找到,则删除;否则,显示找不到。删除一个学生信息后,询问是否继续删除。完成删除学生信息后,在屏幕上显示当前学生信息。(6)查询模块:完成查找某个学生信息功能。具体方法是先输入一个要查找的学生的学号,然后在保存学生信息的结构体数组中查找该项,若找到,则显示该项;否则,显示找不到。查询一个学生信息后,询问是否继续查询。完成查询学生信息后,在屏幕上显示当前学生信息。(7)排序模块:完成按成绩高低将学生的信息从高到低排序的功能。具体方法是采用冒泡排序方法对及结构体数组中的值按从大到小排序。学生信息排序完成后,在屏幕上显示当前学生信息。(8)显示模块:完成在屏幕上显示所有学生信息功能。该学生信息管理系统需使用多文件结构实现,构建独立的头文件,包含系统所需要的预处理命令,各独立功能模块均要求采用构建独立文件实现。2系统设计2.1系统功能结构图图1为学生信息管理系统结构示意图,将学生信息管理系统分为7个部分,分别为账号登录验证、菜单选项功能、学生信息输入、学生信息删除、学生信息查询、学生信息排序和学生信息显示。(1)子模块:系统运行后先进行登录验证。输入用户账号和用户密码,允许输入三次,三次后输入信息仍然不对,则退出。(2)子模块:为各项操作功能设计菜单。用户登录验证后,显示这个菜单,然后用户通过菜单选项选择希望进行的操作项目。(3)子模块:完成学生信息的输入功能。具体方法是先输入学生的实际人数,再依次输入学生的学号、姓名和成绩并保存到结构体数组中,在输入成绩时会对输入成绩的有效性进行判断(0≤成绩≤100),若输入的成绩有效,则将该学生信息保存;否则,提示成绩输入有误,重新输入。(4)子模块:完成删除某个学生信息功能。具体方法是先输入一个要删除的学生的学号,然后在保存学生信息的结构体数组中查找该项,若找到,则删除;否则,显示找不到。删除一个学生信息后,询问是否继续删除。完成删除学生信息后,在屏幕上显示当前学生信息。(5)子模块:完成查找某个学生信息功能。具体方法是先输入一个要查找的学生的学号,然后在保存学生信息的结构体数组中查找该项,若找到,则显示该项;否则,显示找不到。查询一个学生信息后,询问是否继续查询。完成查询学生信息后,在屏幕上显示当前学生信息。(6)子模块:完成按成绩高低将学生的信息从高到低排序的功能。具体方法是采用冒泡排序方法对及结构体数组中的值按从大到小排序。学生信息排序完成后,在屏幕上显示当前学生信息。(7)子模块:完成在屏幕上显示所有学生信息功能。账号登录验证账号登录验证菜单选项功能学生信息管理系统菜单选项功能学生信息管理系统学生信息删除显示学生信息删除显示学生信息输入学生信息显示显示学生信息删除学生信息显示显示学生信息删除学生信息查询显示学生信息查询显示学生信息查询学生信息显示显示学生信息显示显示学生信息排序学生信息排序学生信息显示学生信息显示显示图1系统结构示意图2.2系统流程设计图图2为学生信息管理系统流程设计图,该系统为一个账号登录验证功能和6个菜单选项构成,分别为(1)学生信息输入,(2)学生信息删除,(3)学生信息查询,(4)学生信息排序,(5)学生信息显示,(0)退出管理系统。运行系统后,首先进行用户登录验证,允许用户输入三次账号和密码,若三次后输入信息仍然不对,则退出该系统。登录系统验证成功后,进入菜单界面,用户可以选择选项1执行学生信息输入操作或者选择选项(0)执行退出管理系统操作。从选项(1)返回后可进行(2)学生信息删除,(3)学生信息查询,(4)学生信息排序,(5)学生信息显示,(0)退出管理系统等操作。执行选项(1)学生信息输入操作时,会对输入的成绩进行数据的有效性判断,若输入的成绩有效,则将该学生信息保存;否则,提示成绩输入有误,重新输入。执行选项(2)学生信息删除操作时,删除完成一个学生信息后,系统会询问是否继续删除操作。完成删除学生信息后,在屏幕上显示当前学生信息。执行选项(3)学生信息查询操作时,查询完成一个学生信息后,系统会询问是否继续查询操作。完成查询学生信息后,在屏幕上显示当前学生信息。运行系统运行系统用户账号登录验证退出系统三次验证失败用户账号登录验证退出系统验证成功进入菜单选项进入菜单选项2学生信息删除32学生信息删除3学生信息查询1学生信息输入1学生信息输入4学生信息排序0退出管理系统5学生信息显示选择0退出,选择1继续信息删除选择0退出,选择1继续信息查询选择0退出,选择1继续信息删除选择0退出,选择1继续信息查询判断输入成绩信息是否有效判断输入成绩信息是否有效图2系统流程设计图2.3数据设计该学生信息管理系统需定义如下学生结构体,包括:学号:6位长的字符串姓名:20位长的字符串成绩:浮点型数据声明字符数组如下:用户密码[20]20位长的字符串2.4系统文件设计一一主函数文件一一用户验证文件一一主菜单文件一一学生信息输入文件一一学生信息删除文件一一学生信息显示文件一一学生信息查找文件一一学生成绩排序文件3详细设计3.1结构体定义结构体是一种构造类型数据,可以将一组类型不同的数据组合在一起统一管理。对于学生信息管理系统,每个学生的信息除了成绩外,还可以包含学号、姓名等不同类型的数据。因此,可构造结构体来表示每个学生的信息,结构体的数据包括学号、姓名、成绩。结构体定义如下:{ ;/*学生学号*/ [20];/*学生姓名*/ ;/*学生成绩*/};是把一个自己起的名字的类型用已经有的类型代替使用,这里相当于用来代替结构体,习惯上把用声明的类型用大写字母表示。3.2文件和自定义函数间的关系文件名文件所对应的函数功能说明()主函数,定义结构体并储存学生信息,通过调用函数来实现相应功能。()显示菜单。(**n)输入学生信息并保存到结构体中。(**n)循环删除某个学生信息。(*n)循环查找某个学生信息。(*n)按成绩将学生信息从高到低排序。(*n)完成显示所有学生信息。()用户账号和密码验证。3.3函数之间调用关系()()()()()()()()() ()()() ()()()()()()()()图3函数之间的调用关系3.4函数设计3.4.1用户账号和密码验证A.函数原型:()B.功能:用户账号和用户密码验证。C.入口参数:无D.出口参数:i为返回值,返回1表示验证成功,0表示验证错误E.具体方法:具体方法是先定义一个整型变量和字符数组输入正确的用户账号和密码,然后使用格式输入函数接收用户输入的账号和密码,然后使用循环结构判断输入是否正确,允许输入三次,三次后输入信息仍然不对,则退出系统。3.4.2菜单函数A.函数原型:()B.功能:显示学生信息管理系统的6个功能选择。C.入口参数:无D.出口参数:无 E.具体方法:使用格式输出函数将菜单选项界面输出到屏幕上,包括系统名“欢迎使用学生信息管理系统”和主菜单。用户身份验证成功后,用户通过输入相应的菜单选项数字,选择希望进行的功能选项。3.4.3学生信息的输入A.函数原型:(**n)B.功能:输入系统学生人数与学生信息并保存在结构体数组中,然后将输入的学生信息带回函数。C.入口参数:*a(学生信息),n(学生实际人数)D.出口参数:无E.具体方法:具体方法是使用格式输入函数输入学生的实际人数,再依次输入学生的学号、姓名和成绩并保存到结构体数组中,在输入成绩时通过语句对输入成绩的有效性进行判断(0≤成绩≤100),若输入的成绩有效,则将该学生信息保存;否则,系统会提示成绩输入有误,重新输入。3.4.4学生信息的删除A.函数原型:(**n)B.功能:完成删除某个学生信息功能。C.入口参数:*a(学生信息),n(学生实际人数)D.出口参数:无E.具体方法:。具体方法是使用格式输入函数输入一个要删除的学生的学号,然后在保存学生信息的结构体数组中查找该项,若找到,则删除;否则,显示找不到。删除完成一个学生信息后,通过语句判断是否循环删除操作。完成删除学生信息操作后,在屏幕上显示系统中当前所有学生信息。3.4.5学生信息的查询A.函数原型:(*n)B.功能:完成查找某个学生信息功能。C.入口参数:*a(学生信息),n(学生实际人数)D.出口参数:无E.具体方法:具体方法是使用格式输入函数输入一个要查找的学生的学号,然后在保存学生信息的结构体数组中查找该项,若找到,则显示该项;否则,显示找不到。查询完成一个学生信息后,通过语句判断是否循环查询操作。3.4.6学生信息的排序A.函数原型:(*n)B.功能:完成将学生信息按成绩从高到低排序的功能。C.入口参数:*a(学生信息),n(学生实际人数)D.出口参数:无E.具体方法:具体方法是采用冒泡排序方法,使用语句做冒泡比较学生的成绩信息,使用交换将学生信息按成绩高低从高到低排序,最后使用格式输出函数有序的将学生信息输出到屏幕上。3.4.7学生信息的显示 A.函数原型:(*n)B.功能:完成显示所有学生的信息功能。C.入口参数:*a(学生信息),n(学生实际人数)D.出口参数:无E.具体方法:具体方法是使用格式输出函数,并使用循环结构依次将学生信息输出到屏幕上。4系统实现4.1系统文件结构图一一学生信息删除文件一一学生信息显示文件一一学生信息查找文件一一学生信息输入文件一一主函数文件一一主菜单文件一一学生成绩排序文件一一用户验证文件4.2系统开发和运行环境(1)系统开发环境硬件环境:及其兼容机软件环境:7,6.0(2)系统运行环境操作系统4.3源程序清单4.3.1头文件1<><>函数头文件<>80结构体数组可以储存80个学生信息{ ; [20]; ;};定义表示学生信息的结构体类型(**n);(**n);(*n);(*n);(*n);();();4.3.2函数文件"1"(){ a; 3; [20]; ("\t\t\t**************************\n\n"); ("\t\t\t*欢迎使用学生信息管理系统*\t\n\n");("\t\t\t**************************\n"); ("\n");(i){ ("\n\t\t\t请输入用户账号:"); ("");("\n\t\t\t请输入用户密码:"); (""); (154630118(,"")) ; {; (i) ("\n\t\t\t账号或密码输入错误!!!请重新输入\n"); ("\n"); }验证账号密码是否正确} i;}4.3.3函数文件"1"(){ ; [];(()) { (1) { (); (""); () { 1:();; 2:();();;删除后,显示当前信息 3:();();;查找后,显示当前信息 4:();; 5:();; 0:(0); } }}("\n你没有通过系统验证哦!!!\n");}4.3.4函数文件"1"(){ ("");清屏 ("\n\n\n\t\t\t欢迎使用学生信息管理系统\n\n\n"); ("\t\t\t*********************************\n"); ("\t\t\t*主菜单*\n"); ("\t\t\t*********************************\n\n\n"); ("\t\t1信息输入2信息删除\n\n");("\t\t3信息查询4信息排序\n\n");("\t\t5信息显示0退出系统\n\n");("\t\t请选择[1/2/3/4/5/0]:");}4.3.5函数文件"1"(**n){ *p; 1; (""); ("\n请输入学生人数(1-80):"); ("");输入学生人数 ("\n请输入学生信息:"); (<*) { ("\:"); ("">>>);依次输入学生学号、姓名、成绩 (><0>>100) { ("输入成绩无效,重新输入!\n"); ("">); }对输入的成绩进行数据有效性判断 } ("\n"); ("按任意键返回主菜单:"); ();接受回车键返回主菜单}4.3.6函数文件"1"(**n){ 0; ; *p; ;(""); { 0;标志,判断是否查找到要删除的信息,初始化定义为0 ("\n请输入要删除的学号:"); ("");输入要删除的学号 (0;i<*n;) (()->)按学号查找 { 1; (;j<*1;)删除学生信息 *()=*(1); (*n); ("删除成功!\n"); ; }() ("找不到要删除的信息!\n"); ("是否继续删除(1表示继续,0表示退出):");确认是否继续做删除操作 (""); }(1);循环做删除操作("按回车键返回主菜单:"); (); ("\n\n");}4.3.7函数文件"1"(*n){ 0; ; ; *p;(""); { 0; ("\n请输入要查询的学号:"); ("");输入查询学号 (;p<;) (>)按学号查找 { 1; ("已找到,是\\.1f\n">>>);输出查询到的学生信息 ; }() ("找不到!\n");("是否继续查询(1表示继续,0表示退出):");确认是否继续做查询操作 (""); }(1);循环做查询操作 ("按回车键返回主菜单:"); (); ("\n\n");} 4.3.8函数文件"1"(*n){ ; t;("");(0;i<1;)采用冒泡法按学生成绩排序 (0;j<1;) (a[j]<(a[1])) { [j]; a[j][1]; a[1]; } ("排序完成后输出结果为:\n");("\n"); (0;i<n;) ("\\.1f\n"[i][i][i]);输出排序完成后的学生信息("\n"); ("按回车键返回主菜单:"); ();}4.3.9函数文件"1"(*n){ *p;("学生信息显示:\n"); ("\n"); (;p<;) ("\\.1f\n">>>);输出学生信息("\n"); ("按回车键返回主菜单:"); ();} 5系统测试和结果账号和密码验证选项菜单界面学生信息输入学生信息删除学生信息查询学生信息排序学生信息显示任务二学生宿舍管理系统设计1题目描述1.1题目基本要求本系统将构造一个学生宿舍管理系统,包含诸如楼号,类别(男女),宿舍号,床位数,入住数,空位数等宿舍信息。系统能对这些基本信息进行管理,具有用户身份验证,宿舍信息添加、删除、输出和统计功能,系统能够将宿舍信息格式化保存(至文件)和格式化读出(从文件中)。其中统计功能为分别统计男女生宿舍数,统计入住的男女生人数,统计男女生床位空置数,计算并显示每栋楼每个宿舍还可入住的男女生人数。主要功能如下:(1)主模块功能:定义一个结构体数组来存储学生宿舍信息,然后通过调用以下几个函数来实现相应的功能。(2)身份验证功能:系统运行后先进行身份验证。输入用户账号和密码,只有账号密码正确,才能进入学生宿舍管理系统。(3)菜单模块功能:为各项操作功能设计菜单。用户身份验证后,先显示这个菜单,然后用户通过菜单选项选择希望进行的操作项目。(4)添加模块:完成宿舍信息的添加功能。具体方法是根据提示依次输入宿舍的楼号、类别、宿舍号、床位数和入住数,并保存到结构体数组中。其中每个宿舍的空床数是根据每个宿舍的床位数减去入住数计算得到的。添加一个宿舍信息后,询问是否继续添加操作。(5)删除模块:完成删除宿舍信息功能。具体方法是根据提示输入一个要删除的宿舍的楼号和宿舍号,然后在保存宿舍信息的文件中查找该项,若找到,则删除;否则,显示不存在此宿舍。删除一个宿舍信息后,询问是否继续删除操作。完成删除宿舍信息后,在屏幕上显示系统中剩余的宿舍信息。(6)输出模块:完成输出所有宿舍信息的功能。包括楼号,类别,宿舍号,床位数,入住数,空床数。(7)查询模块:完成查找某个宿舍信息功能。具体方法是根据提示输入一个要查询的宿舍的楼号和宿舍号,然后在保存宿舍信息的文件中查找该项,若找到,则显示该项;否则,显示不存在此宿舍。查询一个宿舍信息后,询问是否继续查询操作。(8)统计模块:具体方法是根据添加的宿舍类别信息分别统计男女生宿舍数,根据添加的宿舍入住数分别统计入住的男女生人数,根据系统计算的宿舍空床数信息分别统计男女生床位空置数,计算并显示每栋楼每个宿舍还可入住的男女生人数。(9)保存模块:能够将添加的宿舍信息保存至文件中。(10)查看模块:能够从文件中查看系统中已存在的宿舍信息。该学生宿舍管理系统需使用多文件结构实现,构建独立的头文件,包含系统所需要的预处理命令,各独立功能模块均要求采用构建独立文件实现。1.2输入/输出要求总体要求:界面友好,系统易用。(1)该学生宿舍管理系统运行后,先进行用户身份验证功能,身份验证成功后显示一个菜单,然后用户根据需要选择希望操作的相应功能。进入每个操作后,根据程序的提示输入相应的信息;(2)要求用户输入数据时,系统要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。(3)信息输出语义清晰,格式整齐、美观。2系统设计2.1系统功能结构设计图1为学生宿舍管理系统结构示意图,将学生信息管理系统分为7部分,分别为用户身份验证、菜单选项能、添加宿舍信息、删除宿舍信息、查询宿舍信息、输出宿舍信息、统计宿舍信息。(1)子模块:系统运行后先进行身份验证。输入用户账号和密码,只有账号密码正确,才能进入学生宿舍管理系统。(2)子模块:为各项操作功能设计菜单。用户登录验证后,显示这个菜单,然后用户通过菜单选项选择希望进行的操作项目。(3)子模块:完成宿舍信息的添加功能。具体方法是根据提示依次输入宿舍的楼号、类别、宿舍号、床位数和入住数,并保存到结结构体数组中。其中每个宿舍的空床数是根据每个宿舍的床位数减去入住数计算得到的。添加一个宿舍信息后,询问是否继续添加操作。(4)子模块:完成删除宿舍信息功能。具体方法是根据提示输入一个要删除的宿舍的楼号和宿舍号,然后在保存宿舍信息的文件中查找该项,若找到,则删除;否则,显示不存在此宿舍。删除一个宿舍信息后,询问是否继续删除操作。完成删除宿舍信息后,在屏幕上显示系统中剩余的宿舍信息。(5)子模块:完成查找某个宿舍信息功能。具体方法是根据提示输入一个要查询的宿舍的楼号和宿舍号,然后在保存宿舍信息的文件中查找该项,若找到,则显示该项;否则,显示不存在此宿舍。查询一个宿舍信息后,询问是否继续查询操作。(6)子模块:完成输出所有宿舍信息的功能。包括楼号,类别,宿舍号,床位数,入住数,空床数。(7)子模块:具体方法是根据添加的宿舍类别信息分别统计男女生宿舍数,根据添加的宿舍入住数分别统计入住的男女生人数,根据系统计算的宿舍空床数信息分别统计男女生床位空置数,计算并显示每栋楼每个宿舍还可入住的男女生人数。(8)子模块:能够将添加的宿舍信息保存至文件中。(9)子模块:能够从文件中查看系统中已存在的宿舍信息。添加宿舍信息用户身份验证添加宿舍信息用户身份验证保存信息至文件菜单选项功能保存信息至文件菜单选项功能学生宿舍管理系统添加宿舍信息添加宿舍信息删除宿舍信息出显示删除宿舍信息出显示删除宿舍信息输出宿舍信息显示输出宿舍信息显示查询宿舍信息查询宿舍信息统计男女生宿舍数显示输出宿舍信息统计男女生宿舍数显示输出宿舍信息统计男女生入住数男女生显示统计男女生入住数男女生显示统计宿舍信息显示统计男女生空床数显示统计男女生空床数显示统计男女生还可入住数统计男女生还可入住数显示从文件读取信息从文件读取信息显示图1系统结构示意图2.2系统流程设计图2为学生宿舍管理系统流程设计图,该系统为一个用户身份验证功能和6个菜单选项构成,分别为(1)添加宿舍信息,(2)删除宿舍信息,(3)查询宿舍信息,(4)输出宿舍信息,(5)统计宿舍信息,(0)退出管理系统。运行系统后,首先进行用户身份验证,只有用户输入的账号和密码都正确,才能进入学生宿舍管理系统。执行选项(1)添加宿舍信息操作时,能够将添加的宿舍信息保存至文件中。添加完成一个宿舍信息后,系统会询问是否继续添加操作。执行选项(2)删除宿舍信息操作时,能够从文件中查看系统中已存在的宿舍信息并删除。删除完成一个宿舍信息后,系统会询问是否继续删除操作。完成删除宿舍信息后,会在屏幕显示系统中剩余的宿舍信息。执行选项(3)查询宿舍信息操作时,查询完成一个学生宿舍后,系统会询问是否继续查询操作。执行选项(4)输出宿舍信息操作时,系统能够从文件中查看系统中存在的所有宿舍信息,并将这些宿舍信息输出到屏幕上。执行选项(5)统计宿舍信息操作时,系统能够从文件中查看系统中存在的所有宿舍信息,分别统计男女生宿舍数,统计入住的男女生人数,统计男女生床位空置数,统计每栋楼每个宿舍还可入住的男女生人数,并将这些宿舍信息输出到屏幕上。执行选项(0)退出管理系统操作时,系统会将系统中宿舍信息保存至文件中。运行系统运行系统用户身份验证用户身份验证从文件读取信息从文件读取信息进入菜单选项进入菜单选项2删除宿舍信息3查询宿舍信息5统计宿舍信息2删除宿舍信息3查询宿舍信息5统计宿舍信息4输出宿舍信息1添加宿舍信息0保存信息至文件输出宿舍信息保存信息至文件输出宿舍信息保存信息至文件退出管理系统退出管理系统选择0退出,选择1继续查询宿舍选择0退出,选择1继续删除宿舍选择0退出,选择1继续添加宿舍选择0退出,选择1继续查询宿舍选择0退出,选择1继续删除宿舍选择0退出,选择1继续添加宿舍图2系统流程设计图2.3数据设计该学生宿舍管理系统需定义如下宿舍结构体,包括: 楼号:整型数据 类别:10位长的字符串 宿舍号:整型数据 床位数:整型数据 入住数:整型数据 空床数:整型数据用户账号:20位长的字符串用户密码:10位长的字符串2.4界面设计界面设计指的是在用户体验和交互的指导下对系统进行的设计。界面设计的目标是使用户在完成自己的任务时与被设计对象之间的交流尽可能简单、高效。主要包括欢迎界面、主菜单和子菜单界面。欢迎界面在居中位置显示“学生宿舍管理系统”,下方提示输入账号(20位字符长)和密码(10位字符长)。账号或密码输入不正确,界面会提示“账号或密码输入错误!请重新输入......”,按任意键返回重新输入。主菜单界面显示系统的六项选项功能,系统提示“请选择[1/2/3/4/5/0]:”,用户根据需要选择希望操作的相应功能。子菜单界面是进入选项功能后的界面,界面会根据选项功能依次提示要输入的信息。例如,选择1宿舍信息添加操作,界面会依次提示输入要添加的楼号、宿舍类别()、宿舍号、床位数(4/6)和入住数。添加宿舍信息成功后,界面会提示“添加宿舍信息成功!”,然后提示“继续添加请输入1,否则输入0:”判断是否继续添加操作;最后提示“按任意键返回主菜单......”。2.5文件设计文件要求使用多文件结构实现,独立功能各占一个独立文件,相关联的功能在一个文件下。文件设计如下:一一主函数文件一一主菜单文件一一用户身份验证文件一一添加宿舍信息文件一一删除宿舍信息文件一一查询宿舍信息文件一一输出宿舍信息文件一一统计宿舍信息文件一一保存系统信息文件一一查看系统信息文件3详细设计3.1数据定义结构体是一种构造类型数据,可以将一组类型不同的数据组合在一起统一管理。对于学生宿舍管理系统,每个宿舍的信息包括楼号、类别、宿舍号、床位数,入住数和空床数等不同类型的数据。因此,可构造结构体来表示每个宿舍的信息,结构体的数据包括楼号、类别、宿舍号、床位数、入住数、空床数。该宿舍结构体定义如下:{ ;楼号 [10];类别(男生,女生) ;宿舍号 ;床位数 ;入住数 ;空床数};定义表示宿舍信息的结构体类型数组如下:[10];字符数组类别(男生,女生)[20];字符数组用户账号[10];字符数组用户密码全局变量如下:=0;当前宿舍数量总和[];所有的宿舍信息保存在这个结构体数组中指针如下:*;定义文件指针3.2文件和自定义函数间的关系文件名文件所对应的函数功能说明()主函数,定义结构体并储存宿舍信息,通过调用函数来实现相应功能。()显示菜单。()添加宿舍信息并保存到结构体中。()()循环删除某个宿舍信息,并输出系统中剩余的宿舍信息。()循环查询某个宿舍信息。()输出系统中所有的宿舍信息。()()()()统计男女生宿舍数,统计入住的男女生人数,统计男女生床位空置数,计算并显示每栋楼每个宿舍还可入住的男女生人数。()用户身份验证。()将添加的宿舍信息保存至文件中()从文件中查看系统中的宿舍信息3.3函数之间调用关系()()()()()()()()()()()()()()()()()()()()()()()()()()()()3.4函数设计3.4.1用户身份验证A.函数原型:()B.功能:用户身份验证。C.入口参数:无D.出口参数:无E.具体方法:具体方法是先声明两个字符数组用于存放正确的用户账号和密码,然后使用格式输入函数接收用户输入的账号和密码,然后使用语句判断用户输入的账号密码是否正确,使用语句做循环验证,只有身份验证正确才能进入系统。3.4.2菜单函数A.函数原型:()B.功能:显示学生宿舍管理系统的6个功能选择。C.入口参数:无D.出口参数:无 E.具体方法:使用格式输出函数将系统名“学生宿舍管理系统”和主菜单输出到屏幕上。用户身份验证成功后,用户通过输入相应的菜单选项数字,选择希望进行的功能选项。3.4.3宿舍信息的添加A.函数原型:()B.功能:完成宿舍信息的添加功能。C.入口参数:无D.出口参数:无E.具体方法:具体方法是根据提示依次输入宿舍的楼号、类别、宿舍号、床位数和入住数,并保存到结构体数组中。其中每个宿舍的空床数是根据每个宿舍的床位数减去入住数计算得到的。添加完成一个宿舍信息后,询问是否继续添加操作。3.4.4宿舍信息的删除A.函数原型:()B.功能:完成删除某个宿舍信息功能。C.入口参数:无D.出口参数:无E.具体方法:。具体方法是根据提示使用格式输入函数接收一个要删除的宿舍的楼号和宿舍号,然后在保存宿舍信息的文件中查找该项,若找到,则删除;否则,显示找不到。删除完成一个宿舍信息后,通过语句判断是否循环删除操作。完成删除宿舍信息后,在屏幕上输出系统中当前所有的宿舍信息。3.4.5宿舍信息的查询A.函数原型:()B.功能:完成查询某个宿舍信息功能。C.入口参数:无D.出口参数:无E.具体方法:具体方法是使用格式输入函数接收一个要查找的宿舍的楼号和宿舍号,然后在保存宿舍信息的文件中查找该项,若找到,则显示该项;否则,显示找不到。查询完成一个宿舍信息后,通过语句判断是否循环查询操作。3.4.6宿舍信息的输出A.函数原型:()B.功能:完成输出系统中当前所有宿舍信息的功能。包括楼号,类别,宿舍号,床位数,入住数,空床数。C.入口参数:无D.出口参数:无E.具体方法:具体方法是使用语句根据宿舍数总量变量进行判断,若宿舍数总量为0,则输出系统中当前没有宿舍信息;若宿舍数总量不为0,则按宿舍的楼号、类别、宿舍号、床位数、入住数和空床数有序的输出系统中当前所有宿舍信息。3.4.7宿舍信息的统计 A.函数原型:()B.功能:完成统计所有宿舍信息的功能。C.入口参数:无D.出口参数:无E.具体方法:具体方法是调用函数()分别统计男女生宿舍数,调用函数()分别统计入住的男女生人数,调用函数()分别统计男女生床位空置数,调用函数()统计每栋楼每个宿舍还可入住的男女生人数。3.4.8统计男女生宿舍数A.函数原型:()B.功能:分别统计男女生宿舍数。C.入口参数:无D.出口参数:无E.具体方法:具体方法是使用语句根据添加的宿舍类别信息进行判断,若输入,则男生宿舍数加1,否则女生宿舍书加1。3.4.9统计入住的男女生人数A.函数原型:()B.功能:分别统计入住的男女生人数。C.入口参数:无D.出口参数:无 E.具体方法:具体方法是使用语句根据添加的宿舍类别信息进行判断,若输入,则入住的男生人数加1,否则入住的女生人数加1。3.4.10统计男女生床位空置数A.函数原型:()B.功能:分别统计男女生床位空置数。C.入口参数:无D.出口参数:无E.具体方法:具体方法是使用语句根据添加的宿舍类别信息进行判断,若输入,则男生床位空置数加1,否则女生床位空置数加1。3.4.11统计每栋楼每个宿舍还可入住的男女生人数A.函数原型:()B.功能:完成统计每栋楼每个宿舍还可入住的男女生人数的功能。C.入口参数:无D.出口参数:无E.具体方法:具体方法是使用语句根据添加的宿舍类别信息进行判断,若输入,则男生每个宿舍还可入住的人数等于男生床位空置数,反之女生每个宿舍还可入住的人数等于女生床位空置数。3.4.12宿舍信息的保存A.函数原型:()B.功能:将添加的宿舍信息保存至文件中。C.入口参数:无D.出口参数:无E.具体方法:具体方法是先使用在当前目录下以只写方式打开文件文件,然后使用将添加的宿舍信息保存至文件中。3.4.13宿舍信息的查看A.函数原型:()B.功能:从文件中查看系统中的宿舍信息。C.入口参数:无D.出口参数:无E.具体方法:具体方法是先定义一个文件指针,然后使用在当前目录下以只读方式打开文件文件,并使文件指针指向文件。从指向的文件中按相应的格式读入数据,赋给结构体数组中的变量。4系统实现4.1系统开发和运行环境(1)系统开发环境硬件环境:及其兼容机软件环境:7,6.0(2)系统运行环境操作系统4.2系统构架图3为系统文件结构图,首先建立一个工程命名为2,然后分别建立10个源文件,分别命名为主函数,主菜单,用户身份验证,添加宿舍信息,删除宿舍信息,查询宿舍信息,输出宿舍信息,统计宿舍信息,保存宿舍信息,查看宿舍信息。一一主函数文件一一主菜单文件一一用户身份验证文件一一添加宿舍信息文件一一删除宿舍信息文件一一查询宿舍信息文件一一输出宿舍信息文件一一统计宿舍信息文件一一保存系统信息文件一一查看系统信息文件图3系统文件结构图4.3源程序清单4.3.1头文件2<><><>100系统中能容纳的最大宿舍数量为100{ ;楼号 [10];类别(男生,女生) ;宿舍号 ;床位数 ;入住数 ;空床数};定义表示宿舍信息的结构体类型();用户身份验证();选项菜单模块();添加宿舍信息();删除宿舍信息();输出所有宿舍信息();查询宿舍信息();统计男女生宿舍数();统计入住的男女生人数();统计男女生床位空置数();统计每栋楼每个宿舍还可入住男女生数();写入();从中查看=0;声明当前宿舍数量总和[];所有的宿舍信息保存在这个结构体数组中4.3.2函数文件"2"(){ [20]="154630118"; [10]="";声明两个字符数组,用户身份密码 1[20]; 2[10]; (1) {("\n\n\t\t***********************************************\n"); ("\t\t\t\t学生宿舍管理系统\n\n");("\t\t\t\t\t李旭溢2016.6.26\n"); ("\t\t***********************************************\n\n"); ("\t\t请输入账号[20]:"); ("",1); ("\n\t\t请输入密码[10]:"); ("",2);输入用户输入的账号密码 ((1)0(2)0) { (""); 0; }判断用户输入的密码账号是否正确 { ("\n\n\t\t账号或密码输入错误!请重新输入......\n");("\n\t\t按任意键继续身份验证....."); (); (""); }进行这一步说明账号或密码错误,清屏后重新输入 }}4.3.3函数文件"2"()进来先身份验证{=; (); (); (1) { ();("",); () { 1:();; 2:();; 3:();; 4:();; 5:(); ("\n"); (); ("\n"); (); ("\n"); (); ("\n");; 0:(); (0); :("\t请输入0-5之间的数字");; } ("\n\t按任意键返回主菜单......"); ();接收任意键,按任意键继续......("");清屏 } ;}4.3.4函数文件"2"(){ ("\n\n\t\t\t欢迎使用学生宿舍管理系统\n\n"); ("\t\t*****************************************\n"); ("\t\t*\t主菜单\t\t*\n"); ("\t\t*****************************************\n"); ("\t\t1.添加宿舍信息\t2.删除宿舍信息\n\n"); ("\t\t3.查询宿舍信息\t4.显示宿舍信息\n\n"); ("\t\t5.统计宿舍信息\t0.退出管理系统\n\n"); ("\t\t请选择[1/2/3/4/5/0]:");}4.3.5函数文件"2"(){=1; ()语句用于重复添加操作 { ("\n\t请输入楼号:"); ("",[]);输入宿舍楼号 ("\t请输入类别():"); ("",[]);输入宿舍类别 ("\t请输入宿舍号:"); ("",[]);输入宿舍号 ("\t请输入床位数(4/6):"); ("",[]);输入宿舍的床位数 ("\t请输入入住数:"); ("",[]);输入宿舍的入住数 [][][];根据宿舍床位数减去入住数计算空床数 ;每添加成功一个宿舍信息时,把记录当前共有几个宿舍的变量+1 ("\t添加宿舍信息成功!\n"); ("\n\t继续添加请输入1,否则输入0:");判断是否继续添加操作 (""); }}4.3.6函数文件"2"(){ ; ; ; ;=1; ()语句用于重复删除操作 { ("\n\t请输入要删除的宿舍楼号:"); ("",);输入要删除的宿舍楼号 ("\n\t请输入要删除的寝室号:"); ("",);输入要删除的宿舍号(0;i<;) { ([i][i]) { ;每删除成功一个宿舍信息时,把记录当前共有几个宿舍的变量-1 (;j<;) { [j][1]; }删除时,从删除的宿舍开始,之后的每个宿舍都移动到前一个宿舍的位置 ("\n\t成功删除此宿舍信息!\n");; } } ();删除成功后,输出系统中剩余的宿舍信息 (0) { ("\n\t不存在此宿舍!\n"); }执行到这一步,说明没有这个宿舍("\n\t继续删除请输入1,否则输入0:"); ("");判断是否继续删除操作 }}4.3.7函数文件"2"(){ ; ; ; ; 1; ()语句用于重复查询操作 { ("\n\t请输入要搜索的宿舍楼号:"); ("",);输入要查询的宿舍楼号 ("\n\t请输入要搜索的宿舍号:"); ("",);输入要查询的宿舍号 (0;i<;) { ([i][i])按楼号和宿舍号查找 { ("\t此宿舍信息为:\n"); ("\t楼号:\n",[i]); ("\t类别:\n",[i]); ("\t宿舍号:\n",[i]); ("\t床位数:\n",[i]); ("\t入住数:\n",[i]); ("\t空床数:\n",[i]); ; } } () { ("\t不存在此宿舍!\n"); }执行到这一步,说明没有这个宿舍 ("\n\t继续查询请输入1,否则输入0:"); ("");判断是否继续删除操作 }}4.3.8函数文件"2"(){ ; (0) { ("\n\t删除后系统中没有宿舍信息!\n"); ; }根据记录当前共有几个宿舍的变量判断,若为0,则系统中没有宿舍信息 (0;i<;) { ("\n\t宿舍信息:\n"); ("\t楼号:\n",[i]); ("\t类别:\n",[i]); ("\t宿舍号:\n",[i]); ("\t床位数:\n",[i]); ("\t入住数:\n",[i]); ("\t空床数:\n",[i]); ("\n"); }依次输出宿舍的楼号、类别、宿舍号、床位数、入住数和空床数等信息}4.3.9函数文件"2"()统计男女生宿舍数{ ; ; 0; 0; (0;i<;) { (([i],"")0)根据宿舍类别判断,若输入,则男生宿舍数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论