数据结构课程设计

发布 2022-10-05 01:23:28 阅读 5011

一、 需求分析说明。

本题对学生的某门课程成绩管理做一个简单的模拟,为了实现学生成绩的管理与分析,设计一个学生成绩管理系统。

学生信息包括:学号、姓名、性别,要确保其信息的准确性。

课程的成绩信息有平时成绩、实验成绩、期未成绩、总评成绩,总评成绩=平时成绩*0.4+实验成绩*0.3+期末成绩*0.3,用菜单选择方式完成下列功能:

1)登记学生成绩;(2)插入学生成绩;(3)修改学生成绩;(4)删除学生成绩;

5)查询学生成绩;(6)对学生成绩进行排序;(7)输出学生成绩。

在完成上述基本要求的操作后,要应用功能(6)进行测试。

二、 总体设计。

设计功能表如下:(附:功能解释)

三、 详细设计。

1、 系统功能分析:

学生信息包括:学号、姓名、性别,要确保其信息的准确性。

课程的成绩信息有平时成绩、实验成绩、期未成绩、总评成绩,总评成绩=平时成绩*0.4+实验成绩*0.3+期末成绩*0.

3,以及功能上述功能。在完成上术基本要求的操作后,要应用功能(6)进行测试。得出该题目以创建两个类,一个类保存成绩信息:

平时成绩、实验成绩、期未成绩、总评成绩,一个类保存学生信息:学号姓名、性别。从功能分析可知该存储方式适合用链表存储结构:

此类功能中在未排序前应该以学号为主键,排序后应该以总评成绩为主键。

(1) 定义一个成绩类:

class score

public:(访问控制属性),平时成绩(float peacetime),实验成绩(float experiment),期末成绩(float final),总评成绩(float total)}

2)定义一个学生类:

class student public:(访问控制属性),int sno(学号),string name(姓名) string sex(性别)score course(课程)student *next(下一个学生地址指针)

student *registed();登记学生成绩。

void insert(student *s,int i);/插入学生成绩。

void alter(student *s,int i);/修改学生成绩。

void deleted(student *s,int i);/删除学生成绩。

void seek(student *s,int i);/查询学生成绩。

student *sort(student *s);/成绩排序。

void print(student *s);/输出学生成绩。

void sortprint(student *s);/排序后的成绩输出;

2、 存储结构设计分析。

学生的信息:学生的信息和成绩信息都储存在一个链表里,每个节点表示一个学生的信息,包括学号,姓名及平时成绩(float peacetime),实验成绩(float experiment),期末成绩(float final),总评成绩(float total)等数据项。

3、 程序流程图。

四、 **。

#include

#include

#include

using namespace std;

class score

public:

float peacetime;//平时成绩。

float experiment;//实验成绩。

float final;//期末成绩。

float total;//总评成绩。

class student

public:

int sno;//学号。

string name;//姓名。

string sex;//性别。

score course;//课程。

student *next;

student *registed();登记学生成绩。

void insert(student *s,int i);/插入学生成绩。

void alter(student *s,int i);/修改学生成绩。

void deleted(student *s,int i);/删除学生成绩。

void seek(student *s,int i);/查询学生成绩。

student *sort(student *s);/成绩排序。

void print(student *s);/输出学生成绩。

void sortprint(student *s);/排序后的成绩输出。

student *student::registed()

int e;

student *hm2,*p,*r;

r=hm2=new student;

hm2->next=null;

cout<<"输入需要登记的学生的个数:";

cin>>e;

for(int i=1;i<=e;i++)

hm2->next=null;

return r;

void student::insert(student *s,int i)

student *p,*q;

p=s;while((p->next!=null)&&p->next->sno p=p->next;

q=new student;

q->sno=i;

cout<<"输入学生姓名:";cin>>q->name;

cout<<"输入学生性别:";cin>>q->sex;

cout<<"输入平时成绩";

cin>>q->

cout<<"输入的实验成绩";

cin>>q->

cout<<"输入期末成绩";

cin>>q->

q->(q->>

cout< cout<<"课程的总评成绩:"next=p->next;

p->next=q;

void student::alter(student *s,int i)

student *p;

p=s;while((p->next!=null)&&p->next->sno!=i))

p=p->next;

if(p->next==null)

elsevoid student::deleted(student *s,int i)

student *p;

p=s;while((p->next!=null)&&p->next->sno!=i))

p=p->next;

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 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 初始化时每个方格都是关闭的,一个...