供选择的C语言程序课程设计题目
c语言程序设计课程设计选题 (1)
《C语言程序设计》课程设计课题表一、A类1.职工信息管理系统设计2.职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:3.1、职工信息录入功能(职工信息用文件保存)--输入4.2、职工信息浏览功能--输出5.3、职工信息查询功能--算法6.查询方式:按学历查询、按职工号查询、条件组合查询7.职工信息删除、修改功能(可选项)8.图书信息管理系统设计9.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
10.试设计一图书信息管理系统,使之能提供以下功能:11.1、图书信息录入功能(图书信息用文件保存)--输入12.2、图书信息浏览功能--输出13.3、图书信息查询功能--算法14.查询方式:按书名查询、按作者名查询、条件组合查询15.图书信息的删除与修改(可选项)16.图书管理系统设计17.图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等18.功能描述:19.1、新进图书基本信息的输入。
20.2、图书基本信息的查询。
21.3、对撤消图书信息的删除。
22.4、为借书人办理注册。
23.5、办理借书手续。
24.6、办理还书手续25.要求:使用文件方式存储数据。
26.实验设备管理系统设计27.实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
28.主要功能:29.1、能够完成对设备的录入和修改30.2、对设备进行分类统计31.3、设备的破损耗费和遗损处理32.4、设备的查询33.要求:使用文件方式存储数据。
34.学生信息管理系统设计35.学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:36.1、系统以菜单方式工作37.2、学生信息录入功能(学生信息用文件保存)--输入38.3、学生信息浏览功能--输出39.4、学生信息查询功能--按学号查询、按姓名查询、40.5、学生信息的删除与修改(可选项)41.要求:使用文件方式存储数据。
c语言课程设计参考题目
c语言课程设计参考题目
以下是一些可以作为C语言课程设计参考的题目:
1. 编写一个简单的C程序,实现一个计算器的功能,包括按键输入、按位运算、结果输出等。
2. 设计一个C语言的数据结构,例如链表、树、图等。
3. 实现一个简单的程序,用于检测一个字符串是否包含某个特
定的字符集。
4. 设计一个C程序,实现一个文件管理系统,包括文件读取、修改、删除、创建等操作。
5. 编写一个C程序,模拟一个简单的计算机操作系统,例如进程
管理、内存管理等。
6. 设计一个C程序,用于处理一个字符串,包括查找特定字符、
替换特定字符、翻译文本等。
7. 实现一个简单的编译器,用于编译C程序。
8. 设计一个C程序,用于实现一个网络应用程序,包括用户登录、数据发送、数据接收等。
9. 编写一个C程序,用于实现一个简单的图形用户界面,例如窗口、菜单、按钮等。
10. 设计一个C程序,用于处理一个音频播放器,包括音频读取、播放、暂停、中断等。
这些题目都是相对来说比较难的,但也都是C语言编程中比较经
典的应用场景。
通过这些题目的训练,可以帮助学生更好地掌握C语
言的编程思想和技巧。
C语言程序设计课程设计报告---汉诺塔问题
XXXX大学计算机科学与技术学院课程设计报告2012 — 2013学年第一学期课程名称C/C++高级语言程序设计课程设计设计题目小游戏和图形处理汉诺塔问题学生姓名XXX学号XXXXXXX专业班级XXXXXXXXXXX指导教师XX2012 年X 月XX 日目录一、课程设计问题描述 (1)1、课程设计题目 (1)2、设计任务要求 (1)二、总体设计 (1)1、设计思路 (1)2、汉诺塔求解流程图 (2)三、详细设计 (2)1、汉诺塔问题描述 (2)2、算法分析 (3)3、实现递归的条件 (4)4、用C语言实现 (4)四、程序运行结果测试与分析 (4)1、打开Microsoft Visual C++ 6.0操作平台输入以下的源代码 (4)2、编译源代码 (5)3、组建 (5)4、执行 (5)5、运行结果 (6)6、按任意键结束程序 (7)五、结论与心得 (7)六、参考文献 (8)七、附录:程序源代码 (8)一、课程设计问题描述1、课程设计题目汉诺塔问题2、设计任务要求输入盘子数(2个以上有效),移动速度,开始演示汉诺塔移动的步骤,要求:盘子A,B,C柱需要自己绘制,初始时盘子在A柱上通过B柱最终移动到C 柱上,显示出盘子在几个柱之间的移动过程。
二、总体设计1、设计思路对于一个类似的这样的问题,任何一个人都不可能直接写出移动盘子的每一个具体步骤。
可以利用这样的统筹管理的办法求解:我们假设把该任务交给一个僧人,为了方便叙述,将他编号为64。
僧人自然会这样想:假如有另外一个僧人能有办法将63个盘子从一个座移到另一个座,那么问题就解决了,此时僧人A B C64只需这样做:(1).命令僧人63将63个盘子从A座移到C座(2).自己将最底下的最大的一个盘子从A座移到C座(3).再命令僧人63将63个盘子从B座移到C座为了解决将63个盘子从A座移到B座的问题,僧人63又想:如果能再有一个僧人62能将62个盘子移动到另一座,我就能将63个盘子从A座移动到B座。
C或C++课程设计题目-(1)
供选择的C或C++语言程序课程设计题目第一类题目应用类题目1:年历显示。
功能要求:(1)输入一个年份,输出是在屏幕上显示该年的日历。
假定输入的年份在1940-2040年之间。
(2)输入年月,输出该月的日历。
(3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
题目2:小学生测验面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。
功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;(5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”。
题目3 运动会比赛计分系统要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数各项目名次取法有如下几种:取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;功能要求:(1)系统以菜单方式工作(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。
(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩(4)查看参赛学校信息和比赛项目信息等。
题目4:学生学籍管理系统用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。
功能要求:(1)系统以菜单方式工作。
(2)登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息;(3)删除已知学号的学生信息;(4)查找已知学号的学生信息;(5)按学号,专业输出学生籍贯表。
C语言课程设计参考题目
C语言课程设计参考题目C语言课程设计参考题目一、基本要求题目1、一司机出车祸后驾车逃离现场,第一位目击者记得车牌号前两位数字相同,且后两位数字也相同;第二位目击者是一位数学家,他看出车牌号是四位完全平方数。
试编程推算肇事车的车牌号。
2、有17个人围成一圈,从0号的人开始报数,凡报到3的倍数的人离开圈子,然后再数下去。
直到最后只剩下一个人为止。
问此人原来的位置是多少号。
3、编写一个程序,求3X4数组的转置矩阵。
要求在main函数里读数,在change 函数里把矩阵转置。
4、编写函数,求取两个整数m,n的最大公约数和最小公倍数。
5、用指向指针的方法对n个整数排序并输出。
要求将排序单独写成一个函数。
N 个整数在主函数中输入。
最后在主函数中输出。
6、有n个学生,每个学生的数据包括学号、姓名、年龄和两科成绩。
请编程用结构类型的数据处理方式实现如下目标:(1)在main 函数中输入原始数据;(2)在count 函数中输出各学生的总分和平均分;(3)输出总分最高的学生;(4)编写sort函数将各学生的数据按总分降序输出。
7、编写求子串函数substr(s,n1,n2),在串s中从n1位置开始取n2个字符的子串8、文件加密程序:将待加密文件以二进制打开,读入32个字节,分别与口令异或,在将4、5、6三个字分别与0xaaaa异或,即完成加密,执行第二次就解密9、编写字串str1 中找出所有小写字母转成大写字母,大写字母转成小写字母后,结果依次存入字符数组 str2 中,str1 不变仍为原字串的程序。
例如,字符串str1 为 "91A2BC. a1bc",调用函数 fun 后,字符数组str2将存入"91a2bc. A1BC",str1仍然是"91A2BC. a1bc"。
10、编写一个将某个范围在-32768~32767之间的整数转换为R进制(R=2,5,8,16)的通用程序。
国家开放大学C语言程序设计课程期末练习题
C语言程序设计课程期末练习题一、单项选择题。
把合适的选项编号填写在括号内。
1.不符合C语言规定的复合语句是()。
DA.{} B.{;} C.{x=0;} D.{y=10}2.C语言中的选择类语句有两条,它们是()。
AA.if和switch B.if和else C.switch和case D.else和case3.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( )。
AA. mainB. MAINC. nameD. function4. 在C语言程序中,多行注释语句使用的开始标记符为()。
BA. //B. /*C. */D. **5. 用于输出表达式值的标准输出函数是()。
CA. scanf()B. print()C. printf()D. output()6. 在printf()函数调用的格式字符串中,每个格式符的先导字符为()。
BA. #B. %C. $D. @7. 由C语言源程序文件编译而成的目标文件的扩展名为( )。
CA. cppB. exeC. objD. C8. 由C语言目标文件连接而成的可执行文件的扩展名为( )。
BA. cppB. exeC. objD. c9.每个C程序文件在编译时可能出现有警告性错误,其对应的标识符号为()。
A A. warning B. error C. warn D. err10. 在C语言中,表示换行符的转义字符为()。
CA. \fB. \rC. \nD. \m11. 字符串“a+b=12\n”的长度为()。
BA. 6B. 7C. 8D. 912. 要定义a和b为两个整型变量,则使用的定义语句为()。
BA. int a;b;B. int a,b;C. int a b;D. int a:b;13. 下列数值中最大值是()。
CA. 28/8B. 35/13C. 28%8D. 35%514. 下列数值中最小值是()。
DA. 28/8B. 35/3C. 28%8D. 35%315. 已知x的初值为5,则下列各表达式中的最大值为()。
C语言课程设计--猜数字游戏
课程设计报告课程名称C语言程序设计课题名称猜数字游戏专业机械设计及其自造化班级1185班学号201113090516姓名指导教师王颖2 0 1 2年6 月2 2 日湖南工程学院课程设计任务书课程名称C语言程序设计课题猜数字游戏专业班级机械设计1185 班学生姓名学号201113090516指导老师王颖审批王颖任务书下达日期2012 年6 月 1 日任务完成日期2012 年6 月22 日设计课题四:猜数字游戏一、问题描述:该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复。
玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。
A表示位置正确且数字正确,B表示数字正确而位置不正确。
二、功能要求:1、本游戏显示这样的菜单:(1)随机产生数据(2)用户输入数据(3)退出游戏2、游戏成功与否都能返回主菜单三、算法提示:1、数据结构:数组2、用简单的程序设计方法四、测试数据:测试数据: 3792第一次输入: 12340A2B第二次输入: 56780A1B第三次输入: 08670A1B第四次输入: 97861A1B第五次输入: 17942A0B第六次输入: 27932A2B第七次输入: 37924A0B游戏过关!!!五、其它:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能,如:破记录功能,若你所匹配的次数小于纪录保持者,则为破纪录。
目录第一章绪论 (1)第一节项目背景 (1)第二节本课题所做的工作 (2)第二章需求分析第一节用户需求分析 (3)第二节开发环境分析 (4)第三章程序设计 (5)第一节程序的功能 (5)第二节输入输出的要求 (5)第三节程序模块 (6)第一条模块组成 (6)第二条层次结构 (8)第三条模块调用 (9)第四章分析 (10)第一节模块解释与功能 (10)第五章调试 (14)第一节菜单测试 (14)第二节游戏测试 (16)第一条在自定义中 (16)第二条在随机游戏中 (19)第六章总结 (21)第七章附录 (23)第一节附录A 源程序 (23)第二节附录B 参考文献 (32)课程设计评分表 (33)第一章绪论第一节项目背景C语言一共有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示。
C语言程序课程设计-猜数字游戏
C语言程序设计课程设计专业:自动化班级:姓名:学号:指导教师:兰州交通大学自动化与电气工程学院2015年07月21日一.引言1.1设计目的复习和巩固C语言基础知识,进一步加深对C语言的理解和掌握。
提高同学将课本上的理论知识和实际结合的能力,锻炼同学的分析解决实际问题的能力,提高同学团队合作的能力。
使同学们善于观察和思考,善于合作,具备实践编程的基础素质,和实际问题分析的思考方式。
1.2设计要求在设计时充分地分析和理解问题本身,综合考虑系统功能,怎样使系统结构清晰、合理、简单和易于调试。
然后详细设计,确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。
最后认真完成课程设计说明书,并对设计方法,结果等进行总结。
充分地分析和理解问题本身,弄清要求做什么(What to do?)。
在确定解决方案框架过程中(How to do?),综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。
最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。
确定算法的主要流程,在此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。
上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。
静态检查主要有两种途径:(1)用一组测试数据手工执行程序;(2)通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。
二.基础题2.1题目用选择法对10个数进行排序。
有一个已排好序的数组。
现输入一个数,要求按原来的规律插入到原数组中。
2.2解题思路程序的主要功能是对数组元素用排序函数按从小到大的顺序进行排序。
先定义一个10个元素的一维数组a[10],然后从电脑输入10个数(也就是对数组赋值),然后使用一次fun()函数,对这10个数进行排序;然后再定义一个11个元素的一维数组b[11],同时再从电脑输入一个数同a[10]一起赋值给b[11],然后再使用fun()函数,重新排序的到最后的有顺序的一组数据。
C语言程序课程设计备选题目
封面作者:PanHongliang仅供个人学习说明:1题目来源是:(1)较重要C语言程序设计教科书中的例题或习题;(2)与计算机学科相关的后续课程,如数据结构、离散数学、组合数学、计算方法等课程教科书中的例题或习题中,不需要相关后续课程的专门知识就可以很好解答的题目;其它有影响计算机程序设计类书籍或文章中的例题;(3)各级各类计算机程序设计竞赛(例如ACM大赛)、程序员考试、求职面试的训练题和考试卷等.欢迎老师和同学们提供更好的题目.2题目内容涉及的知识点不超过大学一年级的知识水平,主要目标是训练学生将实际问题转化为计算机可以处理的形式并编写程序给出解答的能力.去掉了较复杂事务管理如图书管理、学生成绩管理之类的题目,这类事务管理方面题目希望在后续课程如C++面向对象程序设计、数据库应用及各专业的课程设计中进行.3 题目有多种完全不同的解答,给出的提示主要供指导教师参考.题目1:文件存取练习:要求实现如下功能:(1)定义函数Rand1000(), 随机生成1000个均不相同的正整数,并写入到文本文件“file1.dat”中,各数之间用空格来分隔.(2)编写一个函数input(int a[],int n),将上述数据读入到数组a中.(3)编写一个函数digitcount(int a[],int n,int b[10]), 统计数组a的每个元素保存的整数中,每位数字出现的次数,并分别保存在b[0]到b[9]中.(4)编写函数maxprime(int *p,int n), 找出其中最大的素数,如果不存在素数函数结果为0.(5)对于这些整数排序之后,分别输出相邻两数之差最大和之差最小的两个数,如果有多组满足条件要输出所有的.(6)定义函数myinput(int a[],int n),用fgetc函数从文件“file1.dat”上逐个读入字符,并将其转换成独立的正整数,并依次存入数组a中.提示:可查阅任何一本C语言程序设计教科书中关于文件部分,例如谭浩强,C程序设计(第三版),第13章.还需要熟悉随机数生成函数rand(),需要编写判断一个奇整数是否素数的程序等.部分可供参考程序如下:题目2:两个文件同时对照显示:程序从两个文件中读出文本行,并列显示在屏幕上.假定屏幕有80列,25行,则第0—34列显示第一个文件的内容,第40—74列显示第二个,第77-78行显示文本总的行序号.每屏显示20行,超过20行就显示在下一屏.程序应该能够以这种方式显示任意的两个文本文件,例如两个C程序源代码文件,两篇内容类似的文章形成的两个文本文件等.提示:先把两个文本文件读入,存入数组,再考虑显示的安排.题目3:实现一个C语言程序设计自助学习系统,要求实现的基本功能如下:1、测验(1)可以按固定的试卷数目,从题库中随机选取题目进行测试,如每次测试5道题或10道题.(2)每次只显示一道题,包括问题描述、备选答案;(3)根据学生答题结果,对比试卷答案,显示答题对错的信息;(4)答题全部结束后给出本次测试的成绩,按百分制评分.2、学习管理(1)通过题目浏览,自我测验,查看题解的过程来帮助学生学习.(2)需要为学生提供多种学习方式,至少应包括顺序选题学习和随机选题学习等方式.(3)如果是采用顺序选题方式学习,需要做到可以从中间某个位置开始学习,不是每次一定从第一题开始学习.3、题库管理(1)试卷库中保存全部试卷及其相关信息.(2)将要入库的试卷,按固定格式编辑整理好保存在ASCII文件中,通过计算机程序读取该文件,并将文件中的全部试卷添加到已有的试卷库中.(3)今后需要对于所有试卷分类进行管理,在库结构设计时,要考虑这些扩展功能的数据接口要求.(4)试卷库初始化,将试卷库内容全部清空,便于重新建立系统.提示:可以参考:余江,肖淑芬主编,C语言程序设计,天津科学技术出版社,2001年5月,273-313页.题目4:实现题目3中C语言程序设计自助学习系统得升级版,可考虑实现功能:一、测验1、系统自动组卷(1)试卷结构说明:以题库提供的试卷类别和各类试卷的数量为依据来实现.系统组卷前需要获得的信息是对于每类试卷要含有类别名称、试卷数、分数,所有类别的分数累加在一起要恰好是100分.(2)试卷保存:将上述组卷结果保存在二进制文件中,文件名由用户输入. (3)个性化组卷:输入学号后,系统根据试卷结构说明的规定自动组卷,做到每个学生试卷不同.2、错题本功能(1)答错的题目自动加入到错题本中;(2)可以对错题本中的题目逐题测验,不分题目类别;(3)可以制定分类测试.3、多科目测试二、学习管理1、分类别学习2、错题本内容学习3、多科目学习,选择科目后可以进行指定类别的分类别学习和错题本内容学习.三、题库管理1、入库试卷文件格式正确性检查.包括:试卷的描述的合法性检查,类别信息合法性检查,给出出错位置的信息.2、对于分类试卷存储方式的优化,例如:同类试卷连续存储的实现;3、目前完成的是单科目多类别的题库管理,要实现多科目多类别的题库管理.四、用户管理1、系统注册2、登录3、错题本等个性化信息管理4、屏幕背景颜色和字符颜色的设置5、学习位置的记载,要按科目记载,每个科目要按类别记载.提示:鼓励使用更多方法实现,例如使用数据库系统,VC++等.题目5:给出一个正整数n,一个存放1到n共n个正整数的数字金字塔构造如下:(1)1在最上方第0层;(2)如果x大于y并且x除以y的余数为0(即x>y && x%y = = 0),x要放在y下方一层(即若y在第i层,x应在i+1层);(3)每个数应尽可能放在更下方,即如果可以放在第i层,就不能放在i-1层;(4)相同层上的数从左向右从小到大排列.其实第i层是有i个素数因子的数的从小到大的排列.例如对n=6,符合这组规则的数字金字塔如下:12 3 54 6每个数按照它在塔中的位置从上到下从左到右从1开始编号,例如5,编号应该是4.要求你编写程序,输入一个正整数n,5<n<50, 再输入3个不大于n的正整数,然后程序输出所构造的数字金字塔,及所输入3个不大于n的正整数在数字金字塔中的编号.例如设输入了6,3,4,5,程序可以输出:12 3 54 6 //用数组形式表示数字金字塔.3,5,4 //分别是3,4,5在数字金字塔中的编号.程序编写完成后,要求给出你的程序对下列两组输入的结果:(1)10,7,8,9 (2)25,15,20,25提示:本题为2010年ACM大赛题目,鼓励使用更多方法实现.题目6:你一定很熟悉著名的Hanoi塔游戏,当理解了圆盘数目较多需要的时间太长之后,你可以放弃实际去移动圆盘,但你不应该放弃如下一个有点类似的游戏:设有n根柱子,每根柱子上有一个圆盘,圆盘上有一个正整数,不同圆盘上的数不同.初始时假定柱子按照其上圆盘上数的大小从左向右排列,移动规则是从左向右看,当前一根柱子最下圆盘上数与后一根柱子最上圆盘上数相加的和是一个完全平方数时,前一根柱子上所有圆盘移动到后一根柱子上方.要求你编写程序,输入柱子数目和圆盘上的整数,输出移动的过程和结果.例如,一组输入是:4,1,3,5,6,第一个数4表示有4根柱子,圆盘上的数依次是1,3,5,6.你的程序运行后,可以输出1->3->6, 5, c=2,表示移动是1到3,3到6,因为1+3=4, 3+6=9,而4和9是完全平方数,符合条件的移动只有这两次.移动结果是还有2根柱子上有圆盘,即c=2,有圆盘的一根柱子上圆盘3个,有数1->3->6,有圆盘另一根柱子上圆盘一个,有数5,它其实没有发生移动.程序编写完成后,要求给出你的程序对下列两组输入的结果:(1)9,1,2,3,4,5,6,7,8,9(2)10,1,3,5,7,9,11,13,15,17,19(本题为2010年ACM大赛题目.)提示:输入:9,1,2,3,4,5,6,7,8,9 输出:1->3->6, 2->7->9,4->5,8,c=4输入:10,1,3,5,7,9,11,13,15,17,19 输出:1->3->13, 5->11,7->9,15,17->19,c=5题目7:我们知道,在10进制数中有判断整除性的二个简单规则:一个正整数能够被3整除,当且仅当,它的各位数字之和能够被3整除;一个正整数能够被11整除,当且仅当,它的奇数位数字之和与偶数位数字之和的差能够被11整除;现在要问:对于b进制数,具有类似于10进制数的3和11的这种整除性判断的数是什么?具体地,请编写程序,输入进制的基数b,输出最小的可以如上判断整除性的数x和y.为确定,输入输出均采用10进制数.例如输入b为10,则自然要输出x为3,y为11;若输入b为8,则要输出x为7,y为3(例如8进制数25,按上述规则判断应能够被7和3整除,事实上,8进制数25是10进制数21,能够被7和3整除是显然的);若输入b为120,则要输出x为7,y为11(请自己验证这是对的).(本题为2011年ACM大赛题目.)提示:对于10进制数,10-1=9=3*3,10+1=11,10进制数n可以一般地表示为:n = a k10k + a k-110k-1 + ……+ a110 + a0保持n不改变数值将10换为10 –1和10+1,可以看出3和11可以如上判断整除性的理由.对于b进制数,n = a k b k + a k-1b k-1 + ……+ a1b + a0可以想到只需考虑b – 1和 b+1的最小因子.题目8:如果语文数学两门课程的成绩,甲同学分别是80分和90分,乙同学是90分和80分,丙同学是70和60分,这时比较甲同学和乙同学的成绩,只能说语文较差,数学较好,综合到一起就属于无法比较,但对丙同学可以比较,可以说甲和乙同学的成绩都比丙同学好.一般情况,设有一个三元向量的集合,若其中有向量P=(p1, p2, p3), Q=(q1, q2, q3), 规定P≦Q 当且仅当p1≦q1, p2≦q2, p3≦q3 .其中一个向量称为是一个极小元素,当且仅当它只≦它自己.例如如下三个三元向量组成了向量组(80,90,100),(90,80,70),(60,70,60),其中只有一个最小元素,是(60,70,60).请编写程序,输入n个三元向量,输出其中最小元素的数目.(本题为2011年ACM大赛题目.)提示:先对第一个坐标排序,再考虑第二个坐标,第三个坐标.题目9:在某城市有n座摩天大楼,问那二座之间的距离最小?设可以输入所有大楼的位置坐标,请编写程序输出距离最近的二座大楼及它们之间的距离.两点(x1, y1) 和 (x2, y2) 之间的距离d按照两种不同方式规定:(1)Euclid距离d =(2)Manhattan距离 d = | x1 –x2 | + | y1–y2 |.显然的解法是计算所有点对之间的距离再找出最小值,但本题只要求输出距离最近的二点及之间距离,所以应该给出不计算所有点对之间距离的更有效率的解法(本题为2011年ACM大赛题目).(可查阅:[沙特]M.H.Alsuwaiyel著,吴伟昶等译,算法设计技巧与分析,电子工业出版社,2004年8月,第121-124页.或者:[美]Michael T.Goodrich等著,霍红卫译,算法分析与设计,人民邮电出版社,2006年10月,第385-387页.)提示:找到两点距离d后,接下去可检查宽不超过d的长条.题目10:一条贪吃的蛇在一个n*m的网格中游走,它只能从一个方格走向另一个相邻的方格,这里相邻的意思是两个方格有公共边.每个方格可以看作是一个房间,其中一些是空的,一些存放有苹果.贪吃的蛇根本不进入空的房间,而进入有苹果的房间后就可以带走所有苹果使房间成为空的.蛇从一个指定的房间出发,最终回到它的家,把一路带来的苹果存储到家中,当然,它希望带来的苹果最多.请编写程序,输入有整数n和m,及n*m的一个矩阵,矩阵元素数值中有一个是-1,表示蛇的出发位置,有一个是-2,表示蛇的家的位置,其余数值是非负整数,0表示房间为空,非零整数表示苹果的数目.输出蛇选择的游走路径和获得的最多的苹果数目.例如输入4*4矩阵:7 0 4 184 0 1 115 7 11 -10 12 -2 0则应输出 (2, 3), (1, 3), (0, 3), (0, 2), (1, 2), (2, 2), (2, 1), (3, 1), (3, 2), 带回苹果数为1+18+4+1+11+7+12 = 54.(本题为2011年ACM大赛题目).(可查阅:吕国英,任瑞征等编著,算法设计与分析(第2版),清华大学出版社,2009年1月,第200-202页.提示:这是一个利用回溯算法的迷宫搜索类型问题,可参考类似问题的已有解法.题目11:化学家研究原子团的行为时,认为每个原子具有整数能量,这个整数可以是正数、零和负数,绝对值不超过100.可以认为原子排列成为一行,一行中任意多个连续的原子可以形成原子团,原子团的能量是其中各原子能量的代数和.问题是怎样编写程序,求出具有最大能量的原子团和能量数值.要求程序输入一列原子的能量数值,以-1结束,输出找到的能量最大的原子团及能量数值.例如输入8,0,6,4,-2,-1,应输出原子团8,0,6,4,及能量数值18.(本题为2010年ACM大赛题目)(可查阅:吕国英,任瑞征等编著,算法设计与分析,清华大学出版社,2009年1月,第265-270页).提示:这是最大子段和问题.题目12:一刀可以把蛋糕分为两个部分,现在给出要分为两部分的面积的比值,希望求出切口的弦的长度.这里当然要假定蛋糕是一个圆,并设其半径为 1.例如,输入两部分比值为1:1,切口是直径,长为2;输入1:2,应输出1.9285;输入10:1,应输出1.4145.(本题为2010年ACM大赛题目)提示:计算半弦长,可以利用公式a2=2rh-h2,计算弓形面积,用公式s=0.5*xita*r*r-a*sqrt(r*r-a*a)。
c语言课程设计选题
c语言课程设计选题一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,培养学生运用C语言进行程序设计的能力,并培养学生的逻辑思维和问题解决能力。
1.理解C语言的基本语法和规则。
2.掌握基本数据类型、运算符和表达式。
3.理解控制结构,如条件语句、循环语句等。
4.掌握函数的定义和调用。
5.能够使用C语言编写简单的程序。
6.能够阅读和理解C语言程序。
7.能够运用C语言进行问题解决和程序设计。
情感态度价值观目标:1.培养学生的团队合作意识和沟通能力。
2.培养学生的创新思维和问题解决能力。
3.培养学生的自主学习能力和持续学习的意识。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。
1.C语言的基本语法和规则。
2.基本数据类型、运算符和表达式。
3.控制结构,如条件语句、循环语句等。
4.函数的定义和调用。
5.常用的标准库函数。
6.课程介绍和环境搭建(2课时)7.C语言的基本语法和规则(4课时)8.基本数据类型、运算符和表达式(4课时)9.控制结构,如条件语句、循环语句等(4课时)10.函数的定义和调用(4课时)11.常用的标准库函数(2课时)12.课程总结和复习(2课时)三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:通过教师的讲解,使学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。
2.案例分析法:通过分析典型的C语言程序,使学生理解程序的运行过程和编程思想。
3.实验法:通过上机实验,使学生亲自编写和运行C语言程序,巩固所学知识,提高编程能力。
四、教学资源本课程的主要教学资源包括教材、实验设备和多媒体资料。
1.教材:选用《C程序设计语言》作为教材,该书由著名的C语言创始人Bjarne Stroustrup编写,内容系统全面,适合初学者。
2.实验设备:为学生提供计算机实验室,每台计算机安装有C语言编译器和调试工具,方便学生进行实验和编程实践。
《C语言程序设计课程设计》题目
1 一元稀疏多项式的运算问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。
实现要求:⑴输入并建立多项式;⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n是多项式的项数,c i,e i分别为第i项的系数和指数。
序列按指数降序排列;⑶多项式A和B相加,建立多项式A+B,输出相加的多项式;⑷多项式A和B相减,建立多项式A-B,输出相减的多项式;⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式;⑹设计一个菜单,至少具有上述操作要求的基本功能。
测试数据:(1) (2x+5x8-3.1x11)+(7-5x8+11x9)(2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15)(3)(x+x2+x3)+0(4)(x+x3)-(-x-x-3)2 成绩排序假设某年级有4个班,每班有45名同学。
本学期有5门课程考试,每门课程成绩是百分制。
假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求:⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩;⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中;⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序;⑷ 用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序;⑸ 对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表;⑹ 设计一个菜单,至少具有上述操作要求的基本功能。
3 栈及其操作问题描述:栈(Stack):是限制在表的一端进行插入和删除操作的线性表。
c语言课课程设计题目
c语言课课程设计题目一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,培养学生编写简单C程序的能力,提高学生运用C语言解决实际问题的能力。
1.掌握C语言的基本语法和规则。
2.理解数据类型、变量和常量的概念及使用。
3.熟悉各种运算符的用法及其优先级。
4.掌握顺序结构、分支结构、循环结构等控制结构的使用。
5.了解函数的定义、声明和调用。
6.能够使用C语言编写简单的程序,进行基本的输入输出操作。
7.能够利用C语言进行基本的数学计算和逻辑判断。
8.能够运用C语言进行数据的排序和查找等操作。
情感态度价值观目标:1.培养学生对计算机编程的兴趣,激发学生主动学习和探究的热情。
2.培养学生解决问题的能力和创新精神,提高学生自信心和自我成就感。
3.培养学生团队协作意识,增强学生沟通能力和合作精神。
二、教学内容教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。
具体安排如下:1.C语言概述:介绍C语言的历史、特点和应用范围。
2.数据类型和变量:讲解整型、浮点型、字符型等数据类型的使用,以及变量的声明和初始化。
3.运算符和表达式:介绍算术运算符、关系运算符、逻辑运算符等,以及表达式的组成和计算。
4.控制结构:讲解顺序结构、分支结构(if-else)、循环结构(for、while)的使用和嵌套。
5.函数:介绍函数的定义、声明和调用,包括主函数、递归函数等。
6.输入输出操作:讲解printf()和scanf()函数的使用,以及文件的读写操作。
7.编程实践:通过实例讲解和练习,使学生掌握C语言编程的基本技巧和方法。
三、教学方法本课程采用多种教学方法相结合的方式,以提高学生的学习兴趣和主动性。
具体方法如下:1.讲授法:教师讲解C语言的基本概念、语法和编程技巧,引导学生掌握知识要点。
2.案例分析法:通过分析典型实例,使学生了解C语言在实际问题中的应用,提高学生的编程能力。
C语言课程设计宾馆住宿系统
华中科技大学计算机科学与技术学院《C语言程序设计》课程设计实验报告题目:宾馆住宿信息管理系统专业:班级:学号:姓名:成绩:指导教师:完成日期:20年 10 月 1 日宾馆管理住宿系统一实验目的:1、进一步掌握和利用C语言进行程设计的能力;2、进一步理解和运用结构化程设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、学会调试一个较长程序的基本方法;5、学会利用流程图或N-S图表示算法;6、掌握书写程设计开发文档的能力(书写课程设计报告);二实验要求:1、只能使用C语言,源程序要有适当的注释,使程序容易阅读。
2、要有用户界面。
要求至少采用简易菜单;鼓励采用文本菜单界面甚至采用图形菜单界面。
3、必须使用结构和十字交叉链表等数据结构。
4、使用文件保存数据。
5、至少输出一份报表(屏幕输出即可),鼓励自行增加新功能。
功能要求(宾馆住宿信息管理系统):对宾馆所有客房的住宿信息进行管理,主要包括客房基本信息、客户住宿信息。
包含功能:客房基本信息录入。
允许对已经录入的数据重新进行编辑、修改,各种基本数据的插入、删除,基于各种数据的查询、统计计算。
宾馆住宿信息其它方面的统计(自行确定)。
三实验内容:程序概况本程序采用文本菜单界面,程序数据结构采用三个方向的十字链表来处理的。
具有对客房基本信息,客户信息的新建、修改、插入、删除、查找、查看、统计、保存、载入等功能。
程序虽简单,但具有完整的功能。
程序模块示意图1)主程序流程图2)主要数据结构图程序数据结构采用三个方向的十字链表来处理的。
程序详细介绍主要数据结构:typedef struct kehuxinxi{char name[20];/*客户姓名*/char id[20];/*客户ID*/char sex; /*性别*/char telephone[20];/*电话*/char room[10];/*房间号*/char time[12];/*入住时间*/float yingshou;/*应付费用*/float shishou;/*实际费用*/char shouyinyuan[20];/*收银员*/struct kehuxinxi * next;}kehu,* Pkehu;客户信息包含客户姓名,ID,性别,房间号,入住时间,应付费用,实际费用,收银员的资料。
C语言程序设计课堂练习题4-6
C语言程序设计课堂练习题(2012-12-26)第4章基本程序设计技术一、选择题1.若有以下程序:main(){ int x=1,a=0;do{a+=1;}while(x,x--);}则语句a+=1;执行的次数是()A. 0B. 1C. 无限次D. 2答案:2.若有以下程序:main(){ int i;f or(i=0;i<3;i++)switch(i){case 1:printf("%d",i);case 2:printf("%d",i);def ault:print f("%d",i);}}执行后输出结果是( )A.011122B. 012C. 012020D.120答案:3.以下程序的输出结果是:main(){ int a=0,i;f or(i=1;i<5;i++){ switch(i){ case 0:case 3:a+=2;case 1:case 2:a+=3;def ault:a+=5;}}printf("%d\n",a)}A. 31B.13C. 10D.20答案:4.若输入字符串:abcde<回车>,则以下while循环体将执行( ) main(){ char ch;while((ch=getchar())!='e')printf("*");}A. 2B. 3C. 无限次D.4答案:5.有以下程序段:int n=0,p;do{scanf("%d",&p);n++;}while(p!=12345&&n<3);此处do-while循环的结束条件是( ).A. p的值不等于12345并且n的值小于3B. p的值等于12345并且n的值大于等于3C. p的值不等于12345或者n的值小于3D. p的值等于12345或者n的值大于等于3 答案:6.以下程序的输出结果是( )main(){int i=0,a=0;while(i<20){ f or(;;){if((i%10)==0) break;else i--;}i+=11;a+=i;}printf("%d\n",a);}A. 21B. 32C. 33D.11答案:7.以下程序的输出结果是( )main(){ int a,b;f or(a=1,b=1;a<=100;a++){if(b>=10) break;if(b%3==1){b+=3;continue;}}printf("%d\n",a);}A. 101B. 6C. 5D.4答案:8.若有以下程序:main(){ int a=15,b=21,m=0;switch(a%3){case 0:m++;break;case 1:m++;switch(b%2){def ault:m++;case 0:m++;break;}}printf("%d\n",m);}执行后输出的结果是( )A. 1B. 2C. 3D.4答案:二、编程题1.编写程序实现一个专家诊断系统。
C语言课程设计选题
本文由植之小姐贡献 doc文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
C 语言课程设计任务书 1 题目: 题目:某学院教学信息管理系统 功能: 每一条记录包括一位教师的职工号、姓名、职称、性别、 门主讲课程( 功能:1、每一条记录包括一位教师的职工号、姓名、职称、性别、3 门主讲课程(课程名 开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。
),教学效果综合评分 称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。
输入功能:可以一次完成若干条记录的输入。
2、输入功能:可以一次完成若干条记录的输入。
显示功能:完成全部教师记录的显示。
3、显示功能:完成全部教师记录的显示。
查找功能:完成按姓名或课程查找教师的相关记录,并显示。
4、查找功能:完成按姓名或课程查找教师的相关记录,并显示。
排序功能:按职工号或教学效果综合评分进行排序。
5、排序功能:按职工号或教学效果综合评分进行排序。
插入功能:按教学效果综合评分高低插入一条教师记录。
6、插入功能:按教学效果综合评分高低插入一条教师记录。
将教师记录存在文件中。
7、将教师记录存在文件中。
应提供一个界面来调用各个功能 来调用各个功能, 8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰 美观! 美观! 要求: 语言实现系统; 要求:1、用 C 语言实现系统; 利用结构体数组实现教学信息的数据结构设计; 2、利用结构体数组实现教学信息的数据结构设计; 系统具有增加,查询,插入,排序等基本功能; 3、系统具有增加,查询,插入,排序等基本功能; 系统的各个功能模块要求用函数的形式实现; 4、系统的各个功能模块要求用函数的形式实现; 将教学信息存在文件中。
5、将教学信息存在文件中。
课程设计的最后成果是实验报告一份,内容包括: 课程设计的最后成果是实验报告一份,内容包括: 预习报告(题目、流程图、程序的设计思想等) 1、预习报告(题目、流程图、程序的设计思想等) ; 实验总结报告(测试方案、源程序代码(需打印) 调试中问题及解决方案、 、调试中问题及解决方案 2、实验总结报告(测试方案、源程序代码(需打印) 调试中问题及解决方案、小 、 结等) 结等) 。
C语言课程设计-进制转换
沈阳航空航天大学课程设计报告课程设计名称:C语言课程设计课程设计题目:二、八、十、进制转换程序院(系):计算机学院专业:计算机科学与技术(物联网方向) 班级:34010105学号:姓名:指导教师:完成日期:2014年3月7日沈阳航空航天大学课程设计报告目录第1章需求设计 (1)1.1课程设计任务 (1)1.2设计环境与开发语言 (2)第2章程序设计 (3)2.1概要设计 (3)2.1.1总体模块图 (3)2.1.2函数 (3)2.2详细设计 (4)第3章程序调试分析 (13)3.1出现的错误 (13)3.2运行的结果 (13)第4章用户手册 (15)4.1程序功能 (15)4.2存在的缺陷 (15)参考文献 (16)附录(程序清单) (17)第1章需求设计1.1 课程设计任务设计一个简单的程序,可以实现以下各进制之间的转换。
1.因为要进行进制间的6次转换所以要采用switch语句有选择的进行进制转换程序。
2.二进制到八进制;直接将二进制转化为八进制需要三位一截取不足三位补零,较为麻烦所以采用先将二进制转化为十进制再转化为八进制的方法解决问题。
二进制转化为十进制将输入的二进制数存入字符数组中,存入多少位数,求出相应位数2的幂次再乘以1或0将每一位对应得到的十进制数累加,即可得到相应的十进制数。
将十进制数转化为八进制数,将0到7存到一个字符数组中判断输入的数是否大于7若大于7,则将该数除8,再次进行判断,直到输入的数小于等于7,输出该数对8取余数对应的一维数组中的字符,即可得到八进制数。
3.二进制到十进制;二进制转化为十进制将输入的二进制数存入字符数组中,存入多少位数,求出相应位数2的幂次再乘以1或0将每一位对应得到的十进制数累加,即为十进制数。
4.二进制到十六进制;与二进制转化为八进制类似,先将二进制转化为十进制。
再将十进制数转化为十六进制数,将0到9,A到F存到一个字符数组中判断输入的数是否大于15若大于15,则将该数除16,再次进行判断,直到输入的数小于等于15,输出该数对16取余数对应的一维数组中的字符,即可得到十六进制数。
C语言程序设计课程设计--歌手成绩管理系统
《C语言程序设计课程设计》课程设计报告题目:歌手成绩管理系统学院:计算机科学与技术歌手成绩管理系统一、系统菜单及任务(1)系统菜单的主要功能(1)输入歌手信息(2)输出歌手信息(3)歌手成绩排序(4)记录歌手信息(5)保存歌手信息(6)添加歌手信息(7)删除歌手信息(8)退出系统(2)实现的任务:完成对歌手比赛信息的各种管理。
歌手比赛系统对一次歌手比赛的成绩进行管理,功能要求:1、输入每个选手的数据包括姓名、歌曲名、各评委的打分成绩,大众评委打分成绩,根据输入计算出总成绩。
2、显示主菜单如下:1)输入信息2)显示信息3)结果排序4)保存信息5)显示结果6)退出系统。
二、设计内容:确定能表述歌手信息的数据结构,至少要有姓名、歌曲名、各评委打分、大众评委打分等信息,它是本程序的核心数据结构,定义为如下的结构体类型:struct Sing{float P1;float P2;float A[M];};struct Singer{int num;float sum;char singerName[10];char singName1[20];char singName2[20];struct Sing singScore1;struct Sing singScore2;};三、程序应具有以下基本功能:❖信息输入:输入每个选手的数据包括姓名、各首歌曲的歌曲名、各评委的打分成绩,大众评委打分成绩❖计算成绩:根据输入计算出各歌手的每首歌得分以及总得分。
❖成绩排序:按歌手的最后得分❖保存结果:将结果保存在文本文件中。
❖要求界面良好四、主要流程图程序各模块(输入,显示等)结构图:五、系统测试程序进行实例如下1、显示主菜单界面:主要功能输入歌手信息输出歌手信息歌手成绩排序记录歌手信息保存歌手信息添加歌手信息删除歌手信息退出系统2、选择1:运行界面如下六、源程序及系统文件使用说明#include<stdio.h>#include<stdlib.h>/*动态存储分配函数*/#include<string.h>/*字符函数和字符串函数*/ #include<math.h>/*数学函数*/#define M 5int N;struct Sing/*歌曲信息结构体*/{float P1;float P2;float A[M];};struct Singer/*歌手信息结构体*/{int num;float sum;char singerName[10];char singName1[20];char singName2[20];struct Sing singScore1;struct Sing singScore2;};struct Singer Sin[200];void print(){printf("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf(" 欢迎进入歌手成绩管理系统\n");printf("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");}void menu();void input()/*输入歌手信息*/{int i;for(i=0;i<3;i++){printf("请输入歌手编号:");scanf("%d",&Sin[i].num );printf("请输入歌手姓名:");scanf("%s",Sin[i].singerName );printf("请输入歌曲1名称:");scanf("%s",Sin[i].singName1 );printf("请输入歌曲1大众评委打分:");scanf("%f",&Sin[i].singScore1.P1);printf("请输入歌曲1专业评委1打分:");scanf("%f",&Sin[i].singScore1.A[0]);printf("请输入歌曲1专业评委2打分:");scanf("%f",&Sin[i].singScore1.A[1]);printf("请输入歌曲1专业评委3打分:"); scanf("%f",&Sin[i].singScore1.A[2]);printf("请输入歌曲1专业评委4打分:"); scanf("%f",&Sin[i].singScore1.A[3]);printf("请输入歌曲1专业评委5打分:"); scanf("%f",&Sin[i].singScore1.A[4]);printf("歌曲1专业评委打分为:");Sin[i].singScore1.P2=(Sin[i].singScore1.A[0]+Sin[i].singScore1.A[1]+Sin[i].singScore1.A[2]+Sin[i].singScore1.A[3]+Sin[i].singScore1.A[4])/5;printf("%f\n",Sin[i].singScore1.P2);printf("请输入歌曲2名称:");scanf("%s",Sin[i].singName2 );printf("请输入歌曲2大众评委打分:");scanf("%f",&Sin[i].singScore2.P1);printf("请输入歌曲2专业评委1打分:"); scanf("%f",&Sin[i].singScore2.A[0]);printf("请输入歌曲2专业评委2打分:"); scanf("%f",&Sin[i].singScore2.A[1]);printf("请输入歌曲2专业评委3打分:"); scanf("%f",&Sin[i].singScore2.A[2]);printf("请输入歌曲2专业评委4打分:"); scanf("%f",&Sin[i].singScore2.A[3]);printf("请输入歌曲2专业评委5打分:"); scanf("%f",&Sin[i].singScore2.A[4]);printf("歌曲2专业评委打分为:");Sin[i].singScore2.P2=(Sin[i].singScore2.A[0]+Sin[i].singScore2.A[1]+Sin[i].singScore2.A[2]+Sin[i].singScore2.A[3]+Sin[i].singScore2.A[4])/5;printf("%f\n",Sin[i].singScore2.P2);printf("该歌手的总成绩为:");Sin[i].sum = Sin[i].singScore1.P1+Sin[i].singScore1.P2+Sin[i].singScore2.P1+Sin[i].singScore2.P2 ;printf("%lf\n",Sin[i].sum);}menu();}void output()/*输出歌手信息*/{int i;printf("输出歌手信息是:\n");for(i=0;i<3;i++){printf("编号歌手歌曲1 大众评委专业评委歌曲2 大众评委专业评委总分:\n");printf("%d\t%4s\t%4s\t%4.2f\t%6.2f\t%6s\t%8.2f\t%4.2f\t%6.2f\t\n",Sin[i].num ,Sin[i].singerName,Sin[i].singName1,Sin[i].singScore1.P1,Sin[i].singScore1.P2,Sin[i].singName2,Sin[i].singScore2.P1,Sin[i].singScore2.P2,Sin[i].sum);}menu();}void sort()/*对歌手成绩进行排序*/{float t,d,e,g,h;int i,j,m;char b[10],c[20],f[20];for(j=0;j<3;j++)for(i=0;i<2-j;i++)if(Sin[i].sum>Sin[i+1].sum ){t=Sin[i].sum ;Sin[i].sum =Sin[i+1].sum;Sin[i+1].sum =t;/*分数排序*/m=Sin[i].num ;Sin[i].num =Sin[i+1].num ;Sin[i+1].num =m;/*编号排序*/strcpy(b,Sin[i].singerName);strcpy(Sin[i].singerName,Sin[i+1].singerName);strcpy(Sin[i+1].singerName,b);/*名字复制替换进行名字排序*/strcpy(c,Sin[i].singName1);strcpy(Sin[i].singName1,Sin[i+1].singName1);strcpy(Sin[i].singName1,c);/*歌曲1名称排序*/d=Sin[i].singScore1.P1;Sin[i].singScore1.P1=Sin[i+1].singScore1.P1;Sin[i+1].singScore1.P1=d;/*歌曲1大众评委打分的排序*/e=Sin[i].singScore1.P2;Sin[i].singScore1.P2=Sin[i+1].singScore1.P2;Sin[i+1].singScore1.P2=e;/*歌曲1专业评委打分的排序strcpy(f,Sin[i].singName2);strcpy(Sin[i].singName2,Sin[i+1].singName2);strcpy(Sin[i+1].singName2,f);/*歌曲2名称的排序*/g=Sin[i].singScore2.P1;Sin[i].singScore2.P1=Sin[i+1].singScore2.P1;Sin[i+1].singScore2.P1=g;/*歌曲2大众评委打分的排序*/h=Sin[i].singScore2.P2;Sin[i].singScore2.P2=Sin[i+1].singScore2.P2;Sin[i+1].singScore2.P2=h;/*歌曲2专业评委打分的排序*/}printf("排序后的结果为:\n");printf("编号姓名总成绩:\n");for(i=0;i<3;i++)printf("%d\t%s\t%lf\t\n",Sin[i].num,Sin[i].singerName,Sin[i].sum);menu();}void save()/*将歌手信息保存到文本文件中*/{FILE *fp;int i;if((fp=fopen("f:\\lin","wb"))==NULL){printf("cannot open file\n");return;}for(i=0;i<200;i++)if(fwrite(&Sin[i],sizeof(struct Singer),1,fp)==1){printf("文件写入错误\n");break;}fclose(fp);}void WritetoText(int n)/*将所有记录写入文件*/{int i=0;FILE *fp;/*定义文件指针*/char filename[200];printf("将所有记录写入文件:\n");/*输入文件名*/printf("输入文件名:\n");scanf("%s",filename);if((fp=fopen(filename,"a"))==NULL)/*打开文件*/{printf("不能打开文件:\n");system("pause");return;/*终止程序*/}fprintf(fp,"%d\n",n);/*循环写入数据*/fprintf(fp,"编号歌手歌曲1 大众评委专业评委歌曲2 大众评委专业评委总分:\n");while(i<n){fprintf(fp,"%d\t%2s\t%2s\t%lf\t%lf\t%6s\t%lf\t%lf\t%lf\t\n", Sin[i].num, Sin[i].singerName,Sin[i].singName1,Sin[i].singScore1.P1,Sin[i].singScore1.P2,Sin[i].singName2,Sin[i].singScore2.P1,Sin[i].singScore2.P2,Sin[i].sum);i++;}fclose(fp);/*关闭文件*/printf("Successed!\n");//返回成功信息menu();}void Tianjia_a_record()/*添加函数*/{int i,j;int a;printf("请输入一个歌手的编号:");scanf("%d",&a);for(i=0;i<N;i++)if(a==Sin[i].num)/*两个整数进行比较*/{printf("不能进行添加操作");j++;break;}if(j==0)/*新添加的歌手编号与原歌手中没有相同的*/ {Sin[i].num=a;printf("歌手名:");scanf("%s",Sin[i].singerName);printf("歌曲1的名称:");scanf("%s",Sin[i].singName1);printf("歌曲1的大众评委打分:");scanf("%f",&Sin[i].singScore1.P1);printf("歌曲1的专业评委1打分:");scanf("%f",&Sin[i].singScore1.A[0]);printf("歌曲1的专业评委2打分:");scanf("%f",&Sin[i].singScore1.A[1]);printf("歌曲1的专业评委3打分:");scanf("%f",&Sin[i].singScore1.A[2]);printf("歌曲1的专业评委4打分:");scanf("%f",&Sin[i].singScore1.A[3]);printf("歌曲1的专业评委5打分:");scanf("%f",&Sin[i].singScore1.A[4]);printf("歌曲1的专业评委打分:"); scanf("%f",&Sin[i].singScore1.P2);printf("歌曲2的名称:");scanf("%s",Sin[i].singName2);printf("歌曲2的大众评委打分:"); scanf("%f",&Sin[i].singScore2.P1); printf("歌曲2的专业评委1打分:"); scanf("%f",&Sin[i].singScore2.A[0]); printf("歌曲2的专业评委2打分:"); scanf("%f",&Sin[i].singScore2.A[1]);printf("歌曲2的专业评委3打分:"); scanf("%f",&Sin[i].singScore2.A[2]); printf("歌曲2的专业评委4打分:"); scanf("%f",&Sin[i].singScore2.A[3]);printf("歌曲2的专业评委5打分:"); scanf("%f",&Sin[i].singScore2.A[4]); printf("歌曲2的专业评委打分:"); scanf("%f",&Sin[i].singScore2.P2);printf("该歌手的总成绩:");scanf("&f",&Sin[i].sum);save();N++;system("pause");}}void name_Delete() /*按照姓名删除歌手信息*/{int i,j=0;char a[20];printf("\n输入一个歌手的姓名");scanf("%s",a);for(i=0;i<N;i++)if(strcmp(Sin[i].singerName,a)==0){Sin[i].num=Sin[i+1].num;/*编号*/strcpy(Sin[i].singerName,Sin[i+1].singerName);/*歌手名*/strcpy(Sin[i].singName1,Sin[i+1].singName1);/*歌曲1名称*/strcpy(Sin[i].singName2,Sin[i+1].singName2);/*歌曲2名称*/Sin[i].singScore1=Sin[i+1].singScore1;/*歌曲1得分*/Sin[i].singScore2=Sin[i+1].singScore2;/*歌曲2得分*/Sin[i].sum=Sin[i+1].sum;/*总得分*/printf("该歌手信息删除成功");N--;//j++;}if(j==0)printf("系统中无该歌手信息");}void dakai()/*定义打开函数*/{FILE *fp;system("cls");if((fp=fopen("filename","rb"))==NULL){printf("文件不存在\n");return;}}void menu()/*定义菜单函数*/{printf(" 歌手成绩管理系统\n");printf("**********************Menu**********************\n");printf(" * 1.输入信息 2.显示信息*\n");printf(" * 3.结果排序 4.信息保存到文件中*\n");printf(" * 5.信息记录到文件中 6.添加信息*\n");printf(" * 7.删除信息8.退出程序*\n");printf("************************************************\n");printf("请选择所要进行的选项:");}void Quit()/*退出函数*/{printf("结束程序"); exit(0);}void menu_select() /*菜单选择*/{int a;int n=3;printf("输入:");scanf("%d",&a);switch(a){case 1:printf("\n");input();break;case 2:printf("\n");output();break;case 3:printf("\n");sort();break;case 4:printf("\n");save();break;case 5:printf("\n");WritetoText(n);break;case 6:printf("\n");Tianjia_a_record();break;case 7:printf("\n");name_Delete();break;case 8:printf("\n"); Quit(); break;}}void main(){struct Singer Sin[200];print();menu();menu_select();}。
c语言课设题目
c语言课设题目
基础题目:
1. 计算两个整数的和、差、积和商。
2. 判断一个数是奇数还是偶数。
3. 打印九九乘法表。
4. 编写一个简单的计算器程序,支持基本的加减乘除运算。
5. 实现一个简单的猜数字游戏。
6. 将一个字符串反转。
7. 编写一个程序,找出数组中的最大值和最小值。
8. 实现一个简单的冒泡排序算法。
中级题目:
9. 编写一个简单的文件读写程序,将数据写入文件并从文件中读取。
10. 实现一个简单的链表,并进行基本的插入、删除和遍历操作。
11. 设计一个学生信息管理系统,可以添加、删除、修改和查找学生信息。
12. 编写一个简单的命令行文件管理器,实现基本的文件操作(复制、移动、删除等)。
13. 使用结构体和指针实现一个简单的图书管理系统。
14. 实现一个简单的计算器,支持括号和基本的数学函数。
15. 编写一个简单的多线程程序,实现并发执行。
高级题目:
16. 使用Socket 编写一个简单的客户端-服务器通信程序。
17. 实现一个简单的操作系统进程调度模拟器。
18. 设计一个简单的编译器,将自定义的简单语言编译成汇编代码。
19. 使用OpenGL 编写一个简单的图形界面程序。
20. 实现一个简单的数据库管理系统,支持基本的增删改查操作。
21. 编写一个简单的Web 服务器,能够处理HTTP 请求。
22. 设计一个简单的人工智能算法,如搜索算法或神经网络。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附录1 供选择的C语言程序课程设计题目第一类题目应用类题目1:年历显示。
功能要求:(1)输入一个年份,输出是在屏幕上显示该年的日历。
假定输入的年份在1940-2040年之间。
(2)输入年月,输出该月的日历。
(3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
题目2:小学生测验面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。
功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;(5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”。
题目3 运动会比赛计分系统要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数各项目名次取法有如下几种:取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;功能要求:(1)系统以菜单方式工作(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。
(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩(4)查看参赛学校信息和比赛项目信息等。
题目4:学生学籍管理系统用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。
功能要求:(1)系统以菜单方式工作。
(2)登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息;(3)删除已知学号的学生信息;(4)查找已知学号的学生信息;(5)按学号,专业输出学生籍贯表。
(6)查询学生学籍变化,比如入学,转专业,退学,降级,休学,毕业。
题目5:排班系统学校实验楼有7名保安人员:钱、赵、孙、李、周、吴、陈。
由于工作需要进行轮休制度,一星期中每人休息一天。
预先让每一个人选择自己认为合适的休息日。
请编制程序,打印轮休的所有可能方案。
当然使每个人都满意,例如每人选择的休息日如下:钱:星期一、星期六赵:星期二、星期四孙:星期三、星期日李:星期五周:星期一、星期四、星期六吴:星期二、星期五陈:星期三、星期六、星期日运行结果:Solution: 1赵钱孙李周吴陈=============================================================星期四星期一星期三星期五星期六星期二星期日Solution: 2赵钱孙李周吴陈=============================================================星期四星期一星期日星期五星期六星期二星期三Solution: 3赵钱孙李周吴陈=============================================================星期四星期六星期三星期五星期一星期二星期日Solution: 4赵钱孙李周吴陈=============================================================星期四星期六星期日星期五星期一星期二星期三题目6:通讯录程序设计设计一个实用的小型通讯录程序,具有添加,查询和删除功能。
由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。
电话号码可由字符和数字组成。
实现功能:(1)系统以菜单方式工作(2)信息录入功能(3)信息浏览功能(4)信息查询功能(5)信息修改功能(6)系统退出功能题目7:学生选课系统假定有n门课程,每门课程有课程编号,课程名称,课程性质,学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于15)自由选课。
试设计一个选修课程系统,使之能提供以下功能:(1)系统以菜单方式工作(2)课程信息和学生选课信息录入功能(课程信息用文件保存)(3)课程信息浏览功能(4)查询功能(5)按学分查询(6)某门课程学生选修情况(可选项)题目8:机房收费管理系统(1)输入功能:输入30名学生的学号、班级、姓名、上机起始时间。
(2)计算功能:计算每个下机学生的上机费用,每小时1元。
(上机费用=上机时间* 1.0/h ,不足一小时按一小时计算)(3)查询功能:按条件(班级、学号、姓名)显示学生的上机时间。
(4)机器使用情况的显示(显示方式不限但要一目了然)题目9:班级成绩管理系统对一个有N个学生的班级,每个学生有M门课程。
该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。
功能要求:(1)本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。
(2)本系统显示这样的菜单:请选择系统功能项:a、成绩录入b、成绩显示c、成绩保存d、成绩排序e、成绩修改(要求先输入密码)f、成绩统计1)显示每门课程成绩最高的学生的基本信息2)显示每门课程的平均成绩3)显示超过某门课程平均成绩的学生人数g、退出系统(3)执行一个具体的功能之后,程序将重新显示菜单。
(4)将学生成绩保存到文件中。
题目10:机房机位预定系统20台机器,编号1到20,从早八点到晚八点。
两小时一个时间段,每次可预定一个时间段。
功能要求:(1)系统以菜单方式工作(2)查询,根据输入时间,输出机位信息。
(3)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另:若用户在非空时间上机,则将用户信息列入等待列表。
(4)退出预定,根据输入的时间,机器号撤销该事件的预定!(5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。
题目11:班级档案管理系统对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。
功能要求:(1)本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。
(2)本系统显示这样的菜单:请选择系统功能项:a 学生基本信息录入b 学生基本信息显示c 学生基本信息保存d 学生基本信息删除e 学生基本信息修改(要求先输入密码)f 学生基本信息查询(1)按学号查询(2)按姓名查询(3)按性别查询(4)按年龄查询g. 退出系统(3)执行一个具体的功能之后,程序将重新显示菜单。
(4)将学生基本信息保存到文件中。
(5)进入系统之前要先输入密码。
题目12:职工工资管理系统功能设计要求1. 输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。
•该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
5. 删除记录:可删除数据文件中的任一记录。
6. 统计: (A)计算各项工资平均工资及总工资, (B)•统计符合指定条件(如职工工资前三项之和在3000元以上、3000~2000元、2000~1000元) 以内的工资职工人数及占总职工人数的百分比。
(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。
7.保存数据文件功能。
例如:职工工资信息表ID号姓名基本工资职务工资津贴医疗保险- 公积金- 总工资01 张望1286 794 198 109 135 203402 李明1185 628 135 94 114 174003 王小民 895 438 98 64 73 129404 张效章 1350 868 210 116 150 216205 彭山745 398 84 61 68 1098⋯⋯⋯⋯⋯⋯⋯⋯各项平均工资1092.2 625.2 145 88.8 108题目13:工资纳税系统个人所得税每月交一次,底线是1600元/月,也就是超过了1600元的月薪才开始计收个人所得税。
个人所得税税率表一(工资、薪金所得适用)级数----------全月应纳税所得额----------税率(%)1--------------不超过500元的--------------------------52----------超过500元至2000元的部分------------103----------超过2000元至5000元的部分----------154----------超过5000元至20000元的部分---------205----------超过20000元至40000元的部分-------256----------超过40000元至60000元的部分-------307----------超过60000元至80000元的部分-------358----------超过80000元至100000元的部分------409----------超过100000元的部分---------------------45表中的应纳税所得额是指以每月收入额减除1600元后的余额。
例如:计算为:2500-1600=900应纳个人所得税额=500×5%+400×10% =65再比如:我们用一个大额工资计算,25000元应纳税所得额=25000-1600=23400应纳个人所得税税额=500×5%+1500×10%+3000×15%+15000×20%+3400×25%=4475要求:输入工资计算出纳税金额。
题目14:歌手比赛系统对一次歌手比赛的成绩进行管理,功能要求:1、输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分)。
2、显示主菜单如下:1)输入选手数据2)评委打分3)成绩排序(按平均分)4)数据查询5)追加学生数据6)写入数据文件7)退出系统。
题目15:用英文单词模拟数学计算读入两个小于100的正整数A和B,计算A+B。
需要注意的是:A和B的每一位数字由对应的英文单词给出。
具体的输入输出格式规定如下:输入格式:测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B = ",相邻两字符串有一个空格间隔。