c语言,词典软件

无法修改信息,希望大家能帮忙看看,谢谢。

#include

#include

#include

#define MAXWORD 25

#define MAXMEAN 50

struct record { //记录结构_读者

char word[MAXWORD+1]; //key

char mean[MAXMEAN+1];

};

struct lnode { //链表结点结构

struct record data;

struct lnode *next;

};

/* 函数声明 */

void Add(struct lnode *list);

void Search(struct lnode *list);

void Edit(struct lnode *list);

void Delete(struct lnode *list);

void Display(struct lnode *list);

struct lnode *SearchPrimarykey(struct lnode *list, char *key);

void InsertList(struct lnode *list, struct lnode *n);

void FreeList(struct lnode *list);

void DisplayTableHead(void);

void DisplayRecord(struct lnode *r);

void DisplayMenu(void);

/* 主程序 */

int main(int argc, char *argv[])

{

struct lnode *dictionary;

/* 功能选择,依次为:退出、添加、查找、删除、显示所有记录 */

enum {EXIT, ADD, SEARCH, EDIT, DEL, DISP} function = DISP;

/* 头结点 */

dictionary = (struct lnode *)malloc(sizeof(struct lnode));

if(dictionary != NULL) {

dictionary->next = NULL; //初始化

}

while(function != EXIT) {

DisplayMenu();

scanf("%d",&function);

while(function < EXIT || function > DISP) {

scanf("%d",&function);

}

switch(function) {

case ADD:

Add(dictionary);

break;

case SEARCH:

Search(dictionary);

break;

case EDIT:

Edit(dictionary);

break;

case DEL:

Delete(dictionary);

break;

case DISP:

Display(dictionary);

break;

case EXIT:

function = 0;

break;

default:

printf("Input Error! Please input the right word.");

break;

}

}

FreeList(dictionary);

}

/* 添加 */

void Add(struct lnode *list)

{

int i;

struct record t;

struct lnode *n, *r;

/* 录入记录 */

printf("Please input the word: ");

getchar();

gets(t.word);

fflush(stdin);

printf("Please input the meaning:");

gets( t.mean);

/* 判断记录是否已存在,若存在则显示记录,若不存在则添加记录 */

if((r = SearchPrimarykey(list, t.word)) == NULL) {

/* 申请lnode空间并初始化 */

n = (struct lnode *)malloc(sizeof(struct lnode));

if(n != NULL) {

/* 复制记录 */

strcpy((n->data).word,t.word);

strcpy((n->data).mean, t.mean);

/* 插入链表 */

InsertList(list, n);

}

} else {

printf("Record Existed!\n");

DisplayTableHead();

DisplayRecord(r);

}

}

/* 修改 */

void Edit(struct lnode *list)

{

struct record t;

struct lnode *r, *p;

char e[MAXWORD];

p = list;

printf("Please input the word you want to edit: ");

getchar();

gets(e);

if((r = SearchPrimarykey(list, e)) != NULL) {

fflush(stdin);

printf("Please edit the word: ");

gets(t.word);

printf("Please edit the meaning:");

gets(t.mean);

/* 复制记录 */

strcpy((list->data).word,t.word);

strcpy((list->data).mean,t.mean);

} else {

printf("Record cann't find!\n");

}

}

/* 查找 */

void Search(struct lnode *list)

{

char e[MAXWORD];

struct lnode *r;

printf("Please input the word you want to search: ");

getchar();

gets(e);

if((r = SearchPrimarykey(list, e)) != NULL) {

DisplayTableHead();

DisplayRecord(r);

} else {

printf("Cann't find the word.");

}

}

/* 删除 */

void Delete(struct lnode *list)

{

char e[MAXWORD];

struct lnode *q, *p;

q = list;

p = list->next;

printf("Please input the word you want to delete: ");

getchar();

gets(e);

while(p != NULL) {

if(strcmp((p->data).word, e) == 0) {

q->next = p->next;

free(p); /* 释放空间 */

return ; /* 函数返回 */

}

q = p;

p = p->next;

}

}

