程序设计——研究生信息管理系统(C++链表代码实现,加深指针操作学习)

代码:
代码链接

一、 问题描述

  1. 派生出学术硕士类,增加的属性包括:专业,发表论文(名称与级别(1、2、3)),可以多篇,最多3篇),论文成绩,总成绩。
    学术硕士论文成绩计算:各个级别的论文得分为:级别10,每个学生论文最高90分。总成绩=课程成绩0.7+论文成绩0.3。
    2.工程硕士增加的属性包括:领域,参与项目(名称与级别(A,B,C)),项目成绩,总成绩。计算方式如下——工程硕士项目成绩计算:每个学生只参与一项项目,各个级别得分:A级90,B级75,C级60,不参与项目得分为0。总成绩=课程成绩
    0.5+项目成绩*0.5。
    系统基本功能包括:
  2. 数据文件管理功能:利用输入输出流创建新文件、打开新文件、保存文件。
  3. 计算与统计功能:能够打开已存在的数据表文件,对数据表中与某关键字匹配的相关记录进行数据统计(包括:总数、平均值、分段信息)。
    例如:按总成绩得分段统计学生人数,以及所占百分比;能够计算每个研究生的总成绩等。
  4. 研究生信息的增、删、改、查等基本记录管理功能。

二、 分析设计

按步骤构建父类和子类,为方便后面的步骤重载<<、>>运算符(将类中的内容便捷的输入输出)。
设计菜单栏和子菜单栏(用函数表达),用system(“cls”)函数清屏操作。
设计各种与文件相关操作(增、删、改、查)
设计统计函数(包括分段统计学生人数;能够计算每个研究生的总成绩)。
将两个不同类的文件输出到不同的两个文件(重要)
在无文件时,默认开一个新文件,增加的内容用append添加在文件尾
修改的功能依靠先读到要修改的位置(seep),把新的输入,把原来的删除。
删除功能依靠链表,把文件中的内容读出来,再用ios::out默认方式打开(删除原有内容),之后把要删除的节点删除,把新的链表全部写入文件。

三、 输入输出测试

页面1:
在这里插入图片描述

页面2:
在这里插入图片描述

页面1的1选项和2选项的子菜单都是同样的页面2
1、信息录入:
在这里插入图片描述

2、信息查找:
在这里插入图片描述

3、信息修改:
在这里插入图片描述
在这里插入图片描述

4、信息统计:
在这里插入图片描述

5、信息删除:
在这里插入图片描述
在这里插入图片描述

四、 分析与总结

1、Ios::out默认打开文件时清空文件。
2、删除的功能使用链表比较方便,但是需要的时间开销较大。
3、程序比较粗糙,比如如果出现数据类型出错,数据溢出情况,程序会出错。
4、Windows下的清屏函数是system(“cls”)
5、工程类与学术类的函数极其类似(因为是用了链表做),但是因为文件不同,类不同而导致必须分开写。
6、进行相关文件的操作函数的声明与定义,使程序能够对缓存中的数据读到磁盘中,也可以将磁盘中的数据读取到内存中。
7、goto语句用的偏多,这点不利于程序的稳定性。(为了一些视觉上的功能和实用功能,比如一直出现菜单栏,输入出错时可返回等)
8、可以用goto配合if,保证输入的数据符合条件(若不符合则调用goto)

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值