DSP

C++练习题,希望和大家讨论下

2019-07-13 14:49发布

以下这些题是学校老师布置的,我感觉有些难度,只做出了第二题,源代码写在了最后,希望大家帮我优化一下,并帮我解决下其余的问题 ,不胜感激!1、 实现简单的学生成绩信息管理软件。 学生信息包括:学号、姓名、4门课程的成绩(计算机,数学,英语,物理)。 要实现的功能:学生信息的录入、修改、删除和查询。2、 编写小学生数学测试软件。 (1) 可选择题型加,减,乘。 (2) 可选择每次答题的个数。 (3) 随机生成两个数进行运算。 (4) 每次输入答案后判断对错,若答案错误,给出正确答案。 (5) 最后给出做对题目的总个数。3、 用字符数组保存一个英文句子。 (1) 删除该英文句子的前导空格、后导空格、句中多余空格(单词之间只留一个空格)。 (2) 统计句中某单词出现的次数。 (3) 查找并替换某单词。4、 用文件保存一段英文文本。 (1) 统计各字母在文本中出现的次数(忽略大小写)。 (2) 查找并替换文本中的某字符串,将替换后的文本存入另一个文件。5、 打印如下方阵(任选一题)。 (1) 螺旋方阵: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 (2) 蛇形方阵: 1 2 6 7 3 5 8 13 4 9 12 14 10 11 15 166、 已知2000年1月1日为星期六,输入任一年的年份后,打印该年的年历。7、 假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,实际的长整数m表示为: m=a[k]×10k-1+a[k-1]×10k-2+….+a[2]×10+a[1] 其中a[0]保存该长整数的位数。完成(任选一题): (1) 长整数乘普通整数。 (2) 长整数除普通整数。8、 对于题7描述的10进制长整数,要求: (1) 转换成16进制数输出。 (2) 转换成8进制数输出。9、 算法问题(任选一题)。 (1) 皇后问题:在国际象棋中,能否在空棋盘上摆放八个皇后,并使其中任意两个皇后不能在同一行或同一列或同一对角线上,并编写完整的摆放八皇后问题的程序。要求:第一个皇后的起始位置由键盘输入,国际象棋的棋盘为8*8的方格。 (2) 迷宫问题,用数组方式实现一个迷宫。



第二道题源文件://这样的程序有些问题:一是每次打开后产生的随机数都相同,起不到编写软件的目的;二是产生的//随机数相对较大,可能会超过小学生的计算能力,尤其是在乘法问题上。
#include using namespace std;
int main(){ int num, a, b, c, count = 0; while (num != 0) { cout << "请选择题型(1代表加法,2代表减法,3代表乘法,0代表结束):"; cin >> num; cout << endl << endl;
if (num == 1) {
a = rand(); b = rand(); cout << "请计算" << a << "和" << b << "的和,结果为:"; cin >> c; if (c == a + b) { cout << "正确!/n/n"; count++; } else  cout << "错误!正确答案是:" << a + b << endl << endl; }
if (num == 2) { a = rand(); b = rand(); cout << "请计算" << a << "和" << b << "的差,结果为:"; cin >> c; if (c == a - b) { cout << "正确!/n/n"; count++; } else  cout << "错误!正确答案是:" << a - b << endl << endl; }
if (num == 3) { a = rand(); b = rand(); cout << "请计算" << a << "和" << b << "的积,结果为:"; cin >> c; if (c == a * b) { cout << "正确!/n/n"; count++; } else  cout << "错误!正确答案是:" << a * b << endl << endl; if (num != 0 && num != 1 && num != 2 && num != 3) cout << "请按要求输入!/n/n"; }
cout << endl << endl << endl; cout << "你总共做对题的个数为:" << count << endl;
return 0;}