课程设计说明书学号:班级:姓名:设计题目:学生信息管理系统设计地点:设计时间:至成绩评定:1、工作量:A(),B(),C(),D(),F()2、难易度:A(),B(),C(),D(),F()3、答辩情况:A(),B(),C(),D(),F()4、报告规范度:A(),B(),C(),D(),F()5、学习态度:A(),B(),C(),D(),F()总评成绩:___________________________指导教师:___________________________一、设计题目与要求1、设计目的:编写一个学生信息管理系统,实现对学生信息的基本管理。把所学数据结构知识应用到实际软件开发中去。设计内容:本系统应完成一下几方面的功能:(1)增加一个学生的信息(需输入要增加学生的所有信息);(2)统计本班学生总人数及男女生人数。(3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。(4)按学号对所有学生信息排序,并输出结果;(5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。2、设计要求:(1)用菜单调用(2)作为一个完整的系统,应具有友好的界面和较强的容错能力(3)上机能正常运行,并写出课程设计报告二、概要设计1.功能需求分析学生信息管理系统设计学生信息包括:学号,姓名,性别,出生年月,电话使之提供以下功能:1.系统以菜单方式工作2.插入新的学生信息3.删除某学号的学生信息4.查找某学号的学生信息5.对学生信息排序6.统计学生人数7.输出学生信息2总体设计功能结构图设计依据程序的功能需求,描述该系统功能的结构图如下:图1系统功能结构图模块简介依据程序的功能模块的划分,各模块定义如下:(1)增加学生信息模块名:voidaddstu(LinkList*&L)模块描述:通过此模块可以在学生链表中添加新的学生信息。并且将学生信息写入文件。(2)删除学生信息模块名:voiddeletestu(LinkList*L)模块描述:根据文字提示,输入要删除学生的学号,可从链表中删除该学生的全部信息。(3)修改学生信息模块名:voidCount(structstucode*r);模块描述:分别统计男生、女生人数以及统计学生总人数。(4)查找学生信息模块名:voidfindstu(LinkList*L)1增加学生信息4查找学生信息2删除学生信息6浏览全部学生信息序3修改学生信息7统计学生信息0退出学生信息管理系统5按照学生学号排序模块描述:根据文字提示,输入要查找学生的学号可显示该学生的全部信息。没有与之匹配的学号则弹出无此学生信息。(5)按照学生的学号排序模块名:voidpaixu(LinkList*L)模块描述:根据学生的学号对学生进行排序(6)浏览全部学生信息模块名:voiddisplay(LinkList*&L)模块描述:输出所有学生的信息。(7)统计学生信息模块名:voidtongji(LinkList*L)模块描述:统计所有学生的人数,男生的人数,女生的人数。三、详细设计1数据结构依据给定学生信息和数据格式,数组用结构体实现,结构体层次结构:typedefstructStudent{charname[100];//姓名charnum[100];//学号charsex;//性别(w代表女生m代表男生)longintbri;//生日longinttel;//电话}stu;typedefstructLNode{studata;structLNode*next;}LinkList;2算法说明(1)、主函数的算法设计:清屏、显示子菜单及运用选择操作(运用swith语句),调用各个子函数,最后退出程序(2)各个子函数的算法设计1)创建链表,增加学生信息申请空间L=(LinkList*)malloc(sizeof(LinkList));2)删除学生信息3)修改学生信息开始输入学生学号nu学生是否存在删除学生全部信息结束否是还没有该生信息开始输入学生学号nu学生是否存在输入学生全部信息结束是否4)查找学生信息首先输入需要查找的学生信息的学号或姓名,如果该生存在则输出该生的全部信息,若不存在输出“该生不存在”。开始输入学生学号nu学生是否存在结束否是还没有该生信息选择修改内容修改学生姓名修改学生生日修改学生电话生日姓名电话5)按照学生的学号进行排序首先判断链表中是否存有学生的信息,如果有则进行排序,如果没有则输出“还没有学生信息,请增加学生信息”。输入查询学号开始学号姓名是否存在显示查询结果结束学号学号或姓名找存在不存在显示“该生不存在”输入查询姓名姓名6)浏览全部的学生信息输出链表中所有的学生信息。7)统计学生信息设置一个循环,三个变量,一个记总人数,一个记男生人数,一个记女生人数,输出三个变量的值。四、运行结果和调试分析程序运行结果如图所示。输入学生信息删除学生信息修改学生信息查询学生信息排序后的学生信息统计学生信息五、总结体会做了这个课设之后感觉自己对数据结构和c语言还有word的理解更加深刻,复习和巩固了链表的知识还有对c语言中循环的认识,最后这个word更让我对编辑文本的理解更加深刻,谢谢老师。