查询函数: 方便学生查找自己的基本信息。 删除函数: 删除某学生的信息。
保存函数: 保存好学生基本信息,以免丢失。
4.3 系统的功能模块的划分:
开始
菜单界面 功能选择 初始化函数 录入学生信息 显示学生信息 保存学生信息 删除学生信息 修改学生信息 查询学生信息 退出系统 结束
整个系统除了主函数外,另外还有14个函数,实现七大功能:录入功能、显示功能、保存功能、删除功能、修改功能、查询功能、退出系统功能。各个函数的详细设计说明分别如下: (1)主函数 main()
利用无限次循环for(;;)和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。
(2)菜单选择函数 int menu_select()
这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择。等执行完每一个函数功能后,返回菜单。
(3代码设计: 初始化函数 STUDENT *init()
这是一个无参函数,里面只有两个语句,它的作用是使链表初始化,使head的值为NULL和一个清屏语句。比如:没有这个函数的话,在你没有输入任何数据的情况下,去执行显示功能的时候会显示一些乱码! (4)输入记录函数 STUDENT *create() 这是一个无参函数,用来执行学生档案记录的输入,当学生为@时停止输入,函数结束后,带回一个链表头的指针指向一下个学生的信息插在表头。
(5)显示记录函数 void print(STUDENT *head)
这是一个不返回值的有参函数,形参为“链表头的指针”,负责对全部学生成绩记录的输出,不足之处就是不能对学生成绩进行分页显示。 算法:先将p结点的指针指向第一个结点,将p结点(即第一个结点)的数据输出。然后再将p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)
16
的数据输出。重复执行此步聚直到p指针指向NULL为止。
3 总流程图
开始 设定一个内容为学生信息的结构体 : Struct student[10], 定义六个函数 Main() void Display() void save() :void delete() ) void Search() void Modify() void GetInfo() 运行程序 退出程序 结束
17
4、插入功能流程图
开始 通过switch函数选择插入功能 Void print() 打开文件 录入学生基本信息 stu[i].name stu[i].no stu[i]sex stu[i]age Stu[i] .bnote 关闭并保存文件 结束
18
第五章
测试:
5.1 存在的问题:
在我们编好程序的时候其实还有很多问题的当然这是一个过程,可以说错误基本上是不可避免的,比如说“一些输入的格式问题和由于习惯性的错误而导致的错误等等。
我个人认为系统调试需要比较扎实的基本功以及充分的细心,c语言中有一些错误并不是直接明了的。在这个时候就需要我们有耐心慢慢的去找自己的错误,有些错误是由于一些不良操作习惯造成的,而且往往很难发现,因为这类错误都是平时自己不怎么注意的,所以就是产生了也很难查出来,这就要求我们平时养成良好的习惯。比如花括号的使用,我最开始编写的一个程序有一个错误,但是我就是怎么也查不出来,而且因为操作习惯不好,整个程序毫无层次感,花括号也是成一列排放,没有一一分层对应。后来实在找不出原因就请教了老师。指导老师看了之后将我的程序重新排布了一遍,发现有一个花括号前后没有对应。其实在简单的程序中,花括号缺损可以很快发现,因为会有直白的提醒,但是在较复杂的程序中,一个花括号的缺损也许会造成其他很多错误的产生,如果有良好操作习惯,可以很快发现这个小问题。所以我觉得,我们的基础应该牢实!要不然就会犯下很多那种没必要的错误。可以说是低级失误!
通过系统调试我学会了很多东西。我们要注重基础,因为我们有时就是因为
19
一个基础知识点没学会,从而产生很多的错误。 5.2 测试的方案:
1. 系统验证技术。 2. 系统确认技术。 3. 系统测试技术。
1. 将编好的源代码放到C语言的运行环境中去运行,通过运行找出其中的错误
或者是输入的不规范的地方,加以改正,还有就是试一下程序到底能不能运行,是不是满足课程设计的题目的要求。
2. 把已经整理好的源代码放到C语言的运行环境去调试一下,就是确认这个源
程序代是否正确。
3. 用运行系统测试源程序代码。
20