Sian 发表于 2016-5-20 14:12:14

C++实现的一个学生成绩管理示例

//
//main.cpp
//Hello
//
//Created by 余西安 on 16/5/19.
//Copyright © 2016年 Sian. All rights reserved.
//

#include <stdio.h>
#include <string.h>

// 创建基本数据结构
struct Student{
    int id;
    char name;
    int score;
};

// 创建数据存储体
Student sa;
int count = 0;

// 创建实体对象
Student create(){
    Student s;
    printf("ID:");
    scanf("%d", &s.id);
    printf("Name:");
    scanf("%s", s.name);
    printf("Score:");
    scanf("%d, %d, %d", &s.score, &s.score, &s.score);
    return s;
}

// 创建添加函数
int add(const Student *s){
    if (count > 100) return -1;
    sa = *s;
    count++;
    return 0;
}

// 创建查找方法
int find(char name, Student *s){
    for(int i = 0; i < count ; i++){
      Student fs = sa;
      if (strcmp(name, fs.name) == 0){
            s->id = fs.id;
            strcpy(s->name, fs.name);
            s->score = fs.score;
            s->score = fs.score;
            s->score = fs.score;
            return 0;
      }
    }
    return -1;
}

// 创建展现方法
void list(){
    if (count == 0){
      printf("Nothing...\n");
      return;
    }
    printf("---------------------\n");
    printf("ID\tName\tScore\t\n");
    printf("---------------------\n");
    for (int i = 0; i < count; i++){
      Student s = sa;
      printf("%d\t%s\t%d,%d,%d\n", s.id, s.name, s.score, s.score, s.score);
    }
    printf("---------------------\n");
}

int main(){
    while(true){
      char cmd;
      printf(">");
      scanf("%s", cmd);
      // 录入成绩
      if(strcmp(cmd, "add") == 0){
            Student s = create();
            int resutl = add(&s);
            if (resutl == 0) printf("添加成功!\n");
            if (resutl == -1) printf("添加失败!\n");
            continue;
      }
      if (strcmp(cmd, "list") == 0){
            list();
            continue;
      }
      if(strcmp(cmd, "exit") == 0){
            printf("Bye!\n");
            break;
      }
      if (strcmp(cmd, "count") == 0){
            printf("Total:%d\n", count);
            continue;
      }
      if (strcmp(cmd, "find") == 0){
            Student s;
            char name;
            printf("请输入需要查询的学生姓名:");
            scanf("%s", name);
            int result = find(name, &s);
            if (result == 0) printf("%d\t%s\t%d,%d,%d\n", s.id, s.name, s.score, s.score, s.score);
            if (result == -1) printf("没有查询到相关信息\n");
            continue;
      }
      printf("Error Code, please input code like \"add\", \"list\", \"exit\", \"count\"\n");
    }
    return 0;
}

Sian 发表于 2016-5-20 14:13:32

调试输出结果:
>?
Error Code, please input code like "add", "list", "exit", "count"
>list
Nothing...
>add
ID:1
Name:sian
Score:1,2,3
添加成功!
>list
---------------------
ID        Name        Score       
---------------------
1        sian        1,2,3
---------------------
>count
Total:1
>find
请输入需要查询的学生姓名:sian
1        sian        1,2,3
>exit
Bye!
Program ended with exit code: 0
页: [1]
查看完整版本: C++实现的一个学生成绩管理示例