语c言课程设计报告学生成绩管理大学论文Word下载.docx
《语c言课程设计报告学生成绩管理大学论文Word下载.docx》由会员分享,可在线阅读,更多相关《语c言课程设计报告学生成绩管理大学论文Word下载.docx(29页珍藏版)》请在冰豆网上搜索。
1.1、题目与要求
1,由键盘输入20个学生(姓名)的某门课程的学习成绩10~99分(也可超过)。
2,将分数由低到高排序(用直接排序法和冒泡法),并显示学生姓名和对应的分数。
3,用线性搜索法检索某个学生的成绩(输入姓名,显示成绩)
4,对分搜索法检索某个学生的成绩(输入姓名,显示成绩)
1.2、本程序涉及的知识点
变量的定义、输入和输出函数、if语句、转意字符的使用、调用外部文件、调用winds下的命令符、清屏语句等等。
2、功能设计
2.1、算法设计
1、本程序实现的功能要求:
将各个功能写成子函数,需要时进行调用。
主函数。
2.2、部分模块流程图
1)管理员菜单
2)学生菜单
3)网页转跳
4)打开文件
5)登陆程序
6)输入函数
7)排序函数
8)冒泡排序
9)搜索程序
10)对分搜索
3、程序代码设计
#include<
stdio.h>
string.h>
windows.h>
#definemax1100//最多人数
structgeren{//定义一个结构体
charname[40];
intchengji;
intpaiming;
};
structgerenguanli[max1];
//geren结构数组
voidglcaidan();
//管理员菜单
voidxscaidan();
//学生菜单
voidshuru();
//输入函数
voidpaixushuchu();
voidguanliyuan();
//管理员登陆
voidpaiming();
//对学生进行排名
voidxueshendenlu();
//学生登录
voidsousuo();
voidzhuantiao();
//网页转跳
voidswap(structgeren*student,intn);
//从大到小的排序
voidwenjian();
//打开文件
voidduifen();
//对分搜索
voidzhijie();
//直接排序
voidmain()
{
glcaidan();
//管理员菜单
zhuantiao();
//网页转跳
xscaidan();
//学生菜单
}
voidwenjian()//打开文件
FILE*fp;
charch;
char*file_path="
.\\字符图案\\wenhua.txt"
;
system("
cls"
);
if((fp=fopen(file_path,"
r"
))==NULL)
{
printf("
\nSorry,Can'
topenthefile!
@_@\n"
exit(0);
}
else
while((ch=fgetc(fp))!
=EOF)
{printf("
%c"
ch);
}
fclose(fp);
Sleep(2000);
voidzhuantiao()//网页转跳
{
inti;
for(i=3;
i<
4&
&
i>
0;
i--)
system("
\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t\t\t%ds后将转跳到学生成绩查询系统..."
i);
Sleep(1000);
voidswap(structgeren*student,intn)//冒泡排序,从大到小的排序
intflag;
inti,j;
structgerentemp;
for(i=0;
n-1;
i++)
flag=0;
for(j=0;
j<
n-i-1;
j++)
if(guanli[j].chengji<
guanli[j+1].chengji)
flag=1;
temp=guanli[j+1];
guanli[j+1]=guanli[j];
guanli[j]=temp;
}
if(flag==0)
break;
paiming();
voidzhijie()//直接排序
inta;
max1;
for(j=i+1;
j++)
{
if(guanli[i].chengji<
guanli[j].chengji)
{
a=guanli[i].chengji;
guanli[i].chengji=guanli[j].chengji;
guanli[j].chengji=guanli[i].chengji;
}
voidpaiming()//对学生进行排名
inta,j;
for(a=1,j=0;
j++)
guanli[j].paiming=a;
a++;
voidglcaidan()//管理员菜单
inta,b,c,d,f;
chare;
a=1;
c=0;
d=0;
f=0;
wenjian();
//打开文件
while(a)
b=1;
Sleep(f);
while(b)
printf("
**************************************************************************************************************************************************************************\n"
printf("
********欢迎来到学生成绩录入系统***********\n"
%c1、登陆%c2、录入学生成绩%c3、查看录入成绩%c4、退出登陆\n"
3,3,3,3);
fflush(stdin);
scanf("
%d"
&
e);
switch(e)
case1:
guanliyuan();
//管理员登陆
b=0;
c=1;
f=2000;
break;
case2:
if(c==1)
{
shuru();
//成绩输入
b=0;
d=1;
f=2000;
}
else
printf("
\n\n\n\t\t\t\t\t\t\t\t\t您还没有登陆,请先登录\n"
case3:
{if(d==1)
{
paiming();
//对学生进行排名
paixushuchu();
b=0;
f=10000;
}
else
printf("
\n\n\n\t\t\t\t\t\t\t\t\t还没有录入成绩。
\n"
f=2000;
case4:
\n\n\n\t\t\t\t\t\t\t\t\t成功退出登陆。
a=0;
\n\n\n\t\t\t\t\t\t\t\t\t您还没有登陆。
请登录\n"
default:
printf("
\n\n\n\t\t\t\t\t\t\t\t\t未知错误\n"
fflush(stdin);
voidxscaidan()//学生菜单
inta,b,c,d,e,f;
*************************************************************************************************************