学生成绩记录薄设计报告吴育兴课件.docx
《学生成绩记录薄设计报告吴育兴课件.docx》由会员分享,可在线阅读,更多相关《学生成绩记录薄设计报告吴育兴课件.docx(10页珍藏版)》请在冰豆网上搜索。
![学生成绩记录薄设计报告吴育兴课件.docx](https://file1.bdocx.com/fileroot1/2023-2/2/1f4ad3e1-8047-4292-9f31-3c3ec5cb98bc/1f4ad3e1-8047-4292-9f31-3c3ec5cb98bc1.gif)
学生成绩记录薄设计报告吴育兴课件
青岛理工大学琴岛学院
设计报告
课题名称:
学生成绩记录薄设计
学院:
计算机工程系
专业班级:
电子信息工程15级1班
学号:
20150713126
学生:
吴育兴
指导教师:
陈延波
青岛理工大学琴岛学院教务处
2016年6月29日
学生
吴育兴
指导教师
陈延波
课题名称
学生成绩记录薄设计
设计时间
2016.6.20~2016.7.1
设计地点
8-209
设计目的
通过课程设计的训练,了解程序设计的基本开发过程,掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。
本课程设计要求编制一个C语言成绩记录簿,每个学生信息包括:
学号、姓名、C语言成绩。
完成功能:
输入信息、添加记录,修改记录,按学号或姓名查询成绩等功能。
指导教师
评语
系部教研室
意见
一、需求分析
1、程序设计报告的内容要求
课程设计要求学生遵循软件开发过程中的基本规范,运用结构化程序设计的方法,程序设计报告应该能够反映学生完成课程设计题目的全部情况,包括对课程设计题目要求的分析、应用程序的设计、程序的测试过程以及程序的运行情况等,因此,编写课程设计报告是课程设计一个不容忽视的重要环节。
一个高质量的课程设计报告应该满足下列条件:
报告内容完整、观点正确;层次清晰、语流畅、用词准确且无二义性;能够反映结构化程序设计方法的基本原则;绘制的所有图表规范且正确。
用户文档是面向使用该应用程序的用户编写的,因此,应该将用户需要知道的所有内容用简练、清晰的语言描述清楚。
下面是用户文档应该包含的主要内容:
(1)应用程序运行环境的要求;
(2)应用程序功能的详细说明;
(3)流程图;
(4)代码及调试。
2、程序设计报告的质量要求
一个高质量的课程设计报告应该满足下列条件:
●报告内容完整、观点正确;
●层次清晰、语言流畅、用词准确且无二义性;
●能够反映结构化程序设计方法的基本原则;
●绘制的所有图表规范且正确。
2、总体设计
本系统首先设计出了主函数,然后根据去要实现的功能分别设计了添加,查询,修改,显示,输出,输入等功能的子函数。
在显示的函数设计过程中首先运用了文件的读取等必要的知识通过把文件的内容读取到内存然后打印出来。
删除函数的设计是首先从结构体数组内找到要删除的人,然后通过将后一个结构体数组覆盖到前一个结构体数组中进行删除。
查找是用一个字符串对比的方法找出用户要查找的人,然后打印出来。
修改则是将输入内容替换掉当前位置内容。
添加则是通过将学生信息存入结构体并按照学号排序,从而实现添加功能。
另外,本程序新增可以添加删除或查看课程序号的函数
1、主函数流程图
图1函数主流程图
3、详细设计
1、函数说明
Init()初始化函数
Create()创建链表
Delete(STUDENT)删除记录
Print(STUDENT*h)显示所有记录
Search(STUDENT*h)查找学生成绩
Insert(STUDENT *h)插入记录
(1)插入记录函数
函数原型:
intinsert(STUDENT*h)
功能:
根据用户指定将信息插入特定位置
参数:
结构体数组和记录数
要求:
输入信息
(2)查找函数
函数原型:
intsearch()
功能:
根据用户需要输出记录
参数:
记录数组和记录成绩以及姓名s
要求:
判断内存中记录的名字与输入的是否相等,如果相等则输出,否则提前结束。
(3)添加新学生姓名和学号功能
函数:
intNewItem(structStudentStudent[],intNum);
功能:
添加新学生的姓名和学号
(4)查询学生成绩功能
函数:
voidInquireSingle(structStudentStudent[],intNum)
功能:
通过输入学号或姓名,可以输出该学生的所有科目成绩和已经获取的总学分。
(5)储存文件功能
函数:
intWriteToFile(structStudentStudent[],intNum)
功能:
保存内容到文件
(6)寻找姓名或学号位置功能
函数:
intFindNameNumber(structStudentStudent[],intNum)
功能:
可以通过输入姓名或学号,得到储存的位置。
(7)查找c语言成绩位置功能
函数:
intLessonNumberToPosition(structStudentStudent[],intIfNeedNew)
功能:
通过输入从语言成绩,获得储存该C语言成绩的数组位置。
步骤1:
根据数字提示从中选择要操作的功能,如图2
图2导入页面图
步骤2:
按1键,会出现提示“输入学生资料”,如图3
图3学生成绩输入图
步骤3:
生成绩”,按6,“保存学生成绩”,如图4
图4学生成绩保存图
步骤4:
按2,会出现“查询学生资料”,如图5
图5学生成绩查询图
步骤5:
按3,“修改学生资料”,如图6
图6学生成绩修改图
步骤6,按0键即可退出,如图7
图7退出系统图
4、程序运行结果测试与分析
在设计该程序的时候我采用了结构化程序方法编辑,并在源代码的基础上添加了中文注释,但是在该系统的编写过程中仍然有许多错误,主要的有:
注释文字的排版,定义错误,句式的语法错误。
在完善程序时,我将源代码先打印下来反复的捉摸和研究,力图在上机运行时先改正一些低级错误,如缺少“;”之类。
在仔细检查之后,将源代码上机调试—进行编译,在编译和连接过程中发现错误,屏幕上显示了出错信息,根据提示找到出错的位置,加以改正……直到顺利显示我预期想得到程序效果。
具体调试过程如下:
1、首先,在本次调试过程中我碰到了在上机前根本没有想到的错误:
在注释的时候,注释文字应写在一起中间不能有中断,不能再其中包含c语言的语句。
否则会引起错误,例如格式不正确或是多了字符等。
2、缺少变量定义或是定义位置不正确;
由于该程序相对来讲稍有些长,前后有些变量很难联系起来,但是在错误信息的提示下一般还是很是可以找到。
不过需要注意的是在定义的时候有些函数使用同样的变量名而表示不同的作用,因而使用要很小心,定义及定义的位置要特别留意。
为减少这样的错误我后来还是用不同的变量名来表示,结果引起的那些错误解决了。
3、句式的语法错误;
大多的语法错误在通过书本参考下能够修改。
主要是平时看书不仔细、不太注意而产生的。
如没有注意具体数据使用是有一定的范围限定;过分重视分号的重要性而在for、if、while语句中画蛇添足加分号;在使用文件的时候忘记将文件先打开,对打开的方式与使用的情况不太注意而造成不匹配;还有漏掉形参的定义是值不能传递等等。
这些语法错误有信息框的提示一般是能够排除的。
编译、连接的成功并不意味着程序的最终成功。
逻辑上的错误机器不易检查出来,这时需要对数据结果进行分析。
这种错误的查找是最难的,需要编程序的人有相当的耐心和细心去把问题找出来。
这也是本次程序编辑过程中碰到的最大的难题。
往往运行之后得不到另人满意的结果,此时解决的方法一则可以用“分段检查”的方法,在程序的不同位置设几个printf函数语句,输出有关变量的值,逐段往下检查,或用debug进行调试,对检查出的错误进行修改,当调试完毕将设置的printf都删去。
若在程序中找不到问题,则再来考虑算法是否逻辑严谨,再进行修改。
如此循环往复,直到最后程序运行成功。
在本次程序编辑过程中,我就是常遇到编译能通过,能够运行程序,但是总在输入、删除等操作完之后再想去看数据文件中存在的数据记录的时候,却一条记录也显示不出来,我怀疑是哪个对方对n变量的定义或使用出错了,于是在每个主要函数的操作过程中添加了printf语句用来显示n的变化,例如在执行某个函数前添加插入语句显示n的起始值,在执行完该个函数后再添加插入语句显示此时n的结果值,观察n的变化是否正确,如果错误了,也就说明该函数编写过程有错。
诸如这样的调试方法,不断缩小检查范围,最后将错误找到,进行修改。
所以到最后我找到了错误,及时改正,终于把程序完成了,一切功能显示正常。
以上是调试的全过程。
5、结论与心得
通过这次的课程设计,增加了我对学习C语言和往后要学习C++的兴趣,虽然还不是真正的明白所有的C语言的子函数和里面的一些逻辑顺序,但我从C语言这门课程开始,已经发现程序设计的乐趣,在学习C语言的过程中也学到了许多计算机应用基础知识,对计算机的运行也有一个大体的了解。
这次课程设计是老师给的给了范例题目,经过自己的查找,在网上的搜索,实现题目上的要求,先做出一些简单的函数和程序,一步步的在做出其它的内容,不过在实际操作过程中犯得一些错误也还是会得到一些意外的收获,感觉不错,在具体的操作中对这学期的C语言的理论知识得到巩固,在设计的过程中也发现自己的不足之处,在以后的学习和上机的操作中会更加注意,同时体会到C语言的简洁和灵活,当然前提是我们上课认真听讲,听懂老师讲课的内容。
在上机操作中我们的任何不懂的问题都会暴露出来,对于我们来说是是件好事,在课程设计的过程中特别是对数组和循环有了深刻的理解。
通过实际的操作,学会C语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题,解决问题的能力。
经常的上机课定会提高实际操作水平。
在运行出来之后,我有点不敢相信这是我通过努力做出来的,对于我这个编程新手,在课程设计中,刚开始真有点对自己失去信心,在硬着头皮的情况下,还是做出来了。
发现其实事情并不像刚开始自己想的那样。
现在回想起来好像就是开头克服自己最难了,这大概就是人们说的万事开头难。