学生成绩管理系统课程设计报告.docx

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

学生成绩管理系统课程设计报告.docx

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

学生成绩管理系统课程设计报告.docx

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

新乡学院计算机与信息工程学院

 

课程名称

C语言课程设计

项目名称

学生成绩管理系统

班级

14计科2班

学号

姓名

指导教师

王晓洁

 

年月日

课程设计主要目的

1.巩固和加深学生对C语言课程的基本知识的理解和掌握;

2.掌握C语言编程和程序调试的基本技能;

3.利用C语言进行基本的软件设计;

4.掌握书写程序设计说明文档的能力;

5.提高运用C语言解决实际问题的能力。

课程设计任务要求

完成一个学生成绩管理,具体要求如下:

1.输入学生信息

2.显示学生信息

3.查询学生信息

(1)按学号查询

(2)按姓名查询

(3)按性别查询

4.更新学生信息

5.删除学生信息

6.计算学生成绩

(1)计算总分

(2)计算平均分

7.保存到文件

8.退出

教师评语

 

成绩:

指导教师(签名)

课程设计报告正文内容

目录

一、说明设计任务

(1)定义一个结构体类型数组;

(2)输入必要的文字,并在屏幕上显示;

(3)画出部分模块的流程图;

(4)编写代码;

(5)程序分析与调试。

二、需求分析

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

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

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

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

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

三、设计方案

设计成绩管理系统,要求由菜单进行管理。

(1)从键盘输入包括学号、姓名、各门课程、成绩 。

(2)计算每个人的总分和平均分,并按照平均分排序 。

(3)具有查询功能。

(4)具有学生增加和减少功能 。

(5)将原始数据和计算后的数据保存在磁盘文件中。

四、测试分析

定义一个结构体类型student,变量中包括学生基本信息,如姓名、学号和性别,包括三门课程的成绩,平均成绩等。

____________________________________________________________________________________________________________

structstudent

{

intnum;学号

charname[20];名字

charsex;性别

intNO;名次

floatscore1;成绩1

floatscore2;成绩2

floatscore3;成绩3

floatsum;总分

floatave;平均分

};structstudentstu[max+1];

根据功能模块划分,学生成绩管理系统需建立的以下模块

1.输入函数

2.整体输出函数

3.查询函数

4.修改函数

5.删除函数

6.添加函数

7.保存函数

8.文件读取函数

9.按成绩排序函数

10.按学号排序函数

11.输出第n个学生信息函数

详细设计:

#include

#include

#include

#include

#definemax1000

voidinput();

voiddisplay();

voidfind();

voidchange();

voiddel();

voidsave();

voidadd();

voidsort(intn);

voidsortx(intn);

voidshuchu(intn);

intnow=0;/*标记位*/

structstudent结构体

{

intnum;

charname[20];

charsex;

intNO;

floatscore1;

floatscore2;

floatscore3;

floatsum;

floatave;

};structstudentstu[max+1];

主函数部分

为主面板的设计

voidmain()/*主函数(菜单)*/

{

intas;

do

{

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

printf("\n\t\t\t\t1.输入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.查询学员信息\n\t\t\t\t4.更新学员信息\n\t\t\t\t5.删除学员信息\n\t\t\t\t6.添加学员信息\n\t\t\t\t7.保存学员信息\n\t\t\t\t8.退出");

printf("\n\n\n\t\t\t\t请选择");

scanf("%d",&as);

switch(as)

{

case1:

system("cls");input();break;

case2:

system("cls");display();break;

case3:

system("cls");find();break;

case4:

system("cls");change();break;

case5:

system("cls");del();break;

case6:

system("cls");add();break;

case7:

system("cls");save();break;

case8:

system("cls");exit(0);

}

}

while

(1);

}

 

输入数据部分

确保数据量不会超出范围

voidinput()/*输入函数*/

