IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 教职工管理系统 -> 正文阅读

[开发测试]教职工管理系统

教职工管理系统

数据输入:教师(包含姓名和工号信息)和所授课程信息;

数据输出:

(1)教师授课情况明细列表(列出每位老师授课的所有课程);

(2)教师授课情况查询(可以按工号或姓名查询);

(3)添加、修改、删除教师授课数据;

功能要求及说明:

(1)系统以菜单界面方式工作,运行界面友好,演示程序以用户和计算机的对话方式进行,在用户有非法输入时能够给出相应提示;

(2)用户可以选择从键盘输入数据或者从文件读取数据,运行结果可以输出到屏幕和保存到文件中;

(3)测试用例至少三组以上,并包含对用户非法输入情况的测试;结合测试结果,对程序进行分析说明;

(4)程序何时退出应该由用户自主选择决定。

(5)进行面向对象程序设计!

#include<iostream>
#include<cstring>
#include<fstream>
#include<cstdlib> 
using namespace std;

class Teacher {//定义一个教师类
public:
    int id; // 工号
    char name[10]; // 姓名  
    int couId; // 课程编号
    char couName[10]; // 课程名称
public:
    void add(); // 添加教师信息
    void display(); // 显示信息
    void search(); // 查询信息
    void searchsid(); // 按工号查询信息
    void searchsname(); // 按姓名查询信息
    void alter(); // 修改信息
    void del(); // 删除信息
    void write(int n); // 向文件中写入数据
    int read(); // 从文件中读数据
}tea[40];

//向文件中写入数据
void Teacher::write(int n)
{
    fstream myfile;//1.创建流对象
    myfile.open("teacher.txt", ios::out | ios::binary);
    if (!myfile)
    {
        cout << "该文件不能打开 !" << endl;
        abort();//功能: 终止程序的执行。返回值依赖于执行,可以通过返回值显示错误。
    }
    int count = n;
    myfile << count << endl;
    for (int i = 0; i <= count; i++)
    {
        myfile << tea[i].id << " " << tea[i].name << " " << tea[i].couId << " " << tea[i].couName << " " << endl;
    }
    myfile.close();
}
//从文件中读数据
int Teacher::read()
{

    fstream myfile;//定义流对象
    myfile.open("teacher.txt", ios::in | ios::binary);
    if (!myfile)
    {
        cout << "该文件不能打开 !" << endl;
        abort();//功能: 终止程序的执行。返回值依赖于执行,可以通过返回值显示错误。
    }
    int count;
    myfile.seekg(0);
    myfile >> count;
    for (int i = 0; i <= count; i++)
    {
        myfile >> tea[i].id >> tea[i].name >> tea[i].couId >> tea[i].couName;
        cout << endl;
    }
    myfile.close();
    return count;
}

//添加功能
void Teacher::add()
{
    int n = read();
    int i = 0;
    char sign;
    cout << "是否输入增加的新教师的相关信息 :(Y or N) " << endl;
    cin >> sign;
    while (sign != 'N')
    { 
        cout << "请录入新教师基本信息:" << endl;
        cout << "工号 :";
        cin >> tea[i].id;
        cout << "姓名 :";
        cin >> tea[i].name;
        cout << "请录入课程设计信息:" << endl;
        cout << "课程编号 :";
        cin >> tea[i].couId;
        cout << "课程名称 :";
        cin >> tea[i].couName;
        cout << "提示:是否继续写入教师信息 ?(Y/N)"<<endl;
        cin >> sign; // 输入判断  
        i++;
    }
    write(i);
}

//显示教师信息、课程信息
void Teacher::display()
{
    int n = read();
    cout << "显示全部教师信息: " << endl;
    if (!tea)
    {
        cout << "没有记录" << endl;
    }
    else
    {
        for (int i = 0; i < n; i++) // 循环输入  
        {
            cout << "工号: " << tea[i].id << '\n' << "姓名: " << tea[i].name << '\n' << "课程编号 : " << tea[i].couId << '\n' << "课程名称 : " << tea[i].couName << '\n' << endl;
        }
    }
}

//查询教师信息、课程设计信息
void Teacher::search()
{
    Teacher tea;
    int n = tea.read();
    cout << "查询学生信息、课程设计信息:[确认查询id:1/确认查询name:2]" << endl;
    cout << "请输入选择 :";
    int c;
    cin >> c;
    switch (c)
    {
    case 1:
        tea.searchsid();
        break;
    case 2:
        tea.searchsname();
        break;
    default:
        cout << "输入错误 , 请重新输入 !" << endl;
    }
    tea.write(n);
}

