《C语言程序设计》课程设计任务书(10题)[2024-01-05]-程序员宅基地

技术标签: 算法  c++  c语言  课程设计  数据结构  

《C语言程序设计》课程设计任务书(10题)[2024-01-05]

《C语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,课程设计的课题比平时的习题复杂得多,也更接近实际。课程设计着眼于理论与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养程序设计工作所需要的知识综合能力和动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。为了达到上述目的,本次课程设计安排了10个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。
要求学生一人一题独立完成设计,并提交课程设计相关材料。

一、目的
全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。

二、设计要求
掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。
(1)请按学号最后一位的号码顺序选择课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。
(2)按本任务书的要求,按附录的要求编写《课程设计报告》;
(3)将课程设计报告及程序运行视频演示(5分钟内,视频少于200M)在学习通的C程序设计课程设计课程中提交(请注重学习通中提交的时间节点)。

三、进度安排
周一: 课题讲解,查阅资料
周二: 需求分析,总体设计
周三: 详细设计、模块编程、测试
周四: 模块编程、测试
周五: 模块集成、完善程序
周末:自行撰写课程设计报告

四、报告规范
1.需求分析
1)题目分析:深入分析题意。
2)问题建模:拟解决的方法与思路。
2.概要设计
1)程序由哪些模块组成以及各个模块之间的层次结构、模块的调用关系;每个模块的功能。
2)课题的总体数据结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。
3.详细设计

  1. 采用C语言定义相关的数据类型。
  2. 画出关键算法的流程图或伪代码。
    4.编码实现
    5.系统测试
    6.课设小结
    本次课程设计的经验教训、心得体会。
    7.附件
  3. 源代码:课程设计的完整源代码,代码要求规范,并添加详细的注释。
  4. 参考书目

五、课程设计选题例表

课题0:销售管理系统

某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:销售员的代号 、产品的代号 、这种产品的当天的销售额。
每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。
(1) 计算上个月每个人每种产品的销售额。
(2) 按销售额对销售员进行排序,输出排序结果(销售员代号)
(3) 统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)
(4) 输出统计报表

                            销售统计报表 
                             产品代号                       销售之和 

销售员代号 1 2 3 4 5
1
2
3
4
每种产品之和 总和

课题1:简单的学生成绩管理程序

程序设计功能及要求:
(1) 总人数定义为宏,数据使用文件存放;
(2) 输入学生姓名、学号、五门课成绩,计算每个学生五门功课的平均分,并按平均分排列名次,若平均分相同则名次并列;结果写入文件并按格式打印在屏幕上。
⑶ 统计全班每门课程的平均分,并计算各分数段(60以下,6069,7079,80~89,90以上)的学生人数;结果写入文件,并按格式在屏幕上打印;
⑷ 在屏幕上打印出所有不及格学生的下列信息:学号,不及格的课程名,该不及格课程成绩;
⑸ 在开始画面加入简单的菜单便于选择各种功能。
例:
1学生条目输入
2 成绩统计
3分数段统计
4不及格学生筛选
⑹文件格式要求
① 原始数据文件格式 (具体数据和项目自行编写)
学号 姓名 英语 C语言 高等数学……………
1 张三 76 89 78
2 李四 …. …. ….
② 输出数据文件(由程序自动生成)
a. 学生综合成绩文件。
b. 学号 姓名 英语 C语言 高等数学 …………….平均成绩 名次
1 张三 76 89 78 ……………
2 李四 …. …. ….
c. 统计结果文件。
d. 分数段 英语 C语言 高等数学 ………………….
<60 2 …
60~69 8 …
70~79 5 …
80~89 10 …
⑺加入优等生统计功能,要求按优等生条件筛选出优等生的条目存入单独文件,并输出到屏幕。
优等生标准(满足之一即可):

  • 平均成绩上80。
  • 平均成绩及格但未上80,有单科成绩上90。
  • 平均成绩未及格,有单科满分。

课题2:电子英汉词典设计

英汉词典作为一个常用的学习工具,是我们经常要使用的。该系统要求完成一个简单的电子英汉词典的功能,如:单词的查找、增词、删除、修改和维护等工作。程序设计要求及功能如下:
(1)在计算机中建立有限规模的电子英汉词典(文件),利用程序实现电子英汉词典的查找、增词、删除、修改和维护工作。
(2)词典的内容为:每行对应一个词条,每个词条由两个字符串组成,字符串用若干空格符分开;前一个是单词字符串(英文),后一个是释义字符串(中文),使用分号作为多个释义的分隔符(无空格)。
(3)对单词和释义字符串长度的限定分别为不少于20个与40个字符,词条数限定为不多于200条。
(4)采用菜单工作方式。在一个操作执行之后,程序询问是否继续执行该操作。如输入Y或y,则重复同一操作,不退回到菜单;如输入其它信息,则回到菜单等待另一次选择。仅当选择退出操作时,程序应询问是否将修改后的词典存盘,并根据用户选择存盘退出或不存盘退出。
要求整个设计以人为本,用户界面友好。
(5)测试数据:要求被选用的词条有200个左右,以中学的单词为主。

课题3:员工销售统计及奖金发放系统

