《C语言程序设计》课程设计题目及要求一、目的:本次课程设计是《C语言程序设计》课程的综合实验,作为课堂教学和课内正常上机实验的补充。
通过对《C语言程序设计》课程的学习,学生已初步掌握C语言的基本概念、结构化程序设计的基本方法,但是实际编程和上机调试程序的能力还远远不足。
通过《C语言程序设计》课程设计,加强学生自主学习、收集资料和动手编程的能力,为后续专业课程打好基础。
二、实验安排:●课程设计内容和要求的安排与讲解在课内时间进行。
●上机机时安排:共40个课内机时,不足部分自行安排。
三、课程设计说明:●本次课程设计平台使用Visual C++ 6.0。
●独立或分组(原则上要求独立完成,因部分题目工作量较大或学生能力问题要求分组,不得超过2人,其中选题一至选题五只供独立完成)完成,每人或每组选择一个题目。
分组中每人必须独立完成该题目的一个部分。
●本次课程设计要求每个程序要调试通过;课程设计结束后,每个小组提交课程设计成果如下:⏹程序一套,要求演示,演示时采用答辩形式,由各小组同学边演示边讲解编程思路。
⏹课程设计报告一份,报告中可不包括源代码。
⏹源代码以电子版形式提交,提交的源代码要求加注释。
(以附件的形式提交至指定老师的邮箱(各老师自行通知所带学生),邮件正文中注明专业、班级、各组员学号及姓名)四、以下是课程设计报告的具体格式示范:1、《课程设计报告》封面:《C语言课程设计》报告题目:专业年级:学号:姓名:指导教师:同组设计人员:20 年月日2、《课程设计报告》主要内容[问题定义] 描述选定的题目内容以及实际完成的软件功能;[开发工具] Visual C++ 6.0[数据结构]此部分要求说明用来表示题目中数据的数据结构;如: int m[MAXNUM];m数组用来表示一个最多12个人队列;m[2]:表示第二个人是否在队中,其取值为1表示在队列中,为0表示已出列,不在队列中;[算法描述]此部分要求写出主要算法的基本思想以及程序中模块的划分原则,各模块接口;可选择采用伪代码或流程图的方式来说明各模块的基本思想。
[程序调试情况]此部分说明上机调试时碰到的问题及解决方法。
[心得及体会]此部分说明通过本次课程设计所得的收获及体会。
[参考文献或网站]有则说明,无可省略。
[教师评语(评分)]五、打分标准● 根据平时上机考勤;注重平时上机情况,教师要不定期检查学生进度,学生不得以自己有私人电脑为借口而不来上机;● 根据程序运行结果;● 根据《C 语言课程设计报告》,学生能对自己的程序面对教师提问并能熟练地解释清楚。
六、参考题目选题一:灰关联分析灰关联分析是灰色系统理论的一种新的分析方法,它是用关联度大小来描述事物之间、因素之间关联程度的一种定量化的方法。
灰关联度分析原理如下:设X 0={X 0(1),X 0(2),…,X 0(n)}为母因素序列,X i ={X i (1),X i (2),…,X i (n)}(i=1,2,…,m )为子因素序列。
n 为序列的长度,即数据的个数,m 为子因素个数。
关联度是两个序列关联性大小的度量,其计算方法与步骤如下:1)原始数据变换原始数据需要消除量纲(或单位),转换为可比较的数据序列,采取均值化处理:i iX (k)'(),i=012m X i X k =,,,…, 式中i X 为X i 序列的平均值,处理后得到一个占平均值百分比的新序列。
2)计算关联系数00111100011min min |()()|max max |()()|()|()()|max max |()()|i i i m k n i m k n i i i i m k n X k X k X k X k k X k X k X k X k ρξρ≤≤≤≤≤≤≤≤≤≤≤≤-+-=-+-式中: a) |X 0(k)-X i (k)|=Δi (k)称为第k 点处X 0与X i 的绝对差;b) 011min min |()()|i i m k n X k X k ≤≤≤≤-称为两级最小差,其中01min |()()|i k nX k X k ≤≤-是第一级最小差,011min min |()()|i i m k nX k X k ≤≤≤≤-是第二级最小差; c) 011max max |()()|i i m k nX k X k ≤≤≤≤-是两级最大差,其意义与最小差相似; d) ρ称为分辨系数,计算中取ρ=0.1。
关联系数ξ0i (k)反映两个被比较序列在某一时刻的紧密(靠近)程度。
3)求关联度两序列的关联度便以两比较序列各个时刻的关联系数之平均值计算,即:0011(,)()ni i i k r X X k n ξ==∑ 式中r i (X 0,X i )为子序列X i 与母序列X 0 的关联度,n 为比较序列的长度(即数据个数)。
4)排关联序将m 个子序列对同一母序列的关联度按大小顺序排列起来,便组成关联序,记为{X}。
它直接反映各个子序列对于母序列的“优劣”关系。
若r 0a >r 0b ,则称{X a }对于相同母序列{X 0}有优于{X b }的特点,记为﹛X a ︱X 0﹜>﹛X b ︱X 0﹜;若r 0a <r 0b ,则称{Xa }对于母序列{X 0}劣于{X b },记为﹛X a ︱X 0﹜<﹛X b ︱X 0﹜;若r 0a =r 0b ,则称{X a }对于母序列{X 0}等价于(或等于){X b },记为{X a │X 0}~{X b │X 0}。
根据以上理论,从键盘输入下列数据,编程实现这些数据之间的关联度,并将关联度排序。
3.0,1.0,2.0,6.0,8.04.0,2.0,1.0,3.0,7.05.0,6.0,7.0,8.0,1.07.0,3.0,2.0,5.0,8.01.0,2.0,4.0,7.0,2.0选题二:歌唱比赛评分有十个选手参加歌唱比赛,十个裁判对每个选手的演唱进行打分,去掉一个最高分,去掉一个最低分,剩下分数的平均值作为每位选手最后的成绩。
要求:(1)采用结构体定义每个选手的参赛编号,姓名以及十个裁判打出的分数;(2)从键盘输入每个选手的相关信息:参赛编号,姓名和十个得分;(3)计算每位选手的最后得分,并按分数由高到低排序;(4)查询功能:输入参赛选手的编号或姓名,便可输出该选手的得分以及排名;以上功能采用菜单操作方式。
选题三:产品销售统计一家公司生产五种产品,每种产品在一个月内每周的生产数量和销售价格都要记录下来。
并做以下的分析:(1)每种产品每周的生产值和销售值;(2)每种产品一个月的生产值和销售值;(3)所有产品一个月内的生产值;(4)所有产品一个月内的销售值。
下面是一个二维的表格,表格的每一行记录了五种产品分别在这一周的生产其中,Mij下面是一个二维的表格,表格的每一行记录了五种产品分别在这一周的销售其中,Sij表示在第i其中,Cj表示第j根据以上内容,编程要求:(1)计算每种产品每周的生产值和销售值;(2)计算所有产品每周的生产值和销售值;(3)计算每种产品一个月内的生产值和销售值;(4)计算所有产品生产总值和销售总值;(5)按以下要求和格式显示:当输入数字1,显示每种产品每周生产值和销售值;当输入数字2,显示所有产品每周的生产值和销售值;当输入数字3,显示每种产品一个月内的生产值和销售值;当输入数字4,显示所有产品生产总值和销售总值;当输入数字5,显示退出。
显示格式示例如下:每种产品每周的生产值Week(1)110 300 360 210 325Week(2)………………………………Week(3)………………………………Week(4)………………………………每种产品每周的销售值Week(1)110 300 360 210 325Week(2)………………………………Week(3)………………………………Week(4)………………………………每周所有产品的生产值和销售值生产值销售值Week(1)1300 1230Week(2)……Week(3)……Week(4)……每种产品一个月内的生产值和销售值生产值销售值Product(1)500 450Product(2)……Product(3)……Product(4)……所有产品一个月的生产总值和销售总值Total product = 5220Total sales = 4450选题四:书店存货清单书店通常使用个人电脑设置一个清单来管理书籍的存货情况,该清单记录每本书籍的书名,作者,出版社,在清单中的位置等信息。
当顾客想要买某本书时,只要输入书籍的名称和作者,系统就会显示该书籍是否在清单中,如果书籍在清单中,系统会显示书籍的详细信息以及库存数量,如果不在清单中,也会显示相应的提示信息。
如果顾客想买的书籍数量在库存的范围内,系统会计算总价格并显示出来,否则,会提示“所需数量不在库存范围内”。
根据以上的分析,编程要求:(1)用结构体自行定义几本书籍,要求包括书籍名称,作者,出版社,出版日期,价格,在目录中的位置;(2)当从键盘输入某本书的名称和作者姓名,如果能查询到则显示该书籍的所有信息,并提示“请输入所需数量”,如果所需数量在库存范围内,则显示总价,否则,显示“所需数量不在库存范围内”,接着继续提示顾客是否还想买其他书籍,如果输入“y”或“Y”表示继续输入下一本书的名称和作者姓名,进行下一轮查询;如果不能查询到该书籍,则显示“谢谢,再见!”,依次类推,不断循环。
选题五:职工工作量统计系统设计编写有一个程序,该程序输入职工工号和完成的产品数量,程序允许同一职工有多次输入,由程序对其完成的产品数量实现累计。
程序按完成数量对他们排序,并确定他们的名次。
按完成的产品数量由多到少的顺序,输出名次、同一名次的职工人数及他们的工号(工号由小到大顺序输出)。
不少于10名职工。
以上信息解释如下:1、职工工号和产品数量的输入,可多次输入,最后累计产品数量;2、按产品数量排序,确定职工排名;3、输出要求:输出名次、同一职工人数及他们的工号(由小到大);4、不少于10名职工。
选题六:学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 等。
试设计一学生信息管理系统,使之能提供以下功能:(1)学生信息录入功能(学生信息用文件保存)---输入(2)学生信息浏览功能---输出(3)查询、排序功能---算法1)按学号查询2)按姓名查询(4)学生信息的删除与修改(可采用链表结构)选题七:通信录编写一个通信录管理程序,要求通信录中包括姓名,通信地址,邮政编码和联系电话,程序中可以对通信录进行插入、删除、显示、查找等操作。
提示:数据结构:可以采用单链表存储通信数据,链表中节点数据类型示范如下:struct node{char name[20]; /*姓名*/char address[40]; /*住址*/char phone[15]; /*电话*/long zip; /*邮编*/struct node *next; /*下一个节点指针*/};选题八:学生成绩记录簿设计编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。