C++联系人管理系统2.0(用类实现)

  • 一、实现要求
  • 二、更新日志
  • 三、运行截图
  • 四、实现步骤
    • 1.Linkman头文件部分
    • 2.Menu头文件部分
  • 3.主函数部分

一、实现要求

实现要求:

(1)从键盘输入N个联系人的信息,保存到自定义命名的文件中。
(2)设计表示联系人信息的类Linkman,其中包括但不限于联系人的编号、姓名、电话、年龄、地址等数据成员(访问权限均为私有),以及若干成员函数。
(3)从文件(自定义命名)中读取所有学生的信息并显示到屏幕上,对文件的读写分别以ifstream和ofstream实现。
(4)分别定义方法实现按编号和姓名查找联系人的信息。
(5)定义方法分别实现追加和插入联系人的信息,然后保存到原来的文件中。
(6)定义方法实现按编号修改和按姓名修改联系人的信息,然后保存到原来的文件中。
(7)定义方法实现按编号修改和按姓名删除联系人的信息,然后保存到原来的文件中。
(8)定义方法实现按编号和年龄分别进行升序和降序排列联系人信息。
(9)定义方法实现联系人信息的统计。
(10)对以上所有对联系人进行的输入、输出、保存、读取、添加、删除、修改、查询、排序等有关的操作,要有清晰的提示信息,并形成相应的菜单,设计类Menu将其进行封装。
(11)以上实现,原则上均要求采用面向对象编程的思想实现。

二、更新日志

1.增加联系人年龄、地址
2.增加按年龄升序和降序排列联系人信息
3.重新定义联系人输出方式(运用stew()、setiosflags(ios::left))

拓展:
setw(n) 宽域操作符的用法
setw(n) 宽域操作符的作用为设置字段宽度为n位,n是在输出时分配了n个字符的输出宽度,默认在n个字符宽度中右对齐输出
(可以使用setiosflags(ios::left)设置为左对齐输出)

注意:
1.setw(n)宽域操作符只对直接跟在<<后的输出数据起作用(而在之后的<<需要在之前再一次使用setw)
2.setw(n)宽域操作符需要搭配头文件#include"iomanip"使用;

三、运行截图

四、实现步骤

1.Linkman头文件部分

代码如下:

