当前位置:文档之家› 学生成绩管理系统(链表版)

学生成绩管理系统(链表版)

学生成绩管理系统(链表版)
学生成绩管理系统(链表版)

《C语言应用》实验报告

题目学生成绩管理系统(链表版)

第1章第1章需求分析

(1)能完成学生成绩的插入、查询、修改、删除、输出等功能;

(2)采用单链表存储结构实现;

(3) 所有数据以外部文件方式保存

第2章第2章总体设计

2.1 系统的程序流程图

绘制一个系统的总体程序流程图,主要展示系统从开始以后,可以经过哪些流程,最后结束。按姓名修改某位同学的成绩按姓名修改某位同学的成绩输出链表内容输出链表内容

2.2系统的全局变量和常量

系统全局变量int n;char a;

头文件:

#include "stdio.h"

#include "time.h"

#include "string.h"

#include "stdlib.h"

#include "conio.h"

2.3系统的函数介绍

把系统中的每个函数的原型列出来,解释一下函数的返回值及形式参数的含义;最后,再介绍一下每个函数的功能。

void Create(int n) //创建链表

void List() //输出链表内容

void list() //输出链表所有内容

void save() //文件保存

void save1() //文件保存

void read() //文件读取

void read1() //文件读取

void SA VE(){ //保存到可浏览文件

void SA VE1() //保存到可浏览文件

void sort_data_copy(Lstu *p,Lstu *s) //交换排序时的值

void sort() //对初始成绩进行排序

void sort1() //对所有数据进行排序

void search_print(Lstu *p) //输出查找信息

void search_choose() //选择按分数段查找方式

void search() //查找

void modify_choose(Lstu *p,int n) //选择修改方式

void modify() //按姓名修改

void Insert() //按序号插入

void del() //按姓名删除

void statistics() //成绩统计

int menu() //菜单(主界面)

本程序采用的是尾插法,就是每次将新申请的结点插在终端结点的后面,其执行过程如图所示。

尾插法建立单链表操作示意图

3.4 查找函数设计

按姓名、学号和分数段查找学生成绩的流程图分别如下图4.3所示。

图4.3按姓名查找学生成绩信息流程图

在单链表中,即使知道被访问结点的位置i,也不能像顺序表那样直接按序号访问,而只能从头指针出发,设置一个工作指针p,顺next域逐个结点往下搜索。当p指向某个结点时判断是否为第i个结点,若是则查找成功;否则,将工作指针p后移,即将p指向原来所指结点的后继结点。直到p为NULL时查找失败。单链表查找过程如图4.4所示。

图4.4单链表查找过程的示意图

按学号查询学生成绩信息同按姓名查找学生成绩信息,此处不再详细列出。

(3)学生成绩修改模块

3.5修改函数设计

首先要查找与要修改数据相匹配的信息,若没有则返回失败。否则把相应的

信息输出,然后再重新输入新的数据并保存到单链表。

3.6插入函数设计

首先要确定插入数据的位置,执行插入操作,然后再输入数据并保存到单链表。

N

开始插入操作

选择要插入的位置

判断插入的位置

Y

N

执行插入功能

返回主菜单

3.7 删除函数设计

当选择删除功能时,首先输入要删除的同学的姓名,然后输入要删除的同学的学号,如果该同学存在并且姓名与学号匹配的上,则进行删除操作,否则返回

失败。其流程图如下:

删除操作定义为将单链表的第i 个结点删去。因为在单链表中结点a i 存储地址在其前驱结点a i-1的指针域,所以必须首先找到a i-1的存储地址p ,然后令p 的next 域指向a i 的后继结点,即把结点a i 从链上摘下来,最后释放结点a i 的存储空间,如图4.6所示。

在单链表中删除结点指针的变化情况

N

3.8 保存函数设计

3.9 显示函数设计

从单链表表头遍历整个单链表,将所有数据输出。其部分代码如下:

void read(){ //文件读取

FILE *fp;

Lstu *p,*p1;

if((fp=fopen("初始值二进制.txt","rb"))==NULL)

{

printf("Cannot open the file\n");

exit(0);

}head=(Lstu*)malloc(sizeof(Lstu));

p1=head;

while(!feof(fp)){

p=(Lstu *)malloc(sizeof(Lstu));

if(fread(p,sizeof(Lstu),1,fp)==1)

{

p1->next=p;

p1=p1->next;

}

}head=head->next;fclose(fp);

}

3.10 退出函数设计

第4章第4章测试

主要进行功能性测试,即验证各个功能模块是否正确运行。

可以采用运行系统进行截图的方法来验证系统结果的正确性。

在完成了系统各方面的设计后,并不是可以运行就完成的,为了保证系统性能的稳定性跟安全性等,就要对系统做测试。

测试环境如下:

●硬件:P4C 2.4GHz,500GB硬盘,2内存;

●软件:Windows 7 Personal SP1,分辨率1366*768,Microsoft Visual C++

6.0。

运行的主界面如图所示:

①点击1输入学生相关信息,如图所示:

②浏览初始学生信息,如图所示:

③查看初始学生总分及平均分,如图所示:

④查找,如图所示:

按姓名查找:

⑤初始学生成绩排序,如图所示:

按平均成绩进行排序:

⑥插入新成绩,如图所示:

⑦按姓名修改某位学生的成绩,如图所示:

表格模板-利用单项链表实现简单的学生信息管理 精品

河北工业大学计算机软件技术基础(VC)课程设计报告 一、题目: 利用单项链表实现简单的学生信息管理(07) 二、设计思路 1、总体设计 1)分析程序的功能 创建单项链表保存学生的各项信息,学号、姓名、成绩。并能够完成学生信息的插入、删除及信息的显示功能。 2)系统总体结构: 按照程序要求的功能采用结构化的设计思想,划分为五个功能模块,即创建链表、插入函数、删除函数、显示函数和主函数。 2、各功能模块的设计:说明各功能模块的实现方法 ①头文件:对自己定义的函数进行函数声明。 ②主函数:进行函数的调用,实现各函数的功能,达到预期的目的。 ③函数定义部分:定义各个功能函数,创建链表函数、插入新信息函数、删除信息函数、显 示信息函数。 3、设计中的主要困难及解决方案 1)在插入新信息时,有插入点在表头、中间、表尾三种情况,为此采用讨论的方法,把三种情况进行讨论使其分开进行。 2)在删除信息时,有删除的为头结点和中间结点的情况,采用讨论的方法,把两种情况分开来进行。 4、你所设计的程序最终完成的功能 1)创建链表、插入新信息、删除信息、显示信息。 2)测试数据 ①输入的数据

