课程设计报告
一、需求分析
本课题选择了课题
用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查,统计,学籍变化等操作。
通过审题,我们可以初步了解,本课题需要达到以下要求:登记学生的相关信息,包括但不仅限于姓名,学号,性别等;删除或查某学生的信息;按学号,专业,输出学生信息;查询学生学籍的状态。
通过题面,我初步判断需要用到结构体,enum枚举类型函数,指针,函数调用,文件的存储,建立数组,比较,链表等相关知识。
二、总体设计
拿到课题,先对课题进行初步分析,并可得出,本课题需要先建立多组函数,来完成输入,查询,删除等操作,并建立一个菜单,然后再菜单内通过调用前面的函数来完成相关操作,并且菜界面内设定一定的引导。
程序的大致结构为9-24行为设定一个关于性别和学籍状态的enum函数,26-37行为建立结构体,41-172行为设定各种函数来完成学生相关信息的处理,即存储,查询,修改等,174-347行为菜单界面的建立,以及对于前面函数的调用,349-354为主函数。
c++课程设计报告本程序中最大的难题在于对于菜单的建立,链表的建立以及使用,文件的使用。因为上述都是第一次使用的知识点,掌握并不熟练,并缺乏一些详细的认知。使用链表的目的是为了利用链表不需要设定大小的优点。而在菜单建立部分,提示语以及函数的调用是最大的困难点,对于我关于函数类型的使用要求更高
为解决以上问题通过查阅书籍,网络搜索,以及与同学的讨论。
本次课程设计的过程首先是进行对课题的了解与分析,然后对程序进行初步的设计,对于需要的函数或者知识点进行学习,最后对函数经行补充,最后进行程序的试运行,并经行补充完善。
三、详细设计
1、struct _student——建立结构体;
2、enum——枚举类型函数;
3、registerStudent——注册一个新学生;
4、findStudent——查某学生;
5、modifyStudent——更改学生信息;
6、deleteStudent——删除某学生信息;
7、getStudent——通过指针到某学生;
8、putStudent——存储信息
9、putAll——存储全部
10、menuMain——主菜单;
11、sortByNumber——学号排序;
12、sortByMajor——专业排序;
13、splash——建立起始界面;
14、menuRegister——输入学生的子菜单;
15、menuModify——修改学生信息的子菜单;
16、menuDelete——删除学生信息的子菜单;
17、menuSearch——查学生的子菜单;
18、menuAllByNumber——按学号展示全部学生信息;
19、menuAllByMajor——按专业展示全部学生信息;
20、menuStatus——查询某学生的状态;
21、menuQuit——退出并保存;
四、程序运行结果测试与分析
编译并运行程序
出现以上界面并按回车键
出现设定好的主菜单
出现此界面,可以通过此界面输入学生相关信息,键入学生信息后返回主界面,输入2
即可对信息进行修改,后回到主界面键入3
即可在此界面删除某同学信息,回到主菜单键入4
即可在此界面中按学号查某同学,返回主界面键入5
即可得到按学号排序的信息,返回主界面键入6
为按学科排列,返回主界面键入7
最后返回键入8
保存并退出程序
五、结果与心得
在本次课题设计中,我全程担任程序的设计与完善和课程设计报告的书写。程序的书写中,由于是第一次进行菜单和链表的书写,所以在书写的过程中有大量的不严谨不合理,尤其是在子菜单的书写上,输入数据和调用函数这一部分,enum函数也是第一次使用。以上问题在和同学的讨论后得到了一部分解决。由于时间关系,本程序存在一些问题,目前还没有得到完全解决,比如会出现可能子菜单操作后一闪而过直接回到主菜单的情况。个人觉得本程序的功能没有完全合理的设计,对于程序还缺乏进一步的优化与完善。
六、源代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define clrscr() system("cls")
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论