C语言程序学生成绩管理实验整理Word文件下载.docx
《C语言程序学生成绩管理实验整理Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序学生成绩管理实验整理Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
试设计一学生成绩管理系统,使之能提供以下功能:
(1)主菜单
1.录入
2.查询
3.删除
4.排序
5.保存退出
6.退出
(2)各菜单项功能
①录入:
输入学生的学号、姓名性别,课程号,课程名,学分和课程的三种得分
②成绩查询:
A.基本信息查询
*按学号查询学生记录。
*按名字查询学生纪录。
B.成绩查询
③纪录删除
*按输入的学号删除
④排序
A.综合成绩升序。
B.综合成绩降序。
C.学分降序。
D.学分升序。
由主函数登陆
五.数据结构设计描述:
↓
菜单函数
Input函数select函数del函数paixu函数保存函数退出系统
六.结构体的定义和作用
structstudent//定义学生信息
{
intno。
//学号
charname[20]。
//姓名
charsex[4]。
//性别
intnum。
//课程号
charscn[20]。
//课程名
intscore。
//学分
floatscore1。
//成绩1
floatscore2。
//成绩2
floatscore3。
//成绩3
floatave。
//实得学分
floatsum。
//总分
七.系统各函数的功能,、相互调用关系
1.函数实现功能说明:
(1)menu函数
是定义一个菜单函数,其功能在于输出菜单界面供使用者选择。
(2)input函数
是定义用于输入学生信息。
(3)select函数
是定义用于查询学生信息。
包括学号、姓名及各科成绩。
(4)del函数
按输入的学号删除
(5)paixu函数
设置新菜单,并调用四个不同排序输出函数。
(6)保存函数
保存信息。
八.心得体会
C语言是一种较为基础和普遍的编程语言,应用相当广泛,这次课程设计的要求与C语言的广泛应用相比较还有很大的差距。
我们对于C语言的理解和使用还处在一个初级的阶段,我们要想掌握它,要学习的还很多,同时要懂得创新,许多的编程方法都是人们一步一步总结出来的,我想我们也要努力拓展自己的思维,努力去寻求新的方法,以创造出更为完善的应用程序。
九.程序:
#include<
stdio.h>
conio.h>
/*清屏*/
#include<
stdlib.h>
/*显示目录*/
string.h>
#definen10
voidzhjx()。
voidmenu()。
voidinput()。
voidcheck()。
voidfun()。
voidfun2()。
voidfun3()。
voidfun4()。
voiddel()。
voidpaixu()。
voidzhsx()。
voidxfjx()。
voidxfsx()。
voidsave()。
}。
structstudentstu[n],*p,t。
intnow=0,i,j,k,l。
charch。
voidmain()
{
inth,flag1,flag2。
charname[20]="
hq"
password[10]="
111"
。
charperson[20],password1[10]。
printf("
\t\t********欢迎进入学生成绩管理系统!
********\n\n"
)。
\t\t\t用户登录\n\n"
for(h=0。
h!
=5。
)
{
printf("
\t\t\t\t用户名:
"
gets(person)。
flag1=strcmp(person,name)。
\t\t\t\t密码:
gets(password1)。
flag2=strcmp(password,password1)。
if(flag1==0&
&
flag2==0)
{
\t\t\t\t登陆成功!
\n\n"
menu()。
break。
}
else
\t\t\t用户名或密码错误!
printf("
\t\t\t请注意:
您还剩%d次机会!
4-h)。
h++。
}
if(h=5)
对不起,您输入的用户名或密码有误,已被强制退出。
\n"
}
voidmenu()
intas。
do{
\n\n\n\n\t\t****&
****&
****"
start:
\n\n\n\n\t\t\t欢迎使用学生成绩管理系统\n"
\n\n\n\n\t\t******************按任意键继续********************"
ch=getch()。
}
while(!
ch)。
system("
cls"
/*以下为功能选择模块*/
do{printf("
学生管理系统\n"
\t\t"
1------学生成绩录入\n\t\t"
2------查询\n\t\t"
3------删除学生记录\n\t\t"
4------排序\n\t\t"
5------保存退出\n\t\t"
6------退出\n\t\t"
\t\t\t\t选择功能选项(输入所选功能前的数字):
scanf("
%d"
&
as)。
switch(as)
{case1:
input()。
break。
case2:
check()。
case3:
del()。
case4:
paixu()。
case5:
save()。
case6:
system("
exit"
exit(0)。
default:
gotostart。
}}while
(1)。
}
voidinput()/*学生信息录入模块*/
inti=0。
do
{
\t\t\t\t1.录入学生信息\n输入第%d个学生的信息\n"
i+1)。
\n输入8位的学生学号:
%u"
stu[i].no)。
fflush(stdin)。
\n输入学生姓名:
fflush(stdin)。
gets(stu[i].name)。
\n输入学生性别:
gets(stu[i].sex)。
\n输入学生课程号:
stu[i].num)。
\n输入学生课程名:
gets(stu[l].scn)。
。
fflush(stdin)。
\n输入课程学分:
stu[i].score)。
\n输入学生平时成绩:
%f"
stu[i].score1)。
\n输入学生实验成绩:
stu[i].score2)。
\n输入学生卷面成绩:
stu[i].score3)。
if(stu[i].score2>
0)
stu[i].sum=stu[i].score1*0.15+stu[i].score2*0.15+stu[i].score3*0.7。
else
stu[i].sum=stu[i].score1*0.3+stu[i].score3*0.7。
k=stu[i].sum/10。
switch(k)
{case10:
(float)stu[i].ave=(float)stu[i].score。
case9:
case8:
(float)stu[i].ave=(float)stu[i].score*0.8。
case7:
(float)stu[i].ave=(float)stu[i].score*0.7。
case6:
(float)stu[i].ave=(float)stu[i].score*0.6。
default:
(float)stu[i].ave=0.0。
i++。
now=i。
是否继续输入?
(Y/N)"
while(ch!
='
n'
ch!
N'
voidcheck()//查询
{printf("
————查询————\n"
\t\t*学生基本信息查询*\n"
pr