C/C++2023暑期学生实训计划[2023-07-06]
2023暑期学生实训计划
第二阶段实训计划
1、 目的
通过集中训练的方式对学生以前所学知识进行巩固,强化学生动手实践能力,了解计算机解决实际问题的过程,初步了解计算机软件工程的开发步骤。
2、 组织
a) 安排若干题目,将学生分成若干组选题,尽量避免重复,每小组题目相同,但是每人必须独立完成。
b) 每天对学生的进度进行必要的监控,学生必须填写任务完成情况表,教师对每天学生的完成情况尽情检查。
c) 最终安排整个程序的检查。
3、 时间安排
(1)软件的总体设计(包括:了解需求、软件的功能设计(类似于学生成绩管理系统功能模块图),软件的总体构架(子函数的功能定义)、基本数据定义数据结构设计:(1天)(课后完成)
(2) 相关基本信息的整理与建立。(1天)(课后完成)
(3)子程序设计调试。(3天)(课堂完成)
(4)程序整体调试。(2天)(课堂完成)
(5)程序的验收、撰写程序设计实训报告,展示实训成果,指导教师对每个同学实训成果进行评价。(1天)(课堂完成)
第一部分:预备知识一(C语言知识)
(参考C语言教材12章—文件)
重点12.6节
详见所发暑期实训材料(6)
第二部分:预备知识二(系统开发思路)
思路一:采用课本12.6的思路。构建一个结构体作为存储结构来实现系统。适合处理操作、表与表之间的关系比较简单的系统。适合未学习数据结构的同学。
思路二:构建多个结构体数组或者单链表作为存储结构。处理前各文件读到各相应的存储结构中,在存储结构中做处理,处理结束后,将各存储结构中的数据写回文件中。适合处理操作、表与表之间的关系相对复杂的系统。适合已学习数据结构的同学。(本次实训强制采用此方案)
思路三:其他教材或自己设计的思路。
各位同学可以根据自己的实际情况采用以上思路中的任何一个实现。
第三部分:(题目)
注:以下涉及的rec文件均为二进制文件,txt文件均为文本文件。
1、学生成绩档案管理系统
[问题描述]
1、 至少实现显示基本信息、基本信息管理、学生成绩管理、考试成绩统计(每个学生5门课程)、根据条件查询等功能。
[要求与建议]
1、根据输出结果分析需要哪些数据,为此决定文件结构。
2、文件的设计要合理,建议建三个文件:输入记录顺序文件(stud.rec)、学号顺序文件(studxh.rec)、记录序号和和总成绩顺序的索引文件(studsy.rec)。
3、所有的操作都是围绕着文件进行。
4、按名次查询方法:输入名次到索引文件studsy.rec中找到该名次所对应的记录号根据记录号到文件stud.rec 随机定位查找到所需的记录。
5、成绩报表如下格式:(作为一个txt文件即可)
[知识基础]
1、程序设计基础、编程语言(C语言)。
[实训考核合格标准]
1、 用C编写实现了学生成绩管理系统的最基本功能,70%。
2、 程序实现的优劣(数据结构、算法、效率、界面、操作的实用性和方便性等方面评价),20%。
3、 创新性(自己独到的思想、算法、程序实现方法等),10%。
[参考资料]
1、C语言与程序设计方法。
(制表符└ ─ ┐└ ┼│┴ ┘┘┼├ ┤┴ ┬)
学生成绩报表
专业:信息管理与信息系统 班级:2010级1班
┌────┬────┬────┬────┬────┬────┬────┐
│ 学号 │ 姓名 │ 高数 │ 英语 │ 马列 │ C 语言 │计技基础│
├────┼────┼────┼────┼────┼────┼────┤
│ 0100111│ 张三 │ 87 │ 67 │ 78 │ 98 │ 95 │
├────┼────┼────┼────┼────┼────┼────┤
│ 0100112│ 李四 │ 98 │ 88 │ 88 │ 99 │100 │
├────┼────┼────┼────┼────┼────┼────┤
│ 0100113│王二麻子│ 78 │ 77 │ 88 │ 77 │ 99 │
├────┼────┼────┼────┼────┼────┼────┤
│ … │ …. │ …. │ …. │ … │ … │ … │
├────┼────┼────┼────┼────┼────┼────┤
│ … │ …. │ …. │ …. │ … │ … │ … │
└────┴────┴────┴────┴────┴────┴────┘
源码
https://pan.baidu.com/s/1J–MYtUyPilpJKTD15-SgA?pwd=1111
2、航空客运订票系统
[问题描述]
航空客运订票的业务活动包括:查询航线、客票预订和统计功能等。设计一个航空客运售票系统,以使上述业务可以借助计算机来完成。
[基本要求]
1、 根据输出结果分析需要哪些数据,为此决定文件结构。
2、每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已售票的客户名单(包括姓名、舱位等级)。
3、文件的设计要合理,建议建三个文件:航班文件(flight.rec)、票务文件(ticket.rec)、旅客信息文件( passenger.rec)。
4、所有的操作都是围绕着文件进行。
5、航班售票统计报表如下格式:(作为一个txt文件即可)
6、设计的飞机票以一个txt文件存盘即可。
[知识基础]
1、程序设计基础、编程语言(C语言)。
[实训考核合格标准]
1、 C编写实现了学生成绩管理系统的最基本功能,70%。
2、程序实现的优劣(数据结构、算法、效率、界面、操作的实用性和方便性等方面评价),20%。
3、创新性(自己独到的思想、算法、程序实现方法等),10%。
[参考资料]
1、 C语言与程序设计方法。
航班售票统计报表
航空公司:东方航空公司 日期:2011年6月28日
┌────┬────┬────┬────┬────┬────┬────┐
│ 航班号 │ 飞机号 │定员人数│售票数 │ 头等舱 │ 普通舱 │ 余票数 │
├────┼────┼────┼────┼────┼────┼────┤
│ 0100111│ C231 │ 224 │ 198 │ 42 │ 156 │ 26 │
├────┼────┼────┼────┼────┼────┼────┤
│ 0100112│ D456 │ 280 │ 260 │ 60 │ 200 │ 20 │
├────┼────┼────┼────┼────┼────┼────┤
│ … │ …. │ …. │ …. │ … │ … │ … │
├────┼────┼────┼────┼────┼────┼────┤
│ … │ …. │ …. │ …. │ … │ … │ … │
├────┼────┼────┼────┼────┼────┼────┤
│ … │ …. │ …. │ …. │ … │ … │ … │
└────┴────┴────┴────┴────┴────┴────┘
源码
https://pan.baidu.com/s/1J–MYtUyPilpJKTD15-SgA?pwd=1111
3、企业仓库库存管理信息系统
[问题描述]
设计一个企业仓库库存信息管理系统,实现:原材料的入库、出库管理;原材料库存统计及报表;原材料编码管理等功能。
[要求与建议]
1、根据输出结果分析需要哪些数据,为此决定文件结构。
2、文件的设计要合理,建议建三个文件:原材编码信息文件(m_codel.rec)、原材料库存文件(stocks.rec)、原材料出入库文件(m_in&out.rec)。
3、所有的操作都是围绕着文件进行。
4、 原材料查找方法:按名称查询、按原材料编码查询:出入库查询:按出入编号查询、按日期查询。
5、入库单、出库单原材料年、月统计报表如下格式:(作为一个txt文件即可)
[知识基础]
1、程序设计基础、编程语言(C语言)。
[实训考核合格标准]
1、用C编写实现了企业仓库库存管理信息系统的最基本功能,70%。
2、程序实现的优劣(数据结构、算法、效率、界面、操作的实用性和方便性等方面评价),20%。
3、创新性(自己独到的思想、算法、程序实现方法等),10%。
[参考资料]
1、C语言与程序设计方法。
2、系统主要功能设计
3、报表设计举例
7月原材料领用出库分类统计报表
红心印刷厂 统计时间:2011年8月
┌────┬────┬────┬────┬────┬────┬────┬────┐
│材料编码│ 名称 │ 规格 │计量单位│单价(元)│ 数 量 │归集产品│用料单位│
├────┼────┼────┼────┼────┼────┼────┬────┤
│ 0001 │ 铜板纸 │ 11/12 │ 张 │ 0.5 │ 10000 │ 8#画册 │ 三车间 │
├────┼────┼────┼────┼────┼────┼────┬────┤
│ 0002 │ 彩色墨 │ 0.002m │ 千克 │ 60 │ 8 │ 8#画册│三车间 │
├────┼────┼────┼────┼────┼────┼────┬────┤
│ … │ …. │ …. │ …. │ … │ … │ … │ │
├────┼────┼────┼────┼────┼────┼────┬────┤
│ … │ …. │ …. │ …. │ … │ … │ … │ │
├────┼────┼────┼────┼────┼────┼────┬────┤
│ … │ …. │ …. │ …. │ … │ … │ … │ │
└────┴────┴────┴────┴────┴────┴────┬────┘
入库统计报表、年度统计报表,参照上例自行设计。
源码
https://pan.baidu.com/s/1J–MYtUyPilpJKTD15-SgA?pwd=1111
4、图书馆信息系统
[问题描述]
设计一个图书管理信息系统,实现图书采编,图书编目(分类),图书查询以及图书流通(借,还书)等功能。
[要求与建议]
1、根据输出结果分析需要哪些数据,为此决定文件结构。
2、文件的设计要合理,建议建三个文件:图书信息文件(book.rec)、图书借还信息文件(sircula.rec)、记录序号和书号顺序的索引文件(booknum.rec)。
3、所有的操作都是围绕着文件进行。
5、 按书号查询方法:输入书号到索引文件(booknum.rec 中找到该书号所对应的记录号根据记录号到文件book.rec 随机定位查找到所需的记录。
5、借书统计报表如下格式:(作为一个txt文件即可)
[知识基础]
1、程序设计基础、编程语言(C语言)。
[实训考核合格标准]
1、用C编写实现了学生成绩管理系统的最基本功能,70%。
2、程序实现的优劣(数据结构、算法、效率、界面、操作的实用性和方便性等方面评价),20%。
3、创新性(自己独到的思想、算法、程序实现方法等),10%。
[参考资料]
1、C语言与程序设计方法。
借书统计报表
江西财经大学 图书馆 统计时间:2011年6月
┌────┬────┬────┬────┬────┬────┬────┐
│图书类别│ 图书名 │ 出版社 │ 单价 │借出册次│未规还数│超期册次│
├────┼────┼────┼────┼────┼────┼────┤
│ 政经 │ 经济学 │ 财政 │ 38 │ 42 │ 21 │ 0 │
├────┼────┼────┼────┼────┼────┼────┤
│ 计算机 │ C 语言 │ 高教 │ 26 │ 160 │ 48 │ 1 │
├────┼────┼────┼────┼────┼────┼────┤
│ … │ …. │ …. │ …. │ … │ … │ … │
├────┼────┼────┼────┼────┼────┼────┤
│ … │ …. │ …. │ …. │ … │ … │ … │
├────┼────┼────┼────┼────┼────┼────┤
│ … │ …. │ …. │ …. │ … │ … │ … │
└────┴────┴────┴────┴────┴────┴────┘
源码
https://pan.baidu.com/s/1J–MYtUyPilpJKTD15-SgA?pwd=1111
5、人力资源管理信息系统的设计与实现
[问题描述]
设计一个人力资源管理信息系统,实现人员,考勤、工资管理等功能。
[要求与建议]
1、根据输出结果分析需要哪些数据,为此决定文件结构。
2、文件的设计要合理,建议建四个文件:员工信息文件(employee.rec)、员工考勤文件(wordnum.rec)、员工工资文件(wage.rec)、序号和职工号顺序的索引文件(empnum.rec)。
3、所有的操作都是围绕着文件进行。
4、按职工号查询方法:输入职工号到索引文件(empnum.rec 中找到该职工号所对应的记录号根据记录号到文件employee.rec 随机定位查找到所需的记录。
5、员工工资条和工资报表格式如下:(作为一个txt文件即可)
[知识基础]
1、程序设计基础、编程语言(C语言)。
[实训考核合格标准]
1、 C编写实现了学生成绩管理系统的最基本功能,70%。
2、程序实现的优劣(数据结构、算法、效率、界面、操作的实用性和方便性等方面评价),20%。
2、 新性(自己独到的思想、算法、程序实现方法等),10%。
[参考资料]
1、C语言与程序设计方法。
员工工资条
江西机械厂 时间:2011年6月15日
┌────┬────┬────┬────┬────┬────┬────┐
│ 职工号 │ 姓名 │ 部门 │基本工资│ 奖金 │ 扣款 │实发工资│
├────┼────┼────┼────┼────┼────┼────┤
│ 0001 │ 章三 │ 技术 │ 1800 │ 1000 │ 20 │ 2780 │
├────┼────┼────┼────┼────┼────┼────┤
│ 0002 │ 李四 │ 财务 │ 1600 │ 800 │ 100 │ 2300 │
├────┼────┼────┼────┼────┼────┼────┤
│ … │ …. │ …. │ …. │ … │ … │ … │
├────┼────┼────┼────┼────┼────┼────┤
│ … │ …. │ …. │ …. │ … │ … │ … │
├────┼────┼────┼────┼────┼────┼────┤
│ … │ …. │ …. │ …. │ … │ … │ … │
└────┴────┴────┴────┴────┴────┴────┘
工资统计报表
江西机械厂 时间:2011年6月15日
┌────┬────┬────┬────┬────┬────┬────┐
│ 部门号 │ 部门 │工资总额│奖金总额│平均工资│扣款总额│实发工资│
├────┼────┼────┼────┼────┼────┼────┤
│ 1001 │ 财务 │ 20000 │ 8000 │ 2800 │ 200 │ 27800 │
├────┼────┼────┼────┼────┼────┼────┤
│ 1002 │ 生产 │ 20000 │ 8000 │ 2800 │ 200 │ 27800 │
├────┼────┼────┼────┼────┼────┼────┤
│ … │ …. │ …. │ …. │ … │ … │ … │
├────┼────┼────┼────┼────┼────┼────┤
│ … │ …. │ …. │ …. │ … │ … │ … │
├────┼────┼────┼────┼────┼────┼────┤
│ … │ …. │ …. │ …. │ … │ … │ … │
└────┴────┴────┴────┴────┴────┴────┘
源码
https://pan.baidu.com/s/1J–MYtUyPilpJKTD15-SgA?pwd=1111
6、学生通讯录管理系统
[问题描述]
编程实现一个学生通讯录管理系统,学生通讯录的部分数据如下:
学号 姓名 性别 电话 家庭地址
2202204779 宁新平 ... ... ...
2202204759 徐晴 ... ... ...
2202204764 李祎 ... ... ..
... ... ... ... ...
(请提供至少20人的初始数据)
[实验要求]
此系统需完成的功能和各项要求如下:
(1)建立:以链表的存储结构方式建立学生通讯录。
(2)查询:按学生的学号或姓名查找相关学生信息,如果查找成功,则输出查找到的学生信息。
(3)修改:按指定学号的学生电话修改为指定的值。
(4)插入:将指定的新学生信息插入到通讯录链表中。
(5)删除:从通讯录链表中删除指定学号的学生信息。
(6)输出:输出通讯录顺序表中的所有学生信息。
源码
https://pan.baidu.com/s/1J–MYtUyPilpJKTD15-SgA?pwd=1111
7、迷宫通路求解
[问题描述]
用一个M*N的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。迷宫的左上方是入口,右下方有一个出口,如下图所示。编程实现探寻从迷宫入口到出口有无通路,若有,则给出一条从入口到出口的通路;若无,则给出没有通路的结论信息。
入口 1 2 3 4 5 6 7 8
→ 0 0 1 0 0 0 1 0
2 0 0 1 0 0 0 1 0
3 0 0 0 0 1 1 0 1
4 0 1 1 1 0 0 1 0
5 0 0 0 1 0 0 0 0
6 0 1 0 0 0 1 0 1
7 0 1 1 1 1 0 0 1
8 1 1 0 0 0 1 0 1 出口
9 1 1 0 0 0 0 0 0 →
[实验要求]
(1)实现一个以链表作为存储结构的栈类。
(2)利用栈设计一个求解迷宫的非递归算法。
(3)编写测试程序,求出迷宫的通路,若无通路,则输出没有通路的提示信息;若有通路,则以三元组(i,j,d)的形式输出通路,其中,(i,j)指示迷宫中的一个位置坐标,d表示走到下一坐标的方向(1,2,3,4分别表示东、南、西、北4个方向),例如,针对上图迷宫,输出的通路为(1,1,1),(1,2,2),(2,2,2),(3,2,3)。。。
[实现提示]
(1)计算机求解迷宫通常采用“穷举求解”方法,即从入口出发,顺着某一方向进行探索,若能走通,则继续前进,否则,沿着原路退回,换一个方向继续探索,直至出口位置,从而求得一条通路。加入所有可能的通路都探索到,但未能到达出口,则所设定的迷宫没有通路。
(2)用二维数据存储迷宫数据,通常设定入口点的坐标为(1,1),出口点的坐标为(m, n)。为了处理方便,可在迷宫的四周加一圈障碍。
(3)对于迷宫中的任一位置,在此只约定东、南、西、北探索方向。
(4)栈用来保存走过的路径。
源码
https://pan.baidu.com/s/1J–MYtUyPilpJKTD15-SgA?pwd=1111
8、校园导游系统
[问题描述]
校园导游系统:一个校园有若干景点,如正校门、人工湖、大数据实验室、樱花大道、图书馆、体育场、体育馆和礼堂等。实现一个为来访客人提供信息查询服务的程序,如查询景点的详细信息,查询两个景点的一条最短路径。
[实验要求]
(1) 设计你所在学校的校园平面图,所含景点不少于10个。
(2) 来访客人可以输入任一个景点的名称,查询景点的详细信息。
(3) 来访客人可以输入任何两个景点的名称,查询这两个景点之间的一条最短路径。
[实现提示]
以图中的顶点表示校园内各景点,存放景点代号、名称和简介等信息;以边表示路径,存放路径长度等相关信息,如下图所示。本题可采用邻接矩阵或邻接表实现图的存储结构,利用迪杰斯特拉算法求得最短路径。