最新数据结构学生成绩管理系统Word格式.docx

上传人:b****2 文档编号:14308708 上传时间:2022-10-22 格式:DOCX 页数:46 大小:298.11KB
下载 相关 举报
最新数据结构学生成绩管理系统Word格式.docx_第1页
第1页 / 共46页
最新数据结构学生成绩管理系统Word格式.docx_第2页
第2页 / 共46页
最新数据结构学生成绩管理系统Word格式.docx_第3页
第3页 / 共46页
最新数据结构学生成绩管理系统Word格式.docx_第4页
第4页 / 共46页
最新数据结构学生成绩管理系统Word格式.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

最新数据结构学生成绩管理系统Word格式.docx

《最新数据结构学生成绩管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《最新数据结构学生成绩管理系统Word格式.docx(46页珍藏版)》请在冰豆网上搜索。

最新数据结构学生成绩管理系统Word格式.docx

学生姓名_

指导教师__________

 

1系统分析

1.1系统性能分析

1、操作界面美观、友好,有必要的容错处理(如:

能判定学号位数和只能由0~9数字字符组成、能判定合理的成绩0~100等);

2、查询应根据查询条件合理选择先进的查询方法

3、排序算法要求采用堆排序实现;

4、分数段统计结果要求保存在单独的文件中;

1.2系统功能需求分析

本系统应具有以下功能:

1、提供身份验证,和使用系统的权限设置、判定。

2、(教师用户)能实现本班同学各学期各科成绩的录入、编辑,数据必须保存在文件中,以便反复使用。

3、(学生用户)提供对学号或姓名,各学科成绩的查询。

4、(学生和教师用户)能按各学期、各学科分数排序输出(每一科都要能排序输出)。

5、(教师用户)能统计各科成绩分数段的分布(60以下、60~70、70~80、80~90、90~100)情况,并输出。

1.3数据分析

1.3.1.问题分析和任务定义:

根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?

(而不是怎么做?

)限制条件是什么?

1.3.2.逻辑设计:

对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。

逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;

1.3.3.详细设计:

定义相应的存储结构并写出各函数的伪码算法。

在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。

详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;

1.3.4.程序编码:

把详细设计的结果进一步求精为程序设计语言程序。

同时加入一些注解和断言,使程序中逻辑概念清楚;

1.3.5.程序调试与测试:

采用自底向上,分模块进行,即先调试低层函数。

能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。

调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;

2系统设计

2.1总体设计

按系统分析的功能要求将系统划分为以下几个主要功能模块:

1---学生记录录入

2---学生成绩查询:

按学号查询、按姓名查询

3---删除记录

4---排序

5---修改数据

6---显示全部学生记录

7---统计

8---更换用户

9---保存记录

0---退出系统

2.2详细设计

2.2.1界面设计

1、菜单设计

菜单主要有学生成绩录入、成绩查询、成绩排序、更换用户……设计时主要采用switch-case这个结构,从而选择调用相应的函数。

子菜单也是利用这个原理方法设计的

2、信息显示界面的设计

信息显示主要用了for(;

;

)循环,输出信息,并设置好输出格式,运行时如下:

2.2.2各功能模块的设计

主函数主要作用是控制调用其它函数协调工作。

其流程图如下:

查询窗口

排序窗口

按总分排序

修改窗口

删除窗口

统计窗口

统计结果

2.2.2系统编码设计

3.1预处理命令及结构体类型的声明

#include"

stdio.h"

stdlib.h"

string.h"

windows.h"

#defineM100

3.2main函数

voidmain()

{

welcome();

IO_ReadInfo();

Login();

}

3.3程序代码

voidLogin();

/*<

<

***定义学生结构体***>

>

*/

typedefstructstu{

charStuID[12];

charStudName[12];

floatScore[5];

floatAv;

floatSum;

inttag;

}Stud;

Studstud[M];

intnum=0;

***计算总分***>

*/

floatsum(Studstud)

intj;

floatsum=0;

for(j=0;

j<

5;

j++)

{

sum+=stud.Score[j];

}

returnsum;

***通过学号返回数组下标***>

intStudent_SearchByIndex(charid[])

{

inti;

for(i=0;

i<

num;

i++)

{

if(strcmp(stud[i].StuID,id)==0)

{returni;

}

}

return-1;

***通过姓名返回数组下标***>

intStudent_SearchByName(charname[])

if(strcmp(stud[i].StudName,name)==0)

return-1;

***解决学号冲突***>

intConflictID(Studstud[],intn,charID[])

for(i=0;

i++)

if(i!

=n)

if(strcmp(stud[i].StuID,ID)==0)

{

returnTRUE;

break;

}

if(i==num)

{returnFALSE;

***显示单条学生记录***>

voidStudent_DisplaySingle(intindex)

printf("

\n*◆◆◆◆◆◆◆◆◆◆◆◆学生成绩单◆◆◆◆◆◆◆◆◆◆*\n"

);

\t\t姓名:

%s>

\t学号:

"

stud[index].StudName,stud[index].StuID);

\n\t\t计算机操作系统:

%.2f>

(&

stud[index])->

Score[0]);

\n\t\t大学英语:

Score[1]);

\n\t\t基础会计:

Score[2]);

\n\t\t数据结构:

Score[3]);

\n\t\tJava语言设计:

Score[4]);

\n\t\t总分:

Sum);

\n\t\t平均分:

\n\n\n"

Av);

***显示学生信息***>

voidStudent_Display()

\n%-4s%s\t%-8s%-10s%-10s%-10s%-10s%-10s%-9s\n"

"

编号"

学号"

姓名"

操作系统"

大学英语"

会计基础"

数据结构"

Java设计"

总分"

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

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

i+1,(&

stud[i])->

StuID,(&

StudName,(&

Score[0],(&

Score[1],(&

Score[2],(&

Score[3],(&

Score[4],(&

***插入学生信息***>

voidStudent_Insert()

charc;

\n"

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n\n\n"

while

(1)

printf("

请输入学号:

scanf("

%s"

&

stud[num].StuID);

while(ConflictID(stud,num,stud[num].StuID))

getchar();

学号已经存在\2\n请重新输入学号:

"

scanf("

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

当前位置:首页 > 自然科学 > 化学

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

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