// // main.c // DEIH // // Created by Eric on 15-10-24. // Copyright (c) 2015年 Bakantu Eric. All rights reserved. // /*includes*/ #include #include #include #include #include #include /*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){ }