/* 显示所有记录 */

void Display(struct lnode *list)

{

int c = 0;

struct lnode *p = list->next;

printf("\n--------- ReaderMessage Display ---------\n");

DisplayTableHead();

while(p != NULL) {

DisplayRecord(p);

c++; /* 记录条数 */

p = p->next;

}

printf("\n--------- Total: %d Record(s) ---------\n",c);

}

/* 按主键查找 */

struct lnode *SearchPrimarykey(struct lnode *list, char *key)

{

struct lnode *p = list->next;

while (p != NULL) {

if(strcmp((p->data).word, key) == 0) {

return p;

}

p = p->next;

}

return NULL;

}

/* 将记录按姓名字母升序插入链表 */

void InsertList(struct lnode *list, struct lnode *n)

{

struct lnode *p = list;

while (p->next != NULL && strcmp((p->next->data).word, (n->data).word) < 0)

{

p = p->next;

}

n->next = p->next;

p->next = n;

}

/* 释放整个链表空间 */

void FreeList(struct lnode *list)

{

struct lnode *p = list;

while(p->next != NULL) {

p = p->next;

free(list);

list = p;

}

free(p);

}

/* 显示表头 */

void DisplayTableHead(void) {

printf("%-10s %s\n","WORD","MEANING");

}

/* 显示一条记录 */

void DisplayRecord(struct lnode *r)

{

printf("%-10s %s\n", (r->data).word, (r->data).mean);

}

/* 显示菜单 */

void DisplayMenu(void)

{

printf("\n--------- ReaderMessage Menu ---------\n");

printf("\n\t1.Add\n\t2.Search\n\t3.Edit\n\t4.Del\n\t5.Display\n\t0.Exit\n");

printf("\nPlease select the function number(0-5):");

}

相关阅读:

chrome 调试代码时发现 #yddContainer 的一个css样式, 有知道这是怎么产生的吗

js遍历树 把 带有"objtype": 2,键值对的所有对象, 放在一个空数组里,不保持原有的嵌套关系

请教下PHP适合高效搜索类网站吗?或更好建议?

有没有什么办法能盗微博账号密码,

jquery 关于 $() 和 $.fn 问题

input输入框失去焦点后文本如何右对齐?

node如何判断文件夹是否存在呢?

javascript 调用不存在的属性能不报错吗?

menu bar點下後轉成另一個圖示或180度轉?

vue-resource得到数据后,如何修改组件中data的值?

用ajax提交表单后,返回验证数据在页面location.href跳转到主页,怎么传递session给主页

CMD命令行总是有问题

PHP怎么获取重定向来路?

移动网访问服务器缓慢出错。

手机软键盘keycode

背景圖片動到類似影片的效果是怎麼做到的?

请问一下https://github.com/golang/tools 这个地址的GO包有什么用?如何正确安装?

php openssl openssl_private_encrypt 问题

求大神分享一个通过vue.js实现的点击鼠标右键,生产菜单列表的demo或思路,谢谢~

正则匹配中a标签的href 地址

