c面向对象程序设计课后习题答案陈维兴
- 格式:docx
- 大小:3.91 KB
- 文档页数:8
c面向对象程序设计课后习题答案陈维兴
C面向对象程序设计是计算机科学中的一门重要课程,通过学习该课程,学生可以掌握面向对象的编程思想和技巧,提高自己的编程能力。而课后习题则是巩固和应用所学知识的重要环节。本文将为大家提供一些C面向对象程序设计课后习题的答案,希望能够帮助大家更好地理解和掌握相关知识。
1. 题目:请编写一个C程序,实现一个简单的计算器,可以进行加、减、乘、除四则运算。
答案:以下是一个简单的计算器程序的实现代码。
```c
#include
int main() {
char operator;
double num1, num2, result;
printf("请输入要进行的运算符:");
scanf("%c", &operator);
printf("请输入两个操作数:");
scanf("%lf %lf", &num1, &num2);
switch (operator) {
case '+':
result = num1 + num2;
printf("运算结果为:%.2lf\n", result);
break; case '-':
result = num1 - num2;
printf("运算结果为:%.2lf\n", result);
break;
case '*':
result = num1 * num2;
printf("运算结果为:%.2lf\n", result);
break;
case '/':
if (num2 != 0) {
result = num1 / num2;
printf("运算结果为:%.2lf\n", result);
} else {
printf("除数不能为0!\n");
}
break;
default:
printf("输入的运算符有误!\n");
break;
}
return 0;
} ```
2. 题目:请编写一个C程序,实现一个简单的学生信息管理系统,可以添加、删除、查询和修改学生信息。
答案:以下是一个简单的学生信息管理系统的实现代码。
```c
#include
#include
struct Student {
char name[20];
int age;
int score;
};
int main() {
int choice;
struct Student students[100];
int count = 0;
while (1) {
printf("请选择操作:\n");
printf("1. 添加学生信息\n");
printf("2. 删除学生信息\n");
printf("3. 查询学生信息\n");
printf("4. 修改学生信息\n"); printf("5. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入学生姓名:");
scanf("%s", students[count].name);
printf("请输入学生年龄:");
scanf("%d", &students[count].age);
printf("请输入学生成绩:");
scanf("%d", &students[count].score);
count++;
printf("添加成功!\n");
break;
case 2:
if (count > 0) {
printf("请输入要删除的学生姓名:");
char name[20];
scanf("%s", name);
int index = -1;
for (int i = 0; i < count; i++) {
if (strcmp(students[i].name, name) == 0) {
index = i; break;
}
}
if (index != -1) {
for (int i = index; i < count - 1; i++) {
strcpy(students[i].name, students[i + 1].name);
students[i].age = students[i + 1].age;
students[i].score = students[i + 1].score;
}
count--;
printf("删除成功!\n");
} else {
printf("查无此人!\n");
}
} else {
printf("暂无学生信息!\n");
}
break;
case 3:
if (count > 0) {
printf("请输入要查询的学生姓名:");
char name[20]; scanf("%s", name);
int index = -1;
for (int i = 0; i < count; i++) {
if (strcmp(students[i].name, name) == 0) {
index = i;
break;
}
}
if (index != -1) {
printf("姓名:%s\n", students[index].name);
printf("年龄:%d\n", students[index].age);
printf("成绩:%d\n", students[index].score);
} else {
printf("查无此人!\n");
}
} else {
printf("暂无学生信息!\n");
}
break;
case 4:
if (count > 0) {
printf("请输入要修改的学生姓名:"); char name[20];
scanf("%s", name);
int index = -1;
for (int i = 0; i < count; i++) {
if (strcmp(students[i].name, name) == 0) {
index = i;
break;
}
}
if (index != -1) {
printf("请输入修改后的学生年龄:");
scanf("%d", &students[index].age);
printf("请输入修改后的学生成绩:");
scanf("%d", &students[index].score);