程序设计功能及要求:
⑴ 总人数不定,开始先输入员工的人数及工号进行初始化,数据使用文件存放;
⑵ 根据员工的工号及季度提示输入对应的销售额,存入数据文件。
⑶ 奖金计算功能,根据以下要求编写出奖金的计算应得奖金并保存在文件中。

企业总销售额 员工奖金提成比例(占其自己销售额的比例)
100万及以下 10%
100万到150万 11%
150万到200万 12%
200万到250万 13%
250万到300万 14%
300万以上 15%

② 年度销售业绩最高者,额外获得1万元。
⑷ 统计功能,统计全年企业的销售额和个人销售额及员工的奖金,并评选出销售总额最高的员工为销售之星及每季度销售最高的为季度之星。
⑸修改功能,输入要修改的员工号及季度,修改该季度的销售额,并且对应的统计数据也随之改变。
⑹ 在开始画面加入简单的菜单便于选择功能。
1系统初始化
2 员工销售额输入
3数据更改
4统计
5奖金发放
(7) 文件格式自己根据要求选用恰当的排列格式。

课题4:通信录管理系统设计

设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。功能要求如下:
(1) 查看功能:选择此功能时,列出下列三类选择。
A 办公类 B 个人类 C 商务类
当选中某类时,显示出此类所有数据中的姓名和电话号码
(2) 增加功能:能录入新数据(包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件)。例如:

杨春  15070485523   商务类  [email protected]

当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。
(3) 拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字。
(4) 修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。
(5) 删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。
(6) 系统以菜单方式工作。

课题5:职工工资管理系统

功能设计要求如下:
(1) 系统以菜单方式工作。
(2) 输入记录:输入职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金,然后计算出总工资,计算公式如下:
(3) 总工资=基本工资+职务工资+岗位津贴-医疗保险-公积金
(4) 该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
(5) 显示记录:根据用户需求显示所有职工或某一个职工工资信息。
(6) 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
(7) 查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
(8) 删除记录:可删除数据文件中的任一记录。
(9) 统计功有: (A)计算各项工资平均工资及总工资, (B)统计符合指定条件(如职工工资前三项之和在3000元以上、30002000元、20001000元) 以内的工资职工人数及占总职工人数的百分比。按字符表格形式打印全部职工工资信息表及平均工资(包括各项总的平均工资)。
(10) 保存数据文件功能。
例如:职工工资信息表

ID号 姓名 基本工资 职务工资 津贴 医疗保险 公积金- 总工资
01 张望 1286 794 198 109 135 2034
02 李明 1185 628 135 94 114 1740
03 王小民 895 438 98 64 73 1294
04 张效章 1350 868 210 116 150 2162
05 彭山 745 398 84 61 68 1098

各项平均工资 1092.2 625.2 145 88.8 108

课题6:图书管理系统

图书管理系统提供图书信息管理以及借还管理。图书信息至少包括:图书编号、书名、价格、作者、借还状态,用文件存储所有图书信息。系统提供以下功能:
(1) 增加图书信息,录入;
(2) 查询已有的所有图书信息;
(3) 删除图书;
(4) 修改图书基本信息;
(5) 根据书名、作者查找并显示相应的图书信息;
(6) 可以对所有图书按价格排序;
(7) 进行图借阅/归还操作:当某一本图书被借出后就不能再借,只有归还后才能借出。
(8) 系统以菜单方式工作。

课题7:实验室设备信息管理系统

实验室设备信息包含设备编号,设备名称,设备价格,设备数量,设备总价等信息,要求包括设备添加、删除、修改、查询等功能。具体描述如下:
(1) 系统以菜单方式工作。
(2) 输入记录模块:输入实验室设备信息,并计算出设备总价存入文件。
(3) 查询记录模块:可以根据设备编号,设备名称来查询实验室设备详细信息。
(4) 修改记录模块:可以根据设备编号,修改实验室设备详细信息。
(5) 删除记录模块:可以根据设备编号,设备名称,删除实验室设备信息。
(6) 统计模块:可以根据设备编号统计共有多少种设备。可以统计所有设备的总数量。
(7) 排序模块:对实验室设备信息按照设备价格进行排序。

课题8:职工信息管理系统设计

职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复)。试设计一个职工信息管理系统,使之能提供以下功能:
(1)系统以菜单方式工作。
(2)职工信息录入功能(职工信息用文件保存)——输入。
(3)职工信息浏览功能——输出。
(4)查询功能:可按多种信息查询。
按姓名查询,按学历查询,按电话查询等
(5)职工信息删除功能。
(6)职工信息修改功能。
(6)职工信息排序:对职工信息按工资进行排序并显示。

课题9:车票管理系统

一车站每天有n个发车班次,每个班次都有班次号(1、2、3…n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量,班次信息如下所示:

班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数
1 8:00 郫县 广汉 2 45 30
2 6:30 郫县 成都 0.5 40 40
3 7:00 郫县 成都 0.5 40 20
4 10:00 郫县 成都 0.5 40 2

用c设计一系统,能提供下列服务:
(1) 系统以菜单方式工作。
(2) 录入班次信息(信息用文件保存),可增加班次数据。
(3) 浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。
(4) 查询路线:可按班次号查询 ,可按终点站查询
(5) 售票和退票功能
① 当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数
② 退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数

源码联系UP主 -> https://space.bilibili.com/329101171

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

智能推荐

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_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签