一、设计题目与要求。
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 初始化时每个方格都是关闭的,一个...