1、 中 南 大 学C+程序设计基础课 程 设 计题 目 学生成绩管理系统 姓 名 学 号 班 级 指导教师 刘嫔 学 院 信息科学与工程学院 日 期 二一四年七月 设计任务书1、题目:C+课程设计报告2、程序功能组成: 数据的录入:如录入学生的基本信息,以及该学生选修课程的基本信息; 数据的修改:如修改指定学号、或者指定姓名的学生信息,或者修改其选修课程信息; 数据的插入:插入某个学生信息; 数据的查询:如按学号查询、按姓名查询等; 数据的删除:如删除指定学号、或者指定姓名的学生及其选修课程信息; 平均成绩的计算:计算每个学生各门功课的平均成绩,并按平均成绩从高到低的次序输出学生信息; 列出不及
2、格学生清单(学号、姓名、不及格的课程和成绩)。3、 进度安排:目 录序号 设计内容名称 完成时间 备注1 组队;确定题目;分工 6.252 初步的需求分析与设计建模 6.256.273 详细的需求分析与设计建模 6.286.304 关键模块的实现与测试 7.015 编写课程设计报告 7.017.026 最后总结,修改。 7.03一、总设计方案.1二、使用说明及运行实例2三、成员设计内容简介.6四、项目源程序代码.7五、设计心得.19一、总设计方案系统流程图:开始结束选择操作输入数据排序显示数据查询删除主菜单插入数据退出系统按学号按姓名保存数据吧按景平均成绩选择7选择6选择5选择4选择3选择2选
3、择1选择8按平均成绩高低i读取数据吧选择8班级学号性别姓名二、使用说明及运行实例主界面1数据录入2. 数据修改3. 数据插入4数据查询5数据删除6平均值计算7. 列出不及格学生三、成员设计内容简介1数据录入:数据录入的功能是将需要的数据进行录入,用于后面的各项操作。 实现:用输入函数对数据进行录入,先确定学生的个数,再用一个循环进行输入, 选修课程数量亦然。2. 数据修改:数据修改的主要功能是为修改数据输入出现的错误,实现:先指定该生的学号,找到该生,再输出该生当前的信息,用一个 if 语句对数据进行修改,再用一个循环语句对选修课信息进行修改。3. 数据插入: 数据插入的主要功能是在数据录入之
4、后,为防止数据输入的遗漏,实现:分为两个部分,第一个是插入第一个位置,第二是插入第一个位置之后,把当前的位置赋给后面的加以实现。4数据查询: 数据查询的主要功能是在数据输入之后进行分类再现,实现:分为输出所有数据,按学号查询,按姓名查询,当输入的数据 满足条件时即输出所要求的。 5数据删除:数据删除的主要功能是在数据录入、数据插入和数据修改完成之后对无用数据进行删除,实现:输入学号,满足条件时即把后一个数值赋给前一个数值,达到 删除的目的。6平均值计算:平均值计算的主要功能是求平均值,再对其进行排序, 实现:用公式进行计算求平均值,之后便是排序问题,求最大 值,然后依次输出各最大值,即实现了排
5、序功能。7. 列出不及格学生清单:这部分的主要功能是列出不及格学生清单,实现:用一个判断语句,当分数小于 60 时,即输出相应的学生信息即可。四、项目源程序代码#include#include#include#include main()int i,w=0,u/*被选中学生的下标*/,f/*科目数量*/;int o=0/*学生总数*/,p=0,g50/*每个学生的选修课程数量*/,a,x,b/* 新增学生个数*/,xx/*当前学生班级*/;char xm50/*当前学生姓名*/,h10;char oo/*判断是否继续*/,q;float s50/*平均成绩*/,max,al50;long qq
6、;struct studentint i;/*班级*/long j;/*学号*/char m30;/*姓名*/char n10;/*性别*/int x;/*年龄*/c50;struct scoreint q;/*课程编号*/char w50;/*课程名称 */float e;/*学分*/float r;/*考试成绩*/float t;/*平时成绩*/double y;/*综合成绩*/z5010;printf(“nn*nnn 欢 迎 进 入nn 学生成绩管理系统nnn 设计者: xxx 000000000nn 指导教师:刘嫔nn 中南大学 信息科学与工程学院 000000000nnn 2014年
7、 6 月nnn*n 请输入空回车键继续“);getchar();system(“CLS“);while(1)system(“CLS“);printf(“nn*n 系统主菜单nn1.录入数据nn2. 修改数据nn3.插入数据nn4.数据查询nn5.删除数据nn6.平均成绩计算nn7.列出不及格学生清单nn8. 退出系统nn“);printf(“请输入一个数字来选择目录:nn“);scanf(“%d“,system(“CLS“);if(i=1)/*1.录入数据*/printf(“ 录入数据nn“);while(1)printf(“n 请输入要录入的学生个数:n“);scanf(“%d“,if(b=
8、1)for(a=0;aa;u-)cu+1=cu;for(i=0;i=0;u-)cu+1=cu;for(i=0;imax) max=su;su=sa;sa=max;for(a=0;ao;a+)printf(“平均成绩:%3.1f 班级:%d 学号:%ld 姓名 :%s 性别:%s 年龄:%dn“,sa,ca.i,ca.j,ca.m,ca.n,ca.x);for(i=0;iga;i+)printf(“ 课程编号:%d 课程名称:%s 学分:%3.1f 考试成绩:%3.1f 平时成绩:%3.1f 综合成绩%3.1fn“,zai.q,zai.w,zai.e,zai.r,zai.t,zai.y);pri
9、ntf(“nn 是否返回主目录 y/n?n“);scanf(“%s“,if(strcmp(h,“y“)=0) break;else if(strcmp(h,“n“)=0) system(“CLS“);else if(i=7)/*7.列出不及格学生清单*/printf(“ 列出不及格学生清单“);for(a=0;ao;a+)for(i=0;iga;i+)zai.y=zai.r*0.7+zai.t*0.3;while(1)printf(“nn 不及格学生清单:nn“);x=0;for(a=0;ao;a+)for(u=0;uga;u+)if(int)zau.y60)printf(“学号:%ld 姓名
10、:%s 不及格课程:%s 综合成绩:%3.1fn“,ca.j,ca.m,zau.w,zau.y);x=x+1;if(x=0) printf(“所有学生成绩均及格“);printf(“nn 是否返回主目录 y/n?n“);scanf(“%s“,if(strcmp(h,“y“)=0) break;else if(strcmp(h,“n“)=0) system(“CLS“);else if(i=8)/*8.退出系统*/break;else printf(“输入错误!“);getchar();五、设计心得通过本次 C 程序课程设计,我 觉得对自己提高很大:克服了的 偷懒的毛病,这在我以后的学习和工作中
11、的心理定位与调节有很大的帮助。我感受到了编程是一项非常烦琐周密的活动,他不但需要一个人周密的思考问题的能力,处理问题的能力, 还需要有足够的耐心和严谨治学的作风,来不得半点马虎。通过本次课程设计,我初步学会了论文设计的基本方法,学会了怎样去借鉴别人的方法和经验,知道如何去查找资料和整合处理这些资料的能力,这为以后的大学毕业设计论文打下了一个初步的基础使我收益最大的是享受到了一种成功的喜悦,在这两个星期之中从开始的确定论文题目,然后是上网和上图书馆查找资料,编写 C 语言原程序,然后是进行编译,这个环节是一个非常痛苦和艰难的,常常会因为一小点的错误而在编译失败与再次修改的漫漫循环之路中,但失败的越多, 对人的考验就越多,在 编译运行成功之后的享受成功的喜悦也就越多,另外在调试程序的过程中不断的思考和运用已经学到的知识,这对于自己是有很大的提高的。 由于所学的知识不多,自己的编程经验不足,仍存在一些错误,按 现有的知识水平有些东西暂时还无法解决,还有待于在以后的学习中不断提高和改进!