c语言词典软件哪个好,c,_c语言,词典软件,c - phpStudy
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相关推荐
- 电子英汉词典c语言程序设计报告,英汉电子词典设计报告_设计_C语言_C语言程序设计.doc...
英汉电子词典设计报告_设计_C语言_C语言程序设计 课程设计 课程名称 :C语言程序课程设计 题目名称 :电子英汉词典 学生学院 :电气信息学院 专业班级 :自动化1101 学 号 :20110102 ...
- 机械优化黄金分割法c语言编程,黄金分割法_机械优化设计_C语言程序.doc
黄金分割法_机械优化设计_C语言程序黄金分割法_机械优化设计_C语言程序 黄金分割法的优化设计 实验报告 学院:机电工程 机制自动化11-03班 学号:541102010326 姓名:刘点点 1,黄金 ...
- c语言程序 中断函数示例,单片机_C语言函数_中断函数(中断服务程序)
c语言中的中断函数注意事项 单片机_C语言函数_中断函数(中断服务程序) 在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统. 中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该 ...
- c语言贪吃蛇最简单代码_C语言指针,这可能是史上最干最全的讲解啦(附代码)!!!...
点击上方"大鱼机器人",选择"置顶/星标公众号"福利干货,第一时间送达!指针对于C来说太重要.然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机 ...
- c语言exit在哪个头文件_C语言函数执行成功时,返回1和返回0,究竟哪个好?
基本上,没有人会将大段的C语言代码全部塞入 main() 函数,更好的做法是按照复用率高,耦合性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数.C语言代码的组合千变万化,因此函数的功能可能会 ...
- c语言中调整颜色的函数_C语言中的输入输出函数
点击上方"学士科技",选择"设为星标" 技术干货第一时间送达! 01 字符数据输入输出 字符数据输出函数putchar() C语言中字符数据输出使用的是putc ...
- 语言取10的整数倍_C语言结构体用法很多,坑也很多
C语言可谓是编程界的传奇语言,历经几十年,依然排名前列. 前不久还写了一篇文章<2019年11月C语言接近Java>,说了C语言是比较受欢迎的一种语言,有望在年底超过JAVA,再次成为第一 ...
- c语言怎么判断常量合不合法_C语言z简单的入门
C语言入门 物联网开发入门直播课 - 嵌入式/物联网-C语言编程基础 - 创客学院直播室www.makeru.com.cn C语言一经出现就以其功能丰富.表达能力强.灵活方便.应用面广等特点迅速在全 ...
- c语言大型软件设计的面向对象_C语言跟C++的根本区别以及特点
(1)C语言特点: 1.作为一种面向过程的结构化语言,易于调试和维护: 2.表现能力和处理能力极强,可以直接访问内存的物理地址: 3.C语言实现了对硬件的编程操作,也适合于应用软件的开发: 4.C语言 ...
最新文章
- OpenCV 笔记(05)— opencv.hpp 头文件作用(是其它所有头文件的全集)
- java显示本地磁盘所有盘符,显示桌面路径
- Rust 语言风靡学术界
- html 8 盒子的background 颜色的面积
- boost::histogram::accumulators::count用法的测试程序
- MPLS virtual private network Spoken-Hub网络实验(华为设备)
- JavaWeb 学习路线
- DeepSORT的改进
- vsftpd命令详解
- 2021/1/16-每日三题第23弹:skr小机灵鬼儿 ?你知道 JavaScript 中的原型和原型链是什么吗 ???
- 小朋友学数学(22):三角函数
- C++重温笔记(一): C++再初识
- Web前端开发学习(一)
- VBA模块, Word中有关定位选择后对选中的内容进行查找替换
- 数字2019的分解问题
- 求伯君,一个你必须知道的程序员
- mysql主从互换策略(主down机切换从为和恢复过程中的增量备份)
- 带中文的网页下载为PDF格式的文件(jsPDF)
- python云服务器搭建教程_小白怎么搭建自己的个人博客网站?云服务+WordPress教程...
- 网易运营微专业_活动运营