当前位置:首页 > C++课程设计报告单链表——学生信息管理系统
.
学生信息管理系统设计文档
一、 设计任务描述
为了实现学籍管理的简单化,我们基于Visual C++集成开发环境编写了“学生信息管理系统”软件,该软件适用于所有windows操作系统,面向广大用户,界面简洁,操作简单。此软件主要是实现对学生学籍信息进行系统化的管理,可以对学生基本信息进行添加、删除、查找、修改以及对学生成绩的管理,主要是根据学生的学号及其姓名进行操作的。该软件可以更加方便管理者管理学生学籍信息。
二、 功能需求说明
该系统所需要的功能有:1、链表的建立;
2、学生信息的插入; 3、学生信息的查询; 4、学生信息的输出; 5、学生信息的修改; 6、学生信息的删除; 7、良好的欢迎选择界面。
三、总体方案设计
一、实现任务的方法
1、在欢迎选择界面中,使用Switch 这一选择结构来连接程序的执行和用户的命令;
2、在从学生信息的建立直到删除,都是使用链表的相关知识;
3、在定义学生信息时,建立一个Inform 类;在定义学生课程成绩时,自定义了一个achieve 结构体;
二、总体结构
优质范文
.
三、模块划分
(1)链表的建立。
(2)对链表信息的插入。 (3)对链表信息的查找。 (4)对链表信息的输出。
(5)对链表信息的删除。 (6)对链表信息的修改。
课程成绩信息作为附加信息,穿插于各个模块中。
三、 数据结构说明
一、自定义的数据结构:
1、achieve(课程成绩)用于存放课程成绩信息包括课程数、课程名、成绩、学分、总分和平均分。
2、inform(学生基本信息)用于存放学生基本信息,包括姓名、学号、性别等。
3、结点结构-Nodetype,定义了数据域inform和指针域next;
优质范文
.
二、类
Student 用于存放处理学生信息的各个功能函数,private 成员是链表的头指针。
四、 各模块设计说明
一、建立:
首先:建立一个空链表:
Student::Student()
{head=new Nodetype;
head->next=NULL; cout<<\请建立链表\\n\}
然后建立链表
优质范文
表明这是一个空链表 .
:
二、添加:按照学号从小到大的顺序插入:
三、输出:将链表的数据输出,由于上述操作,输出时会按照学号从小到大的顺序输出。
四、查找:利用学号和姓名两种方式进行查找,查找时主要是遍历链表进行判断
while(p!=NULL&&(d==1&&strcmp(input,p->data.num)!=0)||(d==2&&strcmp(input,p->data.name)!=0)) {p=p->next; } //遍历链表查找符合要求的节点 五、删除:利用节点的删除操作,找到链表中第i-1个结点,修改其指向后继的指针:
q = p->next; p->next = q->next; delete(q); 六、更改:利用查找的操作,查到后在进行重新输入的操作;
五、 测试情况说明
测试一:学生信息的输入和输出都正常,但是查找、删除和修改时都只能对第一个数据进行操作,如下图所示:
优质范文
共分享92篇相关文档