99812 LiuLifang 91 学号姓名成绩 96085 WangLiPing 77 98120 ZhangLi 75 99912 LiuHai 80 ③删除的数据 学号姓名成绩 99812 liulifang 91 运行结果

三、程序清单 本程序包含creatlist.cpp、insert.cpp、del.cpp、output.cpp、main.cpp、头文件.h六个文件 1、creatlist.cpp文件清单

C++课程设计单链表——学生信息管理系统

学生信息管理系统设计文档 一、设计任务描述 为了实现学籍管理的简单化,我们基于Visual C++集成开发环境编写了“学生信息管 理系统”软件,该软件适用于所有win dows操作系统,面向广大用户, 界面简洁,操作简单。此软件主要是实现对学生学籍信息进行系统化的管理,可 以对学生基本信息进行添加、删除、查找、修改以及对学生成绩的管理,主要是根据学生的学号及其姓名进行操作的。该软件可以更加方便管理者管理学生学籍信息。 二、功能需求说明 该系统所需要的功能有:1链表的建立; 2、学生信息的插入; 3、学生信息的查询; 4、学生信息的输出; 5、学生信息的修改; 6、学生信息的删除; 7、良好的欢迎选择界面。 三、总体方案设计 一、实现任务的方法 1、在欢迎选择界面中,使用Switch这一选择结构来连接程序的执行和用户的命令; 2、在从学生信息的建立直到删除,都是使用链表的相关知识; 3、在定义学生信息时,建立一个Inform类;在定义学生课程成绩时,自定义了一个achieve结构体;

