C语言课程设计方案学生成绩管理系统Word下载.docx
《C语言课程设计方案学生成绩管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计方案学生成绩管理系统Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
这不但能使教务人员从复
杂的成绩管理中解脱出来,而且对于推动教案的发展也起到非常重要的作用。
学校学生成绩管理工作都是采用传统的手工管理,这各传统人工的管理方式存在着许多缺点,如:
率低,保密性差,一方面导致教师,学生成绩情况不了解,教师对成绩管理工作倍感头痛,因为时间一长将产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难,耗费大量劳动力,难于避免错误
的产生。
题目要求
有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函数。
四、程序设计NS图
1.学生信息的输入
Main函数调用input函数()
For(i=0;
i<
5。
i++)
依次输入学生5门课成绩
输入多个学生信息(学号、姓名、性别)
完成后返回display()函数输出结果
2.学生信息的输出
调用display函数()
输出学生信息
(学号、姓名、性别、成绩、总分、平均分)
3.学生成绩的求和与排序
调用sumandave()函数
k。
for(j=0。
j<
j++)
累计学生5门课成绩并求平均
4.查找学生信息
调用look()函数
按学号查找
按姓名查找
for(i=0。
比较字符串
if(strcmp(stu[i].num,a)==0)
if(strcmp(stu[i].name,a)==0)
输出所查学生信息
调用change()函数
输入需要修改的学生学号
For(i=0。
输入想修改的学号、姓名、性别、分数、并在每步修改之前确认修改,并输入相应信息。
完成后调用display()函数输出修改结果
5.修改学生信息
6.删除学生信息
调用delete()函数
确认修改
比较字符串scanf("
%s"
ch)。
if(strcmp(ch,"
y"
)==0||strcmp(ch,"
Y"
)==0)
输入需要删除的学生学号
if(strcmp(c,stu[i].num)==0)break。
for(j=i。
=2。
stu[j]=stu[j+1]。
/*以后一个学生信息取代前一个*/
完成后调用display()函数输出结果
7.按平均分的排序
调用paixu()函数
for(i=0。
k-1。
for(j=i+1。
if(stu[i].sum<
stu[j].sum)
{T=stu[i]。
stu[i]=stu[j]。
/*交换顺序*/
stu[j]=T。
}
五、程序代码
#include<
stdio.h>
string.h>
conio.h>
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("
\t\欢迎进入学生管理系统"
\t*"
\n******************************************************************\n"
\t1.访问学生信息"
\t\t\t\t*\n"
\t2.查找学生信息"
\t3.修改学生信息"
\t4.
删除学生信息"
\t5.通过学号输出学生信息"
\t\t*\n"
\t6.exit"
\t\t\t\t\t\t*\n"
******************************************************************\n"
Enteryouchoice:
"
scanf("
%d"
&
a)。
switch(a)
case1:
\n"
input()。
break。
case2:
look()。
case3:
change()。
case4:
delete()。
case5:
paixu()。
case6:
exit(0)。
default:
\nThechoiceisbetween1to6.\n"
}while(a!
=0)。
voidinput()
{intj。
charch[20]。
\nenterstudentinformation:
{printf("
\nnum:
stu[k].num)。
\nname:
stu[k].name)。
\nsex:
stu[k].sex)。
for(j=0。
\ngrade%d:
j+1)。
stu[k].grade[j])。
}
k++。
\nifwantcontinueinputstudentinformation(y/n):
}while(strcmp(ch,"
)==0)。
sumandave()。
display()。
voiddisplay()
{inti。
thestudentinformationis:
%-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)。
voidsumandave()
{inti,j。
{stu[i].sum=0。
stu[i].sum=stu[i].sum+stu[i].grade[j]。
stu[i].v=stu[i].sum/5.0。
}
voidlook()
{{inti。
chara[20]。
\nenteryouwantlookstudentnum:
"
a)。
if(strcmp(stu[i].num,a)==0)printf("
%-10s%-10s%-5s%2d%2d%2d%2d%2d%5d%5f\n"
\nenteryouwantlookstudentname:
if(strcmp(stu[i].name,a)==0)printf("
voidchange()
chara[20],ch[10]。
\nenteryouwantchangestudentnum:
scanf("
if(strcmp(stu[i].num,a)==0)
\nyousurewantchangestudentnum(y/n):
)==0){printf("
stu[i].num)。
\nyousurewantchangestudentname(y/n):
stu[i].name)。
\nyousurewantchangestudentsex(y/n):
stu[i].sex)。
\nyousurewantchangestudentgrade(y/n):
{for(j=0。
stu[i].grade[j])。
stu[i].sum=0。
}}
voiddelete()
charch[10],c[20]。
\nyousurewantdeletestudentinformation(y/n):
if(strcmp(ch,"
{printf("
\nenteryouwantdeletenum:
\n"
num:
c)。
if(strcmp(c,stu[i].num)==0)break。
\t\t\tyouhaddelete%s\n"
c)。
k--。
display()。
voidpaixu()
{structstudentT。
inti,j。
T=stu[i]。
}}
六丶运行结果图
七、C语言程序设计总结
C语言是一种计算机程序设计语言,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言。
它把高级语言的基本结构和语句与低级语言的实用性结合起来,功能齐全,因此发展极其迅速。
在这次的课程设计的实践中,更加深了对c的了解,对c的一些基本的掌握,比如它的基本结构、关键字、数组、函数的调用等,学习一种语言,一定要做到脚踏实地,认真细心,切忌浮躁,在开始的阶段,学习该课程并不是要求能用C设计一个复杂的东西,最主要是掌握一种结构化设计的编程思想,对编程不再恐惧陌生,该课程的知识点通俗的讲解要易懂,这样才能一步步学得更多更深。
参考书目
1.任正云,C语言程序设计
2.谭浩强,C语言课程设计教程
3.黄超,新编C语言程序设计
4.明日科技,C语言从入门到精通