C语言课程研究设计学生成绩管理系统.docx

上传人:b****3 文档编号:1802616 上传时间:2022-10-24 格式:DOCX 页数:12 大小:19.87KB
下载 相关 举报
C语言课程研究设计学生成绩管理系统.docx_第1页
第1页 / 共12页
C语言课程研究设计学生成绩管理系统.docx_第2页
第2页 / 共12页
C语言课程研究设计学生成绩管理系统.docx_第3页
第3页 / 共12页
C语言课程研究设计学生成绩管理系统.docx_第4页
第4页 / 共12页
C语言课程研究设计学生成绩管理系统.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

C语言课程研究设计学生成绩管理系统.docx

《C语言课程研究设计学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程研究设计学生成绩管理系统.docx(12页珍藏版)》请在冰豆网上搜索。

C语言课程研究设计学生成绩管理系统.docx

C语言课程研究设计学生成绩管理系统

封面

作者:

PanHongliang

仅供个人学习

《C语言》

课程设计报告

标题:

学生成绩管理系统

学号:

姓名:

年级专业:

09电子信息工程

指导老师:

完成日期:

2010/6/28

目录

一、课题要求

二、课题分析与设计

三、程序介绍

四、源程序代码与调试

五、设计NS图

六、心得与体会

七、参考书目

一、课题要求

有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能:

(1)主菜单

学生成绩管理系统

1、成绩录入

2、成绩查询

3、成绩统计 

4、成绩排名

5、退出

(2)各菜单项功能

①成绩录入:

输入学生的学号、姓名及三门课的成绩;

②成绩查询:

查询不及格学生的记录。

③成绩统计:

l计算学生的平均分;

2根据学生的平均分高低,对学生的数据进行排序后输出;

(3)设计要求

1、用C语言实现系统;

2、利用结构体数组实现学生成绩统计管理的数据结构设计;

3、系统具有增加,查询,排序等基本功能;

4、系统的各个功能模块要求用函数的形式实现;

二、课题分析与设计

程序是数值计算型算法设计,设计出了学生成绩管理系统的基本功能,并设计了简单的界面。

本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是结构体的相关操作,包括结构体数组的输入、输出、查找、删除、修改、计算等。

这个学生成绩管理系统也初步实现了学生成绩信息的显示、删除、查找、添加、修改等必要的功能。

三、程序介绍

学生成绩管理系统由8个函数组成,包括main函数、input函数、display函数、look函数、delete函数,其中change函数又包括一个sumandave子函数,paixu函数。

main函数主要是打印选择界面,选择并调用其他几个函数。

input函数是输入学生信息函数(包括姓名、学号、性别、5门学科的成绩)。

完成后调用display函数并返回界面选择。

display函数的功能是对输入学生的信息进行界面输出。

完成后返回main函数进行下一个功能的选择。

并返回界面选择。

look函数的功能是查找。

按提示信息输入学号和姓名两种方式可实现查找。

完成后调用display函数输出结果。

并返回界面选择。

delete函数的功能是删除学生的信息,根据想删除的学号进行删除功能,删除的结果会显示在屏幕上。

然后再调用display函数显示结果。

并返回界面选择。

Change函数功能是实现学生成绩的修改,其中对于每个想修改的工程(学号、性别、名字、分数)都有是否修改的提示。

选择并完成后再调用display函数输出修改后的结果。

Sumandave函数是计算每个学生成绩的总分、平均分。

完成后调用display函数输出所求结果。

并返回界面选择。

Paixu函数是将所有学生成绩的总分降序排列,再是调用display函数。

并返回界面选择。

四、源程序代码与调试

1.程序代码

#include

#include

#include

structstudent

{charnum[10]。

charname[20]。

charsex[5]。

intgrade[5]。

floatv。

intsum。

}stu[50]。

intk=0。

voidinput()。

voiddisplay()。

voidlook()。

voidchange()。

voiddelete()。

voidsumandave()。

voidpaixu()。

voidmain()

