北京理工大学数据结构课程设计学生信息管理专题报告.docx
- 文档编号:1642629
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:29
- 大小:265.95KB
北京理工大学数据结构课程设计学生信息管理专题报告.docx
《北京理工大学数据结构课程设计学生信息管理专题报告.docx》由会员分享,可在线阅读,更多相关《北京理工大学数据结构课程设计学生信息管理专题报告.docx(29页珍藏版)》请在冰豆网上搜索。
专题设计(链表)报告
题目:
学生成绩管理系统
小组成员:
专题报告
—————第十组
问题描述
设计一个“学生成绩管理系统”。
主要实现学生信息的录入、添加、修改、删除、排序和查看等基本功能。
设计要求
编写一个学生成绩管理程序。
学生成绩以一个学生一条记录的形式存储,每个学生记录包含的信息有序号、学号、姓名及5门功课的成绩。
具体功能如下:
a.获取学生成绩。
可以从文件中读取成绩,也可直接录入。
查询学生成绩,输入学生学号或姓名等信息后,显示学生在成绩单中的位置及所有信息。
b.添加学生成绩,在学生成绩单的指定位置添加学生成绩信息。
c.修改学生成绩,在学生成绩单中,修改指定学生的成绩信息。
d.删除学生成绩,在学生成绩单中,删除指定学生的成绩信息。
e.保存文件。
当学生成绩单发生添加、修改、删除等变化后,都要对最终结果进行保存。
数据结构
学生成绩可以用单链表存储,方便随时插入和删除学生成绩记录,实现动态管理。
一个学生作为一个结点。
使用链表的基本算法实现学生成绩单的各项管理功能。
设计与实现
学生成绩信息管理功能模块
学生成绩信息读取
学生成绩信息插入
学生成绩信息保存
学生成绩信息查询
学生成绩信息显示
学生成绩信息删除
学生成绩信息修改
学生成绩信息录入
成绩信息管理系统具体分为两个模块:
数据类和功能类。
数据类包括学生的姓名、学号及成绩等信息。
通过对学生信息管理系统的功能分析,可以定义出系统的总体功能结构模块图,如上图所示。
当用户运行该系统后可以来进行学生信息信息(录入)插入管理、学生信息修改管理、学生信息删除管理、学生信息显示管理及学生信息显示等操作。
根据功能需求的结果分析,主界面应该由学生信息录入管理、学生信息插入管理、学生信息修改管理、学生信息删除管理、学生信息显示管理和学生信息信息查询管理组成,可以通过输入相应的数字进入相应的功能模块。
在本系统中需要编码实现的主要有学生信息录入、学生成绩信息插入、学生成绩信息查询、学生成绩信息修改、学生成绩信息删除和学生成绩信息输出等6个功能模块,以及学生信息的文件存储与读取功能。
学生成绩信息录入模块:
添加的信息包括姓名、学号及各科成绩。
实际流程为开始→输入学生信息→调用类成员函数采用单链表保存数据→结束。
代码如下:
voidFunction:
:
Add()//录入学生信息函数
{
charname[64];
charno[20];
Classscore;
charchoose;
Student*f1,*p;
f1=Student_First;
while(f1->Next)
f1=f1->Next;
do
{
p=newStudent;
cout<<"请输入您要添加的学生成绩信息:
"< cout<<"请输入学生姓名: "; cin>>name; cout<<"请输入学号: "; cin>>no; cout<<"请输入计算机成绩: "; cin>>score.Computer; cout<<"请输入数学成绩: "; cin>>score.Math; cout<<"请输入英语成绩: "; cin>>score.English; cout<<"请输入体育成绩: "; cin>>score.Pe; cout<<"请输入音乐成绩: "; cin>>score.Music; p->Set(name,no,score); f1->Next=p; p->Next=NULL; f1=f1->Next; cout<<"是否继续输入信息? (Y\\N)-------"; cin>>choose; } while(choose=='y'||choose=='Y'); Save(); Menu(); } 学生成绩信息插入模块: 输入一个存在的学号作为插入位置,在其后插入的信息包括姓名、学号及各科成绩。 流程为开始→输入学生学号→以学号为插入位置,在其后插入信息→调用类成员函数采用单链表保存数据→结束。 代码如下: voidFunction: : Insert() { charname[64]; charno[20]; Classscore; Student*f1,*p; f1=Student_First; p=newStudent; cout<<"请输入学号来确定插入位置: "< cin>>no; while(f1) { if(strcmp(f1->GetNo(),no)==0) break; f1=f1->Next; } cout<<"请输入学生姓名: "; cin>>name; cout<<"请输入学号: "; cin>>no; cout<<"请输入计算机成绩: "; cin>>score.Computer; cout<<"请输入数学成绩: "; cin>>score.Math; cout<<"请输入英语成绩: "; cin>>score.English; cout<<"请输入体育成绩: "; cin>>score.Pe; cout<<"请输入音乐成绩: "; cin>>score.Music; p->Set(name,no,score); p->Next=f1->Next; f1->Next=p; Save(); cout<<"插入成功! "; Menu(); } 学生成绩信息修改模块: 首先查找与要修改数据相匹配的信息,将相应的信息输出,然后再重新输入新的数据并保存到单链表。 流程为开始→输入学生学号,显示学生信息→修改学生信息→结束。 代码如下: voidFunction: : Modify()//修改学生信息函数 { charname[64]; charchoose; Student*temp,*p; charno[20]; Classscore; temp=p=Student_First; cout<<"请输入您要修改的学号: ";cin>>no; while(temp) { if(strcmp(temp->GetNo(),no)==0) { cout<<"姓名学号微机数学英语体育音乐\n"; temp->Out();cout< cout<<"请输入姓名: "; cin>>name; cout<<"请输入学号: "; cin>>no; cout<<"请输入计算机成绩: "; cin>>score.Computer; cout<<"请输入数学成绩: "; cin>>score.Math; cout<<"请输入英语成绩: "; cin>>score.English; cout<<"请输入体育成绩: "; cin>>score.Pe; cout<<"请输入音乐成绩: "; cin>>score.Music; temp->Set(name,no,score); break; } temp=temp->Next; } Save(); cout<<"修改成功! "< cout<<"1.返回主菜单\n2.继续修改-------"; cin>>choose; if(choose=='1')Menu(); elseModify(); } 学生成绩信息删除模块: 当选择删除功能时,输入要删除的同学的学号,如果该同学存在,进行删除操作。 代码如下: voidFunction: : Delete()//删除学生信息函数 { charno[20]; charchoose; Student*temp,*p; p=temp=Student_First; cout<<"输入学号: "; cin>>no; while(temp) {if(strcmp(temp->GetNo(),no)==0) { p->Next=p->Next->Next; deletetemp; cout<<"删除成功: \n"; break; } p=temp; temp=temp->Next; } Save(); cout<<"1.返回主菜单\n2.继续删除-------"; cin>>choose; while(choose! ='1'&&choose! ='2') { cout<<"1.返回主菜单\n2.继续删除-------"; cin>>choose; } if(choose=='1') Menu(); elseif(choose=='2') Delete(); } 学生成绩信息显示模块: 从单链表表头遍历整个单链表,将所有数据输出。 代码如下: voidFunction: : Show() { Student*temp; charchoose;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京理工大学 数据结构 课程设计 学生 信息管理 专题报告