学生成绩管理系统(链表版)Word文档格式.doc

上传人:wj 文档编号:3619958 上传时间:2023-05-02 格式:DOC 页数:47 大小:1.23MB
下载 相关 举报
学生成绩管理系统(链表版)Word文档格式.doc_第1页
第1页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第2页
第2页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第3页
第3页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第4页
第4页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第5页
第5页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第6页
第6页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第7页
第7页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第8页
第8页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第9页
第9页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第10页
第10页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第11页
第11页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第12页
第12页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第13页
第13页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第14页
第14页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第15页
第15页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第16页
第16页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第17页
第17页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第18页
第18页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第19页
第19页 / 共47页
学生成绩管理系统(链表版)Word文档格式.doc_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

学生成绩管理系统(链表版)Word文档格式.doc

《学生成绩管理系统(链表版)Word文档格式.doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统(链表版)Word文档格式.doc(47页珍藏版)》请在冰点文库上搜索。

学生成绩管理系统(链表版)Word文档格式.doc

按姓名修改某位同学的成绩

输入同学的相关信息

查找

按姓名删除某位同学的成绩

初始学生成绩排序

浏览所有同学的信息及排名

插入新的成绩

查看初始学生总分及平均分

保存最终结果到可浏览文件

退出系统

主菜单

统计

学生信息录入

2.2系统的全局变量和常量

系统全局变量intn;

chara;

头文件:

#include"

stdio.h"

time.h"

string.h"

stdlib.h"

conio.h"

2.3系统的函数介绍

把系统中的每个函数的原型列出来,解释一下函数的返回值及形式参数的含义;

最后,再介绍一下每个函数的功能。

voidCreate(intn)//创建链表

voidList()//输出链表内容

voidlist()//输出链表所有内容

voidsave()//文件保存

voidsave1()//文件保存

voidread()//文件读取

voidread1()//文件读取