ST rucr acnieve { int nunber : char nane [10] [10]; float achieveiaent [13]: float xuefen [10]: float 0 : float average ; achieve C): float count average (); struct Inform {chai name[10]: char num[20]: string sex: string: id; string bir; string adr : string tel, achieve ach; void achinput 0 : void achprint 0 ; }; 三、模块划分 (1)链表的建立。 (2)对链表信息的插入。 (3)对链表信息的查找。 (4)对链表信息的输出。 (5)对链表信息的删除。 (6)对链表信息的修改。 课程成绩信息作为附加信息,穿插于各个模块中 三、数据结构说明 一、自定义的数据结构: 1、achieve (课程成绩)用于存放课程成绩信息包括课程数、课程名、 成绩、学分、总分和平均分。 "谍稈数 〃课程容(最參课稈数为nn "成绩 "学专 "总分 "平均分 "默认枸隆雷教 "计算该学生课程的加权平均分(总咸绩/总学分) "元素类型 "姓名 〃学号 〃性别 "身份证号 //出生年月曰 〃家庭地址 "电话号码 "课程咸绩 "谍程成绩输入 "遥程成缢输出 3、结点结构-Nodetype,定义了数据域inform和指针域next; 2、inform (学生基本信息)用于存放学生基本信息,包括姓名、学号、性别等。

用链表与文件实现学生成绩管理系统

#include #include #include #include #include using namespace std; struct Class { int Chinese; int Math; int English; }; class Student { public: Student(); void Ofile(ofstream &of); void Infile(ifstream &f); void Out(); void Set(char *name,int no,Class score); char *GetName(); int GetNo(); Student *Next; protected: char Name[20]; int No; Class Score; }; Student::Student():Next(0){} char *Student::GetName() { return Name; } int Student::GetNo() {return No;} void Student::Set(char *name,int no,Class score) { strcpy(Name,name); No=no; Score=score; } void Student::Infile(ifstream &f) { f>>Name>>No>>Score.Chinese>>Score.Math>>Score.English; //将数据输入到文

用链表与文件实现学生成绩管理系统

用链表与文件实现学生成绩管理系统 学生姓名:李卉指导老师:肖增良 摘要学生成绩管理系统是典型的信息管理系统,是学校教务管理的重要组成部分,其处理信息量很大。本课程设计是用C++实现对学生的成绩管理作一个简单的模拟,实质是建立学生成绩单链表,每条记录由姓名、学号与成绩组成,即链表中每个结点由4个域组成,分别为:学号、姓名、成绩、存放下一个结点地址的next域。用菜单选择操作方式完成五项功能分别写成五个函数,插入学生成绩对应建立学生单链表的功能,输出全部学生成绩记录,后三个功能分别对应单链表的查询、修改与删除三大基本操作。该系统中的数据采用线性表中的链式存储结构即单链表来存储,用结构体类型和类类型定义每个学生记录并采用外部文件方式记录数据简便数据的读取与保存。 关键词程序设计;C++;单链表;学生成绩管理系统

1 引言............................................................................................................................................................ 3 1.1 课程设计目的..................................................................................................................................... 3 1.2课程设计内容...................................................................................................................................... 3 1.3课程设计目标...................................................................................................................................... 42系统需求与功能分析..................................................................................................................................... 5 2.1 系统需求分析..................................................................................................................................... 5 2.2系统功能分析...................................................................................................................................... 5 2.3系统性能分析...................................................................................................................................... 63总体结构设计................................................................................................................................................. 7 3.1系统的结构设计.................................................................................................................................. 7 3.2系统管理流程图.................................................................................................................................. 7 4 系统详细设计和系统实现............................................................................................................................ 9 5 系统测试.................................................................................................................................................... 13 6 结束语........................................................................................................................................................ 16参考文献........................................................................................................................................................ 17附录1:结构化设计源程序清单......................................................................................................... 18

单链表的学生成绩管理系统设计与实现

长春建筑学院《数据结构》课程设计(论文) 基于单链表的学生成绩管理系统设计与实现 Design and implementation of the system of student performance management based on single table 年级: 12级 学号: 121500103 姓名: 徐文辉 专业:计算机科学与技术 指导老师: 常大俊 二零一三年十二月

