中北大学软件学院届C语言程序设计实训题目.docx
- 文档编号:7636112
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:15
- 大小:67.17KB
中北大学软件学院届C语言程序设计实训题目.docx
《中北大学软件学院届C语言程序设计实训题目.docx》由会员分享,可在线阅读,更多相关《中北大学软件学院届C语言程序设计实训题目.docx(15页珍藏版)》请在冰豆网上搜索。
中北大学软件学院届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以下“TRYAGAIN”
。
(梁宇超)题目3运动会比赛计分系统
要求:
初始化输入:
N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数
各项目名次取法有如下几种:
取前5名:
第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:
第一名得分5,第二名得分3,第三名得分2;
功能要求:
(1)系统以菜单方式工作
(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。
(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩
(4)查看参赛学校信息和比赛项目信息等。
(原瑞镝和张立山)题目4:
学生学籍管理系统(限2人)
用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。
(用文件保存)
功能要求:
(1)系统以菜单方式工作。
(2)登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息;
(3)删除已知学号的学生信息;
(4)查找已知学号的学生信息;
(5)按学号,专业输出学生籍贯表。
(6)查询学生学籍变化,比如入学,转专业,退学,降级,休学,毕业。
(范子扬)题目5:
排班系统
学校实验楼有7名保安人员:
钱、赵、孙、李、周、吴、陈。
由于工作需要进行轮休制度,一星期中每人休息一天。
预先让每一个人选择自己认为合适的休息日。
请编制程序,打印轮休的所有可能方案。
当然使每个人都满意,例如每人选择的休息日如下:
钱:
星期一、星期六
赵:
星期二、星期四
孙:
星期三、星期日
李:
星期五
周:
星期一、星期四、星期六
吴:
星期二、星期五
陈:
星期三、星期六、星期日
运行结果:
Solution:
1
赵钱孙李周吴陈
=============================================================
星期四星期一星期三星期五星期六星期二星期日
Solution:
2
赵钱孙李周吴陈
=============================================================
星期四星期一星期日星期五星期六星期二星期三
Solution:
3
赵钱孙李周吴陈
=============================================================
星期四星期六星期三星期五星期一星期二星期日
Solution:
4
赵钱孙李周吴陈
=============================================================
星期四星期六星期日星期五星期一星期二星期三
(秦佳宁和王舒)题目6:
通讯录程序设计(限2人)
设计一个实用的小型通讯录程序,具有添加,查询和删除功能。
由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。
电话号码可由字符和数字组成。
(用文件保存)实现功能:
(1)系统以菜单方式工作
(2)信息录入功能
(3)信息浏览功能
(4)信息查询功能
(5)信息修改功能
(6)系统退出功能
(刘璇玉和和璐)题目7:
学生选课系统(限2人)
假定有n门课程,每门课程有课程编号,课程名称,课程性质,学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于15)自由选课。
试设计一个选修课程系统,使之能提供以下功能:
(1)系统以菜单方式工作
(2)课程信息和学生选课信息录入功能(课程信息用文件保存)
(3)课程信息浏览功能
(4)查询功能
(5)按学分查询
(6)某门课程学生选修情况(可选项)
(肖怡含和武宏谕)题目8:
机房收费管理系统(限2人)
(1)输入功能:
输入30名学生的学号、班级、姓名、上机起始时间。
(2)计算功能:
计算每个下机学生的上机费用,每小时1元。
(上机费用=上机时间*1.0/h,不足一小时按一小时计算)
(3)查询功能:
按条件(班级、学号、姓名)显示学生的上机时间。
(4)机器使用情况的显示(显示方式不限但要一目了然)
(李悦如和昝雨菲)题目9:
班级成绩管理系统(限2人)
对一个有N个学生的班级,每个学生有M门课程。
该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。
(用文件保存)功能要求:
(1)本系统采用一个结构体数组,每个数据的结构应当包括:
学号、姓名、M门课程名称。
(2)本系统显示这样的菜单:
请选择系统功能项:
a、成绩录入
b、成绩显示
c、成绩保存
d、成绩排序
e、成绩修改(要求先输入密码)
f、成绩统计
1)显示每门课程成绩最高的学生的基本信息
2)显示每门课程的平均成绩
3)显示超过某门课程平均成绩的学生人数
g、退出系统
(3)执行一个具体的功能之后,程序将重新显示菜单。
(4)将学生成绩保存到文件中。
(闫荣珍和张荣)题目10:
机房机位预定系统(限2人)
20台机器,编号1到20,从早八点到晚八点。
两小时一个时间段,每次可预定一个时间段。
功能要求:
(1)系统以菜单方式工作
(2)查询,根据输入时间,输出机位信息。
(3)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另:
若用户在非空时间上机,则将用户信息列入等待列表。
(4)退出预定,根据输入的时间,机器号撤销该事件的预定!
(5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。
(杨东和赵宏凯)题目11:
班级档案管理系统(限2人)
对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。
功能要求:
(1)本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
学号、姓名、性别、年龄、备注。
(2)本系统显示这样的菜单:
请选择系统功能项:
a学生基本信息录入
b学生基本信息显示
c学生基本信息保存
d学生基本信息删除
e学生基本信息修改(要求先输入密码)
f学生基本信息查询
(1)按学号查询
(2)按姓名查询
(3)按性别查询
(4)按年龄查询
g.退出系统
(3)执行一个具体的功能之后,程序将重新显示菜单。
(4)将学生基本信息保存到文件中。
(5)进入系统之前要先输入密码。
(李通和`顼志情)题目12:
职工工资管理系统(限2人)
功能设计要求
1.输入记录:
将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。
该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
2.显示记录:
根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
3.修改记录:
可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
4.查找记录:
可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
5.删除记录:
可删除数据文件中的任一记录。
6.统计:
(A)计算各项工资平均工资及总工资,(B)统计符合指定条件(如职工工资前三项之和在3000元以上、3000~2000元、2000~1000元)以内的工资职工人数及占总职工人数的百分比。
(C)按字符表格形式打印全部职工工资信息表及平均工资(包括各项总的平均工资)。
7.保存数据文件功能。
例如:
职工工资信息表
ID号姓名基本工资职务工资津贴医疗保险-公积金-总工资
01张望12867941981091352034
02李明1185628135941141740
03王小民8954389864731294
04张效章13508682101161502162
05彭山7453988461681098
各项平均工资1092.2625.214588.8108
(贾永杰)题目13:
工资纳税系统
个人所得税每月交一次,底线是1600元/月,也就是超过了1600元的月薪才开始计收个人所得税。
个人所得税税率表一(工资、薪金所得适用)
级数----------全月应纳税所得额----------税率(%)
1--------------不超过500元的--------------------------5
2----------超过500元至2000元的部分------------10
3----------超过2000元至5000元的部分----------15
4----------超过5000元至20000元的部分---------20
5----------超过20000元至40000元的部分-------25
6----------超过40000元至60000元的部分-------30
7----------超过60000元至80000元的部分-------35
8----------超过80000元至100000元的部分------40
9----------超过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 =",相邻两字符串有一个空格间隔。
当A和B同时为zero时输入结束,相应的结果不要输出。
输出格式:
对每个测试用例输出1行,即A+B的值。
输入样例:
one + two =
three four + five six =
zero seven + eight nine =
zero + zero =
输出样例:
three
ninezero
ninesix
(关一浩)题目16:
C语言关键字中英翻译机
要求输入中文的名词和关键字,可以将其翻译成英语,如输入“基本整形”+回车,得到int;输入英文的单词int,则可以翻译成中文“基本整形”。
可模拟文曲星来实现。
可多次查询,输入bye时退出。
(王聪)题目17:
用C语言设计一个简单的计算器,要求能够对输入的数
1.进行+,-,*,/,运算;
2.可以带括号();
3.不限定运算式的输入长度.
(参考编译技术中语法分析原理)
(邢禹瑶)题目18:
计算24游戏
要求:
输入四个数通过加减乘除计算出24,显示计算过程,并提示成功信息。
(杜千惠)题目19:
输入盘子数
(2个以上有效),移动速度,开始演示汉诺塔移动的步骤,要求:
盘子,A,B,C柱需要自己绘制,初始时盘子在A柱上通过B柱最终移动到C柱上,显示出盘子在几个柱之间的移动过程。
(王宏宇)题目20:
多项式加法的实现
已知如下两个多项式
P(x)=P
X
+P
X
+...+
P
X+P
Q(x)=q
X
+q
X
+...+q
X+q
求它们的和多项式S(x)。
(李赵)题目21:
实现带有括号的四则运算
输入是一个带有括号的四则运算表达式,输出是计算得出的正确计算结果。
例如:
输入:
123+213-67*34+345/23*45*(34+34-345+245+567)回车,然后程序计算得出结果为:
359183
(李晶)题目22:
线性方程组求解
输入是N(N<256)元线性方程组Ax=B,输出是方程组的解,也可能无解或有多组解。
可以用高斯消去法求解,也可以采用其它方法。
(高鸣旋)题目23:
大整数的四则运算
大整数指超过十位的十进制整数,这里为简便,假定不超过五十位。
这类大整数在C语言系统中因超界溢出,是不能直接表达和计算的。
可以用数组来表示大整数,在此基础上编写出实现大整数加、减、乘、除的程序,并努力加以优化。
(王`瑶)题目24:
三角形计算
设有任意正三角形ABC,其三条边BC、CA,AB上分别有一点A1、B1、C1,而且有AC1=2C1B,BA1=2A1C,CB1=2B1A。
编制程序验证由线段AA1、BB1、CC1相交而成的三角形A2B2C2的面积是正三角形ABC的面积的七分之一。
(尹国晋)题目25:
四边形计算
对于任意的四边形ABCD,其对角线AC与BD的中点分别是M、N,AB、CD的延长线交于R。
验证三角形RMN的面积是四边形ABCD面积的四分之一。
(白鹏)题目26:
设计一个模拟时间条的程序
基本要求:
一般我们在安装程序的时候,会经常看到有一个时间条表示程序安装的进度,这样用户就能够了解到安装还剩余多少时间。
本程序实现的就是这个功能。
当然,若要将其真正运用到某个程序中,还要加以修改,以便使之的进度能够真正的与应用程序的进度吻合。
创新要求:
在基本要求达到后,进行创新设计。
(任琳)题目27:
文件加密
文件的传输会有明文和密文的区别,明文发送是不安全的,用一个程序实现发送文件的加密和解密操作。
加密算法,密钥设计由同学自己选择现有的加密解密算法或是自己设计。
要求:
(1)对文件的字符根据加密算法,实现文件加密。
(2)对操作给出必要的提示。
(3)对存在的file1.txt文件,必须先打开,后读写,最后关闭。
加密后的文件放在file2.txt。
(4)解密文件保存在file3.txt中。
(裴晓磊)题目28:
猜数游戏(掌握程序结构及随机函数应用)
程序说明:
游戏的开始由机器产生一个随机数(1~100之间,用库函数random(),用法见后面的说明),然后游戏者在程序的提示下猜数,若输入的数比这个数大,程序提示:
YouranswerisHIGH,tryagain.,否则,程序提示:
YouranswerisLOW,tryagain.,直到猜对为止。
程序可实现连续猜数,直到游戏者退出。
程序输出要求:
累计游戏者猜对一个数所需次数n,当n<=7时,给出“Congratulation”字样;当7<n<15时,给出“I canbetyoucandoitbetter.”;当n>=15时,用exit(0)库函数退出程序。
(郝梓俊)题目29:
字符串处理函数
编写三个函数:
求字符串长度函数(函数原型为:
intstrlen(char*p)),字符串复制函数(函数原型为:
voidstrcpy(char*p1,char*p2)),字符串比较函数(函数原型为:
intstrcmp(char*p1,char*p2),返回值为第一个不相同字符的ASCII码差。
)。
要求:
在主函数中根据用户需要调用不同的函数功能。
(李思凡)题目30:
进制转换
编一程序,实现将输入的一个无符号整数转换为二进制和八进制表示,分别存入字符数组中并输出。
(提示:
算法采用模拟人工法。
)
注:
计算机模拟人工是编程中常用的方法,这种方法要求编程者首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。
(李俊侨)题目31:
判断一个数是否是数组中的成员(用二分法查找)
已知数据a中一共有10个已排序的整数(由小到大排列)。
现在从键盘上输入一个数,判断这个数是否是数组a中的数,如果是的话,打印出此数在数组a中的位置来,否则打印“找不到“。
(提示:
①设待查找的数为x,设三个位置变量l、m、h分别代表查找范围的顶部、中间位置和底部,m=(l+h)/2,把数分成以a[m]为中点的两段范围。
②判断x是否等于a[m],若是,则找到。
③若大于a[m],则x必在后半段范围,即在a[m+1]至a[h]。
则舍弃前半段,再在后半段重新划分两段范围,定出l、m和h,重复以上步骤,逐步缩小查找范围。
)
(杨晓杰)题目32:
位数大小排序(掌握数值排序算法)
程序说明:
输入一个五位整数,对此整数中的五个数值进行从大到小的顺序排序,形成一个新的五位整数,并输出这个整数。
要求:
用函数调用。
(郝文溪)题目33:
请编写函数fun
函数的功能是求出二维数组周边元素之和,作为函数值返回。
二维数组中的值在主函数中赋予。
(数组维数用宏定义)
(刘宁娜)题目34:
矩阵乘法(数值求解算法)
编写一个函数实现矩阵A(2行3列)与矩阵B相乘(3行2列),乘积放在C数组中。
在主函数中输入相乘的两数组,并输出结果。
(李花)题目35:
求所有不超过200的N值
N的平方是具有对称性质的回文数。
回文数就是将一个数从左向右读是一样的,如满足题意要求的数有:
N=11,112=121。
题目36:
插入后自动排序(掌握用穷举法进行比较、交换)
把一个整数插入到按由小到大排列的数列中,插入后仍然保持由小到大的顺序排列。
要求:
用数据指针。
题目37:
用梯形法求定积分(数值求解算法)
用梯形法编程求函数f(x)=x2+2x+1的定积分
提示:
把积分区间[a,b]等分为n等分(a,b,n的值由程序输入。
),可得到若干个小梯形,积分面积就近似为这些小梯形面积之和。
题目38:
一个奇异的三位数(穷举算法)
一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,求这个三位数。
题目39:
回文数的形成
任取一个十进制整数,将其倒过来后与原来的整数相加,得到一个新的整数后重复以上步骤,则最终可得到一个回文数。
请编程验证。
(回文数就是将一个数从左向右读是一样的,如121,11等)。
(注:
回文数不超过2147483647)
回文数的这一形成规则目前还属于一个猜想,尚未获得数学上的验证,有些回文数要经历上百个步骤才能获得,请编程验证,打印形成过程。
如输入整数78,则形成回文数的过程为:
78+87=165,165+561=726,726+627=1353,1353+3531=4884。
提示:
一个函数用来求反序数,另一个函数判断是否为回文数,在主函数中输入输出。
题目40:
人机猜数游戏
由计算机“想”一个四位数,请人猜这个四位数是多少。
人输入这个四位数后,计算机首先判断这四个数中有几个猜对了,并且在猜对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数为止。
请编程实现该游戏,游戏结束时,显示人猜一个数用了几次。
提示:
用库函数random()产生一个随机数。
如:
Intz;
z=random(9999);
题目41:
条件编译
用条件编译方法实现以下功能:
输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下一字母(如’a’变成’b’……….’z’变成’a’。
其他字符不变)。
用#define命令来控制是否要译成密码。
例如:
#definechange1
则输出密码。
若#definechange0则不译成密码,按原码输出。
题目42:
输出九九乘法口诀
输出九九乘法口决表(循环结构的应用,表的格式自己设定)
题目43:
设计函数
设计一个函数,对n个字符串按由小到大的顺序排序,n由程序读入,字符串的输入和输出都在main函数中进行。
题目44:
统计符号
输入三行文字,找出其中有多少个空格和多少个单词(规定单词间以一个或多个空格分开)。
若一个单词恰好在行末结束,则下一行的开头应有空格,句号和逗号后面也应有空格。
题目45:
递归算法
用递归算法编写求1~n的累加和。
在主函数中调用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北大 软件 学院 语言程序设计 题目