C语言课程设计学生成绩管理系统Word下载.docx
- 文档编号:19347045
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:25
- 大小:228.72KB
C语言课程设计学生成绩管理系统Word下载.docx
《C语言课程设计学生成绩管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计学生成绩管理系统Word下载.docx(25页珍藏版)》请在冰豆网上搜索。
(4)编写代码;
(5)程序分析与调试。
2.3运行环境
(1)WINDOWS2000/XP系统
(2)TurboC2.0编译环境
2.4开发工具
C语言
3概要设计与详细设计
3.1系统流程图
如图3.1所示。
3.2查询函数流程图
4编码与实现
4.1分析
在程序的开头部分定义结构体类型和全局的结构体数组,用来存放和提取学生的信息。
structstudent//学生数据
{intnum;
structscoref[9];
charname[20];
floatave;
floatsum;
};
用输入函数scanf来输入学生的信息放在程序中,在这个函数
用void语句就能实现。
voidluru(structstudenta[]);
//录入函数
voidpaixu(structstudenta[]);
//排序函数
voidcharu(structstudenta[]);
//插入函数
voiddel(structstudenta[]);
//删除函数
voiddisplay(structstudenta[]);
//显示函数
voidcprint(structstudenta[],intm);
//查询输出函数
voidchaxun1(structstudenta[]);
//学号查询函数
voidchaxun2(structstudenta[]);
//姓名查询函数
voidcharu(structstudenta[])paixu(structstudenta[])调用paixu(structstudenta[])
structstudenta[];
//存档函数
在main函数中用int函数定义,然后再运用printf()函数就可以提取学生的成绩了。
而后可以根据不同的函数来删除、修改学生的成绩信息。
最终程序结束,完成学生成绩信息的录入、修改、删除以及查询。
4.2具体代码实现
#include<
stdio.h>
stdlib.h>
string.h>
structscore//各科成绩
{
floats;
intnum;
inti=0;
//统计个数
structstudentstu[99];
voidsave(structstudenta[]);
voidmain()//主函数开始
intnumber;
intx,y;
for(y=0;
y<
99;
y++)//将所有成绩清空
for(x=0;
x<
6;
x++)
stu[y].f[x].s=NULL;
}
printf("
********************************************************************************\n"
);
\t\t\t欢迎使用\n"
\n\t\t\t学生成绩管理系统\n\n"
*************************************菜单***************************************\n"
请选择功能:
\n\n0.退出\n1.录入新学生成绩数据\n2.显示学生成绩数据\n3.按总成绩排序\n4.插入学生成绩数据\n5.删除学生成绩数据\n6.按学生学号查询\n7.按学生姓名查询\n8.储存为TXT文件\n\n"
\n********************************************************************************\n"
do
scanf("
%d"
&
number);
printf("
\n-------------------------------------------\n"
switch(number)
case0:
break;
//退出
case1:
luru(stu);
//录入新学生成绩数据
case2:
display(stu);
//显示学生成绩数据
case3:
paixu(stu);
//按总成绩排序
case4:
charu(stu);
//插入学生成绩数据
case5:
del(stu);
//删除学生成绩数据\n
case6:
chaxun1(stu);
//按学生学号查询
case7:
chaxun2(stu);
//按学生姓名查询
case8:
save(stu);
//储存为TXT文件
}while(number!
=0);
谢谢使用!
"
\n"
voidluru(structstudenta[])//录入函数
intm;
intk;
charb;
floatsum=0;
请输入科目数(最多6科):
m);
请输入学生信息\n"
学号:
a[i].num);
姓名:
%s"
a[i].name);
for(k=0;
k<
m;
k++)
请输入第%d科目成绩:
k+1);
floattemp;
%f"
temp);
a[i].f[k].s=temp;
//计算总分
a[i].sum=0;
a[i].sum=a[i].sum+a[i].f[k].s;
//计算平均分
a[i].ave=0;
a[i].ave=a[i].sum/m;
i++;
是否继续录入学生数据?
\n(Y/N)"
fflush(stdin);
//刷新标准输入缓冲区
%c"
b);
}while(b=='
Y'
||b=='
y'
display(a);
voiddisplay(structstudenta[])//显示函数
intk,m;
system("
cls"
//清屏
学号\t姓名\t第1科\t第2科\t第3科\t第4科\t第5科\t第6科\t总分\t平均分\n"
\n------------------------------------------------------------------------------\n\n"
i;
%d\t%s\t"
a[k].num,a[k].name);
for(m=0;
m<
m++)
%.2f\t"
a[k].f[m].s);
%.2f\t%.2f\n"
a[k].sum,a[k].ave);
\n0.退出\t1.录入\t2.显示\t3.排序\t4.插入\t5.删除\t6.学号查询7.姓名查询\t8.存档\n\n"
voidpaixu(structstudenta[])//排序函数
intj,k;
structstudenttemp;
for(j=0;
j<
i-k;
j++)
if(a[j].ave<
a[j+1].ave)
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
按总分排序后的学生数据如下\n"
voidcharu(structstudenta[])//插入函数
intj,k,m,x;
temp.f[x].s=0;
//将temp中的所有成绩清除
请输入成绩数目:
temp.num);
temp.name);
floattt;
tt);
temp.f[k].s=tt;
temp.sum=0;
temp.sum=temp.sum+temp.f[k].s;
temp.ave=temp.sum/m;
for(k=i;
k>
j;
k--)
a[k]=a[k-1];
a[j]=temp;
voiddel(structstudenta[])//删除函数
intk,j;
请输入要删除的学生学号:
k);
if(k==a[j].num)//记录要删除的学生的位置
{
break;
}
if(j<
i)
for(k=j;
i-1;
a[j]=a[j+1];
i--;
删除后的学生数据\n"
else
\n\t\t没有您要删除的学生数据\n\n"
-);
\n请选择功能:
voidcprint(structstudenta[],intm)//查询输出函数
into;
a[m].num,a[m].name);
for(o=0;
o<
o++)
a[m].f[o].s);
a[m].sum,a[m].ave);
voidchaxun1(structstudenta[])//学号查询函数
intm,t;
请输入要查询的学号:
t);
=i;
if(a[m].num==t)
cprint(a,m);
if(m==i&
&
a[m].num!
=t)
\n\t\t没有查到您要找的学生资料\n"
\n--------------------------------------------------------------------------------\n"
voidchaxun2(structstudenta[])//姓名查询函数
chart[20];
请输入要查询的姓名:
t);
if(strcmp(a[m].name,t)==0)
(strcmp(a[m].name,t)!
=0))
voidsave(structstudenta[])//存档函数
FILE*fpFile;
fpFile=fopen("
student.txt"
"
w"
fprintf(fpFile,"
\n---------------------------------------------------------------------------------\n\n"
fprintf(fpFile,"
fclose(fpFile);
已存到根目录student.txt文件"
结果如图所示
5课程设计总结
通过这次课程设计我对C语言的神奇功能更加佩服,我默默在心里发誓一定要把C语言学好,而且将来我还要想学习C++语言,熟练的掌握编程的方法。
本次课程设计,我设计的是一个学生成绩管理系统,本程序若完全靠现有的知识,是很难编写出来的,幸亏有我的指导老师的耐心指导,我才能顺利完成。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 学生 成绩管理系统