数据结构课程设计

发布 2022-10-05 03:11:28 阅读 7386

一、设计题目与要求。

1、设计目的:

编写一个学生信息管理系统,实现对学生信息的基本管理。把所学数据结构知识应用到实际软件开发中去。

设计内容:本系统应完成一下几方面的功能:

1)增加一个学生的信息(需输入要增加学生的所有信息);

2)统计本班学生总人数及男女生人数。

3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。

4)按学号对所有学生信息排序,并输出结果;

5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。

2、设计要求:

1)用菜单调用。

2)作为一个完整的系统,应具有友好的界面和较强的容错能力。

3)上机能正常运行,并写出课程设计报告。

二、概要设计。

1. 功能需求分析。

学生信息管理系统设计。

学生信息包括:学号,姓名,性别,出生年月,**。

使之提供以下功能:

1.系统以菜单方式工作。

2.插入新的学生信息。

3.删除某学号的学生信息。

4.查找某学号的学生信息。

5.对学生信息排序。

6.统计学生人数。

7.输出学生信息。

2 总体设计。

功能结构图设计。

依据程序的功能需求,描述该系统功能的结构图如下:

图1 系统功能结构图。

模块简介。依据程序的功能模块的划分,各模块定义如下:

1)输入全部学生信息。

模块名: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.其他模块界面略。

五 、总结体会。

总结体会略。

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...

数据结构课程设计

数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...

数据结构课程设计

班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...