数据结构课程设计报告

发布 2022-10-05 19:32:28 阅读 9857

一、课程设计概述:

本次数据结构课程设计共完成两个题:成绩分析问题、24点游戏问题。

使用语言:c/c++

编译环境:tc3.0 / vc6.0

2、课程设计题目。

实验内容]成绩分析问题。

问题描述]录入、保存一个班级学生多门课程的成绩,并对成绩进行分析。

需求分析]1)通过键盘输。入各学生的多门课程的成绩,建立相应的文件。

2)对文件中的数据进行处理,要求具有如下功能:

1) 按各门课程成绩排序,并生成相应的文件输出。

2) 计算每人的平均成绩,按平均成绩排序,并生成文件。

3) 求出各门课程的平均成绩、最高分、最低分、不及格人数、60~69分人数、70~79分人数、80~89分人数、90分以上人数。

4) 根据姓名或学号查询某人的各门课成绩,重名情况也能处理。

3)界面美观。

概要设计]=adt=

int right(std *h,int i);/查看学号 i 是否存在。

void newstu(std *h);/新增一个学生。

std *find(std *h,char nam);

// 查找姓名为nam的学生,返回该学生上一结点的地址。

std *find(std *h,char num);

// 查找学号为mum的学生,返回该学生上一结点的地址。

void show(std *p,int i);

// 输出结点p的信息,若 i=0 只输出姓名和学号,i=1,输出全部信息。

void show(std *h);/按提示输出学生的信息。

void intoscores(std *h);/按提示录入学生的成绩。

void sort(std *h,int a,int b);

// 对学生信息排序,a为0以数学成绩为关键字排序 a=1-4为英语成绩、计算机成绩、总成绩、学号。b=0为降序,b=1为升序。

void cjjpx(std *h);/按提示对学生信息排序。

void tjcj(std *h);/统计学生成绩。

void del(std *h);/按提示删除学生。

int into(std *h);/从文件中读数据放在头结点为h的链表中。

int s**e(std *h);/将头结点为h的链表数据保存在文件中。

存储结构]struct std //学生信息链表。

char name[20]; 姓名。

int number; /学号。

int scores[4]; 各科成绩。

struct std *next;//指向下一结点的指针。

struct stdd //记录数据。

char name[20];/姓名。

int number; /学号。

int scores[4]; 各科分数。

流程图]int right(std *h,stdd student);

/判断学号是否存在。

void newstu(std *hstd *find(std *h,char name)

/添加一个新学生以姓名为关键字。

std *find(std *h,char name)

以学号为关键字。

void intoscores(std *h) /录入学生的成绩。

void show(std *h) /输出学生信息。

void tjcj(std *h) /学生信息统计。

void sort(std *h,int a,int b) /对学生信息按要求进行排序。

void del(std *h) /删除学生。

详细设计]struct std学生成绩链表。

char name[20]; 学生姓名。

int number学生学号。

int scores[4]; 学生成绩。

struct std *next; /指向下一学生结点。

struct stdd //学生结点。

char name[20];

int number;

int scores[4];

int right(std *h,stdd student)

std *p定义结点p,使之在链表中遍历。

p=h->nextp指向头结点的下一个结点开始遍历。

while(p!=null判断p是否为空。

return (1若学号都没相同的,返回1。

void newstu(std *h)

stdd students定义stdd结构体变量students来存储一些数据。

int i定义整型变量。

std *p,*q定义stdd链表结点。

p=hp指向头结点。

while(p->next!=null找到最后一个结点。

std *find(std *h,char name)

std *p=h定义链表指针使之对成绩链表进行遍历。

while(p->next!=null只要p不为最后一结点。

return (p若都不一样,返回最后一结点p

std *find(std *h,int num)

std *p;

p=h;while(p->next!=null)

return (p);

void sort(std *h,int a,int b)

int i;

stdd student定义记录变量。

std *p,*q定义链表变量。

p=h从头开始。

if(b==0若b=0,为升序。

while(p->next!=null只要p不为最后一结点。

q=p->nextq为p的下一结点。

while(q->next!=null) /q不为最后一结点。

if(a==4若a=4,则以学号为关键字排序。

if(p->next->number > q->next->number)

比较学号的大小,满足则交接两者。

next->number;

p->next->number=q->next->number;

q->next->number=

strcpy(>next->name);

strcpy(p->next->name,q->next->name);

strcpy(q->next->name,for(i=0;i<4;i++)

交换成绩。next->scores[i];

p->next->scores[i]=q->next->scores[i];

q->next->scores[i]=

else若a不为4,就以相应的成绩为关键字排序。

if(p->next->scores[a] >q->next->scores[a])

next->number;

p->next->number=q->next->number;

q->next->number=

strcpy(>next->name);

strcpy(p->next->name,q->next->name);

strcpy(q->next->name,for(i=0;i<4;i++)

next->scores[i];

p->next->scores[i]=q->next->scores[i];

q->next->scores[i]=

q=q->next;

数据结构课程设计报告

东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...

数据结构课程设计报告

设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...

数据结构课程设计报告

河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...