学生的的成绩信息管理系统doc.docx

上传人:b****3 文档编号:5060164 上传时间:2022-12-12 格式:DOCX 页数:25 大小:21.34KB
下载 相关 举报
学生的的成绩信息管理系统doc.docx_第1页
第1页 / 共25页
学生的的成绩信息管理系统doc.docx_第2页
第2页 / 共25页
学生的的成绩信息管理系统doc.docx_第3页
第3页 / 共25页
学生的的成绩信息管理系统doc.docx_第4页
第4页 / 共25页
学生的的成绩信息管理系统doc.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

学生的的成绩信息管理系统doc.docx

《学生的的成绩信息管理系统doc.docx》由会员分享,可在线阅读,更多相关《学生的的成绩信息管理系统doc.docx(25页珍藏版)》请在冰豆网上搜索。

学生的的成绩信息管理系统doc.docx

学生的的成绩信息管理系统doc

 

西安文理学院

 

信息工程学院

 

软件编程课程设计报告

 

设计题目:

学生成绩管理系统课程设计

 

学生学号:

07

 

专业班级:

物联网工程一班

 

学生姓名:

张旺阳

 

学生成绩:

 

指导教师(职称):

 

课题工作时间:

2015-11-25

至2015-12-9

 

信息工程学院软件编程课程设计任务书

 

学生姓名张旺阳学号07专业班级物联网工程一班

 

设计题目学生成绩管理系统设计

学生成绩信息包括:

学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)。

主要功能:

(1)能按学期、按班级完成对学生成绩的录入、修改

(2)能按班级统计学生的成绩,求学生的总分及平均分,设计并输出统计报

(3)能查询学生成绩,不及格科目及学生名单

(4)能按班级输出学生的成绩单

(5)能按班级,按课程,对学生成绩进行排序。

 

指导教师:

 

日期:

2015年11月25日

 

学生姓名:

一班

合计

类别

分值

平时

10

表现

 

完成

30

情况

 

报告

35

质量

 

答辩

25

情况

 

总评成绩:

 

成绩评定表

 

张旺阳学号:

07专业/班级:

物联网工程

 

各项

实际

合计

评分标准

得分

备注

分值

得分

按时参加设计指导,无违反纪律情

10

况。

按设计任务书的要求完成了全部

20任务,能完整演示其设计内容,符合要求。

能对其设计内容进行详细、完整的

10介绍,并能就指导教师提出的问题进行正确的回答。

报告文字通顺,内容翔实,论述充

分、完整,立论正确,结构严谨合

15

理;报告字数符合相关要求,工整

规范,整齐划一。

课题背景介绍清楚,综述分析充

5

分。

设计方案合理、可行,论证严谨,

5

逻辑性强,具有说服力。

符号统一;图表完备、符合规范要

5

求。

能对整个设计过程进行全面的总

5

结,得出有价值的结论或结果。

在规定时间内能就所设计的内容

10进行阐述,言简意明,重点突出,论点正确,条理清晰。

在规定时间内能准确、完整、流利

15

地回答教师所提出的问题。

 

 

指导教师:

(签字)

 

日期:

年月日

 

1.概述···························

1

课题背景·························

1

系统功能·························

3

设计要求························

4

 

2.概要设计·························5系统功能模块·······················5各模块流程图·······················6

 

3.详细设计·························8程序中使用的数据结构··················8

 

函数列表························10

 

4.设计结果与分析······················12

 

5.总结与体会························15

 

参考文献···························附录主要程序代码······················

X

 

X

 

课题背景

随着计算机的普及,计算机在生活中得到越来越多的应用,其中在计算机上

运行的各种软件在解决生活中的实际问题中起到重大的作用,而目前在编写应用程序时,c++以其高效及灵活性成为大多数程序设计者的首选,其次对于普通用户者,利用c++语言设计出适用的小型软件对解决生活中的繁琐问题有很大的作用。

 

在学校或班级,教师经常会对某次考试中的所有学生的成绩进行统计和管理,由于学生数目经常繁多,所以在处理统计学生总成绩和平均成绩时工作会相对繁