{

inti,n,j;

for(i=0;;i++)

{

printf("\n请输入添加的学生数量(在%d以内):

",max-now);

scanf("%d",&n);

if(n>max)printf("\n请确保添加的数量在%d以内\t!

!

!

",max);

if(n<=max)break;

}

now=n;

for(i=0;i

{

printf("\n\t\t\t\t输入第%d个学生的信息\n",i+1);

printf("\n输入学生的学号:

");

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

getchar();

printf("\n输入学生的姓名:

");

gets(stu[i].name);

printf("\n请输入学生的性别(m/w):

");

for(j=0;;j++)

{

stu[i].sex=getchar();

if(stu[i].sex=='m'||stu[i].sex=='w')break;

elseprintf("\n\t\t\t请输入正确的性别!

!

!

");

getchar();

}

printf("\n请输入学生成绩1:

");

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

printf("\n请输入学生成绩2:

");

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

printf("\n请输入学生成绩3:

");

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

stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;

stu[i].ave=(stu[i].score1+stu[i].score2+stu[i].score3)/3.0;

}

sort(n);

save();

system("cls");

}

 

整体输出函数

voiddisplay()/*整体输出函数*/

{

intas,i;

printf("\n\n\t\t\t\t学生成绩列表\n\n\n");

printf("\n\n\t\t\t\t1.按名次输出\n\t\t\t\t2.按学号输出\n\t\t\t\t");

printf("\n\t\t\t\t请选择");

scanf("%d",&as);

switch(as)

{

case1:

sort(now);for(i=0;i

case2:

sort(now);sortx(now);for(i=0;i

}

}

 

等等

测试系统能否正确显示菜单选项

执行程序后,得到的界面如图1所示,该图显示有本系统的菜单选项。

图1学生成绩管理主菜单界面

(2)测试系统能否正确输入学生信息

输入如下数据:

学号姓名性别成绩1成绩2成绩3

101zhaom728887

102Liw889292

103sunm927489

进入主菜单界面后,输入数字1进入输入学生信息界面,提示输入人数,然后按提示输入学生信息

输入信息界面如下所示。

图2输入学生信息界面

(3)测试程序能否正确显示学生信息

在主菜单中如果输入数字2,系统会将刚才输入的学生信息按照预定格式显示出来,分为按学号排序和按成绩排序。

显示信息界面如下

图3显示学生信息界面

(4)测试系统能否正确查询学生信息

在主菜单界面中,输入数字3,则进入查询学生信息子菜单,允许输入数字1-3,分别按照三种不同方式对学生信息进行查询,例如输入1按学号查询,下图是按学号查询的学号为102的信息

图4显示查询结果界面

(5)测试系统能否正确更新学生信息

在主菜单界面输入数字4,进入更新学生信息界面,按照提示输入要更新的学生的学号,并且可供单个数据修改,修改后还可以提示继续修改与否。

更新学生信息界面如图所示。

图5更新学生信息界面

(6)测试系统能否正确删除学生信息

在主菜单界面输入数字5,进入删除学生信息界面,根据提示输入学生学号。

删除学生信息界面如图6所示。

图6删除学生信息界面

(7)测试系统能否保存文件

在主菜单界面输入数字7,进入保存文件界面,界面如图所示。

五、总结

(1)对于某一部分程序,参考《C语言课程设计》时,有些知识点还没有学到,不明白什么意思,后来经过查阅资料、请教老师,掌握了这些知识点。

(2)刚开始发现程序中有时数据可算平均分,有时却算不成。

经过大量的数据和排除可能性发现只有第一次输进去的数据能计算,而后来增加进去的不能计算,查看源程序发现原来是插入数据模块丢掉了求平均数的命令,怪自己粗心,浪费了不少时间在这个简单问题上。

(3)第一次做课程设计对我来说,是一件让人痛苦的事情。

即便两周的时间,对我来说仍是个困难之事。

开始的时候根本不清楚课程设计是要设计什么,不知道到底怎样设计,因为平时所写的c程序都是一些简单而且基本的C程序,根本不是解决实际情况,符合客户要求的工程程序,所以觉得无从下手,觉得很困难,甚至没有一个思路。

开始编写修改和删除程序时,很头疼,去向其他人寻求帮助,在其他同学的帮助和提示下,我编完了修改程序,但设计过程中仍都有错误存在,困难重重。

遇到困难就开始用大量的时间进行修改以及整理,理出思路。

最终将程序调试成功,而成功的瞬间是最快乐最开心的时刻。

(4)通过这次课程设计我学会了很多东西,觉得自己设计的东西更加接近实际的程序要求。

总的来说,我收获很大,以后我会更努力地学习。

六、参考文献

1梁旭等C程序设计课程设计电子工业出版社2011

2谭浩强C程序设计(第四版)清华大学出版社2010

3张福祥.C语言程序设计[M].辽宁大学出版社,2008.1

4张福祥,王萌.C语言程序设计习题解答与实验实训[M].沈阳:

辽宁大学出版社,2008.

5牛莉,刘远军等.计算机等级考试辅导教程[M].北京:

中国铁道出版社,2008.

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

当前位置:首页 > 幼儿教育 > 育儿理论经验

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

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