摘要 学生成绩管理系统是典型的信息管理系统,是学校教务管理的重要组成部分,其处理信息量很大。本课程设计是用C++实现对学生的成绩管理作一个简单的模拟,实质是建立学生成绩单链表,每条记录由姓名、学号与成绩组成,即链表中每个结点由4个域组成,分别为:学号、、成绩、存放下一个结点地址的next域。用菜单选择操作方式完成五项功能分别写成五个函数,插入学生成绩对应建立学生单链表的功能,输出全部学生成绩记录,后三个功能分别对应单链表的查询、修改与删除三大基本操作。该系统中的数据采用线性表中的链式存储结构即单链表来存储,用结构体类型和类类型定义每个学生记录并采用外部文件方式记录数据简便数据的读取与保存。 关键词:数据结构,单链表,C语言,学生成绩管理

Abstract Student achievement management system is a typical management information system, is an important part of the school educational administration management, the large amount of information. The curriculum design is used to achieve C++ performance management for the students to make a simplesimulation, the essence is to establish students report list, each recordconsists of name,and grade, namely the linked list in each node iscomposed of 4 domains, respectively: next domain name, student number,grade, put down a node address the. Complete the five functions were written in five function menu to select the mode of operation, into the student achievement established a single list of the output function of students, allstudents record, after the three functions corresponding to single table query,modify and delete the three basic operations. The system data in the linked storage structure of linear table is a single linked list to store, use the structure types and class types define each student records and the use of an external file to read and save data and simple data record.

C语言写的学生成绩管理系统(链表)

#include #include #include struct stud{ long num; char name[20]; float sx; float dx; float ts; float dl; float cx; float zf; float pj; }; struct studcode{ struct stud student; struct studcode *next; }; void menu(); void input(struct studcode **); void output(struct studcode *); void binsearch(struct studcode *); void insert(struct studcode **); void delet(struct studcode **); void good(struct studcode *); void fail(struct studcode *); void sort(struct studcode *); void back(); void main() { char choose; int flag=1; struct studcode *head; head=NULL; printf("请先录入学生成绩信息\n"); printf("输入学生学号姓名高数、英语读写、英语听说、计算机导论和程序设计的成绩\n"); input(&head); while (flag)