#include<iostream>
#include<string>
#include<fstream>
#include <iomanip>
using namespace std;#define MAX 1000
#define SIZE 1000
static int scount = 0;class Linkman
{char bianhao[20];   //编号char name[20];      //姓名char number[20];    //电话char age[20];       //年龄char agress[100];   //地址
public:Linkman() {};void begain(char bh[20], char na[20],char ag[20],char nu[20],  char agr[100]){strcpy_s(bianhao, bh);strcpy_s(name, na);strcpy_s(age, ag);strcpy_s(number, nu);strcpy_s(agress, agr);};//初始化void setbianhao(char bh[20]){strcpy_s(bianhao, bh);}void setname(char na[20]){strcpy_s(name, na);}void setnumber(char nu[20]){strcpy_s(number, nu);}void setage(char ag[20]){strcpy_s(age, ag);}void setagress(char agr[100]){strcpy_s(agress, agr);}char* getbianhao(){return bianhao;};char* getname(){return name;};char* getnumber(){return number;};char* getage(){return age;};char* getagress(){return agress;};
};class person
{Linkman linkman[MAX];public:void input();        //输入void output();       //显示void read();         //读取void save();         //保存void insert();       //插入void append();       //追加void search1();      //查询(编号)void search2();      //查询(姓名)void change1();      //修改(编号)void change2();      //修改(姓名)void Delete1();      //删除(编号)void Delete2();      //删除(姓名)void sort1();        //排序(编号升序)void sort2();        //排序(编号降序)void sort3();        //排序(年龄升序)void sort4();        //排序(年龄降序)void count();        //统计
};//添加
void person::input()
{char name[20], number[20], bianhao[20], age[20], agress[100];int x;cout << "请输入添加人数:";cin >> x;for (int i = 0; i < x; i++){system("cls");//清屏cout << " --------------------------------------------" << endl;cout << "|              【联系人信息录入】            |" << endl;cout << " -------------------------------------------- " << endl;cout << "请输入第" << i + 1 << "位联系人信息:" << endl;cout << "编号:";    cin >> bianhao;cout << "姓名:";    cin >> name;cout << "年龄:";    cin >> age;cout << "号码:";    cin >> number;cout << "地址:";    cin >> agress;linkman[scount].begain(bianhao, name, age, number,  agress);scount++;}cout << "\n输入完成!" << endl;cout << "自动保存成功!" << endl;
}//显示
void person::output()
{cout << "\n所有联系人信息如下:" << endl;cout << " ---------------------------------------------------------------------------------------------- " << endl;cout << setw(11) << setiosflags(ios::left) << "|编号" << setw(11) << setiosflags(ios::left) << "|姓名" << setw(11) << setiosflags(ios::left) << "|年龄" << setw(21) << setiosflags(ios::left) << "|电话" << setw(41) << setiosflags(ios::left) << "|地址" << "|" << endl;for (int i = 0; i < scount; i++){cout << "|----------------------------------------------------------------------------------------------|" << endl;cout << "|" << setw(10) << setiosflags(ios::left) << linkman[i].getbianhao() << "|" << setw(10) << setiosflags(ios::left) << linkman[i].getname() << "|" << setw(10) << setiosflags(ios::left) << linkman[i].getage() << "|" << setw(20) << setiosflags(ios::left) << linkman[i].getnumber() << "|" << setw(40) << setiosflags(ios::left) << linkman[i].getagress() << "|" << endl;}cout << " ---------------------------------------------------------------------------------------------- " << endl;//setiosflags(ios::left) 居左对其(配合头文件#include <iomanip>使用)//setw(10) 如果输出内容不足10,自动补齐空格(制表用,配合头文件#include <iomanip>使用)
}//读入
void person::read()
{ifstream ifile;ifile.open("Broccoli.txt", ios::in | ios::binary);scount = 0;for (int i = 0; !ifile.eof(); i++){ifile >> linkman[i].getbianhao();ifile >> linkman[i].getname();ifile >> linkman[i].getage();ifile >> linkman[i].getnumber();ifile >> linkman[i].getagress();scount++;}scount--;ifile.close();
}//保存
void person::save()
{ofstream ofile;ofile.open("Broccoli.txt", ios::out | ios::binary);for (int i = 0; i < scount; i++){ofile << linkman[i].getbianhao() << endl;ofile << linkman[i].getname() << endl;ofile << linkman[i].getage() << endl;ofile << linkman[i].getnumber() << endl;ofile << linkman[i].getagress() << endl;}ofile.close();
}//插入
void person::insert()
{int h;char name[20], number[20], bianhao[20], age[20], agress[100];cout << "请输入插入位置:";cin >> h;cout << "编号:";    cin >> bianhao;cout << "姓名:";    cin >> name;cout << "年龄:";    cin >> number;cout << "号码:";    cin >> age;cout << "地址:";    cin >> agress;scount++;Linkman var;//关键排序for (int i = scount - 1; i > h - 1; i--){linkman[i] = linkman[i - 1];}linkman[h - 1].begain(bianhao, name, number, age, agress);cout << "\n插入成功!" << endl;cout << "自动保存成功!" << endl;output();
}//追加
void person::append()
{int x;cout << "请输入你要追加的人数:";cin >> x;char name[20], number[20], bianhao[20], age[20], agress[100];for (int i = 0; i < x; i++){system("cls");//清屏cout << " --------------------------------------------" << endl;cout << "|            【联系人信息追加录入】          |" << endl;cout << " -------------------------------------------- " << endl;cout << "请输入第" << i + 1 << "位联系人信息:" << endl;cout << "编号:";    cin >> bianhao;cout << "姓名:";    cin >> name;cout << "年龄:";    cin >> age;cout << "号码:";    cin >> number;cout << "地址:";    cin >> agress;linkman[scount].begain(bianhao, name, number, age, agress);scount++;}cout << "\n追加输入完成!" << endl;cout << "自动保存成功!" << endl;output();
}//查询(按编号)
void person::search1()
{char bianhao1[20];char bianhao2[20];int q = 0;cout << "请输入要查询人编号:";cin >> bianhao1;for (int i = 0; i < scount; i++){strcpy_s(bianhao2, linkman[i].getbianhao());if (strcmp(bianhao1, bianhao2) == 0){q++;cout << "\n查询信息如下:" << endl;cout << " ---------------------------------------------------------------------------------------------- " << endl;cout << setw(11) << setiosflags(ios::left) << "|编号" << setw(11) << setiosflags(ios::left) << "|姓名" << setw(11) << setiosflags(ios::left) << "|年龄" << setw(21) << setiosflags(ios::left) << "|电话" << setw(41) << setiosflags(ios::left) << "|地址" << "|" << endl;cout << "|----------------------------------------------------------------------------------------------|" << endl;cout << "|" << setw(10) << setiosflags(ios::left) << linkman[i].getbianhao() << "|" << setw(10) << setiosflags(ios::left) << linkman[i].getname() << "|" << setw(10) << setiosflags(ios::left) << linkman[i].getage() << "|" << setw(20) << setiosflags(ios::left) << linkman[i].getnumber() << "|" << setw(40) << setiosflags(ios::left) << linkman[i].getagress() << "|" << endl;cout << " ---------------------------------------------------------------------------------------------- " << endl;}}if (q == 0){cout << "未查询到相关信息!" << endl;}
}//查询(按姓名)
void person::search2()
{char name1[20];char name2[20];int q = 0;cout << "请输入要查询人姓名:";cin >> name1;for (int i = 0; i < scount; i++){strcpy_s(name2, linkman[i].getname());if (strcmp(name1, name2) == 0){q++;cout << "\n查询信息如下:" << endl;cout << " ---------------------------------------------------------------------------------------------- " << endl;cout << setw(11) << setiosflags(ios::left) << "|编号" << setw(11) << setiosflags(ios::left) << "|姓名" << setw(11) << setiosflags(ios::left) << "|年龄" << setw(21) << setiosflags(ios::left) << "|电话" << setw(41) << setiosflags(ios::left) << "|地址" << "|" << endl;cout << "|----------------------------------------------------------------------------------------------|" << endl;cout << "|" << setw(10) << setiosflags(ios::left) << linkman[i].getbianhao() << "|" << setw(10) << setiosflags(ios::left) << linkman[i].getname() << "|" << setw(10) << setiosflags(ios::left) << linkman[i].getage() << "|" << setw(20) << setiosflags(ios::left) << linkman[i].getnumber() << "|" << setw(40) << setiosflags(ios::left) << linkman[i].getagress() << "|" << endl;cout << " ---------------------------------------------------------------------------------------------- " << endl;}}if (q == 0){cout << "未查询到相关信息!" << endl;}
}//修改(按编号)
void person::change1()
{char bianhao[20];int x = 0;char number[20], name[20], age[20], agress[100];int q = 0;cout << "请输入要修改人编号:";cin >> bianhao;for (int i = 0; i < scount; i++){if (strcmp(bianhao, linkman[i].getbianhao()) == 0){x = i;q++;}}if (q == 0){cout << "联系人不存在!" << endl;}cout << "请输入姓名:";cin >> name;linkman[x].setname(name);cout << "请输入年龄:";cin >> age;linkman[x].setage(age);cout << "请输入电话:";cin >> number;linkman[x].setnumber(number);cout << "请输入地址:";cin >> agress;linkman[x].setagress(agress);cout << "修改成功!" << endl;output();
}//修改(按姓名)
void person::change2()
{char name[20];int x = 0;char number[20], bianhao[20], age[20], agress[100];int q = 0;cout << "请输入要修改人姓名:";cin >> name;for (int i = 0; i < scount; i++){if (strcmp(name, linkman[i].getname()) == 0){x = i;q++;}}if (q == 0){cout << "联系人不存在!" << endl;}cout << "请输入编号:";cin >> bianhao;linkman[x].setbianhao(bianhao);cout << "请输入年龄:";cin >> age;linkman[x].setage(age);cout << "请输入电话:";cin >> number;linkman[x].setnumber(number);cout << "请输入地址:";cin >> agress;linkman[x].setagress(agress);cout << "修改成功!" << endl;output();
}//编号删除
void person::Delete1()
{char bianhao[20];char deletebianhao[20];cout << "请输入要删除编号:";cin >> deletebianhao;int x = 0;for (int i = 0; i < scount; i++){strcpy_s(bianhao, linkman[i].getbianhao());if (strcmp(bianhao, deletebianhao) == 0){x++;for (int m = i; m < scount; m++){linkman[m] = linkman[m + 1];//覆盖}}}if (x == 0){cout << "未查询到相关信息,删除失败!" << endl;}else{scount--;cout << "删除成功!\n";output();}
}//姓名删除
void person::Delete2()
{char name[20];char deletename[20];cout << "请输入要删除姓名:";cin >> deletename;int x = 0;for (int i = 0; i < scount; i++){strcpy_s(name, linkman[i].getname());if (strcmp(name, deletename) == 0){x++;for (int m = i; m < scount; m++){linkman[m] = linkman[m + 1];//覆盖}}}if (x == 0){cout << "未查询到相关信息,删除失败!" << endl;}else{scount--;cout << "删除成功!\n";output();}
}//排序(编号升序)
void person::sort1()
{Linkman var;for (int i = 0; i < scount; i++){for (int j = i + 1; j < scount; j++){if (strcmp(linkman[j].getbianhao(), linkman[i].getbianhao()) < 0) //linkman[j]<linkman[i]{var = linkman[i];linkman[i] = linkman[j];linkman[j] = var;}}}cout << "升序排列操作完成!" << endl;output();
}//排序(编号降序)
void person::sort2()
{Linkman var;for (int i = 0; i < scount; i++){for (int j = i + 1; j < scount; j++){if (strcmp(linkman[j].getbianhao(), linkman[i].getbianhao()) > 0)  //linkman[j]>linkman[i]{var = linkman[i];linkman[i] = linkman[j];linkman[j] = var;}}}cout << "降序排列操作完成!" << endl;output();
}//排序(年龄升序)
void person::sort3()
{Linkman var;for (int i = 0; i < scount; i++){for (int j = i + 1; j < scount; j++){if (strcmp(linkman[j].getage(), linkman[i].getage()) < 0) //linkman[j]<linkman[i]{var = linkman[i];linkman[i] = linkman[j];linkman[j] = var;}}}cout << "升序排列操作完成!" << endl;output();
}//排序(编号降序)
void person::sort4()
{Linkman var;for (int i = 0; i < scount; i++){for (int j = i + 1; j < scount; j++){if (strcmp(linkman[j].getage(), linkman[i].getage()) > 0)  //linkman[j]>linkman[i]{var = linkman[i];linkman[i] = linkman[j];linkman[j] = var;}}}cout << "降序排列操作完成!" << endl;output();
}//统计
void person::count()
{cout << "当前联系人数量:" << scount << endl;output();
}

2.Menu头文件部分

代码如下:

#include "iostream"
#include "string"
#include "stdlib.h"
using namespace std;person p;class Menu
{public:void mainMenu();void selsectMenu();void inputMenu();void deleteMenu();void updateMenu();void insertMenu();void sortMenu();void countMenu();void outputMenu();void helpMenu();void exitMenu();
};//主菜单
void Menu::mainMenu()
{system("cls");//清屏int choice;while (true){cout << " --------------------------------------------" << endl;cout << "|              【通讯录管理系统】            |" << endl;cout << "|--------------------------------------------|" << endl;cout << "|   1.查询联系人信息      6.排序联系人信息   |" << endl;cout << "|   2.录入联系人信息      7.统计联系人信息   |" << endl;cout << "|   3.删除联系人信息      8.显示联系人信息   |" << endl;cout << "|   4.修改联系人信息      9.系统帮助         |" << endl;cout << "|   5.插入联系人信息      0.退出系统         |" << endl;cout << " --------------------------------------------" << endl;cout << "请输入你的选择(0-9):";cin >> choice;if (choice > 9){cout << "输入格式错误,请重新输入你的选择(0-9):";cin >> choice;}switch (choice){case 1:selsectMenu(); break;//查询case 2:inputMenu();   break;//录入case 3:deleteMenu();  break;//删除case 4:updateMenu();  break;//修改case 5:insertMenu();  break;//插入case 6:sortMenu();    break;//排序case 7:countMenu();   break;//统计case 8:outputMenu();  break;//显示case 9:helpMenu();    break;//系统帮助case 0:exitMenu();    break;//退出}}
}//查询
void Menu::selsectMenu()
{system("cls");p.read();//读取调用int choice;while (true){cout << " --------------------------------------------" << endl;cout << "|              【查询联系人信息】            |" << endl;cout << "|--------------------------------------------|" << endl;cout << "|     1.查询全部           3.按姓名查询      |" << endl;cout << "|     2.按编号查询         4.返回主菜单      |" << endl;cout << " --------------------------------------------" << endl;cout << "请输入你的选择(1-4):";cin >> choice;if (choice > 4){cout << "输入格式错误,请重新输入你的选择(1-4):";cin >> choice;}switch (choice){case 1:p.output();//输出调用system("pause");system("cls");//清空屏幕break;case 2:p.search1();//编号查询调用system("pause");system("cls");//清空屏幕break;case 3:p.search2();//姓名查询调用system("pause");system("cls");//清空屏幕break;case 4: mainMenu(); break;}}
}//输入(录入)
void Menu::inputMenu()
{p.input();//输入调用p.save();//保存调用system("pause");system("cls");//清空屏幕
}//删除
void Menu::deleteMenu()
{system("cls");//清空屏幕int choice;while (1){cout << " --------------------------------------------" << endl;cout << "|              【删除联系人信息】            |" << endl;cout << "|--------------------------------------------|" << endl;cout << "|                 1.按编号删除               |" << endl;cout << "|                 2.按姓名删除               |" << endl;cout << "|                 3.返回主菜单               |" << endl;cout << " --------------------------------------------" << endl;cout << "请输入你的选择(1-3):";cin >> choice;if (choice > 3){cout << "输入格式错误,请重新输入你的选择(1-3):";cin >> choice;}switch (choice){case 1:p.Delete1();//编号删除调用p.save();//保存调用system("pause");system("cls");//清空屏幕break;case 2:p.Delete2();//姓名删除调用p.save();//保存调用system("pause");system("cls");//清空屏幕break;case 3: mainMenu(); break;}}
}//修改
void Menu::updateMenu()
{system("cls");//清空屏幕int choice;while (1){cout << " --------------------------------------------" << endl;cout << "|              【修改联系人信息】            |" << endl;cout << "|--------------------------------------------|" << endl;cout << "|                 1.按编号修改               |" << endl;cout << "|                 2.按姓名修改               |" << endl;cout << "|                 3.返回主菜单               |" << endl;cout << " --------------------------------------------" << endl;cout << "请输入你的选择(1-3):";cin >> choice;if (choice > 3){cout << "输入格式错误,请重新输入你的选择(1-3):";cin >> choice;}switch (choice){case 1:p.change1();//编号修改调用system("pause");system("cls");//清空屏幕break;case 2:p.change2();//姓名修改调用system("pause");system("cls");//清空屏幕break;case 3: mainMenu(); break;}}
}//插入
void Menu::insertMenu()
{system("cls");//清空屏幕int choice;while (1){cout << " --------------------------------------------" << endl;cout << "|              【插入联系人信息】            |" << endl;cout << "|--------------------------------------------|" << endl;cout << "|                 1.插入联系人               |" << endl;cout << "|                 2.追加联系人               |" << endl;cout << "|                 3.返回主菜单               |" << endl;cout << " --------------------------------------------" << endl;cout << "请输入你的选择(1-3):";cin >> choice;if (choice > 3){cout << "输入格式错误,请重新输入你的选择(1-3):";cin >> choice;}switch (choice){case 1:p.insert();//插入调用p.save();//保存调用system("pause");system("cls");//清空屏幕break;case 2:p.append();//追加调用p.save();//保存调用system("pause");system("cls");//清空屏幕break;case 3: mainMenu(); break;}}
}//排序
void Menu::sortMenu()
{system("cls");//清空屏幕int choice;while (1){cout << " --------------------------------------------" << endl;cout << "|              【排序联系人信息】            |" << endl;cout << "|--------------------------------------------|" << endl;cout << "|                 1.按编号升序               |" << endl;cout << "|                 2.按编号降序               |" << endl;cout << "|                 3.按年龄升序               |" << endl;cout << "|                 4.按年龄降序               |" << endl;cout << "|                 5.返回主菜单               |" << endl;cout << " --------------------------------------------" << endl;cout << "请输入你的选择(1-5):";cin >> choice;if (choice > 5){cout << "输入格式错误,请重新输入你的选择(1-5):";cin >> choice;}switch (choice){case 1:p.sort1();//编号升序调用system("pause");system("cls");//清空屏幕break;case 2:p.sort2();//编号降序调用system("pause");system("cls");//清空屏幕break;case 3:p.sort3();//编号升序调用system("pause");system("cls");//清空屏幕break;case 4:p.sort4();//编号降序调用system("pause");system("cls");//清空屏幕break;case 5:mainMenu(); break;}}
}//统计
void Menu::countMenu()
{p.count();//统计调用system("pause");system("cls");//清空屏幕
}//输出
void Menu::outputMenu()
{system("cls");//清空屏幕int choice;while (1){cout << " --------------------------------------------" << endl;cout << "|              【输出联系人信息】            |" << endl;cout << "|--------------------------------------------|" << endl;cout << "|               1.读取初始文件数据           |" << endl;cout << "|               2.输出联系人                 |" << endl;cout << "|               3.返回主菜单                 |" << endl;cout << " --------------------------------------------" << endl;cout << "请输入你的选择(1-3):";cin >> choice;if (choice > 3){cout << "输入格式错误,请重新输入你的选择(1-3):";cin >> choice;}switch (choice){case 1:p.read();//读取调用p.output();//输出调用system("pause");system("cls");//清空屏幕break;case 2:p.output();//输出调用system("pause");system("cls");//清空屏幕break;case 3:mainMenu(); break;}}
}//系统帮助
void Menu::helpMenu()
{system("cls");//清空屏幕cout << " --------------------------------------------" << endl;cout << "|          【通讯录管理系统使用说明】        |" << endl;cout << "|--------------------------------------------|" << endl;cout << "|                                            |" << endl;cout << "|     鉴于制作人员水平有限。请严格按照系统提 |" << endl;cout << "| 示进行操作,以免引起程序奔溃!             |" << endl;cout << "|                                            |" << endl;cout << " --------------------------------------------" << endl;system("pause");system("cls");//清空屏幕
}//退出
void Menu::exitMenu()
{exit(0);
}

3.主函数部分

代码如下:

#include "iostream"
#include "string"
#include "stdlib.h"
#include "Linkman.h"
#include "Menu.h"
using namespace std;int main()
{Menu menu;menu.mainMenu();system("pause");return 0;
}

代码小白,仅作学习记录

C++联系人管理系统2.0(用类实现)相关推荐

  1. AI智能联系人管理系统(一)

    前段时间练习过的一个小项目,今天再看看,记录一下~ 开发工具准备: 开发工具:PyCharm Python内置模块:sys.os.base64.json.collections 第三方模块:PyQt5 ...

  2. AI智能联系人管理系统(二)

    请先阅读:AI智能联系人管理系统(一) 在上篇文章的基础上,该篇文章主要完成三个功能: 编辑和删除联系人信息 搜索联系人信息(关键字搜索.首字母搜索) 查看联系人分布饼图 编辑和删除联系人信息 在pa ...

  3. JAVA WEB DAY 16_ 综合案例-联系人管理系统

    文章目录 综合案例-联系人管理系统 01-案例演示和功能说明-[★★] 02-项目环境搭建和数据准备-[★★★] 项目结构 准备数据表 主配置文件 sqlMapConfig.xml 03-创建工具类- ...

  4. WEB阶段7:综合练习-联系人管理系统-增删改查查询分页

    综合练习-联系人管理系统-增删改查&查询分页 回顾 能够说出过滤器的作用 解决全局乱码问题 用户权限访问控制 用户输入文本内容进行过滤 能够编写过滤器 创建一个类实现javax.servlet ...

  5. 【自学笔记】简单java电话本管理系统v1.0源码

    我是一个java初学者,所以很多地方都写的很糟,首先谢谢 "唐"给我的练习题,这是完成所有功能后第一时间发的,所以很多该提取的方法和类都没有提取,主要是能够更清晰的看到整个结构,希 ...

  6. 联系人管理系统 [JavaWeb项目]

    文章目录 重点一 分页查 重点二 模糊查 重点三 批量删 重点四 登录页的动态验证码 不重点五 增.删.改 该项目要求[联系人管理系统] 用户登录时需使用验证码防止恶意请求数据库, 个人首页需展示个人 ...

  7. 联系人管理系统(MVC框架)

    这里做一个联系人管理系统,实现了对联系人的增.删.改.查:表现层,service层和dao层都写了大致框架,还没学数据库,所以都是模拟一下,等学了数据库再来完善.( ^_^ ) 先上效果图: 增加联系 ...

  8. java学生成绩管理系统类图,学生成绩管理系统的用例类图

    <学生成绩管理系统的用例类图>由会员分享,可在线阅读,更多相关<学生成绩管理系统的用例类图(20页珍藏版)>请在金锄头文库上搜索. 1.学生成绩管理系统,1.用例图绘制 2.活 ...

  9. 迅睿cms微信抖音小程序生成管理系统V1.0开源

    微信抖音小程序生成管理系统基于迅睿cms系统为框架,展开专用的小程序管理系统.系统将是全面开源共享,并且内置私有云市场,模板.可以根据你们自己的情况.选择性的安装. v1.0的主要功能说明 1.小程序 ...

  10. 【人事管理系统2.0 Linq to SQL】企业人事管理系统

    [C#.Linq to SQL]数据库人事管理系统(登陆.修改密码.源码下载.数据库) 系统介绍 一.功能 1.1.功能模块 二. 需求分析 三.数据库设计 3.1.数据流图 3.2.数据项 3.3. ...

最新文章

  1. cisco路由器基本实验之七 Standard Access-Lists with RIP (Boson NetSim)
  2. 10_史上最全的Markdown使用教程(没有之一)(20190115)
  3. MySQL语言的算法_MySQL知识整理
  4. 安卓 spinner下拉框 做模糊查询_如何用一张图来做全年/去年的部门离职率动态对比...
  5. 科大星云诗社动态20210830
  6. Jenkins执行批处理文件失败
  7. I/O复用函数的使用——poll
  8. gradle学习(19)-log系统
  9. python怎么找一个矩阵_Python(NumPy,SciPy),找到矩阵的零空间
  10. 死锁问题分析(个人认为重点讲到了gap间隙锁,解决了我一些不明报死锁的问题)
  11. javascript高级程序设计读书笔记——事件总结
  12. 5G无线技术基础自学系列 | 5G基站形态演进
  13. Word文字怎么居中对齐
  14. jsmy97时间控件,时间范围选择
  15. EPLAN小知识——添加字体
  16. 将图片中的公式转化为latex代码(image to latex)。两种方法:python包或者snip软件
  17. Android - 控件android:ems属性
  18. 找出符合要求的字符串子串
  19. 【1.2】基本逻辑运算
  20. 【算法基础26】贪心下——哈夫曼树、排序不等式、绝对值不等式、推公式的思路与应用

热门文章

  1. Android 服务器向客户端推送方案
  2. Twitter的价值不及其中国同行
  3. 软件开发线上运营计划
  4. 打造铜墙铁壁如何合理的配置防火墙(转)
  5. 74HC595串转并
  6. 说说数据治理中常见的20个问题
  7. python -- 计算有效波高、平均波高
  8. JS监听input、keydown,有输入法时打字完成后触发事件
  9. win7家庭版程序从开始菜单解锁
  10. ICCV 2021 | BA NeRF 神经辐射场 (BARF)