琐,所以针对这种情况,同时我分析了成绩管理所需要的功能,在利用C++语言及VC++程序运行平台之下,设计一种小型的学生成绩管理系统。

系统功能

1.录入

2.修改

3.求总分

4.求平均分

5.查询

6.排序

设计要求

学生成绩信息包括:

学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)。

主要功能:

(1)能按学期、按班级完成对学生成绩的录入、修改

(2)能按班级统计学生的成绩,求学生的总分及平均分,设计并输出统计

报表

(3)能查询学生成绩,不及格科目及学生名单

(4)能按班级输出学生的成绩单

(5)能按班级,按课程,对学生成绩进行排序。

要求:

使用二进制文件方式存储数据,系统以菜单方式工作

 

第二章概要设计

系统功能模块

(1)创建主菜单

(2)实现学生成绩信息录入

(3)实现学生成绩信息查询

(4)实现学生成绩信息修改

(一)修改某个学生的成绩

 

(a)按学期查询学生的成绩

(b)按班级查询学生的成绩

(c)按学号查询学生的成绩

(二)查询不及格的科目和学生名单

(5)实现学生成绩统计

(a)按班级统计学生的总分。

(b)按班级统计学生的平均分。

(6)实现学生成绩信息输出

(7)保存学生的成绩信息于文件

系统功能流程图

 

第三章详细设计

主要数据结构

typedefstructstudentMark

{

 

intterm;

intclasses;

charname[10];

intnumber;

charsex[7];

floatchinese;

floatmath;

floatenglish;

floatcomputer;

structstudentMark*next;

}MARK;

这是定义一个结构体,主要包括学期,班级,姓名,学号,性别,语文成绩,数

学成绩,英语成绩,计算机成绩,以及包括一个结构体指针。

另外还用了typedef

这个关键字。

因此,在程序的后面也可以用MARK来定义结构体变量或结构体指

针变量。

 

intterm;

定义学期,学期只能是第一学期或者第二学期。

例如int1

;则表示第一学期。

intclasses;

定义班级,班级只能是一班或者二班。

例如int2

;则是表示定义为二班。

charname[10];

定义姓名,在数组中存放字符串。

例如charname[]=“yang”;则该学生的姓名为yang

intnumber;

定义学号,例如int1;则该学生学号为

1号。

charsex[7];

定义姓别,其性别最大长度为7.

例如char

sex[]=“man”;说明该学生为男生。

同样可

以这样定义女生。

floatchinese;

定义语文成绩。

floatmath;

定义数学成绩。

floatenglish;

定义英语成绩。

floatcomputer;

定义计算机成绩。

structstudentMark*next;

定义一个结构体指针。

主函数

intmain();

主函数,程序的入口。

 

voidm(MARK*head);

主菜单的函数原型,在函数m(head)中主要有选择创建学生成绩信息,

查询学生成绩信息,修改学生成绩信息,统计学生成绩信息,输出学生成绩信息,

存储学生成绩信息于文件,以及退出体统等选项可供用户选择。

 

MARK*creat(void);

创建函数的函数原型,在函数creat()中用户可以输入初始的学生信息:

其中包括学生的学期、班级、姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息。

查询函数

voidsearchMark(MARK*head);

查询菜单的函数原型,在函数searchMark(head)中用户可以自由选择是查询某一个学生的成绩还是查询不及格学生的成绩。

而这通过调用函数searchMarkStusentone(head)和函数searchMarkFail(head)完成操作。

voidsearchMarkStusentone(MARK*head);

查询某个学生成绩的函数原型,在函数searchMarkStusentone(head)中用户可以按学号或班级或者是按学期来查找某个学生的成绩。

通过函数

searchnumber(head)和函数searchclasses(head)以及函数searchterm(head)完成操作。

voidsearchnumber(MARK*head)

按学号查找学生的函数原型,

;

voidsearchclasses(MARK*head);

按班级查找学生的函数原型,

