最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實(shí)現(xiàn)單詞管理系統(tǒng)

 更新時(shí)間:2022年03月12日 13:58:25   作者:一條菜鳥魚  
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)單詞管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C++實(shí)現(xiàn)單詞管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

實(shí)現(xiàn)功能

  • 退出
  • 添加單詞
  • 刪除單詞
  • 修改單詞
  • 查詢單詞
  • 排序單詞
  • 顯示單詞

簡(jiǎn)述

單詞管理系統(tǒng)使用了C++語(yǔ)言連接MySQL數(shù)據(jù)庫(kù)實(shí)現(xiàn)常規(guī)CRUD操作,界面為控制臺(tái)窗體+文字顯示的方式。

測(cè)試環(huán)境

使用Win10 + Code::Blocks IDE編寫。

運(yùn)行截圖

代碼

#include <stdio.h>
#include <winsock2.h> //進(jìn)行網(wǎng)絡(luò)連接
#include <mysql.h> ? ?//MySQL C API訪問mysql數(shù)據(jù)庫(kù)
#pragma comment (lib, "libmysql.lib")
#define N 50
?
typedef struct Dictionary
{
? ? char id[50];
? ? char eng[100];
? ? char chi[100];
} Dictionary;
?
//變量配置
MYSQL *conn; //數(shù)據(jù)庫(kù)連接句柄
MYSQL_RES *res; //執(zhí)行數(shù)據(jù)庫(kù)語(yǔ)言結(jié)果
MYSQL_ROW row; //存放一個(gè)數(shù)據(jù)記錄
char* server = "localhost";//本地連接
char* user = "root";//
char* password = "yan19991001";//mysql密碼
char* database = "dictionary";//數(shù)據(jù)庫(kù)名
int t,rc;
char query[N]; ? ? ? ?//需要查詢的語(yǔ)句
?
void readEng();
void addEng();
void delEng();
void modEng();
void seaEng();
void sort();
?
?
void sort(){
? ? char id[N],eng[N],chi[N];
? ? sprintf(query,"select * from test order by eng");
? ? printf("查詢語(yǔ)句:%s\n",query);
? ? rc = mysql_query(conn,query);
? ? if (0 != rc) {
? ? ? ? printf("mysql_real_query(): %s\n", mysql_error(conn));
? ? ? ? return -1;
? ? }else{
? ? ? ? printf("查詢結(jié)果:\n");
? ? ? ? res = mysql_use_result(conn);?? ?//獲取結(jié)果
? ? ? ? if (res)
? ? ? ? {
? ? ? ? ? ? while ((row = mysql_fetch_row(res)) != NULL)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? //printf("num=%d\n",mysql_num_fields(res));//列數(shù)
? ? ? ? ? ? ? ? for (t = 0; t < mysql_num_fields(res); t++)
? ? ? ? ? ? ? ? ? ? printf("%8s ", row[t]);
? ? ? ? ? ? ? ? printf("\n");
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? mysql_free_result(res);
? ? }
}
?
void addEng()
{
? ? char id[N],eng[N],chi[N];
? ? printf("請(qǐng)輸入要增加的詞典信息:\n");
? ? printf("編號(hào):\n");
? ? scanf("%s",id);
? ? printf("單詞:\n");
? ? scanf("%s",eng);
? ? printf("中文釋義:\n");
? ? scanf("%s",chi);
? ? sprintf(query,"insert into test values('%s','%s','%s')",id,eng,chi);
? ? printf("%s",query);
? ? rc = mysql_query(conn,query);
? ? if (0 != rc) {
? ? ? ? printf("mysql_real_query(): %s\n", mysql_error(conn));
? ? ? ? return -1;
? ? }else{
? ? ? ? printf("添加成功!\n");
? ? }
? ? //mysql_close(conn); //斷開數(shù)據(jù)庫(kù)
}
?
void delEng(){
? ? char id[N];
? ? printf("請(qǐng)輸入你要?jiǎng)h除的單詞編號(hào):");
? ? scanf("%s",id);
? ? sprintf(query,"delete from test where id = '%s'",id);
? ? printf("查詢語(yǔ)句:%s\n",query);
? ? rc = mysql_query(conn,query);
? ? if (0 != rc) {
? ? ? ? printf("mysql_real_query(): %s\n", mysql_error(conn));
? ? ? ? return -1;
? ? }else{
? ? ? ? printf("刪除成功!\n");
? ? }
}
?
void modEng(){
? ? char id[N],eng[N],chi[N];
? ? printf("請(qǐng)輸入你要修改的單詞編號(hào):");
? ? scanf("%s",id);
? ? printf("單詞:\n");
? ? scanf("%s",eng);
? ? printf("中文釋義:\n");
? ? scanf("%s",chi);
? ? sprintf(query,"update test set eng = '%s',chi = '%s' where id = '%s'",eng,chi,id);
? ? printf("查詢語(yǔ)句:%s\n",query);
? ? rc = mysql_query(conn,query);
? ? if (0 != rc) {
? ? ? ? printf("mysql_real_query(): %s\n", mysql_error(conn));
? ? ? ? return -1;
? ? }else{
? ? ? ? printf("修改成功!\n");
? ? }
}
?
void seaEng(){
? ? char id[N],eng[N],chi[N];
? ? printf("請(qǐng)輸入你要查詢的單詞編號(hào):");
? ? scanf("%s",id);
? ? sprintf(query,"select * from test where id = '%s'",id);
? ? printf("查詢語(yǔ)句:%s\n",query);
? ? rc = mysql_query(conn,query);
? ? if (0 != rc) {
? ? ? ? printf("mysql_real_query(): %s\n", mysql_error(conn));
? ? ? ? return -1;
? ? }else{
? ? ? ? printf("查詢結(jié)果:\n");
? ? ? ? res = mysql_use_result(conn);?? ?//獲取結(jié)果
? ? ? ? if (res)
? ? ? ? {
? ? ? ? ? ? while ((row = mysql_fetch_row(res)) != NULL)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? //printf("num=%d\n",mysql_num_fields(res));//列數(shù)
? ? ? ? ? ? ? ? for (t = 0; t < mysql_num_fields(res); t++)
? ? ? ? ? ? ? ? ? ? printf("%8s ", row[t]);
? ? ? ? ? ? ? ? printf("\n");
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? mysql_free_result(res);
? ? }
}
?
?
void init()
{
? ? conn = mysql_init(NULL); //句柄初始化
?
? ? if (!mysql_real_connect(conn, server, user, password, database, 3306, NULL, 0)) ?//判斷是否連接成功
? ? {
? ? ? ? printf("Error connecting to database:%s\n", mysql_error(conn));
? ? }
? ? else
? ? {
? ? ? ? printf("Connected...\n");
? ? }
?
? ? //字符編碼,解決亂碼
? ? if (!mysql_set_character_set(conn, "gbk"))
? ? {
? ? ? ? printf("New client character set: %s\n",
? ? ? ? ? ? ? ?mysql_character_set_name(conn));
? ? }
}
?
void readEng()
{
? ? char * query = "select * from test"; ? ? ? ?//需要查詢的語(yǔ)句
? ? if (mysql_query(conn, query))
? ? {
? ? ? ? printf("錯(cuò)誤信息:%s\n", mysql_error(conn));
? ? }
? ? else
? ? {
? ? ? ? printf("查詢結(jié)果:\n");
? ? ? ? res = mysql_use_result(conn);?? ?//獲取結(jié)果
? ? ? ? if (res)
? ? ? ? {
? ? ? ? ? ? while ((row = mysql_fetch_row(res)) != NULL)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? //printf("num=%d\n",mysql_num_fields(res));//列數(shù)
? ? ? ? ? ? ? ? for (t = 0; t < mysql_num_fields(res); t++)
? ? ? ? ? ? ? ? ? ? printf("%8s ", row[t]);
? ? ? ? ? ? ? ? printf("\n");
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? mysql_free_result(res);
? ? }
}
?
void menu()
{
? ? int choice;
? ? char id[20];
? ? do
? ? {
? ? ? ? printf("------------------------------\n");
? ? ? ? printf("0、退出\n");
? ? ? ? printf("1、添加單詞\n");
? ? ? ? printf("2、刪除單詞\n");
? ? ? ? printf("3、修改單詞\n");
? ? ? ? printf("4、查詢單詞\n");
? ? ? ? printf("5、排序單詞\n");
? ? ? ? printf("6、顯示單詞\n");
? ? ? ? printf("------------------------------\n");
? ? ? ? printf("請(qǐng)輸入選擇:");
? ? ? ? scanf("%d",&choice); ? ? ? ?//根據(jù)choice的值選取功能
? ? ? ? switch(choice)
? ? ? ? {
? ? ? ? case 0:
? ? ? ? ? ? exit(0);
? ? ? ? ? ? break;
? ? ? ? case 1:
? ? ? ? ? ? addEng();
? ? ? ? ? ? break;
? ? ? ? case 2:
? ? ? ? ? ? delEng();
? ? ? ? ? ? break;
? ? ? ? case 3:
? ? ? ? ? ? modEng();
? ? ? ? ? ? break;
? ? ? ? case 4:
? ? ? ? ? ? seaEng();
? ? ? ? ? ? break;
? ? ? ? case 5:
? ? ? ? ? ? sort();
? ? ? ? ? ? break;
? ? ? ? case 6:
? ? ? ? ? ? readEng();
? ? ? ? ? ? break;
? ? ? ? default:
? ? ? ? ? ? printf("輸入錯(cuò)誤!");
? ? ? ? }
? ? ? ? system("pause");
? ? ? ? system("cls");
? ? }
? ? while(choice != 0);
}
?
int main()
{
? ? init();
? ? menu();
? ? return 0;
}

數(shù)據(jù)庫(kù)代碼

/*
?Navicat MySQL Data Transfer
?Source Server ? ? ? ? : localhost_3306
?Source Server Type ? ?: MySQL
?Source Server Version : 50725
?Source Host ? ? ? ? ? : localhost:3306
?Source Schema ? ? ? ? : dictionary
?Target Server Type ? ?: MySQL
?Target Server Version : 50725
?File Encoding ? ? ? ? : 65001
?Date: 28/06/2021 13:44:35
*/
?
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
?
-- ----------------------------
-- Table structure for test
-- ----------------------------
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` ?(
? `id` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
? `eng` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
? `chi` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
? PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
?
-- ----------------------------
-- Records of test
-- ----------------------------
INSERT INTO `test` VALUES ('1', 'adopt', '領(lǐng)養(yǎng)');
INSERT INTO `test` VALUES ('2', 'pen', '鋼筆');
INSERT INTO `test` VALUES ('3', 'apple', '蘋果');
INSERT INTO `test` VALUES ('4', 'borrow', '借閱');
INSERT INTO `test` VALUES ('5', 'electric', '電力');
?
SET FOREIGN_KEY_CHECKS = 1;

總結(jié)

代碼還是比較簡(jiǎn)單的,主要是不同編譯器,它所對(duì)應(yīng)的驅(qū)動(dòng)方式會(huì)有所不同。因此如果想要移植到其它的IDE如: VC6++、VS、DEV 等,可能需要一些處理操作,還要添加數(shù)據(jù)庫(kù)連接驅(qū)動(dòng)和庫(kù)函數(shù)。當(dāng)然,難點(diǎn)也就在于獲取ODBC連接,這塊還是需要一些時(shí)間琢磨的。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C/C++?Qt?Dialog?對(duì)話框組件應(yīng)用技巧

    C/C++?Qt?Dialog?對(duì)話框組件應(yīng)用技巧

    這篇文章主要介紹了C/C++?Qt?Dialog?對(duì)話框組件應(yīng)用,這里我將總結(jié)本人在開發(fā)過程中常用到的標(biāo)準(zhǔn)對(duì)話框的使用技巧,對(duì)C++?對(duì)話框組件相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-11-11
  • C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之單向鏈表詳解分析

    C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之單向鏈表詳解分析

    鏈表可以說是一種最為基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)了,而單向鏈表更是基礎(chǔ)中的基礎(chǔ)。鏈表是由一組元素以特定的順序組合或鏈接在一起的,不同元素之間在邏輯上相鄰,但是在物理上并不一定相鄰。在維護(hù)一組數(shù)據(jù)集合時(shí),就可以使用鏈表,這一點(diǎn)和數(shù)組很相似
    2021-11-11
  • 用C實(shí)現(xiàn)PHP擴(kuò)展 Fetch_Url 類數(shù)據(jù)抓取的方法

    用C實(shí)現(xiàn)PHP擴(kuò)展 Fetch_Url 類數(shù)據(jù)抓取的方法

    該擴(kuò)展是基于libcurl基礎(chǔ)實(shí)現(xiàn)的網(wǎng)頁(yè)數(shù)據(jù)抓取
    2013-04-04
  • C語(yǔ)言使用廣度優(yōu)先搜索算法解決迷宮問題(隊(duì)列)

    C語(yǔ)言使用廣度優(yōu)先搜索算法解決迷宮問題(隊(duì)列)

    這篇文章主要介紹了C語(yǔ)言使用廣度優(yōu)先搜索算法解決迷宮問題,結(jié)合迷宮問題分析了C語(yǔ)言隊(duì)列廣度優(yōu)先搜索算法的相關(guān)使用技巧,需要的朋友可以參考下
    2017-09-09
  • C++中的數(shù)據(jù)對(duì)齊示例詳解

    C++中的數(shù)據(jù)對(duì)齊示例詳解

    這篇文章主要介紹了C++中數(shù)據(jù)對(duì)齊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • C++通過boost.date_time進(jìn)行時(shí)間運(yùn)算

    C++通過boost.date_time進(jìn)行時(shí)間運(yùn)算

    這篇文章介紹了C++通過boost.date_time進(jìn)行時(shí)間運(yùn)算的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C語(yǔ)言實(shí)例問題探究字符串函數(shù)的應(yīng)用

    C語(yǔ)言實(shí)例問題探究字符串函數(shù)的應(yīng)用

    字符串函數(shù)(String processing function)也叫字符串處理函數(shù),指的是編程語(yǔ)言中用來進(jìn)行字符串處理的函數(shù),如C,pascal,Visual以及LotusScript中進(jìn)行字符串拷貝,計(jì)算長(zhǎng)度,字符查找等的函數(shù)
    2022-04-04
  • C程序結(jié)構(gòu)的入門

    C程序結(jié)構(gòu)的入門

    在我們學(xué)習(xí) C 語(yǔ)言的基本構(gòu)建塊之前,讓我們先來看看一個(gè)最小的 C 程序結(jié)構(gòu),在接下來的章節(jié)中可以以此作為參考
    2021-06-06
  • 一篇文章帶你了解C語(yǔ)言內(nèi)存對(duì)齊解決的問題

    一篇文章帶你了解C語(yǔ)言內(nèi)存對(duì)齊解決的問題

    內(nèi)存對(duì)齊的目的是為了提高CPU讀寫內(nèi)存里數(shù)據(jù)的速度?,F(xiàn)代的CPU讀取內(nèi)存并不是一個(gè)一個(gè)字節(jié)挨著讀取,這樣做的效率非常低?,F(xiàn)代的CPU一般以4個(gè)字節(jié)(32bit數(shù)據(jù)總線)或者8個(gè)字節(jié)(64bit數(shù)據(jù)總線)為一組,一組一組地讀寫內(nèi)存里的數(shù)據(jù)
    2021-08-08
  • C語(yǔ)言的strcpy函數(shù)你了解嗎

    C語(yǔ)言的strcpy函數(shù)你了解嗎

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言的strcpy函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03

最新評(píng)論

永德县| 白山市| 航空| 育儿| 安国市| 巴马| 来安县| 兰考县| 桐柏县| 宿迁市| 芷江| 青河县| 昭觉县| 上思县| 梅河口市| 鹤峰县| 宝山区| 天峻县| 嘉禾县| 涿州市| 河源市| 萍乡市| 江孜县| 秭归县| 霍州市| 孝昌县| 奎屯市| 梨树县| 普宁市| 张北县| 永城市| 米林县| 隆林| 崇明县| 新郑市| 普安县| 宿州市| 望城县| 察隅县| 育儿| 临城县|