文档详情

数据结构课程设计模板.doc

发布:2017-02-25约2.19千字共8页下载文档
文本预览下载声明
一、设计题目与要求 1、设计目的: 编写一个学生信息管理系统,实现对学生信息的基本管理。把所学数据结构知识应用到实际软件开发中去。 设计内容: 本系统应完成一下几方面的功能: (1)增加一个学生的信息(需输入要增加学生的所有信息); (2)统计本班学生总人数及男女生人数。 (3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。 (4)按学号对所有学生信息排序,并输出结果; (5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。 2、设计要求: (1)用菜单调用 (2)作为一个完整的系统,应具有友好的界面和较强的容错能力 (3)上机能正常运行,并写出课程设计报告 二、概要设计 1. 功能需求分析 学生信息管理系统设计 学生信息包括:学号,姓名,性别,出生年月,电话 使之提供以下功能: 1.系统以菜单方式工作 2.插入新的学生信息删除某学号的学生信息查找某学号的学生信息2 总体设计 学生信void createlist(struct stucode **r); 模块描述:通过此模块可以在学生链表中添加新的学生信息。并且将学生信息写入文件。添加有误或者添加学号重复则弹出相应信息提示。 (2)查找某学号的学生信息void search1(struct stucode *r); 模块描述:根据文字提示,输入要查找学生的学号可显示该学生的全部信息。没有与之匹配的学号则弹出无此学生信息。 (3)统计学生人数 模块名:void Count(struct stucode *r); 模块描述:分别统计男生、女生人数以及统计学生总人数。 (4)删除某学号的学生信息void del(struct stucode **r); 模块描述:根据文字提示,输入要删除学生的学号,可从链表中删除该学生的全部信息。在删除前弹出是否确定删除信息。 (5)插入新的学生信息 模块名:void insert(struct stucode **r); 模块描述:插入新的学生信息。 (6)对学生信息排序 模块名:void sort(struct stucode **r); 模块描述:可根据姓名或者学号对学生信息进行排序。 (7)输出学生信息 模块名:void out(struct stucode *r); 模块描述:显示所有学生的信息。 三、 详细设计 1数据结构 依据给定学生信息和数据格式,数组用结构体实现,结构体层次结构: struct stud { long int num; name[20]; sex[2]; birthday[12]; tel[12]; }; /*定义数据结构和链表*/ struct stud { long num; char name[20]; char sex[2]; char birthday[12]; char tel[12]; }; typedef struct stucode { struct stud student ; struct stucode *next; }L; 2 算法说明 (1)、主函数的算法设计: 清屏、显示子菜单及运用选择操作(运用swith语句),调用各个子函数,最后退出程序 系统的程序流程图 (2)各个子函数的算法设计 1)创建链表,添加并显示学生信息 申请空间p=(L *)malloc(sizeof(L)); 学生信息的输入及显示: 该子函数的程序流程图如图3所示。 图3 模块1程序流程图 2)按学号查找学生信息 图4 模块2程序流程图 3)学生人数的统计 首先判断链表是否为空,不为空,则开始统计。 程序流程图。 4)学生信息的删除 首先查询要删除的学生信息的学号,如果存在删除该学生,如果不存在给予相应的提示。 程序流程图。 5)插入新的学生信息 程序流程图。 6)学生信息的排序 程序流程图。 7)输出学生信息。学生信息的显示。 程序流程图。 四、运行结果和调试分析 1.程序运行结果如图5所示。 图5 主界面 2.在主菜单下输入选项“1”,则出现如图6所示模块1界面。测试实例如图。 图6 模块1界面 完成学生信息输入后,程序显示出所输入的全部信息。结束后输入任意键,程序回到主菜单。 3.在主菜单下输入2,则界面如图7。输入学号2则显示学号为2的学生信息。 图7 模块2 4.其他模块界面略。 五 、总结体会 总结体会略。 5 插入新的学生信息 0退出 7输出学生信息 6 对学生信息排序 2 按学号查找学生信息 4删除学生信息 3统
显示全部
相似文档