{ system("cls"); menu(); printf("请选择:"); getchar(); choose=getchar(); switch(choose) { case '1': output(head); back(); break; case '2': binsearch(head); back(); break; case '3': insert(&head); output(head); back(); break; case '4': delet(&head); output(head); back(); break; case '5': good(head); back(); break; case '6': fail(head); back(); break; case '7': sort(head); output(head); back(); break; case '0': flag=0; printf("\n *** The End! ***\n"); printf("\n ####感谢使用,欢迎再次登录,拜拜!####\n");

基于单链表的学生信息管理系统源代码

//学生信息管理系统 #include #include #include #define NULL 0 #define LEN sizeof(struct student) //建立动态链表.cpp using namespace std; struct student { int num; char name[20]; char sex[5]; float math; float english; int order; struct student *next; }; int n; int male=0; int famale=0; struct student *creat(void) { struct student *head,*p1,*p2; n=0; p1=p2=(struct student *)malloc(LEN); cout<<"下面开始创建链表:"<>p1->num>>p1->name>>p1->sex>>p1->math>>p1->english; head=NULL; while(p1->num!=0) { if(strcmp(p1->sex,"男")==0) male++; else famale++; n++; if(n==1)head=p1; else p2->next=p1; p2=p1; p1=(struct student*)malloc(LEN); cin>>p1->num>>p1->name>>p1->sex>>p1->math>>p1->english; } p2->next=NULL; if(head==NULL) {

C++学生成绩管理系统(完整)

( 二〇一四 年 十 一月 课程设计说明书 本科毕业设计 题 目: 学生成绩管理系统(教师端) 学生姓名: 陈 学 院:工学院 专 业:数字媒体技术 班 级:2013级 指导教师:

目录 一、设计题目(问题)描述和要求 ................................................... - 1 - 二、系统分析与模块设计 ................................................................... - 1 - 三、系统设计 ....................................................................................... - 2 - 1. 系统总体框架 ............................................................................ - 4 - 2. 系统关键算法流程图 ................................................................ - 5 - 四、运行结果 ..................................................................................... - 10 - 五、小结 ............................................................................................. - 10 - 六、参考资料 ..................................................................................... - 20 -

C++课程设计 单链表——学生信息管理系统

C++课程设计单链表——学生信息管理系统

学生信息管理系统设计文档 一、设计任务描述 为了实现学籍管理的简单化,我们基于Visual C++集成开发环境编写了“学生信息管理系统”软件,该软件适用于所有windows操作系统,面向广大用户,界面简洁,操作简单。此软件主要是实现对学生学籍信息进行系统化的管理,可以对学生基本信息进行添加、删除、查找、修改以及对学生成绩的管理,主要是根据学生的学号及其姓名进行操作的。该软件可以更加方便管理者管理学生学籍信息。 二、功能需求说明 该系统所需要的功能有:1、链表的建立; 2、学生信息的插入; 3、学生信息的查询; 4、学生信息的输出; 5、学生信息的修改; 6、学生信息的删除; 7、良好的欢迎选择界面。 三、总体方案设计 一、实现任务的方法 1、在欢迎选择界面中,使用Switch 这一选择结构来连接程序的执行和用户的命令; 2、在从学生信息的建立直到删除,都是使用链表的相关知识; 3、在定义学生信息时,建立一个Inform 类;在定义学生课程成绩时,自定义了一个achieve 结构体; 二、总体结构

三、模块划分 (1)链表的建立。 (2)对链表信息的插入。 (3)对链表信息的查找。 (4)对链表信息的输出。 (5)对链表信息的删除。 (6)对链表信息的修改。 课程成绩信息作为附加信息,穿插于各个模块中。 三、数据结构说明 一、自定义的数据结构: 1、achieve(课程成绩)用于存放课程成绩信息包括课程数、课程名、成绩、学分、总分和平均分。 2、inform(学生基本信息)用于存放学生基本信息,包括姓名、学号、性别等。 3、结点结构-Nodetype,定义了数据域inform和指针域next;

利用单项链表实现简单的学生信息管理

利用单项链表实现简单的学生信息管理 一、题目: 利用单项链表实现简单的学生信息治理(07) 二、设计思路 1、总体设计 1)分析程序的功能 创建单项链表储存学生的各项信息,学号、姓名、成绩。并能够完成学生信息的插入、删除及信息的显示功能。 2)系统总体结构: 按照程序要求的功能采纳结构化的设计思想,划分为五个功能模块,即创建链表、插入函数、删除函数、显示函数和主函数。 2、各功能模块的设计:讲明各功能模块的实现方法 ①头文件:对自己定义的函数进行函数声明。 ②主函数:进行函数的调用,实现各函数的功能,达到预期的目的。 ③函数定义部分:定义各个功能函数,创建链表函数、插入新信息函数、删除信息函数、显 示信息函数。 3、设计中的要紧困难及解决方案 1)在插入新信息时,有插入点在表头、中间、表尾三种情形,为此采纳讨论的方法,把三种情形进行讨论使其分开进行。 2)在删除信息时,有删除的为头结点和中间结点的情形,采纳讨论的方法,把两种情形分开来进行。 4、你所设计的程序最终完成的功能 1)创建链表、插入新信息、删除信息、显示信息。 2)测试数据 ①输入的数据

99812 LiuLifang 91 学号姓名成绩 96085 WangLiPing 77 98120 ZhangLi 75 99912 LiuHai 80 ③删除的数据 学号姓名成绩 99812 liulifang 91 运行结果

三、程序清单 本程序包含creatlist.cpp、insert.cpp、del.cpp、output.cpp、main.cpp、头文件.h六个文件

#include #include"头文件.h" int n; student *creatlist() { student *head; student *p1; student *p2; n=0; head=NULL; p1=new(student); //创建一个新结点 p2=p1; cin>>p1->num>>p1->name>>p1->score; while(p1->num!=0) //链表建立过程终止的判定条件{ n++; head=p1; else p2->next=p1; //原链表结点指向新建结点p2=p1; p1=new(student); cin>>p1->num>>p1->name>>p1->score; } delete(p1); p2->next=NULL; return head; //返回表头 } 2、insert.cpp文件清单 #include #include"头文件.h" student *insert(student *head,student *t) { student *p0; //待插入点 student *p1; student *p2; //p0插入p1之前,p2之后p1=head; p0=t; if(p1==NULL) //原链表是空表 { head=p0; p0->next=NULL; } else

