一、课程设计概述:
本次数据结构课程设计共完成两个题:成绩分析问题、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 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...