C++课程设计 单链表——学生信息管理系统.docx
上传人:13****88 上传时间:2024-09-14 格式:DOCX 页数:10 大小:1.3MB 金币:6 举报 版权申诉
预览加载中,请您耐心等待几秒...

C++课程设计 单链表——学生信息管理系统.docx

C++课程设计单链表——学生信息管理系统.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

6 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第页共NUMPAGES10页第PAGE\*MERGEFORMAT10页共NUMPAGES\*MERGEFORMAT10页先生信息管理零碎设计文档设计任务描述为了完成学籍管理的简单化,我们基于VisualC++集成开发环境编写了“先生信息管理零碎”软件,该软件适用于一切windows操作零碎,面向广大用户,界面简洁,操作简单。此软件次要是完成对先生学籍信息进行零碎化的管理,可以对先生基本信息进行添加、删除、查找、修正和对先生成绩的管理,次要是根据先生的学号及其姓名进行操作的。该软件可以更加方便管理者管理先生学籍信息。功能需求阐明该零碎所需求的功能有:1、链表的建立;2、先生信息的插入;3、先生信息的查询;4、先生信息的输出;5、先生信息的修正;6、先生信息的删除;7、良好的欢迎选择界面。三、全体方案设计一、完成任务的方法1、在欢迎选择界面中,运用Switch这一选择结构来连接程序的履行和用户的命令;2、在从先生信息的建立直到删除,都是运用链表的相关知识;3、在定义先生信息时,建立一个Inform类;在定义先生课程成绩时,自定义了一个achieve结构体;全体结构三、模块划分(1)链表的建立。(2)对链表信息的插入。(3)对链表信息的查找。(4)对链表信息的输出。(5)对链表信息的删除。(6)对链表信息的修正。课程成绩信息作为附加信息,穿插于各个模块中。数据结构阐明一、自定义的数据结构:1、achieve(课程成绩)用于存放课程成绩信息包括课程数、课程名、成绩、学分、总分和平均分。2、inform(先生基本信息)用于存放先生基本信息,包括姓名、学号、性别等。3、结点结构-Nodetype,定义了数据域inform和指针域next;二、类Student用于存放处理学生信息的各个功能函数,private成员是链表的头指针。各模块设计阐明一、建立:首先:建立一个空链表:Student::Student(){head=newNodetype;head->next=NULL;表明这是一个空链表cout<<"请建立链表\n";}然后建立链表:二、添加:按照学号从小到大的按次插入:三、输出:将链表的数据输出,由于上述操作,输出时会按照学号从小到大的按次输出。四、查找:利用学号和姓名两种方式进行查找,查找时次要是遍历链表进行判断while(p!=NULL&&(d==1&&strcmp(input,p->data.num)!=0)||(d==2&&strcmp(input,p->data.name)!=0)){p=p->next;}//遍历链表查找符合要求的节点五、删除:利用节点的删除操作,找到链表中第i-1个结点,修正其指向后继的指针:q=p->next;p->next=q->next;delete(q);六、更改:利用查找的操作,查到后在进行重新输出的操作;测试情况阐明测试一:先生信息的输出和输出都正常,但是查找、删除和修正时都只能对第一个数据进行操作,如下图所示:但是当要进行查找、删除、修正操作时,零碎只能对第一个对象进行操作查看程序时,发现查找函数、删除和修正函数都有个逻辑错误全部修正后,程序的上述错误就没再出现了。错误二:当提示能否输出课程成绩信息时,输出第一门课程名时,会出现无量循环但当输出第一门课程后就会出现下图所示形状:对于这类形状,我百思不得其解,后来请教其他同学,他告诉我错误在于声明课程成绩信息时出错了该当为二维数组,修正以后,课程成绩输出输出便正常了错误三:输出先生信息时不按照学号大小按次,输出结果时也不按照从小到大的按次输出。如下图所示后来查看程序,发现插入函数(insert)中判断新插入的数据的地位时出现成绩该当为strcmp(p->data.num,x.num)<0;以后输出正确了!评价和改进意见(1)不足:=1\*GB3①程序可能存在冗杂的地方。=2\*GB3②软件功能无量。=3\*GB3③界面为Dos界面,比较单调。(2)特点:=1\*GB3①运用链表的操作,可以方便地完成对先生信息的操作。=2\*GB3②基于VisualC++平台工程的建立。