实验
报告
一、 问题陈述及其需求分析
(一) 问题陈述
学生信息管理系统是对学生信息的基本管理,其中包括以下及模块: (1)增加一个学生的信息(需输入要增加学生的所有信息); (2)统计本班学生总人数及男女生人数。 (3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。 (4)按学号对所有学生信息排序,并输出结果; (5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。 ( 二 ) 功能需求分析 学生信息管理系统设计 学生信息包括:学号,姓名,性别,出生年月,电话 使之提供以下功能: 1、 系统以菜单方式工作 2、建立链表并显示 3、插入新的学生信息 4、删除某学号的学生信息 5、查找某学号的学生信息 6、对学生信息排序 7、统计学生人数 8、输出学生信息 二 总体设计
(一)模块
依据程序的数据结构,描述该程序的层次结构,如下图:
main() 菜单函数 1 建立链表并显示 2添加学生信息 3删除学生信息息 4 按学号查找学生信5 对学生信息排序 6统计学生人数 7输出学员信息 8 学生信息写入文件 0退出 1、建立链表并显示 void createlist(struct stucode **r); 2、插入新的学生信息 void insert(struct stucode **r); 3、删除某学号的学生信息 void del(struct stucode **r); 4、查找某学号的学生信息 void search1(struct stucode *r); 5、对学生信息排序
void sort(struct stucode **r); 6、统计学生人数
void search2(struct stucode *r); 7、输出学生信息
void out(struct stucode *r);
(二)程序总体框架
模块层次结构,只确定了模块之间的关系和函数原型,不是程序的执行步骤。程序总体框架是该程序的总体流程图。改程序不是顺序连续地执行全部功能,而是在某一时刻有选择地执行一种或多种功能。因此选用菜单方式是较佳的方案,程序总体框架如下图:
main() 菜单 1 输入 2 输出 3 排序 4 添加 5 删除 6、统计 7 查询 8 退出
菜单代码 1 建立链表并显示 2添加学生信息 3删除学生信息息 4 按学号查找学生5 对学生信息排序 6统计学生人数 7输出学员信息 息 8 学生信息写入文0退出
(三) 运行环境(软,硬件环境)
硬件:CPU, 内存, 主板, 硬盘, 显卡, 键盘, 显示器等等。 软件:Windows XP trubo c应用软件。 (四) 开发工具和编程语言 开发工具:trubo c 编程语言:C 语言 三、 详细设计 (一)数据结构 依据给定学生信息和数据格式,数组用结构体实现,结构体层次结构: struct stud { 学号 整型 long int num; 姓名 字符串 name[20]; 性别 字符串 sex[2]; 出生日期 字符串 birthday[12]; 联系方式 字符串 tel[12]; }; 头文件 #include
long num; char name[20]; char sex[2]; char birthday[12]; char tel[12]; };
typedef struct stucode {
struct stud student ; struct stucode *next; }L;
(二)、算法说明 1、主函数的算法设计: 清屏、显示子菜单及运用选择操作(运用swith语句),调用各个子函数,最后退出程序, 主要代码: while(flag) { system(\ menu(); choose=getchar(); switch(choose){} 2、各个子函数的算法设计 1、一些显示操作,输入相应的内容即可 代码: 2、创建链表并显示学生信息 申请空间p=(L *)malloc(sizeof(L)); 学生信息的输入及显示: p->student.num=n; strcpy(p->student.name,a); p->next=NULL; 3、学生信息的删除
首先查询要删除的学生信息的学号,如果存在删除该学生,如果不存在给予相应的提示。
t=p->next;