《C语言程序设计》课程设计实践考核说明_保龄球计分【问题描述】打保龄球是用一个滚球去撞击10个站立的瓶,将瓶击倒。-程序员宅基地

技术标签: 算法  c语言  信息管理系统  数据结构  课程设计  

《C语言程序设计》课程设计实践考核说明

《C语言程序设计》课程设计实践考核说明

本次设计是为加强学生的《C语言程序设计》课程的实际应用能力而进行的专门训练。选题考虑到学生在本课程中学过的各种知识进行选题,应用所涉及相关知识结构,进行设计。
1、按照书本知识完成所选的课程设计题目
2、调查分析一个具体的或模拟的实例,描述该实例的业务信息和管理工作的要求
3、利用C语言实现功能
4、输入测试数据、展示程序运行结果
5、书写规范的课程设计报告
6、提交课程设计的电子资料和文档

源码

https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111

实验项目一、学生管理信息系统

1、问题描述
学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:
 系统以菜单方式工作
 学生信息录入功能(学生信息用文件保存)—输入
 学生信息浏览功能—输出
 查询、排序功能—算法
 按学号查询、按姓名查询、学生信息的删除与修改(可选项)
2、功能要求
界面比较美观;有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入;最好用链表的方式实现。
3、算法分析
首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。
对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。文件的读写操作大家参照书中的有关文件的章节。

实验项目二、学生综合测评系统

1、问题描述
每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
2、功能要求
界面比较美观;
A、学生信息处理

  1. 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。提示:学生信息可先输入到数组中,排序后可写到文件中。
  2. 插入(修改)同学信息:提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,
  3. 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。
  4. 浏览学生信息:提示:打开文件,显示该文件的学生信息。
    B、学生数据处理:
  5. 按考试科目录入学生成绩并且按公式:考试成绩=(语文+数学+外语)/3 计算考试成绩,并计算考试名次,提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。
  6. 学生测评数据输入并计算综合测评总分及名次。提示:综合测评总分=(考试成绩)0.6+(同学互评分)0.1+品德成绩0.1+任课老师评分0.2。
  7. 学生数据管理;提示:输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件
  8. 学生数据查询:提示:输入学号或其他信息,即读出所有数据信息,并显示出来。
    C、学生综合信息输出
    提示:输出学生信息到屏幕。

实验项目三、学校运动会管理系统

1、问题描述:

  1. 初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数;
  2. 各项目名次取法有如下几种:
  3. 取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1;
  4. 由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。
  5. 所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。

实验项目四、教师工作量管理系统

计算每个老师在一个学期中所教课程的总工作量。(教师单个教学任务的信息为:教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时、单个教学任务总课时)
A、教师信息处理

  1. 输入教师授课教学信息,包括教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时。
  2. 插入(修改)教师授课教学信息:
  3. 删除教师授课教学信息:
  4. 浏览教师授课教学信息:
    B、教师工作量数据处理:
  5. 计算单个教学任务总课时。计算原则如下表:
    班级数目 单个教学任务总课时
    2 1.5*(理论课时+实验课时)
    3 2*(理论课时+实验课时)

=4 2.5*(理论课时+实验课时)

  1. 计算一个教师一个学期总的教学工作量。总的教学工作量=所有单个教学任务总课时之和。
  2. 教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。
    C、教师综合信息输出
    提示:输出教师信息到屏幕。

实验项目五、编写一万年历系统

1、功能要求: 模仿现实生活中的挂历. 当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几).当系统日期变到下一月时,系统自动翻页到下一月。

实验项目六、一元多项式简单的计算器
1、功能要求:
(1)输入并建立多项式;
(2)输出多项式;
(3)两个多项式相加,建立并输出和多项式;
(4)两个多项式相减,建立并输出差多项式。
(5)算法的时间复杂度、另外可以提出算法的改进方法
实现提示:可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数,如项数等。
2、实验要求:一元多项式简单计算器的基本功能

实验项目七、保龄球计分

1、问题描述:
打保龄球是用一个滚球去撞击10个站立的瓶,将瓶击倒。一局分10 轮,每轮可滚球1 次或多次,以击到的瓶数为依据计分,一局得分为10轮得分之和,而每轮的得分不仅与本轮的滚球情况有关,还可能与后一轮或两轮的滚球情况有关,即:某轮某次滚球击倒的瓶数不仅要计入本轮得分,还可能会计入前一轮或两轮得分。计分规则如下:
① 若某一轮的第一次滚球就击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加2次滚球),该轮得分为本次击倒瓶数10与以后2次滚球所击倒瓶数之和。
② 若某一轮的第一次滚球未击倒全部10个球,则对剩下未击倒的瓶再滚球一次,如果这2次滚球击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加1次滚球),该轮得分为这2次击倒瓶数10与以后1次滚球所击倒瓶数之和。
③ 若某一轮2次滚球未击倒全部10个瓶,则本轮不在滚球,该轮得分为这2次滚球所击倒瓶数之和。
2、实现提示
① 模拟10个人各打一局保龄球比赛过程,统计每局各轮得分和累计总分。
② 逐人逐轮逐次输入一次滚球击倒的瓶数。
③ 对10人的得分由低到高排序并显示。
④ 最后,把排序的存入文件中。

实验项目八、学生成绩统计

1、问题描述
学期考试结束,统计有N个班某班每个人的平均成绩,每门课的平均成绩,并按个人平均成绩从高到低的顺序输出成绩,输出不及格人名单。输入、输出格式自定。
2、实现提示
假设某班有:30人(姓名自定)
考试课程有:高等数学、物理、外语、C语言、德育5门课程。
将所有同学的成绩保留在文件中,对文件中的数据处理,输出所要求的内容,程序的功能主要包括3方面:
① 输入成绩到文件中
② 输出成绩
③ 输出不及格学生名单
④ 成绩排序
⑤ 修改记录
⑥ 删除记录
⑦ 插入记录等
主函数中对3个功能选择(菜单),调用对应的函数完成。

实验项目九、编制一个学生的选课及学籍管理程序

1、问题描述:
现有若干个班级的学生,进行下学期课程的选课,假设已经通过文件储存了选课内容的数据库,数据库中包括7门课(课程内容由学生自己定) 第i门课程的接纳的学生数为10×i,i为课程的序号,如第一门课的接纳的学生数为10×1,第二门课为10×2,… 依此类推,每门课的学分数分别为1、2、3、4、5、6、7,现要求每一个学生至少选3门课,最多不超过5门。
2、实现提示:

  1. 显示课程内容供学生选择,并能进行选课的操作
  2. 随着学生选课工作的进行,动态更新数据库的内容
  3. 进行学生的最少选课量和最多选课量的控制
  4. 显示所有学生的选课的结果
  5. 把学生所选的课按学分总积分由小到大排列,同样学分按姓名的英文字母排序
  6. 录入学生的各科成绩
  7. 学生的参数有:姓名、学号、性别、总学分、各科成绩,补考情况,请把一门和三门功课不及格的学生的姓名列出,并自动生成补考通知书,通知书中要求有学生的姓名、学号、不及格的科目及补考时间(由编程者自定)

实验项目十、自拟题目

1、要求:功能较多者最多不得超过5人,所设计的内容要与实际相符。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_35960743/article/details/128454909

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签