潘治刚成绩管理系统详细设计文档格式.docx

上传人:b****5 文档编号:21210860 上传时间:2023-01-28 格式:DOCX 页数:14 大小:120.25KB
下载 相关 举报
潘治刚成绩管理系统详细设计文档格式.docx_第1页
第1页 / 共14页
潘治刚成绩管理系统详细设计文档格式.docx_第2页
第2页 / 共14页
潘治刚成绩管理系统详细设计文档格式.docx_第3页
第3页 / 共14页
潘治刚成绩管理系统详细设计文档格式.docx_第4页
第4页 / 共14页
潘治刚成绩管理系统详细设计文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

潘治刚成绩管理系统详细设计文档格式.docx

《潘治刚成绩管理系统详细设计文档格式.docx》由会员分享,可在线阅读,更多相关《潘治刚成绩管理系统详细设计文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

潘治刚成绩管理系统详细设计文档格式.docx

本软件才用结构体来保存一条学生的记录,然后用一个链表来保存一个学生信息表,结构体代码如下:

成绩管理表结构代码:

typedefchar*pChar;

typedefstructGradeInfo

{

intnID;

pCharSubject[15];

intGrade[15];

structGradeInfo*next;

}*pGrade;

学生基本信息结构体代码:

typedefstructStudentInfo

charname[20];

charsex[3];

intage;

charClassName[20];

structStudentInfo*next;

}*pSTUDENT;

3.2对学生基本信息数据的管理

3.2.1删除指定学号的记录

当用户选择这个功能以后,只需要按提示输入学生学号,系统自动调用下面的DeleteStudent函数删除指定学生信息。

数据流程图:

intDeleteStudent(pSTUDENTlink,intID)

pSTUDENTp=stlink,p2=NULL;

while(p->

next!

=NULL)

{

if(p->

next->

nID==ID)

{

p2=p->

next;

p->

next=p2->

//这句话就已经让值为ID的结点移出链表了

free(p2);

return0;

}

p=p->

//如果这个结点不是要删除的节点就继续往下移动

}

return-1;

}

3.2.2插入一条学生信息

当用户选择插入学生信息这项功能以后,系统就调用下面函数,要求用户输入学生信息,保存到结构体中,然后插入到链表中,等待保存到文件中。

intInsertStudent(pSTUDENTlink,intID,charname[],charsex[],intage,charclassname[])

st->

next=stlink->

stlink->

next=st;

这里采用的是头插法

3,.2.3修改一条学生基本信息

当用户需要修改学生信息的时候,系统需要用户输入该学生的所有信息然后调用ModefyStuInfo函数修改原有能容,函数定义如下:

intModifyStuInfo(pSTUDENTlink,intID,charname[],charsex[],intage,charclassname[])

Link->

nID=ID;

Strcopy(link->

name,name);

sex,sex);

classname,classname);

age=age;

3.3对学生成绩信息数据的管理

3.3.1删除一条学生成绩信息

intDeleteStudent(pGradelink,intID)

pSTUDENTp=stlink,p2=NULL;

//这句话就已经让值为ID的结点移出链表了

//如果这个结点不是要删除的节点就继续往下移动

3.3.2插入一条学生成绩信息

在这里插入成绩信息的时候需要在学生信息表查找看看学生信息表中有没有该学生的信息,如果没有就不能插入。

数据流程图:

intInsertStudent(pGradelink,intID,charsubject[],intgrade)

If(seek(student,ID)=-1)

Printf(该生并不存在,清检查后重新输入:

);

Else

Gre->

next=link->

Link->

next=gre;

3.3.3查询并修改一条学生成绩信息

intModifyStuInfo(pGradelink,intID,charsubject[],intgrade)

subject,subject);

grade=grade;

3.4对学生成绩信息数据统计

3.4.1读取学生信息

读取学生信息的时候,就相当于是建立一个链表的时候,读出来的数据放到一个结构体变量中,然后将这个结构体变量插入到链表中去。

当用feof()来判断文件中的数据是否读完

intReadFlieofStu(pSTUDENTStudent)

pGradegra;

FILE*fp=NULL;

fp=fopen("

StudentGradeInfo.txt"

"

rb"

if(fp==NULL)

printf("

目前没有学生信息!

\n"

return-1;

else

gra=newGRADE;

fread(gra,sizeof(GRADE),1,fp);

while(!

feof(fp))

gra->

next=Grade->

Grade->

next=gra;

fread(gra,sizeof(GRADE),1,fp);

fclose(fp);

}

3.4.2读取学生成绩

读取学生信息的过程和上面一个函数的原理一样,这里就不说了

intReadFileofGrade(pGradeGrade);

3.4.3总分成绩第一学生信息

这里直接用比较的方法找出链表中最高分是多少,然后根据这个分数把所有这个分数的同学的信息都显示出来:

intTotalFirst(pGradeGrade)

Intdata=0;

pGradep=Grade->

While(p!

=null)

If(p->

grade>

data)

Data=grade;

P=p->

3.4.4单科成绩第一学生信息

这个函数分别显示每一个科目分数最高的学生信息,采用的算法和intTotalFirst(pGradeGrade)函数的算法基本一致。

只是要多查找几次而已,这里也就不多说了.

intSingleFirst(pGradeGrade,charSubject[])\

{}

3.4.5不及格学生成绩信息

这里需要因为不及格的学生可能不止一个,所以需要换回一个链表,然后把链表的信息输出来,这里主要涉及的算法就是查找和添加,把分数小于及格分数线的学生信息添加到另一个链表中。

pGradeflunk(pGradeGrade);

pGradelink;

initLink(link);

pGradep=Grade->

next,p2=NULL;

Grade<

60)

P2=p;

P2->

next=p2;

P=p->

nxet;

3.4.6不及格人数

这个函数算法和上面一样,只是统计的是人数,相对还要简单很多。

intflunkNum(pGradeGrade);

3.4.7显示所有学生的成绩

这里只需要遍历整个链表,然后把所有人的成绩信息输出来就可以了。

voidprintAllGrade(pGradeGrade);

Printf("

……"

……);

3.4.8可以分组统计学生成绩并输出到屏幕

voidprintBySubject(pGradeGrade,charSubject[]);

voidprintByGrade(pGradeGrade,charClassName[15]);

voidprintByClass(pGradeGrade);

3.4.9按总分排序

只需要调用该函数就直接把排序以后的结果显示出来,但是并不改变原来表中的顺序,并把排序以后的结果临时存储起来。

pGradeSortByTotal(pGradeGrade);

这个函数采用的算法就是用快速排序法!

将链表中的结点按总分进行排序然后输出。

这里最重的就是设计到结点之间的交换,最好不需要把结点的内容拿出来互换,而是把结点互换。

两结点交换的代码如下:

next,p2=gradeNode;

P-next=p2->

P2->

P->

这段代码实现的就是把p2结点和p2的下一个结点交换位置

3.4.10安单科排序

pGradeSortBySubject(pGradeGrade,charSubject[]);

单科排序的算法和总分排序的算法一样,只是需要用户输入是按哪一科的成绩来排序,或者哪两科的成绩来排序;

3.4.11按学号排序

只需要调用该函数就直接把排序以后的结果显示出来,但是并不改变原来表中的顺序,并把排序以后的结果临时存储起来。

pGradeSortByStudentId(pGradeGrade);

这个算法也一样

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

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1