学生成绩记录簿设计.docx
《学生成绩记录簿设计.docx》由会员分享,可在线阅读,更多相关《学生成绩记录簿设计.docx(19页珍藏版)》请在冰豆网上搜索。
![学生成绩记录簿设计.docx](https://file1.bdocx.com/fileroot1/2022-10/14/21ced337-a7d8-49f7-9b3f-64cb1ffc4d0f/21ced337-a7d8-49f7-9b3f-64cb1ffc4d0f1.gif)
学生成绩记录簿设计
第一章 程序设计的目的和要求ﻩ1
1.1课程设计的目的1
1.2课程设计的要求1
1.2.1程序设计报告的内容要1
1.2.2 程序设计报告的质量要求2
第二章课程设计任务内容ﻩ3
2.1考核内容3
2.1.1编写的C++语言程序3
2.1.2课程设计报告3
2.2课题3
第三章 详细设计说明4
3.1函数说明ﻩ4
3.2函数流程图5
3.3.1主函数流程图5
3.3.2子函数流程图5
3.3编码及调试ﻩ7
第四章软件使用说明9
4.1应用程序运行环境的要求ﻩ9
4.2应用程序功能的详细说明9
附录一:
参考文献ﻩ12
附录二:
程序清单13
《程序设计基础》课程设计
---学生成绩记录簿
第一章程序设计的目的和要求
1.1课程设计的目的
1. C语言课程设计的主要目的是培养学生综合运用C语言程序设计课程所学到的知识,编写C程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。
2.通过课程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。
3. C语言程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C语言程序及编写设计报告。
1.2课程设计的要求
1.2.1程序设计报告的内容要求
课程设计要求学生遵循软件开发过程中的基本规范,运用结构化程序设计的方法,程序设计报告应该能够反映学生完成课程设计题目的全部情况,包括对课程设计题目要求的分析、应用程序的设计、程序的测试过程以及程序的运行情况等,因此,编写课程设计报告是课程设计一个不容忽视的重要环节。
一个高质量的课程设计报告应该满足下列条件:
报告内容完整、观点正确;层次清晰、语流畅、用词准确且无二义性;能够反映结构化程序设计方法的基本原则;绘制的所有图表规范且正确。
用户文档是面向使用该应用程序的用户编写的,因此,应该将用户需要知道的所有内容用简练、清晰的语言描述清楚。
下面是用户文档应该包含的主要内容:
(1)应用程序运行环境的要求;
(2)应用程序功能的详细说明;
(3)流程图;
(4)代码及调试。
1.2.2程序设计报告的质量要求
一个高质量的课程设计报告应该满足下列条件:
●报告内容完整、观点正确;
●层次清晰、语言流畅、用词准确且无二义性;
●能够反映结构化程序设计方法的基本原则;
●绘制的所有图表规范且正确。
第二章 课程设计任务内容
2.1考核内容
2.1.1编写的C++语言程序
●针对编写的C++程序,应该主要考查下列内容:
●是否符合题目要求,是否完成了主要功能;
●是否存在语法错误、逻辑错误及运行错误;
●程序设计是否合理;
●程序是否具有良好的可读性和可靠性;
●是否符合结构化程序设计所倡导的基本理念;
●用户界面是否友好。
2.1.2课程设计报告
●针对提交的课程设计报告,应该主要考查下列内容:
●程序设计的报告内容是否全面,观点是否正确;
●设计过程是否符合结构化程序设计方法的基本原则;
●层次是否清楚,语言是否通顺;
●各种图表是否规范;是否具有良好的程序设计习惯。
2.2课题
设计一个学生成绩记录簿c++程序,该系统的主要功能如下:
1)创建信息并以磁盘文件保存;
2)读取磁盘文件并显示输出所有学生的成绩;
3)按学号或姓名查询成绩;
4)添加成绩记录;
5)修改指定姓名或学号的学生的成绩并可存盘;
6)显示输出60分以下、60-79、80-89、90分以上各分数段的学生信息;
第三章详细设计说明
3.1函数说明
Init() 初始化函数
Create() 创建链表
Delete (STUDENT) 删除记录
Print(STUDENT *h) 显示所有记录
Search(STUDENT*h) 查找学生成绩
Insert(STUDENT *h) 插入记录
1.插入记录函数
函数原型:
intinsert(STUDENT*h)
功能:
根据用户指定将信息插入特定位置
参数:
结构体数组和记录数
要求:
输入信息
2.查找函数
函数原型:
intsearch()
功能:
根据用户需要输出记录
参数:
记录数组和记录成绩以及姓名s
要求:
判断内存中记录的名字与输入的是否相等,如果相等则输出,否则提前结束
3.删除记录函数
函数原型:
int delete(STUDENT*h)
功能:
删除内存链表中的指定结点
参数:
记录数组和记录条数,成绩
要求:
给出相关信息
3.2 函数流程图
3.3.1主函数流程图
图3-1函数主流程图
3.3.2 子函数流程图
如图3-2所示:
图3-2流程图
从表中删除原有纪录模块,算法,如图3-3所示:
图3-3删除信息流程图
按照姓名查找纪录模块,算法,如图3-4所示:
图3-4查找信息流程图
按照姓名删除记录模块,算法,如图3-5所示
图3-5修改信息流程图
3.3编码及调试
在设计该程序的时候我采用了结构化程序方法编辑,并在源代码的基础上添加了中文注释,但是在该系统的编写过程中仍然有许多错误,主要的有:
注释文字的排版,定义错误,句式的语法错误。
在完善程序时,我将源代码先打印下来反复的捉摸和研究,力图在上机运行时先改正一些低级错误,如缺少“;”之类。
在仔细检查之后,将源代码上机调试—进行编译,在编译和连接过程中发现错误,屏幕上显示了出错信息,根据提示找到出错的位置,加以改正……直到顺利显示我预期想得到程序效果。
具体调试过程如下:
1、首先,在本次调试过程中我碰到了在上机前根本没有想到的错误:
在注释的时候,注释文字应写在一起中间不能有中断,不能再其中包含c语言的语句。
否则会引起错误,例如格式不正确或是多了字符等。
2、缺少变量定义或是定义位置不正确;
由于该程序相对来讲稍有些长,前后有些变量很难联系起来,但是在错误信息的提示下一般还是很是可以找到。
不过需要注意的是在定义的时候有些函数使用同样的变量名而表示不同的作用,因而使用要很小心,定义及定义的位置要特别留意。
为减少这样的错误我后来还是用不同的变量名来表示,结果引起的那些错误解决了。
3、句式的语法错误;
大多的语法错误在通过书本参考下能够修改。
主要是平时看书不仔细、不太注意而产生的。
如没有注意具体数据使用是有一定的范围限定;过分重视分号的重要性而在for、if、while语句中画蛇添足加分号;在使用文件的时候忘记将文件先打开,对打开的方式与使用的情况不太注意而造成不匹配;还有漏掉形参的定义是值不能传递等等。
这些语法错误有信息框的提示一般是能够排除的。
编译、连接的成功并不意味着程序的最终成功。
逻辑上的错误机器不易检查出来,这时需要对数据结果进行分析。
这种错误的查找是最难的,需要编程序的人有相当的耐心和细心去把问题找出来。
这也是本次程序编辑过程中碰到的最大的难题。
往往运行之后得不到另人满意的结果,此时解决的方法一则可以用“分段检查”的方法,在程序的不同位置设几个printf函数语句,输出有关变量的值,逐段往下检查,或用debug进行调试,对检查出的错误进行修改,当调试完毕将设置的printf都删去。
若在程序中找不到问题,则再来考虑算法是否逻辑严谨,再进行修改。
如此循环往复,直到最后程序运行成功。
在本次程序编辑过程中,我就是常遇到编译能通过,能够运行程序,但是总在输入、删除等操作完之后再想去看数据文件中存在的数据记录的时候,却一条记录也显示不出来,我怀疑是哪个对方对n变量的定义或使用出错了,于是在每个主要函数的操作过程中添加了printf语句用来显示n的变化,例如在执行某个函数前添加插入语句显示n的起始值,在执行完该个函数后再添加插入语句显示此时n的结果值,观察n的变化是否正确,如果错误了,也就说明该函数编写过程有错。
诸如这样的调试方法,不断缩小检查范围,最后将错误找到,进行修改。
所以到最后我找到了错误,及时改正,终于把程序完成了,一切功能显示正常。
以上是调试的全过程。
第四章 软件使用说明
4.1应用程序运行环境的要求
程序运行的环境Win9X/Win2000/WinXP/Win2003
4.2应用程序功能的详细说明
步骤1:
根据数字提示从1-5中选择要操作的功能,如图4-1所示:
图4-1软件使用图示
步骤2:
按1键,会出现提示“插入信息”,按2,会出现“删除信息”,按3,“修改信息”,按4,会出现“查看信息”,按5,“保存”,按q键即可退出,如图4-2所示:
图4-2软件使用图示
步骤3:
键入1回车,会出现提示“请输入要删除学生信息”,现在就可以删除学生信息,如图4-3所示:
图4-3软件使用图示
步骤4:
键入2及Enter键,会出现提示“请输入要查找的学生信息”,然后根据提示将该学生的信息删除,如图4-4所示:
图4-4软件使用图示
第五章 课程设计心得与体会
在课程设计过程中,遇到了不少的问题。
这迫使我不得不参考一些课外资料,向同学和老师们请教。
不过,最后在我的努力和老师同学们的帮助下,还是把程序写出来了,这令我非常高兴。
但是在运行过程中又出现了问题。
一开始就出现了十几个错误,这令我的信心有所下降,有的错误我根本就不知道是啥意思,我就向同学以及上网查一下资料。
在经过几天的检查与修改后,终于能编译出来了,这又使得我非常高兴。
但是运行的结果不是很理想,没能够达到我预想的那样。
在运行出来之后,我有点不敢相信这是我通过努力做出来的,对于我这个编程新手,在课程设计中,刚开始真有点对自己失去信心,在硬着头皮的情况下,还是做出来了。
发现其实事情并不像刚开始自己想的那样。
现在回想起来好像就是开头克服自己最难了,这大概就是人们说的万事开头难。
附录一:
参考文献
[1] 谭浩强.C++程序设计.清华大学出版社.
[2] 严蔚敏吴伟民.数据结构(C语言版). 清华大学出版社
附录二:
程序清单
#include<iostream.h>
#include
#include
#include
#include<fstream.h>
classstudent
{
private:
student*next;
public:
charstu_num[15]; //学号
charstu_name[30]; //姓名
floatstu_score; //成绩
/*在该节点后插入一个几点*/
voidafterInsert(student*p);
/*在该节点后删除一个节点*/
voidafterDelete();
/*获得下一个节点的指针*/
student*getNext(){returnnext;}
/***********查询学生信息************/
void getMage( );
/******学生信息修改******/
voidchangeMage(intn,char *ptr);
voidchangegrade(float p);
/******构造*****/
student(char*num,char *name