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);