计算机学院 2020 级小学期编程实践课程
上机实验题目
(一)基于学生结构体数组的图书管理系统(20 分)
定义学生结构体类型的数组,静态初始化学生信息(不包括借书信息)。
图书使用二维字符数组或字符指针数组单独定义。
1、管理员为超级用户,管理员登录后可利用全局函数完成学生数据的管理
和查询,例如查询全部学生借书信息等;
2、学生登录后,通过仅可对自己完成借书和查询功能,无权访问他人信息。
注意:必须熟悉结构体和结构体数组的访问;必须实现不同角色的权限控制;
严禁编写只有一个主函数的程序,必须根据功能采用多函数完成。
(二)基于学生结构体链表的图书管理系统(20 分)
定义学生结构体类型的链表,初始化学生信息(不包括借书信息)。
课程使用二维字符数组或字符指针数组单独定义。
1、管理员为超级用户,管理员登录后可利用全局函数完成学生数据的管理
和查询,例如查询全部学生借书信息等;
2、学生登录后,通过仅可对自己完成借书和查询功能,无权访问他人信息。
注意:必须熟悉结构体和结构体链表的访问;必须实现不同角色的权限控制;
严禁编写只有一个主函数的程序,必须根据功能采用多函数完成。
(三)基于学生类数组的图书管理系统(类成员函数强化)(20 分)
定义学生类类型的数组,静态初始化学生信息(不包括借书信息)。
课程使用二维字符数组或字符指针数组单独定义。
1、管理员为超级用户,管理员登录后可利用全局函数完成学生数据的管理
和查询,例如查询学生借书信息等;
2、学生登录后,通过自身对象调用成员函数实现借书和查询功能。注意:
通过超级用户调用全局函数、学生用户调用成员函数的方式,着重强调面向对象
思想,强化成员函数在面向对象程序设计中的关键作用,重点是区分成员函数与
全局函数之区别,即成员函数主要用于完成调用者对象自身之功能,(隐性)利
用 this 指针完成调用者对象中数据成员之管理;而全局函数没有调用者对象和
this 指针,主要用于完成全局功能。
(四)基于学生类链表的图书管理系统(类链表强化)(20 分)
定义学生类类型的链表,初始化学生信息(不包括借书信息)。
课程使用二维字符数组或字符指针数组单独定义。
1、管理员为超级用户,管理员登录后可利用全局函数完成学生数据管理和
查询,例如查询学生借书信息等;
2、学生登录后,通过自身对象调用成员函数实现借书和查询功能。
注意:强化类链表操作方法,体会类链表与类数组操作之不同,着重强调通
过指针访问成员函数时体现出同样的面向对象思想。通过超级用户调用全局函数、
学生用户调用成员函数的方式,着重强调面向对象思想,强化成员函数在面向对
象程序设计中的关键作用,重点是区分成员函数与全局函数之区别,即成员函数
主要用于完成调用者对象自身之功能,(隐性)利用 this 指针完成调用者对象中
数据成员之管理;而全局函数没有调用者对象和 this 指针,主要用于完成全局
功能。
(五)(选做或扩展)功能:(20 分)
1、引入班级信息,每个学生属于特定班级,可以管理班级(查看、增加、
修改班级相关信息、统计相关班级借阅人数、按班级查阅借阅信息等等。。。)
2、利用函数嵌套调用实现丰富的多级菜单;
3、利用函数实现管理员对学生数据的管理(增删查改、综合查询等,例如
查询借阅 XXX 图书的同学有哪些……);
4、利用多函数或成员函数实现特定学生对象的自身管理功能(修改密码等);
5、可以扩展实现其他功能,例如:自学读写文件操作完成自动存盘等;
6、更多其他功能,请参考实际图书借阅管理系统功能自行设计实现。。。
7、使用图形交互界面(有兴趣的同学选做)。 注意事项:(请仔细阅读,严格按以下要求完成上机题目)
- 实验中的题目从功能角度是一样的,即完成一个图书借阅管理系统。其中 1/2 题属于面
向过程的编程方法,3/4 题属于面向对象的编程方法。同学们需完成 1-4 题要求的基本
功能,然后可从中选择一题,在此基础上扩展功能(包括选做功能和自行设计的其他
图书管理功能),完成一个功能最完善、操作简洁方便的图书管理系统; - 鼓励创新,实现新颖的交互界面,扩展更多的有实际意义和价值的图书管理功能(加
分点)。 - 请严格遵照时间节点,尽早在时间节点前提交作业,超过时间节点(deadline)提交的
计 0 分。 - 需撰写一个图书管理系统的开发技术报告(Word 或 pdf 文档),报告内容应至少包含以
下方面:实现的总体技术方案(如可绘制流程图、功能模块图、功能交互操作图等)、
每个上机题目完成的详细步骤(如关键功能算法介绍、实现代码等)、实现的结果(程
序运行截图,数据结果分析等)、编程心得及总结; - 作业提交要求及时间节点(deadline):需按时提交每个上机程序的演示视频(2-3 分钟,
采用迅捷等录屏软件录制),文件命名格式:学号-姓名-题目[1-5].[***视频文件后缀]。
提交方式:视频文件发至邮箱:1561968262@qq.com
各题目提交时间节点:
题目 1:8 月 11 日,题目 2:8 月 13 日,题目 3:8 月 15 日,题目 4:8 月 17 日,题
目 5(扩展功能最完善的图书管理系统),8 月 17 日。 - 需做课堂分组报告,分 4 组,1 组汇报题目 1(汇报时间 8 月 13 日 14:30),2 组汇报题
目 2(汇报时间 8 月 13 日 14:30),3 组汇报题目 3(汇报时间 8 月 17 日 14:30),4 组汇
报题目 5(汇报时间 8 月 17 日 14:30); - 小学期课程结束后,所有作业(包括程序、课堂报告 ppt 文档、技术报告 Word 或 PDF
文档)提交到邮箱:1561968262@qq.com ,截止日期 8 月 18 日。提交的作业请打包成
一个压缩文档发送(注意不要重复发送!!),打包的文件命名方式为:学号-姓名-2021
编程实践作业.rar(或 zip); (打包文件包括:所有上机题目的源码(不包括 debug
或 release 文件夹)、课堂报告 ppt、技术报告文档) - 可以相互讨论借鉴,但严禁抄袭,一旦发现作业程序代码重复率达到 50%以上,
所有相关同学在该道题目的成绩记零分。
题目给分标准:
(1) 实现(或部分实现)选做扩展功能的,根据实现的程度和效果,分数增加 5-20
分。总成绩最终加分不超过 100 分;
(2) 在规定学时内完成,功能正确,交互性好,程序结构良好,得满分;
(3) 在规定学时内完成,功能正确,交互性一般,程序结构稍差,减 5 分;
(4) 虽未能在规定学时内完成,但功能正确,程序结构良好,减 10 分;
(5) 功能基本正确,减 15 分;
(6) 功能不正确,程序有问题,计 5 分;
(7) 未能完成程序,不提交作业,计 0 分;
(8) 发现抄袭程序,计 0 分。
程序展示
源代码下载
链接: 源码下载链接
提取码: 7mx6