教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 专业资料 >

数据结构课程设计报告+学生成绩管理系统

来源:网络收集 时间:2026-09-04
导读: 广东某某学院 《数据结构课程设计》 题目:学生成绩管理系统 学号: 姓名: 年级: 学院: 专业: 指导教师: 1 目录 一、课程设计目的 (3) 1.1问题描述 (3) 1.2需求分析 (3) 二、数据结构的设计 (3) 2.1数据结构的选择 (3) 2.2单链表的定义 (4) 2.3重要函数

广东某某学院

《数据结构课程设计》

题目:学生成绩管理系统

学号:

姓名:

年级:

学院:

专业:

指导教师:

1

目录

一、课程设计目的 (3)

1.1问题描述 (3)

1.2需求分析 (3)

二、数据结构的设计 (3)

2.1数据结构的选择 (3)

2.2单链表的定义 (4)

2.3重要函数的定义及说明 (4)

三、系统总体流程图 (6)

四、运行结果 (7)

五、调试情况分析 (8)

六、设计总体体会 (9)

七、附录 (10)

2

一、课程设计目的

1.1问题描述

设计一个简单的学生成绩管理系统。

1.2基本要求

系统设计要求:

1、完成对学生成绩信息的建立

2、能比较迅速地通过学生的学号找到学生的基本信息和成绩信息

3、在信息需要修改时能精确修改到任何一个数据

4、使用者能清楚的看到所有已经录入的信息

5、在不需要某一个学生的信息时可以根据学号来进行删除

6、能够在任何位置插入学生的信息,以提高系统的灵活性,录入更加方便

7、可以统计已经录入的总学生人数为多少

二、数据结构的设计

2.1数据结构的选择

课程设计题目的要求是,要较简单迅速地实现学生成绩信息的录入,查找,删除,插入,显示等功能,于是我很自然地想到了本学期数据结构第二章学到的单链表的应用,通过编写相应函数来建立、修改、删除节点来实现相应内容,既容易理解同时也能满足课程设计的要求。

3

2.2单链表的定义

先定义单链表结点的基本数据,包括学生学号、名字、性别和语文、数学、英语三门课程,然后再定义链表结点,链表结点包括结点数据域和结点链域,最后在主函数直接定义指向链表结点的指针,并且之后的函数直接取值调用它即可以下为单链表的定义和主函数指针的定义:

typedef struct //定义结点数据域

{

char xuehao[12]; //学生学号

char name[12]; //学生姓名

char sex[4]; //学生性别

char yuwen[4]; //语文成绩

char shuxue[20]; //数学成绩

char yingyu[10]; //英语成绩

}database; //成员名

typedef struct biao //定义链表结点

{

database data; //结点数据域

struct biao* next; //结点链域

}LinkList; //成员名

LinkList*p; //指向链表结点的指针

p =new LinkList; //分配一块空间

p->next = NULL; //下一块为空

2.3重要函数的定义及说明

LinkList* jianli(LinkList*& p); //学生信息初始建立

void xianshi(LinkList* p); //学生信息显示

LinkList *chazhao(LinkList *p); //学生信息的查找

void charu(LinkList*& p); //学生信息的插入

LinkList* xiugai(LinkList*& p); //学生信息的修改

LinkList* shanchu(LinkList *& p); //学生信息的删除

int num(); //学生人数的统计

4

这里我主要负责的模块是学生人数统计,所以接下来我主要会对这进行说明与解释

int num(LinkList* p)

{

int n = 0;

LinkList* L = p; //定义指针L=p

while (L->next != NULL) // 判断L的下一个是否为空,如果

L 不为空,则输出以下内容并让指针继续

指向下一个节点。如果L为空,则退出;

循环,返回n。

{

n++;

L = L->next;

}

return n;

}

三、}系统总体流程图

系统整体的功能与用到的关键代码如下图,设计基本思想是以单链表为基础

5

四、运行结果

系统界面

建立功能

6

修改功能

显示功能

删除功能

7

插入功能

统计功能

五、调试情况分析

1.人数的统计

在初步完成该程序时,调试之后发现程序有一个漏洞,是无法显示学生人数,后来使用return返回n的值便可以解决这个问题,即可以成功返回正确的人数。

8

六、设计总体体会

在编写程序的过程中,我们将课本中的大部分知识又都熟悉了一遍,使我们对课本又有了更深的记忆,同时又弄懂了一些以前不太明白的地方。通过这次课程设计,让我更加深刻了解课本知识和以往对知识的疏忽得以补充。我们还明白了做事要有耐心,决不能心急,要一步一步地来。

我们小组终于完成了这一系统的设计,我们用了较为熟悉的单链表去完成整个系统,一整串代码敲下来,经过多次调试和修改后,虽然难度不大,所用到的思想和代码也很基础,但这也同样锻炼我了我们,提高了我们的水平。

这学期学了数据结构让自己了解和尝试了更深层次的代码。特别对于数据结构这一门课来说实践是很重要,我们就好比作家要如何将自己所想写出来,我们要将自己所要设计表达的用代码表示出来,要学会把代码用自己的风格写出来。

这次的课程设计很好的给了我们一个机会,让我们把眼睛看会的东西变成脑子手也会的。最开始做课程设计时,也是无法下手,不过团队的力量总是很大的,团队有对知识掌握的牢靠,不会的时候、搞不懂的代码可以请教,虽然在这次的课程设计中,我并没有对此次的作品做出很多贡献,但我也在积极的让自己对这次作品的代码有更多的了解,并在了解的过程中使自己对单链表这一块的知识更加熟悉,也提高了自己运用代码的能力。

有了这次的锻炼,对课本内容更加熟悉,希望下次能更加努力,设计的代码更加完善,界面更加好看,显示出自己的风格。

9

附录:

typedef struct

{

char xuehao[12];

char name[12];

char sex[4];

char yuwen[4];

char shuxue[20];

char yingyu[10];

}database;

typedef struct biao

{

database data;

struct biao* next;

}LinkList;

LinkList* jianli(LinkList*& p);

void xianshi(LinkList* p);

LinkList *chazhao(LinkList *p);

void charu(LinkList*& p);

10

LinkList* xiugai(LinkList*& p);

LinkList* shanchu(LinkList *& p);

int num();

//

//

#include<iomanip>

#include<iostream>

using namespace std;

//

//

LinkList* jianli(LinkList*& p)

{

LinkList* L = p;

while (L->next!= NULL)

L = L->next;

LinkList* q;

q =new LinkList;

cout << "考号:";

cin >> q->data.xuehao;

cout << "姓名:";

cin >> q->http://doc.guandang.net;

cout << "性别:";

11

cin >> q->data.sex;

cout << "语文:";

cin >> q->data.yuwen;

cout << "数学:";

cin >> q->data.shuxue;

cout << "英语:";

cin >> q->data.yingyu;

q->next = L->next;

L->next = q;

return p;

}

…… 此处隐藏:3009字,全部文档内容请下载后查看。喜欢就下载吧 ……

数据结构课程设计报告+学生成绩管理系统.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1760695.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)