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

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

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

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

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

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

 

苏州市职业大学继续教育学院

课程设计说明书

名称 C语言程序设计课程设计

      

2012年10月31日至2012年11月14日共2周

院 系计算机工程系

班级10Z计算机网络

学号46

姓名钱俊琦

 

系 主 任李金祥

指导教师陆公正

 

 

1前言

编写一个学生成绩管理系统。

先建立一个有三个学生的链表,每个结点包含:

学号、姓名、三门考试成绩(英语、数学、计算机)。

要求利用菜单的形式进行管理。

2需求分析

2.1要求

(1)用C语言实现程序设计;

(2)利用结构体进行相关信息处理;

(3)画出查询模块的流程图;

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

(5)界面友好(良好的人机互交),程序要有注释。

2.2任务

(1)先建立一个有三个学生的链表,每个结点包含:

学号、姓名、3门考试成绩;

(2)输入姓名查询该同学的信息,并显示在屏幕上;

(3)画出所有模块的流程图;

(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

#include

#include

structscore//各科成绩

{

floats;

};

structstudent//学生数据

{

intnum;

structscoref[9];

charname[20];

floatave;

floatsum;

};

inti=0;//统计个数

structstudentstu[99];

voidluru(structstudenta[]);//录入函数

voidpaixu(structstudenta[]);//排序函数

voidcharu(structstudenta[]);//插入函数

voiddel(structstudenta[]);//删除函数

voiddisplay(structstudenta[]);//显示函数

voidcprint(structstudenta[],intm);//查询输出函数

voidchaxun1(structstudenta[]);//学号查询函数

voidchaxun2(structstudenta[]);//姓名查询函数

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");

printf("\t\t\t欢迎使用\n");

printf("\n\t\t\t学生成绩管理系统\n\n");

printf("*************************************菜单***************************************\n");

printf("请选择功能:

\n\n0.退出\n1.录入新学生成绩数据\n2.显示学生成绩数据\n3.按总成绩排序\n4.插入学生成绩数据\n5.删除学生成绩数据\n6.按学生学号查询\n7.按学生姓名查询\n8.储存为TXT文件\n\n");

printf("\n********************************************************************************\n");

do

{

scanf("%d",&number);

printf("\n-------------------------------------------\n");

switch(number)

{

case0:

break;//退出

case1:

luru(stu);break;//录入新学生成绩数据

case2:

display(stu);break;//显示学生成绩数据

case3:

paixu(stu);break;//按总成绩排序

case4:

charu(stu);break;//插入学生成绩数据

case5:

del(stu);break;//删除学生成绩数据\n

case6:

chaxun1(stu);break;//按学生学号查询

case7:

chaxun2(stu);break;//按学生姓名查询

case8:

save(stu);break;//储存为TXT文件

}

}while(number!

=0);

printf("谢谢使用!

");

printf("\n");

}

voidluru(structstudenta[])//录入函数

{

intm;

intk;

charb;

floatsum=0;

printf("请输入科目数(最多6科):

");

scanf("%d",&m);

printf("请输入学生信息\n");

do

{

printf("学号:

");

scanf("%d",&a[i].num);

printf("姓名:

");

scanf("%s",a[i].name);

for(k=0;k

{

printf("请输入第%d科目成绩:

",k+1);

floattemp;

scanf("%f",&temp);

a[i].f[k].s=temp;

}

//计算总分

a[i].sum=0;

for(k=0;k

{

a[i].sum=a[i].sum+a[i].f[k].s;

}

//计算平均分

a[i].ave=0;

a[i].ave=a[i].sum/m;

i++;

printf("是否继续录入学生数据?

\n(Y/N)");

fflush(stdin);//刷新标准输入缓冲区

scanf("%c",&b);

}while(b=='Y'||b=='y');

display(a);

}

voiddisplay(structstudenta[])//显示函数

{

intk,m;

system("cls");//清屏

printf("学号\t姓名\t第1科\t第2科\t第3科\t第4科\t第5科\t第6科\t总分\t平均分\n");

printf("\n------------------------------------------------------------------------------\n\n");

for(k=0;k

{

printf("%d\t%s\t",a[k].num,a[k].name);

for(m=0;m<6;m++)

{

printf("%.2f\t",a[k].f[m].s);

}

printf("%.2f\t%.2f\n",a[k].sum,a[k].ave);

}

printf("\n------------------------------------------------------------------------------\n\n");

printf("请选择功能:

\n0.退出\t1.录入\t2.显示\t3.排序\t4.插入\t5.删除\t6.学号查询7.姓名查询\t8.存档\n\n");

}

voidpaixu(structstudenta[])//排序函数

{

intj,k;

structstudenttemp;

for(k=0;k

{

for(j=0;j

{

if(a[j].ave

{

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

}

printf("按总分排序后的学生数据如下\n");

display(a);

}

voidcharu(structstudenta[])//插入函数

{

intj,k,m,x;

structstudenttemp;

for(x=0;x<6;x++)

{

temp.f[x].s=0;

}

//将temp中的所有成绩清除

printf("请输入成绩数目:

");

scanf("%d",&m);

printf("请输入学生信息\n");

printf("学号:

");

scanf("%d",&temp.num);

printf("姓名:

");

scanf("%s",temp.name);

for(k=0;k

{

printf("请输入第%d科目成绩:

",k+1);

floattt;

scanf("%f",&tt);

temp.f[k].s=tt;

}

//计算总分

temp.sum=0;

for(k=0;k

{

temp.sum=temp.sum+temp.f[k].s;

}

//计算平均分

temp.ave=temp.sum/m;

for(j=0;j

for(k=i;k>j;k--)

{

a[k]=a[k-1];

}

i++;

a[j]=temp;

display(a);

}

voiddel(structstudenta[])//删除函数

{

intk,j;

printf("请输入要删除的学生学号:

");

scanf("%d",&k);

for(j=0;j

{

if(k==a[j].num)//记录要删除的学生的位置

{

break;

}

}

if(j

{

for(k=j;k

{

a[j]=a[j+1];

}

i--;

printf("删除后的学生数据\n");

display(a);

}

else

{

printf("\n\t\t没有您要删除的学生数据\n\n"-);

printf("\n请选择功能:

\n0.退出\t1.录入\t2.显示\t3.排序\t4.插入\t5.删除\t6.学号查询7.姓名查询\t8.存档\n\n");

}

}

voidcprint(structstudenta[],intm)//查询输出函数

{

into;

system("cls");//清屏

printf("学号\t姓名\t第1科\t第2科\t第3科\t第4科\t第5科\t第6科\t总分\t平均分\n");

printf("\n------------------------------------------------------------------------------\n\n");

printf("%d\t%s\t",a[m].num,a[m].name);

for(o=0;o<6;o++)

{

printf("%.2f\t",a[m].f[o].s);

}

printf("%.2f\t%.2f\n",a[m].sum,a[m].ave);

printf("\n------------------------------------------------------------------------------\n\n");

printf("\n请选择功能:

\n0.退出\t1.录入\t2.显示\t3.排序\t4.插入\t5.删除\t6.学号查询7.姓名查询\t8.存档\n\n");

}

voidchaxun1(structstudenta[])//学号查询函数

{

intm,t;

printf("请输入要查询的学号:

");

scanf("%d",&t);

for(m=0;m<=i;m++)

{

if(a[m].num==t)

{

cprint(a,m);

break;

}

if(m==i&&a[m].num!

=t)

{

system("cls");//清屏

printf("\n\t\t没有查到您要找的学生资料\n");

printf("\n--------------------------------------------------------------------------------\n");

printf("\n请选择功能:

\n0.退出\t1.录入\t2.显示\t3.排序\t4.插入\t5.删除\t6.学号查询7.姓名查询\t8.存档\n\n");

}

}

}

voidchaxun2(structstudenta[])//姓名查询函数

{

intm;

chart[20];

printf("请输入要查询的姓名:

");

scanf("%s",t);

for(m=0;m<=i;m++)

{

if(strcmp(a[m].name,t)==0)

{

cprint(a,m);

break;

}

if(m==i&&(strcmp(a[m].name,t)!

=0))

{

system("cls");//清屏

printf("\n\t\t没有查到您要找的学生资料\n");

printf("\n--------------------------------------------------------------------------------\n");

printf("\n请选择功能:

\n0.退出\t1.录入\t2.显示\t3.排序\t4.插入\t5.删除\t6.学号查询7.姓名查询\t8.存档\n\n");

}

}

}

voidsave(structstudenta[])//存档函数

{

intk,m;

FILE*fpFile;

fpFile=fopen("student.txt","w");

fprintf(fpFile,"学号\t姓名\t第1科\t第2科\t第3科\t第4科\t第5科\t第6科\t总分\t平均分\n");

fprintf(fpFile,"\n---------------------------------------------------------------------------------\n\n");

for(k=0;k

{

fprintf(fpFile,"%d\t%s\t",a[k].num,a[k].name);

for(m=0;m<6;m++)

{

fprintf(fpFile,"%.2f\t",a[k].f[m].s);

}

fprintf(fpFile,"%.2f\t%.2f\n",a[k].sum,a[k].ave);

}

fprintf(fpFile,"\n---------------------------------------------------------------------------------\n\n");

fclose(fpFile);

printf("已存到根目录student.txt文件");

printf("\n-------------------------------------------\n");

printf("\n请选择功能:

\n0.退出\t1.录入\t2.显示\t3.排序\t4.插入\t5.删除\t6.学号查询7.姓名查询\t8.存档\n\n");

}

结果如图所示

5课程设计总结

通过这次课程设计我对C语言的神奇功能更加佩服,我默默在心里发誓一定要把C语言学好,而且将来我还要想学习C++语言,熟练的掌握编程的方法。

本次课程设计,我设计的是一个学生成绩管理系统,本程序若完全靠现有的知识,是很难编写出来的,幸亏有我的指导老师的耐心指导,我才能顺利完成。

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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