.
PAGE
.
课程实验报告
课程名称
C语言程序设计
班级
13新能源2班
实验日期
2013年8月1号
姓名
许鑫
学号
130370236
实验成绩
实验名称
学生成绩记录簿系统
实
验
题
目
描
述
本程序是非数值计算型算法设计,我设计出了学生成绩记录簿系统的基本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、删除等。我设计的这个成绩记录簿系统也初步实现了学生成绩信息的显示、输入、删除、查找等必要的功能。
1.建立一个主界面
2.用switch语句进行分类讨论
3.分别进入录入,查询,删除,等子函数。
4.将子函数与主函数相连即可。
该程序可以建立学生的成绩记录。可以方便老师和同学方便的查阅成绩;
这个程序有录入和删除的功能;
还可以求出平均成绩,并排序
成绩记录簿中记录以下数据:学号、姓名、课程编号、课程名称、成绩、学分
???添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示;
???查询(班级或个人)成绩:
???查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。
???查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。
拓展功能:
a) 程序启动时先从文件读入数据,如果文件中没有数据则给出提示;
b) 每次修改的数据写入文件
实
验
环
境
以自己的电脑为主要的实验平台,运用Visual C++ 6.0这个软件进行反复的编写实验。
实
验
界
面
截
图
1、开始时
2、添加
3、查询
4、查询成绩
5、写文本
6、读取
算
法
描
述
及
实
验
步
骤
主程序提供一个界面,允许用户选择。使用switch语句,用时直接输入数字即可。
增加函数,功能是插入学生成绩。使用一个无穷循环,直到录入”n”时结束。
删除函数,功能是删除,分为两步,先找后删。找,用strcmp函数 来做如果找到记录i值,反之记为-1;删除可以从i项开始将数组的后一项赋值给前一项。前一项自动被删掉。这样完成删除。
查询函数与之类似,将删除改为输出即可;
求平均值函数与查询类似只是输出时只输出平均值而已。
按平均值排序只要加一个排序函数即可。
退出函数什么都不写,即可。
程序流程图
查询成绩
查询成绩
添加成绩
添加成绩
添加学生成绩添加课程编号添加学生姓名添加学生学号查询班级成绩查询学生成绩
添加学生成绩
添加课程编号
添加学生姓名
添加学生学号
查询班级成绩
查询学生成绩
查询班级成绩查询学生成绩
查询班级成绩
查询学生成绩
课程编号
课程编号
学号查询姓名查询
学号查询
姓名查询
调
试
过
程
及
实
验
结
果
总
结
经过一个多星期的编译原理课程设计,在我的努力下,顺利完成该课程设计。
通过该课程设计,掌握了编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程及其相关的技术,对课本上的知识也有了更深的理解。老师常说,课本上的知识是机械的,表面的,要学会去运用,要举一反三。现在终于深刻的了解了这句话。经过这次的课程设计,发现书本上很深奥的知识变的更为简单,同样,对实验原理也了有更深的理解。知道和理解了该理论在计算机中是怎样执行的, 对该理论在实践中的应用有深刻的理解 。通过该课程设计,把死板的课本知识变得生动有趣,激发了学习的积极性。能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。
课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除。除了课堂外,课程设计是最能学到东西的,最考验人的。在做课程设计的这段时间,时刻都感到自己学的知识有多么的贫瘠。经过这次课程设计,让我对C++这门语言有了更深的认识,操作能力有了提高要想是写出的代码能运行,需要耐心细心,毅力以及充沛的体力。只有经过多次编辑,多次编译,再多次运行,才能编写出更好的程序,有时候需要多次的更正才能达到所要的运行结果。
附
录
#include
#include
#include
#define MAX 1000
struct Lesson
{
char LessonName[100];
char LessonNumber[100];
int LessonMark;
float LessonCredit;
};
struct Student
{
char Name[100];
char Numb