voidsearchterm(MARK*head);

按学期查找学生的函数原型,

voidsearchMarkFail(MARK*head);

查询没有及格的学生的函数原型,通过这个函数可以查找学生不及格科目及学生名单。

修改函数

MARK*changeMark(MARK*head);

修改学生成绩信息的函数原型,可以修改学生的学期、班级、姓名、学号和

性别以及学生的语文、数学、英语和计算机等相关信息。

统计函数

voidconuntMark(MARK*head);

统计学生成绩的函数原型,在函数conuntMark(head)中用户可以统计学生的总成绩以及平均成绩,通过调用函数totalMark(head)和函数aveMark(head)完成操作。

 

输出函数

voidtotalMark(MARK*head);

统计学生总成绩的函数原型,

voidaveMark(MARK*head);

统计学生平均成绩的函数原型,

voidprintClassMark(MARK*head);

输出学生成绩信息的函数原型,通过此函数可以输出学生的学期、班级、

姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息到屏幕上。

voidsaveFileMark(MARK*head);

存储学生成绩信息于文件的函数原型,通过此函数可以输出学生的学期、班

级、姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息与文件

中。

第四章设计结果及分析

程序设计结果

 

源程序如下:

#include<>

#include<>

#include<>

#include<>

#defineMAR(structstudentMark*)malloc(sizeof(structstudentMark))

 

typedefstructstudentMark

{

intterm;

intclasses;

charname[10];

intnumber;

charsex[7];

floatchinese;

floatmath;

floatenglish;

floatcomputer;

 

structstudentMark*next;

}MARK;

voidm(MARK*head);

MARK*creat(void);

voidsearchMark(MARK*head);

voidsearchMarkStusentone(MARK*head);

voidsearchnumber(MARK*head);

voidsearchclasses(MARK*head);

voidsearchterm(MARK*head);

voidsearchMarkFail(MARK*head);

MARK*changeMark(MARK*head);

voidconuntMark(MARK*head);

voidtotalMark(MARK*head);

voidaveMark(MARK*head);

voidprintClassMark(MARK*head);

voidsaveFileMark(MARK*head);

intmain(void)

