176 lines
4.5 KiB
C
176 lines
4.5 KiB
C
//
|
||
// main.c
|
||
// DEIH
|
||
//
|
||
// Created by Eric on 15-10-24.
|
||
// Copyright (c) 2015年 Bakantu Eric. All rights reserved.
|
||
//
|
||
|
||
/*includes*/
|
||
#include <stdio.h>
|
||
#include <stdlib.h>
|
||
#include <mongoc.h>
|
||
#include <unistd.h>
|
||
#include <bson.h>
|
||
#include <bcon.h>
|
||
|
||
/*functions*/
|
||
int add_words(void);
|
||
int search_words(void);
|
||
int delete_words(void);
|
||
int review (void);
|
||
void init (void);
|
||
int dishes(void);
|
||
void end (void);
|
||
|
||
/*verb*/
|
||
int review_words = 0;
|
||
mongoc_client_t *m_client;
|
||
mongoc_database_t *m_database;
|
||
mongoc_collection_t *m_collection;
|
||
|
||
struct m_word{
|
||
char name[32];
|
||
char meaning[64];
|
||
char paofsp[32];
|
||
};
|
||
|
||
/*detail functions*/
|
||
void init (void){
|
||
mongoc_init ();
|
||
m_client = mongoc_client_new ("mongodb://localhost:27017");
|
||
m_database = mongoc_client_get_database (m_client, "DEIH");
|
||
m_collection = mongoc_client_get_collection (m_client, "DEIH", "words");
|
||
}
|
||
int main(void) {
|
||
init();
|
||
dishes();
|
||
end();
|
||
return 0;
|
||
}
|
||
int dishes(void){
|
||
system("clear");
|
||
printf("Welcome to DEIH which is a tool to help you to remember new words\n");
|
||
if (review_words > 0){
|
||
printf("Well, you have %d words to review, and \n",review_words);
|
||
printf("do you want to review these words first? ");
|
||
char ifnot = '\0';
|
||
ifnot = getchar();
|
||
getchar();
|
||
if (ifnot == 'y')review();
|
||
else system("clear");
|
||
}
|
||
while(1){
|
||
printf("1.Add words\n");
|
||
printf("2.review words\n");
|
||
printf("3.search words\n");
|
||
printf("4.delete words\n");
|
||
printf("5.exit\n");
|
||
printf("You want to?");
|
||
int ifnot = 0;
|
||
scanf("%d",&ifnot);
|
||
getchar();
|
||
switch (ifnot){
|
||
case 1:
|
||
add_words();
|
||
break;
|
||
case 2:
|
||
review();
|
||
break;
|
||
case 3:
|
||
search_words();
|
||
break;
|
||
case 4:
|
||
delete_words();
|
||
break;
|
||
case 5:
|
||
return 0;
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
system("clear");
|
||
}
|
||
return 0;
|
||
}
|
||
int delete_words(void){
|
||
mongoc_cursor_t *cursor;
|
||
bson_error_t error;
|
||
bson_oid_t oid;
|
||
bson_t *doc;
|
||
char f_words[32];
|
||
bson_t *query;
|
||
|
||
printf("The name of the world that you wante to delete: ");
|
||
scanf("%s",f_words);
|
||
BSON_APPEND_UTF8 (query, "Name", f_words);
|
||
cursor = mongoc_collection_find (m_collection, MONGOC_QUERY_NONE, 0, 0, 0, query, NULL, NULL);
|
||
|
||
doc = bson_new ();
|
||
BSON_APPEND_OID (doc, "Name", &oid);
|
||
if (!mongoc_collection_remove (m_collection, MONGOC_REMOVE_SINGLE_REMOVE, doc, NULL, &error)) {
|
||
printf ("Delete failed: %s\n", error.message);
|
||
}
|
||
bson_destroy (query);
|
||
mongoc_cursor_destroy (cursor);
|
||
return 0;
|
||
}
|
||
int add_words(void){
|
||
bson_error_t error;
|
||
bson_oid_t oid;
|
||
bson_t *doc;
|
||
int count = 1;
|
||
int n_ifnot = 1;
|
||
char ifnot[4], m_ifnot[4];
|
||
|
||
while (n_ifnot) {
|
||
printf("`````````````````````````````````````````````````````````````\n");
|
||
struct m_word* p_word = malloc(sizeof(struct m_word));
|
||
printf("[No. %d]\n",count);
|
||
printf("Name: ");
|
||
scanf("%s",p_word->name);
|
||
printf("Paofsp: ");
|
||
scanf("%s",p_word->paofsp);
|
||
printf("Meaning: ");
|
||
scanf("%s",p_word->meaning);
|
||
printf("```````````````````````````````````````````````````````````\n");
|
||
printf("Sure?");
|
||
scanf("%s",ifnot);
|
||
if (strcmp(ifnot,"y") == 0){
|
||
doc = bson_new ();
|
||
bson_oid_init (&oid, NULL);
|
||
BSON_APPEND_OID (doc, "_id", &oid);
|
||
BSON_APPEND_UTF8 (doc, "Name",p_word->name);
|
||
BSON_APPEND_UTF8 (doc, "Meaning",p_word->meaning);
|
||
BSON_APPEND_UTF8 (doc, "Paofsp",p_word->paofsp);
|
||
BSON_APPEND_UTF8 (doc, "time",0);
|
||
if (!mongoc_collection_insert (m_collection, MONGOC_INSERT_NONE, doc, NULL, &error)) {
|
||
fprintf (stderr, "%s\n", error.message);
|
||
}
|
||
else {
|
||
printf("Save done!\n");
|
||
count++;
|
||
}
|
||
bson_destroy (doc);
|
||
}
|
||
printf("Done?");
|
||
scanf("%s",m_ifnot);
|
||
if (strcmp(m_ifnot,"`") == 0){
|
||
n_ifnot = 0;
|
||
}
|
||
printf("`````````````````````````````````````````````````````````````\n");
|
||
system("clear");
|
||
}
|
||
return 0;
|
||
}
|
||
int search_words(void){
|
||
return 0;
|
||
}
|
||
int review(void){
|
||
return 0;
|
||
}
|
||
void end(void){
|
||
|
||
}
|
||
|