//根据id查询教师信息、课程设计信息
void Teacher::searchsid()
{
    Teacher te;
    int n = te.read();
    int s;
    int i = 0;
    cout << "查找教师信息 :" << endl;
    cout << "请输入需要查找教师的工号 :" << endl;
    cin >> s;
    while ((tea[i].id - s) != 0 && i < n) {
        i++;
    }
        cout << "---------------查询结果如下----------------" << endl;
        cout << "工号 : " << tea[i].id << endl;
        cout << "姓名 : " << tea[i].name << endl;
        cout << "课程编号 : " << tea[i].couId << endl;
        cout << "课程名称 : " << tea[i].couName << endl;

}

//根据name查询教师信息、课程设计信息
void Teacher::searchsname()
{
    Teacher te;
    int n = te.read();
    char s[10];
    int i = 0;
    cout << "查找教师信息 :" << endl;
    cout << "请输入需要查找教师的姓名 :" << endl;
    cin >> s;
    while (strcmp(tea[i].name,s)!=0 && i < n) {
        i++;
    }
    cout << "---------------查询结果如下----------------" << endl;
    cout << "工号 : " << tea[i].id << endl;
    cout << "姓名 : " << tea[i].name << endl;
    cout << "课程编号 : " << tea[i].couId << endl;
    cout << "课程名称 : " << tea[i].couName << endl;
}

//删除教师信息、课程设计信息
void Teacher::del()
{
    Teacher te;
    int n = te.read();
    int s;
    int i = 0, j;
    cout << endl << "删除教师信息 :" << endl;
    cout << "请输入需要删除教师的工号 :" << endl;
    cin >> s;
    while ((tea[i].id - s) != 0 && i < n) {// 查找判断
            i++;   
        }
    if (i == n)
    {
        cout << "提示:记录为空 !!!" << endl; // 返回失败信息
    }
    else
    {
        cout << "你要删除的信息如下 :" << endl;
        cout << "姓名 :" << tea[i].name << endl;
        cout << "工号 :" << tea[i].id << endl;
        cout << "课程编号 :" << tea[i].couId << endl;
        cout << "课程名称 :" << tea[i].couName << endl;
        for (j = i; j < n - 1; j++) // 删除操作  
        {
            tea[j].id = tea[j + 1].id;
            strcpy_s(tea[j].name, tea[j + 1].name);
            tea[j].couId = tea[j + 1].couId;
            strcpy_s(tea[j].couName, tea[j].couName);
        }
        cout << "提示:已成功删除 !" << endl; // 返回成功信息
    }
    te.write(n - 1);
}


//修改教师信息、课程设计信息
void Teacher::alter()
{
    Teacher te;
    int n = te.read();
    int s;
    int i = 0;
    cout << "修改教师信息 :" << endl;
    cout << "请输入需要修改教师的工号 :" << endl;
    cin >> s;
    while ((tea[i].id - s) != 0 && i < n)// 查找判断  
    {
        i++; 
    }
    if (i >= n)
    {
        cout << "提示:对不起,无该教师的信息!" << endl; 
    }
    else
    {
        cout << "该教师的信息 :" << endl;
        cout << "工号: " << tea[i].id << '\n' << "姓名: " << tea[i].name << '\n' << "课程编号 : " << tea[i].couId << '\n' << "课程名称 : " << tea[i].couName << '\n' << endl;
        cout << "请重新输入该学生的信息 " << endl;
        cout << "学号 :";
        cin >> tea[i].id;
        cout << "姓名 :";
        cin >> tea[i].name;
        cout << "请重新输入课程设计信息:" << endl;
        cout << "课程编号 :";
        cin >> tea[i].couId;
        cout << "课程名称 :";
        cin >> tea[i].couName;        
        cout << "修改成功 !" << endl;
        te.write(n);
    }
}

int main()
{
    char choice;
    cout << "菜单界面" << endl;
    cout << "0、退出" << endl;
    cout << "1、添加新教师" << endl;
    cout << "2、显示教师授课情况明细列表" << endl;
    cout << "3、教师授课情况查询" << endl;
    cout << "4、修改教师授课数据" << endl;
    cout << "5、删除教师授课数据" << endl;
    cout << "请选择你的操作(输入对应功能的序号):" << endl;
    cin >> choice;
    Teacher te;
    if (choice == '0')
    {
        cout << "感谢您使用教职工管理系统!" << endl;
        exit(0);
    }
    else if (choice == '1')
    {
        te.add();
        system("pause");
        main();
    }
    else if (choice == '2')
    {
        te.display();
        system("pause");
        main();
    }
    else if (choice == '3')
    {
        te.search();
        system("pause");
        main();
    }
    else if (choice == '4')
    {
        te.alter();
        system("pause");
        main();
    }
    else if (choice == '5')
    {
        te.del();
        system("pause");
        main();
    }
    else
    {
        cout << "输入错误,请重新输入您的选择: " << endl;;
        main();
    }
    return 0;
}
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-07-22 14:29:45  更:2021-07-22 14:32:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:25:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码