C语言程序设计基于链表的学生成绩管理系统

华北科技学院计算机系综合性实验 实验报告 课程名称C语言程序设计 实验学期2011至2012学年第二学期 学生所在系部计算机系 年级2011专业班级计算机科学与技术B-111 学生姓名学号 任课教师 实验成绩 计算机系制

实验报告须知 学生上交实验报告时,必须为打印稿(A4纸)。页面空间不够,可以顺延。 学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、内 容、结果及分析等。 教师根据本课程的《综合性实验指导单》中实验内容的要求,评定学生的综合性实验 成绩;要求在该课程期末考试前将实验报告交给任课教师。综合性实验中,所涉及 的程序,文档等在交实验报告前,拷贝给任课教师。任课教师统一刻录成光盘,与 该课程的期末考试成绩一同上交到系里存档。 5、 未尽事宜,请参考该课程的实验大纲和教学大 纲。 1、 2、 3、 教师应该填写的内容包括:实验成绩、教师评价等。 4、

《c语言程序设计》课程综合性实验报告开课实验室:基础五2012年7月6日 实验题目基于链表的学生成绩管理系统、实验目的 1、掌握链表的创建、遍历显示和清除; 2、掌握链表数据的文件保存、读取; —、设备与环境 微型计算机、VC++6.0 三、实验内容 1、定义结构体,创建链表 structxs node in txh;

charxm[15]; in tgs; in tyy; in twl; structxs no de* next; }; 2、根据以上链表结点结构,实现以下功能 a、学生学号、姓名、各门成绩的录入; b、链表数据显示及清除; C、链表数据的文件保存与读取; 四、实验结果及分析 1、运行结果

链表实现学生信息菜单管理系统

链表实现学生信息菜单管理 系统 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

实验名称:链表实现学生信息菜单管理系统 一、实验目的: 1、掌握顺序表结构的实现方式; 2、掌握顺序表常用算法的实现; 3、熟悉利用顺序表解决问题的一般思路; 4、参照给定的顺序表的程序样例,验证给出的顺序表的常见算法,领会顺序表结构的优点和不足。 二、实验内容: 1、编程完成顺序表的基本操作:建立、删除、查找及显示。 2、按要求完成学生名册管理程序的编写和调试。 三、实验结果: 1、创建: 2、删除:

3、添加: 4、退出: 四、实验中遇到的问题及解决方法: 问题一: 地址传递出错 解决方案: 参考网上资料代码。 问题二: 创建时,停止暂停 解决方案: 输入学号为零时停止输入 问题三: 创建时需要学号姓名成绩都为零才能停止创建 解决方案:占无解决方案 五、实验心得体会: 链表中指针的使用要注意指针的性质,确保地址正确传递,要改变的值正确改变。在编程过程中很容易出现地址传递出错的问题,需要有耐心慢慢排查故障,解决故障。

通过本次实验让我明白了链表的操作使用,加深了我对链表的理解,同时也通过不断地练习提高了编程能力,链表的掌握对于这门课程而言十分重要,在今后的学习中,我需要更加努力,才能更好的掌握和使用链表。 源代码: #include #include #define NULL 0 #define LEN sizeof(struct student) struct student { int num; char name[20]; float score; struct student *next; }; int n; struct student *Create() { struct student *head; struct student *p1 = NULL; struct student *p2 = NULL; n = 0; p1 = (struct student *) malloc (LEN); p2 = p1; if(p1==NULL) { printf ("\nCann't create it, try it again in a moment!\n"); return NULL; } else { head = NULL; printf("请输入第%d个学生学号姓名成绩:\n",n+1); scanf("%d %s %f",&(p1->num),p1->name,&(p1->score)); } while(p1->num != 0) { n += 1; if(n == 1) { head = p1; p2->next = NULL; } else

学生成绩管理系统完整版C程序设计源代码不用链表有添加删除查找修改等功能

