一、 需求分析说明。
本题对学生的某门课程成绩管理做一个简单的模拟,为了实现学生成绩的管理与分析,设计一个学生成绩管理系统。
学生信息包括:学号、姓名、性别,要确保其信息的准确性。
课程的成绩信息有平时成绩、实验成绩、期未成绩、总评成绩,总评成绩=平时成绩*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<<"课程的总评成绩:"
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 初始化时每个方格都是关闭的,一个...