c语言毕业课程设计报告学生成绩管理系统.docx

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

c语言毕业课程设计报告学生成绩管理系统.docx

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

c语言毕业课程设计报告学生成绩管理系统.docx

c语言毕业课程设计报告学生成绩管理系统

(此文档为word格式,下载后您可任意编辑修改!

 

 

C语言课程设计报告

 

题目:

学生成绩管理系统设计

设计者:

余销云

专业班级:

电子信息工程

(2)班

学号:

指导教师:

祝红琴

完成日期:

6月21日

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

报告

目录

一.系统软件环境……………………………………………………(3)

二.课程设计目的……………………………………………………(3)

三.内容与要求………………………………………………………(3)

四.程序主要功能……………………………………………………(4)

五.系统功能设计……………………………………………………(4)

六.函数实现功能说明………………………………………………(5)

七.调试分析…………………………………………………………(6)

八.心得与体会………………………………………………………(6)

九.各功能模块的实现及其程序清单………………………………(7)

十、附页源程序清单…………………………………………………(11)

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

报告

一.系统软件环境:

本程序主要运行在:

VisualC++6.0(主要)

TurboCC++3.0

TurboC2.

二.课程设计目的:

本课程设计的系统是早已在很多领域均有应用,是一个很不错的教学管理系统,而且其功能更是相当强大、界面更加友好的应用型软件。

而现在我的设计并非是重走旧路,而我的设计主要目的在于学习并深刻地掌握对C语言的基础知识以及其实践经验,更好地在以后的学习中能够更好地运用学习。

特别是像这种比较多运用

到一些课本上没有教的知识,比如说,像清屏函数CLRSCR、菜单函数MENU等。

许多都是一开始就没有涉及到的知识,在自已的设计中得到了提升,更加重要的一点就是增加了自已的实践操作能力。

三.内容与要求:

(一)设计内容:

成绩信息,内容如下:

例:

现有学生成绩信息,包含

姓名学号语文数学英语

张明明01677882

李成友02789188

张辉灿03688256

王露04564577

陈明05673847

………………

请用CC++编写一系统,实现学生信息管理,软件的入口界面应包括如下几个方面:

(二)功能要求:

(1)信息输入:

(2)信息查询:

要求:

查询时可实现按姓名查询、按学号查询

(3)成绩统计:

要求:

A输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。

(4)可选功能:

实现学生信息数据的维护。

可包括:

增加学生信息、删除学生信息、修改学生信息

(其他要求:

学生信息数据以结构体数组组织;或以链表形式组织;或以文件形式保存(可加分)

2、插入记录――在一个特定序号处插入一条记录

3、删除记

4、修改记―关键

可选增强功能:

统计录――修改特定记录

5、查询记录―。

(可对记录分)

6、排序――按学号、姓名、出生年月、家庭住址、邮编、电话等进行排序

7、系统维护――退出系统时关闭所有文件

四.程序主要功能:

本系统的主要功能有如下:

(1)、新输入学生的详细信息(包括:

学号、姓名、语文成绩、数学成绩、英语成绩)

(2)、增加学生的信息

(3)、删除学生的信息

(4)、查询学生的信息

(5)、统计学生的成绩

注:

由于本人能力有限,不能完全地将所有的功能模块做出来;但我相信我能够再接再厉,继续开发下去的,并向人性化发展。

五.系统功能设计:

(一)本系统的总体框架图:

(二)、本系统的总体流程图:

注:

此图为概图、程序较多无法一一展示。

六.函数实现功能说明:

(1)、MENU函数是定义一个菜单函数,其功能在于输出菜单界面供使用者选择。

(2)、CREAT函数是定义用于创建新的链表,并带回一个指向链表头的指针。

其功能是输入最初的学生信息。

(3)、ADD函数是定义用于再次输入学生信息,并将所有的学生信息按学号排序。

(4)、DEL函数是定义用于删除学生信息。

(5)、SEARCH函数是定义义用于查询学生信息,主要是学号的查询。

(6)、TAXIS函数是定义用于统计学生的成绩信息,采用排序函数的方式对学号数学等的排序。

七.调试分析:

因在不同的环境中运行是有不同的结果,以下分两种环境中说明:

(1)、在TurboC2.0

在这个环境下运行警告之处比较多,在调试时采用的图象处理函数在其它两个环境中不能运行。

例如:

在原程序中加入

#include“graphics.module……

原因在于:

TC3.0中对图象的处理函数有不足之处。

**在VisualC++6.0中的Error提示是:

BGIError:

Graghicsnotinitialized(use’initgraph’)

Cannotopenincludefile:

”graphics.

**原因在于:

连接浮点库错误。

**解决办法:

在主函数中加入:

fioatarg,*pointer=&arg;

即可运行

八.心得与体会:

(1)、通过本次对C语言的深入学习,让我对C语言有了更多的了解并撑握更多的知识,成功地运用各类函数、循环变量、结构化的程序设计,以及结构体、指针的使用。

(2)、但在学习中发现,编程确实不是很好做的,并非是你想要就能完成的,它需要的是认真、仔细地对待每一个程序块,特别是在对指针的使用时更加困难,那些指针指来指去,一不小心就会看错,编译不出来。

(3)、由于学生的我只是大一而已,没能够完完全全地把程序做出来,而且程序中有许多不足之处不能够正确地将它改正,但总体上是可以运行的。

九.各功能模块的实现及其程序清单:

(1)、各功能模块的实现(请参照第六点:

函数实现功能说明)

(2)、程序清单(请见附页)

参考文献:

[1]谭浩强编著.C程序设计第三版.北京:

清华大学出版社,2005

[2]林瑞仲等编著.C语言实例解析精粹.北京:

人民邮电出版社,2005

附页:

学生成绩管理系统源程序清单

#include

{menu();

choose();

}

*菜单系统*

voidmenu(void)

{

system("CLS");

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

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

printf("\t^*。

欢迎使用这个成绩管理系统。

*^\n");

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

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

printf("\n");

printf("\t以下这个菜单由余销云制作,详情请看:

\n\n");

printf("\t#########################################################\n");

printf("\t#请输入学生的分数.....................1#\n");

printf("\t#搜索学生分数....................2#\n");

printf("\t#搜索学生的优秀通过率.................3#\n");

printf("\t#搜索学生的通过状况...................4#\n");

printf("\t#搜索个人个门成绩分数.................5#\n");

printf("\t#离开.................................6#\n");

printf("\t#########################################################\n");

printf("\n\t请选择:

\n");

}

*菜单选择*

voidchoose(void)

{

intx,flag=0;

while(flag==0)

{

fflush(stdin);

scanf("%d",&x);

getchar();

switch(x)

{case1:

input();savescore();loadscore();menu();choose();flag=1;break;

case2:

choosec();flag=1;break;

case3:

excellent();flag=1;break;

case4:

passing();flag=1;break;

case5:

personal();flag=1;break;

case6:

Exit();flag=1;

default:

printf("\tSorry,yourchoosedoesn'texist!

pleasechooseagain!

\n");

}

}

}

*输入学生成绩*

voidinput(void)

{

intflag=1,j,i;chark;floatpp=0;

for(i=0;flag==1;i++)

{

printf("\t请输入第N.%",i+1);

puts("姓名:

");

fflush(stdin);

gets(stu[i].name);

fflush(stdin);

puts("学号:

");

fflush(stdin);

gets(stu[i].num);

puts("\t分数:

\t语文\t数学\t英语");

for(j=0;j

scanf("%f",&stu[i].score[j]);

puts("\t你想要继续么?

(YN)");

while

(1)

{puts("\t请选择.......");

fflush(stdin);

scanf("%c",&k);

if(k!

='N'&&k!

='Y')

puts("\t出错了,哈哈,再输一次吧!

");

elseif(k=='N')

{

flag=0;S=i;break;

}

elsebreak;

}

}

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

{

for(j=0,stu[i].total=0.0;j

stu[i].total+=stu[i].score[j];

stu[i].average=stu[i].totalM;

}

}

*保存数据*

voidsavescore(void)

{

inti,flag=1;FILE*fp;charm;

puts("\t你想要保存这些数据么?

(YN)");

while

(1)

{

fflush(stdin);

scanf("%c",&m);

if(m=='Y')

{

if((fp=fopen("D:

\score.txt","w"))==NULL)

{

printf("\t对不起哦,无法打开这个表单....\n");

exit(0);

}

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

if(fwrite(&stu[i],sizeof(structstudents),1,fp)!

=1)

{

puts("\t对不起,表单书写错误了!

");

flag=0;

}

if(flag==1)

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

printf("\t好了,第N.%d个学生的数据已经被保存了哦!

!

!

\n",i+1);

fclose(fp);

break;

}

elseif(m!

='N'&&m!

='Y')

puts("\t对不起,你输入错误,请重新输入一次吧!

");

else

break;

}

}

*读取文件中保存的数据*

voidloadscore(void)

{

FILE*fp;charn;MESSArestu[20];inti,j,flag=0;

charread[5][10]={"学号","姓名","语文","数学","英语"};

puts("\t你想要立刻读取这些数据么?

(YN)");

while

(1)

{

fflush(stdin);

scanf("%c",&n);

if(n=='Y')

{

if((fp=fopen("D:

\score.txt","r"))==NULL)

{

fprintf(stderr,"\tOpen%serror!

!

!

\n","score.txt");

exit(0);

}

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

fread(&restu[i],sizeof(structstudents),1,fp);

system("CLS");

puts("\t成绩信息读取中.................");

printf("\t好的,表单已经被读取!

...........\n");

printf("\n");

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

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

printf("$**$");

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

printf("%-10s",read[i]);

printf("$**$");

printf("\n");

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

{printf("\t$**$");

printf("%-10s%-10s",restu[i].num,restu[i].name);

for(j=0;j<3;j++)

printf("%-10.2f",restu[i].score[j]);

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

}

printf("\t$**$$**$");

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

fclose(fp);

break;

}

elseif(n=='N')

break;

else

printf("\t对不起,出现错误了,再来一次吧,相信你会成功的!

\n");

}

puts("\t输入任意键回到主菜单..............\n");

getchar();

getchar();

}

*选择查分的子菜单及子菜单选择*

voidchoosec(void)

{

intbiao,i,flag=0;FILE*fp;

if((fp=fopen("D:

\\score.txt","r"))==NULL)

{

printf("\t对不起,你无法输入任何成绩信息!

无法打开这个表单!

\n\n\n");

printf("\t输入任意键回到主菜单!

!

\n");

getchar();

getchar();

menu();

choose();

}

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

fread(&stu[i],sizeof(structstudents),1,fp);

fclose(fp);

system("CLS");

printf("\t以下是第二个菜单:

\n");

printf("\n");

printf("\t%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$\n");

printf("\t%%$按平均分由高到低..............................1%%$\n");

printf("\t%%$按总分由高到低................................2%%$\n");

printf("\t%%$按学号降序....................................3%%$\n");

printf("\t%%$按姓名降序....................................4%%$\n");

printf("\t%%$回到主菜单....................................5%%$\n");

printf("\t%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$\n");

printf("\n\t请选择输入方式:

\n");

while(flag==0)

{

fflush(stdin);

scanf("%d",&biao);

getchar();

switch(biao)

{case1:

flag=1;average();show();break;

case2:

flag=1;total();show();break;

case3:

flag=1;number();show();break;

case4:

flag=1;name();show();break;

case5:

flag=1;menu();choose();break;

default:

printf("\t对不起,你的操作无法进行!

请重新做出正确操作!

\n");

}

}

}

*显示分数*

voidshow(void)

{

inti,j,n,flag=0;

char");

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

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

printf("%-10s",\t");

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

{

printf("%-10s%-10s",stu[i].num,stu[i].name);

for(j=0;j<3;j++)

printf("%-10.2f",stu[i].score[j]);

printf("%-10.2f",stu[i].total);

printf("%-10.2f",stu[i].average);

printf("\n\t");

}

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

printf("\nYouwant:

(1or2)\n");

puts("\t1.回到第二个菜单!

\n");

puts("\t2.回到主菜单!

\n");

while(flag==0)

{

fflush(stdin);

scanf("%d",&n);

getchar();

switch(n)

{case1:

flag=1;choosec();break;

case2:

flag=1;menu();choose();break;

default:

printf("\t出错了,请再次输入!

\n");

}

}

}

*按平均分由高到低*

voidaverage(void)

{

inti,j,k;MESSAt;

for(i=0;i

{

k=i;

for(j=i+1;j<=S;j++)

if(stu[k].average

k=j;

if(k!

=i)

{

t=stu[k];

stu[k]=stu[i];

stu[i]=t;

}

}

}

*按总分由高到低*

voidtotal(void)

{

inti,j,k;MESSAt;

for(i=0;i

{

k=i;

for(j=i+1;j<=S;j++)

if(stu[k].total

k=j;

if(k!

=i)

{

t=stu[k];

stu[k]=stu[i];

stu[i]=t;

}

}

}

*按学号降序*

voidnumber(void)

{

inti,j,k;MESSAt;

for(i=0;i

{

k=i;

for(j=i+1;j<=S;j++)

if(strcmp(stu[k].num,stu[j].num)<0)

k=j;

if(k!

=i)

{

t=stu[k];

stu[k]=stu[i];

stu[i]=t;

}

}

}

*按姓名降序*

voidname(void)

{

inti,j,k;MESSAt;

for(i=0;i

{

k=i;

for(j=i+1;j<=S;j++)

if(strcmp(stu[k].name,stu[j].name)<0)

k=j;

if(k!

=i)

{

t=stu[k];

stu[k]=stu[i];

stu[i]=t;

}

}

}

*优秀率*

voidexcellent(void)

{

inti,j,k,w,flag=0;floatm;FILE*fp;

char("D:

\\sc

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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