voidSAVE(){//保存到可浏览文件

voidSAVE1()//保存到可浏览文件

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

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

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

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

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

voidsearch()//查找

voidmodify_choose(Lstu*p,intn)//选择修改方式

voidmodify()//按姓名修改

voidInsert()//按序号插入

voiddel()//按姓名删除

voidstatistics()//成绩统计

intmenu()//菜单(主界面)

第3章第3章详细设计

按函数,写出函数的原型声明,并画出每个函数的程序流程图。

3.1主函数设计

函数

3.2录入函数设计

添加的信息包括学号(不允许重复)、姓名(不允许重复)、语文成绩、数学成绩和英语成绩,如流程图所示:

开始插入数据

输入学生成绩信息

调用类成员函数采用单链表保存数据

结束

调用类成员函数保存数据到文件中

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

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

3.3排序函数设计

可按照学号、语文成绩、数学成绩、英语成绩和平均分分别排序。

如图所示:

输入排序编号

判断

抱歉,没有此排序

输出学生的信息

排序开始

N

Y

3.4查找函数设计

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

输入要查找姓名

抱歉没有该学生

输出该学生的信息

按姓名

查找开始

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

在单链表中,即使知道被访问结点的位置i,也不能像顺序表那样直接按序号访问,而只能从头指针出发,设置一个工作指针p,顺next域逐个结点往下搜索。

当p指向某个结点时判断是否为第i个结点,若是则查找成功;

否则,将工作指针p后移,即将p指向原来所指结点的后继结点。

直到p为NULL时查找失败。

单链表查找过程如图4.4所示。

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

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

(3)学生成绩修改模块

3.5修改函数设计

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

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

返回主菜单

开始修改操作

输入姓名

姓名一致

执行修改功能

3.6插入函数设计

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

开始插入操作

选择要插入的位置

判断插入的位置

执行插入功能

3.7删除函数设计

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

其流程图如下:

开始删除操作

姓名姓名一致

执行删除功能

删除操作定义为将单链表的第i个结点删去。

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

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

3.8保存函数设计

输入学生信息应保存到学生基本信息文件中,修改后的信息将可保存到可浏览的文件,如图所示:

开始保存操作

输入保存到文件名

判断文件名的格式

3.9显示函数设计

从单链表表头遍历整个单链表,将所有数据输出。

其部分代码如下:

voidread(){//文件读取

FILE*fp;

Lstu*p,*p1;

if((fp=fopen("

初始值二进制.txt"

"

rb"

))==NULL)

{

printf("

Cannotopenthefile\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->

fclose(fp);

}

3.10退出函数设计

第4章第4章测试

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

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

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

测试环境如下:

l硬件:

P4C2.4GHz,500GB硬盘,2内存;

l软件:

Windows7PersonalSP1,分辨率1366*768,MicrosoftVisualC++6.0。

运行的主界面如图所示:

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

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

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

④查找,如图所示:

按姓名查找:

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

按平均成绩进行排序:

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

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

选择修改数学成绩:

⑧按姓名删除某位学生的成绩,如图所示:

⑨浏览所有学生的信息及排名,如图所示:

⑩保存最终结果到可浏览的文件中,如图所示:

⑾统计,如图所示:

总结

写这次实验课的收获和感想。

参考文献

附录程序源代码

//程序名称:

xsglxt.CPP

//程序功能:

采用链表与文件实现一个简单的学生成绩管理系统。

#defineNULL0

typedefstructLstu{

intcla,ID;

longnum;

charname[20];

charsex[20];

floatchinese,math,english;

floatsum,ave;

Lstu*next;

}Lstu;

Lstu*head;

voidCreate(intn){//创建链表

Lstu*p,*s;

inti;

for(i=0;

i<

n;

i++){

if(i==0){

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

printf("

请输入第%d个人的信息\n"

i+1);

请输入班级:

"

scanf("

%d"

&

p->

cla);

printf("

请输入学号:

%ld"

num);

printf("

请输入姓名:

%s"

p->

name);

请输入性别:

sex);

请输入语文成绩:

%f"

chinese);

请输入数学成绩:

math);

请输入英语成绩:

english);

p->

sum=p->

chinese+p->

math+p->

english;

ave=p->

sum/3;

head=p;

if(n==1){

p->

next=NULL;

}}

else{

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

s->

s->

s->

sum=s->

chinese+s->

math+s->

ave=s->

next=s;

p=s;

}

voidList(){//输出链表内容

Lstu*p;

inti=0;

p=head;

if(p==NULL){

printf("

Sorry,It'

saEmptyList\n"

else{

printf("

\n\n\t------------------------------------------------------------------\n"

\t%-5s%-5s%-10s%-8s%-7s%-10s%-10s%-10s\n"

序号"

班级"

学号"

姓名"

性别"

语文成绩"

数学成绩"

英语成绩"

\t------------------------------------------------------------------\n"

while(p){i++;

ID=i;

printf("

\t%-4d%-5d%-7d%-8s%-7s%-10.2f%-10.2f%-10.2f\n"

ID,p->

cla,p->

num,p->

name,p->

sex,p->

chinese,p->

math,p->

p=p->

}

}

voidlist(){//输出链表所有内容

\n----------------------------------------------------------------------------------\n"

%-5s%-5s%-7s%-8s%-7s%-10s%-10s%-10s%-8s%-8s\n"

"

总分"

平均分"

----------------------------------------------------------------------------------\n"

%-4d%-6d%-12d%-8s%-7s%-10.2f%-10.2f%-10.2f%-8.2f%-8.2f\n"

sex,

p->

english,p->

sum,p->

ave);

voidsave(){//文件保存

Lstu*p;

p=head;

wb"

Cannotopenthefile"

}

while(p){

fwrite(p,sizeof(Lstu),1,fp);

p=p->

fclose(fp);

voidsave1(){//文件保存

初始值二进制备用.txt"

voidread1(){//文件读取

voidSAVE(){//保存到可浏览文件

inti=0;

初始值可浏览文件.txt"

w+"

fprintf(fp,"

\t------------------------------------------------------------------\n\n"

i++;

fprintf(fp,"

name,

voidSAVE1(){//保存到可浏览文件

charfilename[20];

printf("

请输入保存到可浏览文件的文件名:

scanf("

filename);

if((fp=fopen(filename,"

%-5s%-5s%-7s%-8s%-7s%-10s%-10s%-

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 外语学习 > 韩语学习

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2