/*4. 定义一个结构体数组,存放 10 个学生的学号,姓名,三门课的成绩,编写一程序。应用简单菜单和子函数调用方式实现下面的功能: (1)从键盘输入 10 个学生的以上内容,存入文件 stud.txt (2)浏览显示成绩表(要求显示格式成绩时,格式较规范) (3)将 10 个学生按照平均分数从高到低进行排序,结果存入文件 stud1.txt ( 4)输入任意的一个课程名,分数从高到低进行排序,结果存入文件stud2.txt ( 5)向文件 stud1.txt 中插入一个记录,成绩排序不变,结果存入文件 stud1.txt #include "stdio.h" /* 头文件名*/ */ #inelude "stdlib.h" /*头文件名,因为程序中用到了exit(结束程序)和函数*/ #include "string.h"/*头文件名,因为程序中用到了字符串函数 */ #define N 1000 定义结构体模块 struct student { long num; /* 定义学生学号为长整型 */ char name[20]; /* 定义姓名为字符型,占 12 个字符*/ float math,English,physics,total,average; float TOT_math,TOT_English,TOT_physics,TOT_total,TOT_aver; float aver_math,aver_English,aver_physics,aver_total,aver_average; }student; /* 定义结构体名称为 student*/ 输入初始值模块 void input(struct student *p,int size){ int i; for(i=0;i

数据结构 用链表实现学生信息管理系统

3、4、

7、

#include using namespace std; //实现线性表的链式存储结构的类型定义 typedef int Elemtype; #define OK 1; #define ERROR -1; struct NODE //结点类型 { Elemtype elem; NODE *next; }; struct LINK_LIST //链表类型 { NODE *head; }; //典型操作的算法实现 //初始化链表L int InitList(LINK_LIST *L) { L->head = (NODE*)malloc(sizeof(NODE)); //为头结点分配存储单元if (L->head) {L->head->next=NULL; return OK;} else return ERROR ; } //销毁链表L void DestoryList(LINK_LIST *L) { NODE *p; while (L->head) //依次删除链表中的所有结点 { p=L->head; L->head=L->head->next; free(p); } } //清空链表L void ClearList(LINK_LIST *L) { NODE *p; while (L->head->next){ //p指向链表中头结点后面的第一个结点

p=L->head->next; L->head->next=p->next; //删除p结点 free(p); //释放p结点占据的存储空间 } } //求链表L的长度 int ListLength(LINK_LIST L) { NODE *p; int len; len=0; for(p=L.head;p->next!=NULL; p=p->next) len++ ; return(len); } // 判链表L空否。 int IsEmpty(LINK_LIST L) { if (L.head->next==NULL) return true; else return false; } //()通过e返回链表L中第i个数据元素的内容 void GetElem(LINK_LIST *L,int i,Elemtype *e) { NODE *p; int j; if (i<1||i>ListLength(*L)) exit(-1); //检测i值的合理性 for (p=L->head,j=0; j!=i; p=p->next,j++); p = L->head; for (j=0; jnext; *e=p->elem; //将第i个结点的内容赋给e指针所指向的存储单元中 } //在链表L中检索值为e的数据元素 NODE *LocateELem(LINK_LIST L,Elemtype e) { NODE *p; for (p=L.head->next;p&&p->elem!=e;p=p->next); //寻找满足条件的结点return(p);

学生成绩管理(链表)

---------------------------------------------------------------最新资料推荐------------------------------------------------------ 学生成绩管理(链表) 实验一线性表学生成绩管理(链表) 05111341 班李凌豪1120191263 1.需求分析 1.1.问题重述(1)问题描述设计一个学生成绩管理系统。 主要实现学生信息的录入、添加、修改、删除、排序和查看等基本功能。 (2)具体要求编写一个学生成绩管理程序。 学生成绩以一个学生一条记录的形式存储,每个学生记录包含的信息有序号、学号、姓名及 5 门功课的成绩。 具体功能如下: a. 获取学生成绩。 可以从文件中读取成绩,也可直接录入。 查询学生成绩,输入学生学号或姓名等信息后,显示学生在成绩单中的位置及所有信息。 b. 添加学生成绩,在学生成绩单的指定位置添加学生成绩信息。 c. 修改学生成绩,在学生成绩单中,修改指定学生的成绩信息。 d. 删除学生成绩,在学生成绩单中,删除指定学生的成绩信息。 e. 保存文件。 当学生成绩单发生添加、修改、删除等变化后,都要对最终结果进行保存。 1 / 12