c语言词典软件哪个好,c,_c语言,词典软件,c - phpStudy相关推荐

  1. 电子英汉词典c语言程序设计报告,英汉电子词典设计报告_设计_C语言_C语言程序设计.doc...

    英汉电子词典设计报告_设计_C语言_C语言程序设计 课程设计 课程名称 :C语言程序课程设计 题目名称 :电子英汉词典 学生学院 :电气信息学院 专业班级 :自动化1101 学 号 :20110102 ...

  2. 机械优化黄金分割法c语言编程,黄金分割法_机械优化设计_C语言程序.doc

    黄金分割法_机械优化设计_C语言程序黄金分割法_机械优化设计_C语言程序 黄金分割法的优化设计 实验报告 学院:机电工程 机制自动化11-03班 学号:541102010326 姓名:刘点点 1,黄金 ...

  3. c语言程序 中断函数示例,单片机_C语言函数_中断函数(中断服务程序)

    c语言中的中断函数注意事项 单片机_C语言函数_中断函数(中断服务程序) 在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统. 中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该 ...

  4. c语言贪吃蛇最简单代码_C语言指针,这可能是史上最干最全的讲解啦(附代码)!!!...

    点击上方"大鱼机器人",选择"置顶/星标公众号"福利干货,第一时间送达!指针对于C来说太重要.然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机 ...

  5. c语言exit在哪个头文件_C语言函数执行成功时,返回1和返回0,究竟哪个好?

    基本上,没有人会将大段的C语言代码全部塞入 main() 函数,更好的做法是按照复用率高,耦合性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数.C语言代码的组合千变万化,因此函数的功能可能会 ...

  6. c语言中调整颜色的函数_C语言中的输入输出函数

    点击上方"学士科技",选择"设为星标" 技术干货第一时间送达! 01 字符数据输入输出 字符数据输出函数putchar() C语言中字符数据输出使用的是putc ...

  7. 语言取10的整数倍_C语言结构体用法很多,坑也很多

    C语言可谓是编程界的传奇语言,历经几十年,依然排名前列. 前不久还写了一篇文章<2019年11月C语言接近Java>,说了C语言是比较受欢迎的一种语言,有望在年底超过JAVA,再次成为第一 ...

  8. c语言怎么判断常量合不合法_C语言z简单的入门

    C语言入门 物联网开发入门直播课 - 嵌入式/物联网-C语言编程基础 - 创客学院直播室​www.makeru.com.cn C语言一经出现就以其功能丰富.表达能力强.灵活方便.应用面广等特点迅速在全 ...

  9. c语言大型软件设计的面向对象_C语言跟C++的根本区别以及特点

    (1)C语言特点: 1.作为一种面向过程的结构化语言,易于调试和维护: 2.表现能力和处理能力极强,可以直接访问内存的物理地址: 3.C语言实现了对硬件的编程操作,也适合于应用软件的开发: 4.C语言 ...

最新文章

  1. OpenCV 笔记(05)— opencv.hpp 头文件作用(是其它所有头文件的全集)
  2. java显示本地磁盘所有盘符,显示桌面路径
  3. Rust 语言风靡学术界
  4. html 8 盒子的background 颜色的面积
  5. boost::histogram::accumulators::count用法的测试程序
  6. MPLS virtual private network Spoken-Hub网络实验(华为设备)
  7. JavaWeb 学习路线
  8. DeepSORT的改进
  9. vsftpd命令详解
  10. 2021/1/16-每日三题第23弹:skr小机灵鬼儿 ?你知道 JavaScript 中的原型和原型链是什么吗 ???
  11. 小朋友学数学(22):三角函数
  12. C++重温笔记(一): C++再初识
  13. Web前端开发学习(一)
  14. VBA模块, Word中有关定位选择后对选中的内容进行查找替换
  15. 数字2019的分解问题
  16. 求伯君,一个你必须知道的程序员
  17. mysql主从互换策略(主down机切换从为和恢复过程中的增量备份)
  18. 带中文的网页下载为PDF格式的文件(jsPDF)
  19. python云服务器搭建教程_小白怎么搭建自己的个人博客网站?云服务+WordPress教程...
  20. 网易运营微专业_活动运营

热门文章

  1. AIoT赋能保险业新发展
  2. CSDN花里胡哨的自定义模板
  3. 3.2.1对英文考察2
  4. [阶段4 企业开发进阶] 1. 设计模式
  5. 如何去除win10此电脑(这台电脑)首页的六个文件夹?
  6. 多线程爬取4k超高清美图壁纸
  7. Node.js之包管理npm
  8. 在计算机的应用领域c ai的中文全称是,2010江西省计算机等级考试试题 二级C试题最新考试试题库(完整版)...
  9. Hello MySQL(三)——SQL语言
  10. 雅虎统计基础数据定义