C课程设计学生成绩管理系统Word格式.docx
《C课程设计学生成绩管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《C课程设计学生成绩管理系统Word格式.docx(29页珍藏版)》请在冰豆网上搜索。
⑷猜数字游戏
⑸电子英汉词典设计
⑹通讯录管理系统
3.设计要求:
掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的中型问题,为将来开发软件积累一些典型的案例处理经验。
具体要求如下:
1设计课题题目:
每位同学根据自己学号除以6所得的余数加一选择相应题号的课题。
原则上不予换提,私自换题者不记成绩。
⑵根据自己对应的课题完成以下主要工作:
①完成系统需求分析:
包括系统设计目的与意义;
系统功能需求;
输入输出的要求。
②完成系统概要设计:
程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;
每个模块的功能;
课题涉及的数据结构和数据库结构;
即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。
③完成系统详细设计:
包括采用C语言定义相关的数据类型;
写出各模块的类C码算法;
画出函数的调用关系图。
④调试分析、设计体会、测试数据:
准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;
程序调试中遇到的问题以及解决问题的方法;
课程设计过程经验教训、心得体会。
⑤关键源程序(带注释)
⑶按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。
⑷不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。
二、进度安排
第18周星期二08时:
00分——12时:
00分
星期三08时:
星期四08时:
星期五19时:
30分——21时:
30分
目录
1.系统需求分析1
1.1问题描述1
1.2功能要求1
2.概要设计2
2.1系统总体设计2
2.2.各模块的功能2
3.详细设计2
3.1采用C语言定义相关的数据类型2
3.2函数(根据实际情况,对各个函数进行详细设计)3
4.运行结果7
4.1主界面7
4.2主菜单7
4.3成绩录入7
4.4成绩显示8
4.5成绩保存8
4.6成绩排序8
4.7成绩修改9
4.8成绩统计9
4.9退出10
4.10程序调试中的问题11
5.心得体会11
6.附录12
6.1源代码12
6.2参考文献23
7.评分表24
1.系统需求分析
1.1问题描述:
对一个有N个学生的班级,每个学生有M门课程。
该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。
1.2功能要求:
1、本系统采用一个结构体数组,每个数据的结构应当包括:
学号、姓名、M门课程名称。
2、本系统显示这样的菜单:
请选择系统功能项:
a、成绩录入
b、成绩显示
c、成绩保存
d、成绩排序
e、成绩修改(要求先输入密码)
f、成绩统计
(1)显示每门课程成绩最高的学生的基本信息
(2)显示每门课程的平均成绩
(3)显示超过某门课程平均成绩的学生人数
g、退出系统
3、执行一个具体的功能之后,程序将重新显示菜单。
4、将学生成绩保存到文件中。
2.概要设计
2.1系统总体设计
1、本系统采用一个结构体数组,每个数据的结构包括:
2、本程序具有:
(1)成绩录入
(2)成绩显示(3)成绩保存(4)成绩排序(5)成绩修改(6)成绩统计(7)退出系统
2.2.各模块的功能
成绩录入用于输入成绩
成绩显示用于查询时
成绩保存用于把录入的成绩保存到指定的位置
成绩排序则对成绩的高低进行排序
成绩修改对录入的成绩进行修改并保存
成绩统计用于统计每门成绩最高分的同学资料和每一门成绩的平均分
3.详细设计
3.1采用C语言定义相关的数据类型
结构体
void空类型
int整型
float浮点类型
double双精度浮点类型
char字符类型
3.2函数
统模块图如下:
主函数
主界面
保存功能
显示功能
查询功能
录入功能
退出功能
统计功能
排序功能
修改流程
4.运行结果
4.1主界面
输入用户名:
xinguan密码:
123456登录
4.2主菜单
4.3成绩录入
输入学生成绩、姓名、性别等信息并保存
4.4成绩显示
对已经录入的学生信息进行显示
4.5成绩保存
把成绩保存在特定的文件中
4.6成绩排序
对成绩进行高低排序后进入成绩显示查看
4.7成绩修改
对已经录入的成绩进行修改并保存
4.8成绩统计
统计中有三个选项
选项一
选项二
4.9退出
4.10程序调试中的问题
开始的时候有几十个错误,因为程序行数比较多所以很容易犯很多小错误,比如忘记打一个括号或者分号。
还有在测试时不显示错误但在运行时数据不对的情况。
5.心得体会
课程设计给我一个学以致用的机会,刚开始的时候还以为自己绝对写不出这么多的程序,我认为这绝对是一个不可能完成的任务,后来通过上网查找资料和询问老师还有和同学们讨论竟然完成了这个看似不可能的任务。
在这次的课程设计中有很多的错误,看着满满的错误一度灰心,
但是老师对我说改正错误甚至比写一个程序更有用,于是只好硬着头皮干了,发现很多错误都是重复的或者粗心造成的,想起老师说的要养成良好的变成习惯,程序写出来才会好看,也便于自己查找修改错误。
这些基础是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。
回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
通过这次的学习我发现以后不管是哪一科我们尽量要把它拿过来使用,只有把知识应用到实际生活中才能说这知识是自己的啦。
在以后找工作中这些作品就会是我的学习凭证,是我的能力的体现,不难想象一个公司要的是一些实际的东西不需要太多的理论。
6.附录
6.1源代码
#include<
stdio.h>
conio.h>
/*清屏*/
#include<
stdlib.h>
/*显示目录*/
string.h>
#defineMAX10
voidmenu();
voidinput();
//录入
voiddisplay();
//显示全部成绩
voiddisplay1();
voidaverage();
/*平均值函数*/
voidsave();
//保存
voidsort();
//排序
voidmodify();
//修改
voidselect();
//统计
intnow_no=0;
structstudent
{
intno;
charname[20];
charsex[4];
//性别
floatscore;
floatscore1;
floatscore2;
floatscore3;
floatscore4;
floatsort;
//排序成绩
floatave;
//平均分
floatsum;
//总分
};
voidmain()
inth,flag1,flag2;
charname[20]="
xinguan"
password[10]="
123456"
;
charperson[20],password1[10];
printf("
\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"
);
\t┃┃\n"
\t┃**********欢迎进入班级成绩管理系统**********┃\n"
\t┃**********湖南工程学院**********┃\n"
\t┃**********信管1402李婷**********┃\n"
\t┃2015年7月┃\n"
\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"
printf("
\t\t\t用户登录\n\n"
for(h=0;
h!
=5;
)
{
\t\t\t\t用户名:
"
gets(person);
flag1=strcmp(person,name);
\t\t\t\t密码:
gets(password1);
flag2=strcmp(password,password1);
if(flag1==0&
&
flag2==0)
{
\t\t\t\t登陆成功!
\n\n"
menu();
break;
}
else
\t\t\t用户名或密码错误!
printf("
\t\t\t请注意:
您还剩%d次机会!
4-h);
h++;
}
if(h=5)
对不起,您输入的用户名或密码有误,已被强制退出。
\n"
}
structstudentstu[MAX],*p;
voidmenu()/*主函数*/
intas;
charch;
do{
\n\n\n\n\t\t****&
****&
****"
start:
\n\n\n\n\t\t\t欢迎使用学