(3)数据结构及算法分析学生成绩可以用单链表存储,方便随时插入和删除学生成绩记录,实现动态管理。 一个学生作为一个结点。 使用链表的基本算法实现学生成绩单的各项管理功能。 1.2.问题分析本题要求用单链表的知识编程实现对学生成绩的管理。 要求既要能从文件读取学生成绩,也可以手动键入学生成绩,要建立单链表来储存获取的学生成绩。 然后,要对获取的学生成绩单进行添加、修改、删除等操作,在操作完后,还要进行保存,保存修改后的成绩单至文件。 2.概要设计 2.概要设计 2.1.抽象数据类型的定义根据链表的特点,本程序将一个学生的成绩及信息作为一个节点,并以此作为本程序的抽象数据类型,具体定义语句如下: struct stu{ char name[20]; char xuehao[10]; int pro1,pro2,pro3,pro4,pro5; struct stu *next; }; 一个节点包括的内容有: 字符型数组 name,用于存放学生的姓名;字符型数组 xuehao 用于存放学生的学号;整形变量 pro1,pro2,pro3,pro4,pro5,用于存储学生的五科成绩(本程序假设各科成绩均为整数);指针变量 next 为节点的指针域,用于存储所指向的下一个节点的地址。 考虑到序号在修改添加等操作时变动较大,故不作为链表节点的数据域内容,而是以节点的序号来作为一个隐藏的数据。

用链表与文件实现学生成绩管理系统

PINGDINGSHANUNIVERSITY 软件学院 项目报告书 课程:专业实训 项目名称: 学生成绩信息管理系统 专业年级: 软件项目10级 姓名: 蒋磊 学号: 101530147 指导教师: 马飞 2018年06月09日 摘要学生成绩管理系统是典型的信息管理系统,是学校教务管理的重要组成部分,其处理信息量很大。本课程设计是用C++实现对学生的成绩管理作一个简单的模拟,实质是建立学生成绩单链表,每条记录由姓名、学号与成绩组成,即链表中每个结点由4个域组成,分别为:学号、姓名、成绩、存放下一个结点地址的next域。用菜单选择操作方式完成五项功能分别写成五个函数,插入学生成绩对应建立学生单链表的功能,输出全部学生成绩记录,后三个功能分别对应单链表的查询、修改与删除三大基本操作。该系统中的数据采用线性表中的链式存储结构即单链表来存储,用结构体类型和类类型定义每个学生记录并采用外部文件方式记录数据简便数据的读取与保存。 1 引言1 1.1 课程设计目的1 1.2课程设计内容1 1.3课程设计目标2 2系统需求与功能分析3 2.1 系统需求分析3

2.2系统功能分析3 2.3系统性能分析4 3总体结构设计4 3.1系统的结构设计4 3.2系统管理流程图5 4 系统详细设计和系统实现5 5 系统测试9 6 结束语11 参考文献12 附录1:结构化设计源程序清单12 1 引言 1.1 课程设计目的 学生成绩管理是一个学校不可缺少的部分,它的内容对于学校的管理者和学生以及学生家长来说都至关重要,所以一个良好的学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。学生成绩管理系统对学校加强学生成绩管理有着极其重要的作用.因为各个大学都在持续扩招,学生的数量日益庞大,对于如何管理如此庞大的学生成绩数据显得更为复杂,传统的手工成绩管理不仅工作量大,而且容易出现问题,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。已不能适应时代的发展。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有手工管理所无法比拟的优点。例:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高管理者管理的效率,也是学校走向科学化、正规化管理,与世界接轨的重要条件。 因此,开发设计这样一套学生成绩管理软件成为很有必要的事情。 该学生成绩管理系统采用C++语言开发研制,针对学生成绩及其数据特点,可以全面实现对学生成绩的插入、查询、修改、删除和输出等功能的计算机管理。它能使学生成绩数据的工作人员从繁重的工作中解脱出来,大大减轻了工作量,减少人为的工作失误,全面提高学生成绩管理的效率,从而使学校对于学生成绩的管理水平和技术水平跃上一个新的台阶。 1.2课程设计内容 在程序设计中,可以用许多种数据结构来处理数据存储,对于该学生管理系统而言

相关主题
文本预览
相关文档 最新文档