C语言《软件技术基础》实践大作业[2023-07-21]
C语言《软件技术基础》实践大作业[2023-07-21]
自动 21 级(包含卓越 211)《软件技术基础》实践大作业的要求
一、作业目的
1、掌握用数据结构的知识进行 C 程序设计。
2、应用所学的数据结构完成一个具有一定实际意义的应用程序的设计、编码、调试,锻炼
实践动手能力,提高编程水平。
二、作业内容
1、图书管理系统
问题描述:实现图书管理系统,主要为图书管理员和借阅者提供管理和查询服务。
基本功能要求:
程序必须采用链表数据结构实现。
图书信息至少包括以下信息:书名,ISBN、作者、出版社、出版时间,入库时间,
库存量(图书馆购买此书的数目),借阅数(被借阅的本数)。
图书管理员身份可以完成以下操作:
(1)录入:增加一本图书信息;
(2)删除:删除某一本图书的信息;
(3)修改:修改某一本图书的信息;
(4)查询:根据书名或图书 ISBN 等查询图书信息(可选择:简单条件查询,组
合条件查询等)。
(5)排序:根据书名或入库时间等信息进行排序,尽可能提高查找和维护性能;
(6)借书:借出一本书,该书的借阅量增加一本。
(7)还书:还回一本书,该书的借阅量减少一本。
(8)统计:统计所有的借出的图书数目,即:所有图书借阅量之和。
(9)输出:输出所有图书的所有信息,要求格式清晰,方便查看。
扩展功能要求:
(1)导出:把用户信息导出到文件中保存;
(2)实现图形用户界面与用户进行交互。
源码
https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111
2、学生管理系统
必须完成学籍登记表中的下面功能。
登记表中包括:学号、姓名、班级(如:自动 161 班)、性别、手机号码、选修课
程等信息。
程序必须采用链表数据结构实现;
(1)插入:将某学生的基本信息插入到登记表中;
(2)删除:将满足条件的基本信息删除;
(3)修改:对基本信息的数据项进行修改;
(4)查询:查找满足条件(学号或姓名等字段)的学生;
(5)排序:根据学生信息(例如:学号或电话号码等)进行排序,尽可能提高查找和
维护性能;
(6)增加课程信息(如:课程名、课程编号、开课学期等信息)管理(增加、删除和
查找和输出,不限存储结构);
(7)实现学生的选课功能(学生选择一门课后,该课程信息会出现在该生“选修课程”);
(8)输出:将登记表中的所有学生的(或满足条件)信息全部输出,要求格式清晰,
方便查看。
扩展功能要求:
(1)导出:把学生信息导出到文件中保存;
(2)实现图形用户界面与用户进行交互。
3、员工管理系统
问题描述:每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、
住址等。系统能够完成员工信息的査询、更新、插入、删除、统计等功能。
基本功能要求:
程序必须采用链表数据结构实现;
(1) 查询:按特定条件査找员工。
(2) 更新:按编号对某个员工的某项信息进行修改。
(3) 插入:加入新员工的信息。
(4) 删除:按编号删除已离职的员工的信息。
(5) 统计:统计并显示结果,统计的项目可以包括(40 岁以下及以上员工所
占比例、平均工龄等);
扩展功能要求:
(1) 导出:把员工信息及部门关系导出到文件中保存;
(2) 实现图形用户界面与用户进行交互。
4、学生成绩管理系统
问题描述:设计一个简单的学生成绩管理系统,可录入、保存一个班级学生多门课程的
成绩,并对成绩进行分析。
基本功能要求:
(1) 输入各学生多门课程的成绩,并存储(存储结构不限);
(2) 按各门课程成绩排序,并生成相应的文件输出;
(3) 计算每人的平均成绩,按平均成绩排序;
(4) 根据姓名或学号查询某人的各门课程成绩,重名情况也能处理。
扩展功能要求:
(1) 实现图形用户界面与用户进行交互;
(2) 求出各门课程的平均成绩、最高分、最低分、不及格人数 60-69 分人数,
70-79 分人数、80-89 分人数、90 分以上人数。
5、家谱管理系统
问题描述:家谱用于记录某家族历代家族成员的情况与关系。本系统要求能对家谱进行
存储、更新、查询、统计等操作。
基本功能要求:
程序必须采用树形数据结构实现。
(1) 录入:录入家庭成员信息,家庭成员的基本信息包括:(姓名,性别,出生
日期,死亡日期,职业等)。各家庭成员之间的关系,以树形结构存储;
(2) 修改:修改成员信息;
(3) 删除:删除成员信息(删除某成员必须把其子孙全部删除);
(4) 输出:将家谱以较友好的格式输出(显示);
(5) 查询:按基本信息查询成员。
(6) 统计:统计并显示结果,统计的项目可以包括(平均寿命、男女比例等);
扩展功能要求:
(1) 导出:把家谱成员信息及关系导出到文件中保存;
(2) 实现图形用户界面与用户进行交互。
源码
https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111
三、作业要求
1、选题:从 5 个题目中任选其一,分小组完成,完成后,由小组选定 1-2 人录视频对软件
实现的功能及操作进行讲解,成绩根据小组中每人的贡献程度给定。(分组人数规定:
30 人<班级人数<40 人,则每组人数至少 6 人;如班级人数≥40 人,则每组人数至少 8
人。)
2、程序代码要求:程序要求能够调试通过,具备基本功能,完成可选做的扩展功能将得到
较高的分数。容错性强和功能细节考虑更完全也将得到较高的分数。
四、提交要求
1、每位同学必须提交软件技术基础大作业设计说明书 PDF 电子版(不少于 3000 字)。
2、 小组完成,小组成员积极参与,不得抄袭,凡是发现抄袭的(无论抄与被抄者),均不
及格。
3、 大作业提交后根据视频演示、个人贡献度和说明书情况进行评分。
五、评分标准:
设计思路正确,能够实现功能。
六、软件技术基础大作业设计说明书内容要求:
- 封面:要求写明课程、题目名称、学院、专业班级、年级、姓名、学号、班内序号(见
下页)。 - 概述:开发环境、用到的基本原理或技术、需求说明等。
- 程序概要设计:各种功能完成的详细情况(已经实现了哪些功能,哪些功能未实现或有
什么 bug)、程序流程是什么(流程图)等。 - 程序详细设计:各种功能的实现方法描述、关键代码分析(要用文字描述,描述过程中
可以在文字中穿插少量代码,但不要贴大段的代码)。 - 使用情况:展示各种功能的运行情况(必须有截图说明)。
- 总结:分析程序的优点和不足、开发时遇到的困难及解决的问题、总结。
- 参考文献。
七、格式要求:
一级标题(小三宋体,1.5 倍行间距)
二级标题(四号宋体,1.2 倍行间距)
正文格式:5 号宋体,单倍行间距
其他格式说明:
1.标题中除了、和.之外不允许出现其他标点符号;
2.每段段首缩进两个字符;
3.文档可以不要目录,如果有目录一定是自动生成的目录;
4.如果有图,图标题放在图的下面。如果有表格,表的标题放在表格的上面。表和图都要编
号,如图 1,表 1。
封面格式:见下页。
成绩: 序号_____
评语:
自动化工程学院
2022-2023学年度第1学期
课程名称: 软件技术基础大作业
题 目:
专业班级: 自动 21X 班
姓 名:
学 号: