C语言课程设计说明书

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1面向过程程序设计(C语言)课程设计设计说明书学生宿舍管理系统起止日期:2010年01月10日至2010年01月17日学生姓名黄庆清班级计本091班学号09408100103成绩指导教师(签字)计算机与通信学院2010年01月20日2学生宿舍管理系统一、程序设计要求综合运用C语言程序设计课程的主要知识,设计一个用于学生宿舍管理的程序,设计指标由程序的功能要求和技术要求具体说明。1.功能要求学生宿舍管理程序至少具有以下功能:1)显示功能:能显示宿舍学生的全部记录,在显示时能提供下列5种显示方式:①按记录创建(学生入住)的顺序显示。②按姓名升序显示。将字符串(姓名)从小到大排列后输出。③按学号升序显示。将字符串(学号)从小到大排列后输出。④按房号升序显示。将字符串(房号)从小到大排列后输出。⑤班按级号升序显示。将字符串(班级号)从小到大排列后输出。注:“显示顺序”栏的信息不属于记录的信息,它是连续的自然数,若记录个数不变,则“显示顺序”栏的信息不变。2)修改功能:能修改学生记录除创建顺序以外的信息。让用户输入需要修改的旧记录,再检查该记录是否存在,若存在则用户可对记录进行修改。3)查询功能:能查询宿舍学生的记录。提供以下5种查询方式。①按姓名查询。用户输入学生姓名,系统则检索记录,找到含有该姓名的全部记录,显示到屏幕上,并计算、显示找到的记录个数。若找不到,则提醒用户:该记录不存在。②按学号查询。原理同上所述。③按房号查询。原理同上所述。④按班级号查询。原理同上所述。⑤综合查询。用户输入学生的姓名、学号、房号和班级号,系统自动检索,若找到和和用户输入的信息完全一致的记录,则显示到屏幕上。该记录若存在,则是唯一的,这是由入住(新建)功能决定的。4)删除功能:能以某些方式删除宿舍学生的信息。删除时以记录为单位,既能一次删除一条记录,也能一次删除多条记录。该程序提供以下7种删除方式:①按姓名删除。用户输入学生姓名,系统将含有姓名的所有记录全部删除。②按学号删除。原理同上所述。③按班级号删除。原理同上所述。④按房号删除。原理同上所述。⑤按创建(入住)顺序删除。用户通过显示功能可获取全部记录对应的创建顺序(创建顺序是升序的连续的自然数)。创建顺序是唯一的。⑥综合删除。用户输入学生的姓名、班级号、学号和房号,系统检3索全部记录,若找到和用户输入的信息吻合的记录,则将该记录删除。若该记录存在,则是唯一的,这是由入住(新建)功能决定的。⑦全部删除。注:某个或某几个记录被删除后,系统自动调整创建顺序,使创建顺序重新恢复为连续自然数(1,2,3,……)。这种调整和学生的入住顺序是一致的。5)新建(入住)功能:能够曾加学生的记录。在新的学生住到宿舍时,对学生的信息进行登记注册。6)交换房号:能够交换记录中的任意两个学生的房号,其他信息保持不变。7)退房功能:这项功能相当于删除学生的记录。用户输入学生的姓名、学号、房号和班级号,若该记录存在即退房。8)保存功能:没有独立的函数实现此功能,上面的几个功能,例如,新建(入住)、修改功能、交换房号功能、删除功能、退房功能,包含保存功能。9)退出系统:能很很方便地退出系统。注:以上1~7种功能是可以连续实现的,例如新建(入住)功能可以实现连续建立记录直到住房满为止,交换房号功能可以连续进行无数次任意两个学生的房号交换。2.技术要求一、每个学生记录包含五项信息:房号、学号、姓名、班级号和创建顺序。二、学生记录信息以磁盘文件的形式存储。三、对于学生宿舍管理系统中新建记录、显示、查询、修改、删除、退房、交换房号等功能,要求编写独立的函数或主控函数予以实现,其所属的各项功能尽量由独立的函数实现。四、以菜单方式实现功能选择控制。五、本通学生宿舍管理系统能够实现16条记录的管理(当然可以扩充记录的数量的上限,如将16条记录扩充为100条)。二、程序的功能设计设计学生宿舍管理系统的功能如下图所示:4修改功能显示功能按姓班级号升序显示按姓名升序显示按学号升序显示按房号升序显示查询功能按姓名查询综合查询按班级号查询按房号查询按学号查询学生宿舍管理系统功能框图按创建顺序显示删除功能按姓名删除按班级删除询按房号删除按学号删除按创建顺序删除综合删除全部删除退房功能交换房号功能入住(新建)功能5各项功能的具体说明如下:1)显示功能:①按创建顺序显示。创建顺序是连续的自然数,表示记录的创建的先后顺序,也是记录存储在文件中的顺序。②按姓名升序显示。以字符串(姓名)大小为排序标准,将记录升序排列,然后输出到屏幕。③按学号升序显示。以字符串(学号)大小为排序标准,将记录升序排列,然后输出到屏幕。④按房号升序显示。以字符串(房号)大小为排序标准,将记录升序排列,然后输出到屏幕。⑤按班级号升序显示。以字符串(班级号)大小为排序标准,将记录升序排列,然后输出到屏幕。注:在显示之前,系统自动获取文件中的记录个数,如果记录个数为零,那么提示用户记录为空,并返回主菜单。每完成一次显示操作,系统就自动提供一个菜单,用户可以选择继续进行显示操作(重新选择显示方式)、后退到主菜单或者退出系统。2)修改功能:要求输入需要修改的记录中的姓名、学号、房号和班级号,然后输入修改后的姓名、学号、房号和班级号。注:在用户进入修改状态之前,系统自动获取文件中的记录个数,如果记录个数为零,那么提示用户记录为空,并返回主菜单。3)查询功能:①按姓名查询。用户输入学生姓名,系统对所有记录进行搜索,找到包含该姓名的全部记录,然后输出到屏幕。②按学号查询。用户输入学生学号,系统对所有记录进行搜索,找到包含该学号的全部记录,然后输出到屏幕。③按房号查询。用户输入学生房号,系统对所有记录进行搜索,找到包含该房号的全部记录,然后输出到屏幕。④按班级号查询。用户输入学生班级号,系统对所有记录进行搜索,找到包含该班级号的全部记录,然后输出到屏幕。⑤综合查询。用户输入学生姓名、学号、房号和班级号,系统对所有记录进行搜索,找到和输入信息完全吻合的记录,然后输出到屏幕。注:在用户进入查询状态之前,系统自动获取文件中的记录个数,如果记录个数为零,那么提示用户记录为空,并返回主菜单。在以上的五种查询方式中,都会计算找到的记录个数,然后在屏幕上显示。每完成一次查询,系统自动提供一个菜单,用户可以继续查询、返回主菜单或者退出系统。系统在理论上可以连续完成无限次查询。6如果找不到符合条件的记录,系统就会给出相应的提示。4)删除功能:①按姓名删除。用户输入学生姓名,系统检索文件中的全部记录,找到包含该信息的全部记录。系统以询问的方式获得用户的确认命令,用户可以选择删除或取消删除。②按学号删除。原理同上所述。③按房号号删除。原理同上所述。④按班级号删除。原理同上所述。⑤按创建顺序删除。原理同上所述。不过,该删除方式与上述4种删除方式有所不同,由于每个记录的创建顺序是各不相同的,所以,只会删除一个记录(前提是符合条件的记录存在)。⑥综合删除。要求用户输入学生的姓名、学号、房号和班级号,系统检索文件中的记录,找到与用户输入信息完全一致的记录(若存在,则只有一个)。系统以询问的方式获取用户的确认命令,以确定是否删除记录。⑦全部删除。将保存在文件中的记录全部删除。注:在用户进入删除状态之前,系统自动获取文件中的记录个数,如果记录个数为零,那么提示用户记录为空,并返回主菜单。某个或某几个记录被删除后,系统自动调整创建顺序,使创建顺序重新恢复为连续自然数(1,2,3,……)。这种调整和学生的入住顺序是一致的。该系统提供连续进行删除操作的功能,直至将全部记录删除完毕。所有的删除均为物理删除,即将指定的记录从文件中彻底清除。5)新建功能:i.在进入新建记录之前,系统自动获取文件中的记录个数,如果该数量已达到纪录个数的上限,则给出提示——住房已满,并自动返回主菜单。ii.在建立一个记录过程中,系统会逐项提示用户输入学生房号、学号、姓名和班级号。iii.用户输入完了学生信息后系统会自动检索文件中的记录,如果文件中已经保存着与用户输入的信息完全吻合的记录,则不建立新的记录,并提示用户该记录已存在,然后返回主菜单。iv.如果该记录不存在,那么给出选择——取消或保存以供用户选择。v.每完成一次新建记录,系统就以询问的方式让用户决定是否新建下一个记录。这样用户可以新建一个记录,也可以连续建立多个记录,直至记录个数达到上限。6)交换房号:i.在用户进入交换房号状态之前,系统自动获取文件中的记录个数,如果记录个数小于2,那么向用户给出记录个数,并返回主菜单。ii.系统逐项提示用户输入学生甲的房号、学号、姓名和班级号,然后自动检索文件中的记录,如果不存在与用户输入信息完全吻合的记录,那么就给出询问。用户可以选择从新输入学生甲的信息,也可以选择退出交换房号的功能,即返回主菜单。7iii.如果与用户输入的学生甲的信息完全吻合的记录存在,那么系统逐项提示用户输入学生乙的房号、学号、姓名和班级号。系统自动检索文件中的记录,如果不存在与用户输入信息完全吻合的记录,那么就给出询问。用户可以选择从新输入学生乙的信息,也可以选择退出交换房号的功能,即返回主菜单。iv.如果与用户输入的学生乙的信息完全吻合的记录存在,那么系统提示用户是否确实要交换房号。v.每完成一次交换房号的操作后,系统以询问的方式决定是否进行下面两个学生的房号。因此,系统在理论上可以完成无数次交换房号的操作。7)退房功能:i.在用户进入退房房号状态之前,系统自动获取文件中的记录个数,如果记录个数为零,那么提示用户记录为空,并返回主菜单。ii.如果记录不为空,那么系统逐项提示用户输入学生的姓名、学号、房号和班级号。接着系统检索文件中的记录,若不存在与用户输入的信息完全吻合的记录,则提示用户该记录不存在,并询问是否对下一个学生进行退房操作。若用户选择否,则返回主菜单。iii.若与用户输入的信息完全吻合的记录存在,系统会提示是否退房。iv.系统每完成一次退房操作就并询问用户是否对下一个学生进行退房操作。因此,可联系完成多次退房操作直至记录个数为零。若用户选择否,则返回主菜单。v.某个或某几个记录被删除后,系统自动调整创建顺序,使创建顺序重新恢复为连续自然数(1,2,3,……)。这种调整和学生的入住顺序是一致的。三、程序的数据设计1)每个学生记录由多个不同的数据项构成,是一个结构体数据,因此需要定义结构体数据类型。每个记录包括的数据项目为:房号、学号、姓名、班级号和创建顺序等。据此定义如下结构体数据类型:structstudent{/*学生信息结构定义*/charroom_no[N],student_ID[N],name[N],_class[N];unsignedlongcreation;}stu[S];2)使用文件s.db存储数据类型为structstudent的学生记录数据。四、程序的函数设计1.函数功能描述1)main()函数学生宿舍管理系统主函数,显示问候语,调用主菜单函数。2)main_menu()函数8函数原型为voidmain_menu(),是实现显示主菜单功能的函数,它通过调研各个功能函数实现功能的空制。3)display()函数函数原型为voiddisplay(),是显示学生记录信息的主控函数,它实现显示功能的子菜单显示,并进行不同显示功能的函数调用,以实现程序的显示功能。4)search()函数函数原型为voidsearch(),是查询学生记录的主控函数,它显示查询功能的子菜单,并根据查询要求,进行相应的函数调用,以实现查询的查询功能。5)modify()函数函数原型为voidmodify(),修改学生记录信息的函数,它实现修改学生记录的功能,具有保存修改之后的数据的功能。6)delect()函数函数原型为voiddelect(),是删除学生记录的主控函数,它显示删除功能的子菜单,并根据删除要求,并进行相应的函数调用,以实现删除学生记录的功能。7)check_in函数函数原型为voidcheck_in,实现新建学生记录的函数,该函数还具有保存学生记录的功能。8)exch

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功