{

inta。

do

{

printf("\n\n******************************************************************\n")。

printf("*")。

printf("\t\twelcomeenterthestudentmanagementsystem")。

printf("\t*")。

printf("\n******************************************************************\n")。

printf("*")。

printf("\t1.Accessstudentinformation")。

printf("\t\t\t\t*\n")。

printf("*")。

printf("\t2.lookstudentinformation")。

printf("\t\t\t\t*\n")。

printf("*")。

printf("\t3.Changestudentinformation")。

printf("\t\t\t\t*\n")。

printf("*")。

printf("\t4.deletestudentinformation")。

printf("\t\t\t\t*\n")。

printf("*")。

printf("\t5.BysumSortstudentinformationandoutput")。

printf("\t\t*\n")。

printf("*")。

printf("\t6.exit")。

printf("\t\t\t\t\t\t*\n")。

printf("******************************************************************\n")。

printf("Enteryouchoice:

")。

scanf("%d",&a)。

switch(a)

{

case1:

printf("\n")。

input()。

break。

case2:

printf("\n")。

look()。

break。

case3:

printf("\n")。

change()。

break。

case4:

printf("\n")。

delete()。

break。

case5:

printf("\n")。

paixu()。

break。

case6:

printf("\n")。

exit(0)。

break。

default:

printf("\nThechoiceisbetween1to6.\n")。

}

}while(a!

=0)。

}

voidinput()

{intj。

charch[20]。

printf("\nenterstudentinformation:

\n")。

do

{printf("\nnum:

")。

scanf("%s",stu[k].num)。

printf("\nname:

")。

scanf("%s",stu[k].name)。

printf("\nsex:

")。

scanf("%s",stu[k].sex)。

for(j=0。

j<5。

j++)

{printf("\ngrade%d:

",j+1)。

scanf("%d",&stu[k].grade[j])。

}

k++。

printf("\nifwantcontinueinputstudentinformation(y/n):

")。

scanf("%s",ch)。

}while(strcmp(ch,"y")==0||strcmp(ch,"Y")==0)。

sumandave()。

display()。

}

voiddisplay()

{inti。

printf("thestudentinformationis:

\n")。

for(i=0。

i

i++)

{printf("%-10s%-10s%-5s%2d%2d%2d%2d%2d%5d%5f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].grade[0],stu[i].grade[1],stu[i].grade[2],stu[i].grade[3],stu[i].grade[4],stu[i].sum,stu[i].v)。

printf("\n")。

}

}

voidsumandave()

{inti,j。

for(i=0。

i

i++)

{stu[i].sum=0。

for(j=0。

j<5。

j++)

stu[i].sum=stu[i].sum+stu[i].grade[j]。

stu[i].v=stu[i].sum/5.0。

}

}

voidlook()

{{inti。

chara[20]。

printf("\nenteryouwantlookstudentnum:

")。

scanf("%s",a)。

for(i=0。

i

i++)

if(strcmp(stu[i].num,a)==0)printf("%-10s%-10s%-5s%2d%2d%2d%2d%2d%5d%5f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].grade[0],stu[i].grade[1],stu[i].grade[2],stu[i].grade[3],stu[i].grade[4],stu[i].sum,stu[i].v)。

printf("\nenteryouwantlookstudentname:

")。

scanf("%s",a)。

for(i=0。

i

i++)

if(strcmp(stu[i].name,a)==0)printf("%-10s%-10s%-5s%2d%2d%2d%2d%2d%5d%5f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].grade[0],stu[i].grade[1],stu[i].grade[2],stu[i].grade[3],stu[i].grade[4],stu[i].sum,stu[i].v)。

}

display()。

}

voidchange()

{inti,j。

chara[20],ch[10]。

printf("\nenteryouwantchangestudentnum:

")。

scanf("%s",a)。

for(i=0。

i

i++)

{

if(strcmp(stu[i].num,a)==0)

{printf("\nyousurewantchangestudentnum(y/n):

")。

scanf("%s",ch)。

if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\nnum:

")。

scanf("%s",stu[i].num)。

}

printf("\nyousurewantchangestudentname(y/n):

")。

scanf("%s",ch)。

if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\nname:

")。

scanf("%s",stu[i].name)。

}

printf("\nyousurewantchangestudentsex(y/n):

")。

scanf("%s",ch)。

if(strcmp(ch,"y")==0||strcmp(ch,"

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

当前位置:首页 > 农林牧渔 > 林学

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

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