{

MARK*head=NULL;

printf("

**********************************************\n");

printf("##欢迎进入学生成绩信息管理系统

##\n");

printf("

**********************************************\n");

printf("\n");

head=creat();

m(head);

return(0);

 

}

voidm(MARK*head)

{

intchoose;

while

(1)

{

printf("************************************\n");

printf("学生成绩信息管理\n");

printf("************************************\n");

printf("

1

创建成绩信息\n");

printf("

2

查询成绩信息\n");

printf("

3

修改成绩信息\n");

printf("

4

统计成绩信息\n");

printf("

5

按班级输出学生信息\n");

printf("

6

保存成绩信息于文件\n");

printf("

7

退出系统\n");

printf("************************************\n");

fflush(stdin);

printf("请选择:

");

scanf("%d",&choose);

if(1==choose)

head=creat();

elseif(2==choose)

searchMark(head);

elseif(3==choose)

head=changeMark(head);

elseif(4==choose)

conuntMark(head);

elseif(5==choose)

 

printClassMark(head);

elseif(6==choose)

saveFileMark(head);

else

printf("退出系统");

break;

}

}

xt");

stu=fopen(fileName,"wb+");

while(p!

=NULL)

{

fprintf(stu,"%d%d",p->term,p->classes);

fprintf(stu,"%s%d",p->name,p->number);

fprintf(stu,"%s",p->sex);

 

fprintf(stu,"%f%f%f%f",p->chinese,p->math,p->english,p->computer);

p=p->next;

}

fclose(stu);

printf("已经保存文件在%s中!

\n",fileName);

printf("请按任意键返回主菜单!

\n");

getchar();

}

}

//查找某个学生的成绩

voidsearchMarkStusentone(MARK*head)

{

 

charch1,ch2;

MARK*p=head->next;

if(p==NULL)

{

printf("没有任何信息,请先存入信息!

\n");

printf("请按任意键返回主菜单!

\n");

getchar();

}

else

while

(1)

{

printf("你要选择何种方式查询成绩!

\n");

printf("

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

printf("

a

、学号:

\n");

printf("

b

、班级:

\n");

printf("

c

、学期:

\n");

printf("

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

fflush(stdin);

scanf("%c",&ch1);

switch(ch1)

{

case'a':

searchnumber(head);break;

case'b':

searchclasses(head);break;

case'c':

searchterm(head);break;

}

printf("\n");

printf("是否还要继续查询学生的信息(y/n):

");

 

fflush(stdin);

if((ch2=getchar())=='n')

break;

}

}

//查询不及格学生

voidsearchMarkFail(MARK*head)

{

MARK*p=head->next;

charname[10];

intnumber,flag=0;

intchoose5;

do

{

fflush(stdin);

printf("请输入!

(1按姓名查询2按学号查询3返回)\n");

scanf("%d",&choose5);

switch(choose5)

{

case1:

fflush(stdin);

printf("请输入要查找的名字\n");

gets(name);

while(p!

=NULL)

{

if(!

strcmp(name,p->name))

{

printf("姓名学号\n");

printf("%s%d\n",p->name,p->number);

 

if(p->chinese<60)

printf("%s的语文成绩不及格\n",p->name);

 

if(p->math<60)

printf("%s的数学成绩不及格\n",p->name);

 

if(p->english<60)

printf("%s的英语成绩不及格\n",p->name);

 

if(p->computer<60)

printf("%s的计算机成绩不及格\n",p->name);flag++;

}

printf("\n");

p=p->next;

}

if(flag==0)

printf("没有你要找的信息!

\n");

break;

case2:

fflush(stdin);

printf("请输入你想要查找的学号:

\n");

scanf("%d",&number);

while(p!

=NULL)

{

if(number==p->number)

{

printf("姓名学号\n");

 

printf("%s%d\n",p->name,p->number);

if(p->chinese<60)

printf("%s的语文成绩不及格\n",p->name);if(p->math<60)

printf("%s的数学成绩不及格\n",p->name);if(p->english<60)

printf("%s的英语成绩不及格\n",p->name);if(p->computer<60)

printf("%s的计算机成绩不及格\n",p->name);flag++;

}

printf("\n");

p=p->next;

}

if(flag==0)

printf("没有你要找的信息!

\n");

break;

case3:

printf("请按任意键返回!

\n");

getchar();

break;

default:

printf("你输入的有误!

请重新选择\n");

break;

}

}while(choose5!

=1&&choose5!

=2&&choose5!

=3);

printf("按任意键返回!

\n");

getchar();

}

 

//按学号查询

voidsearchnumber(MARK*head)

{

MARK*p=head->next;

intnumber,i=0;

printf("请输入你要查询的学生学号:

\n");

scanf("%d",&number);

while(p!

=NULL)

{

if(number==p->number)

{

printf("-------------------------------------------------------------------------\n");

printf("\t

学期\t

学号\t

班别\t

姓名\t

性别\t

语文\t

数学\t

英语\t

计算机\t\n");

 

printf("-------------------------------------------------------------

------------\n");

printf("%d\t",p->term);

printf("%d\t",p->number);

printf("%d\t",p->classes);

printf("%s\t",p->name);

printf("%s\t",p->sex);

printf("%1f\t",p->chinese);

printf("%1f\t",p->math);

printf("%1f\t",p->english);

printf("%1f\t",p->computer);

i=2;

}

 

p=p->next;

}

if(i==0)

printf("没找到该学生的信息!

");

}

//按班级查询成绩

voidsearchclasses(MARK*head)

{

intclasses,i=0;

MARK*p=head->next;

printf("请输入你要查询成绩的班级:

");

scanf("%d",&classes);

printf("请输出%d班所有同学的成绩:

\n",classes);

 

printf("-----------------------------------------------

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

当前位置:首页 > 法律文书 > 调解书

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

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