数据结构课程设计模板.doc
文本预览下载声明
一、设计题目与要求
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统
显示全部