booklinkc语言 电话簿管理系统

booklink  时间:2021-04-11  阅读:()

简单图书管理系统

#include"stdio.h" #include"stdlib.h" #include"string.h" #include"conio.h"

//结构体声明

struct List { char name[20]; struct List *next; }; typedef struct List book; typedef book *link;

//函数声明

void menu(); void display(link head); link addbook(link head); void found(link head); link delbook(link head);

//主函数

main() { int n; link head=NULL; while(1) { menu(); scanf("%d",&n); switch(n) { case 0: exit(0); case 1: head=addbook(head);break; case 2: display(head);break; case 3: found(head);break; case 4: head=delbook(head);break; default:printf("请正确输入 ");break; } system("pause"); system("cls"); } }

//菜单函数定义

void menu() { printf("******************************** "); printf("*** 1 新增图书 *** "); printf("*** 2 显示图书目录 *** "); printf("*** 3 查找图书 *** "); printf("*** 4 删除图书 *** "); printf("*** 0 推出系统 *** "); printf("******************************** "); printf("请选择(0—4)项 "); }

//增加节点定义

link addbook(link head) { link p,q; p=(link)malloc(sizeof(book)); printf("请输入书名 "); fflush(stdin); gets(p->name); p->next=NULL; if(head==NULL) head=p; else { for(q=head;q->next!=NULL;q=q->next) continue; q->next=p; } printf("新书名字为 %s ",p->name); return head; }

//显示当前信息函数定义

void display(link head) { link p; int n=0; for(p=head;p!=NULL;p=p->next) { printf("书名《 %s 》 ",p->name); n++; } if(n==0) printf("现在没有图书 "); else printf("现在一共有%d本图书 ",n);

}

//查找函数定义

void found(link head) { link p; char name[20]; int n=0; fflush(stdin); printf("请输入要查找的书名 "); gets(name); for(p=head;p!=NULL;p=p->next) { if(strcmp(p->name,name)==0) { printf("找到书名 《 %s 》 的图书 ",p->name); n=1; break; } } if(n==0) printf("没有此图书 "); }

//删除节点函数定义

link delbook(link head) { link p=head,q; char name[20]; int n=0; fflush(stdin); printf("请输入要删除的图书名字: "); gets(name); if(strcmp(p->name,name)==0) { head=p->next; free(p); printf("已删除 "); return head; } else for(q=p,p=p->next;p!=NULL;q=q->next,p=p->next) { if(strcmp(p->name,name)==0) { q->next=p->next; free(p); printf("已删除 "); return head; } } printf("没有此图书 "); return head; }

如何通过豆瓣API获取图书和电影列表

豆瓣API提供了一种简单的方式可以直接在HTML页面中使用API,下面给出这种使用方式的简单示例。

1. 首先我们需要在HTML页面中做如下script标签:<script type="text/javascript" src=" /> 2. 然后就可以调用豆瓣API,其中通过定义callback函数来操作返回的JSON数据。

3. 此外,豆瓣也提供了解析函数来帮助你更容易地使用JSON格式的返回值。

使用豆瓣提供的解析函数,你需要在页面中添加script标签:<script type="text/javascript" src="。

4. 接下来你就可以使用豆瓣提供的解析函数来处理返回值,例如:var book = DOUBAN.parseSubject(result)。

5. 解析函数返回更容易使用的javascript对象,你可以这样得到书的封面图片:book.link.image 6. HTML页面使用API获得ID为xxxxx电影的信息并展示在页面上(注意将{yourapikey}替换为你的API Key)。

注:实现上,豆瓣API使用 JSONP 方式来支持跨域调用API 因此你也可以使用自己熟悉的javascript库来调用JSONP风格的豆瓣API. 此时,你需要将alt设置为xd同时提供callback参数。

另外部份的豆瓣功能及操作可登陆下面的网站/客户端:

电话簿c语言

下面这个是我以前做的,功能更多,可以参考一下. /* 数据描述:学号 姓名 班级 高数 英语 总分 程序完成功能: (1) 浏览数据 (2) 增加数据 (3) 修改数据 (4) 查询数据(按姓名,按总分) (5) 退出 */ #include #include #include using namespace std; class student { public: student(int , string ,int ,int ,int ); string getName(){return _name;}; int getID(){return _ID;}; void setID(int i){_ID=i;}; void setName(string); void setClass(int c){_class=c;}; void setMath(int m){_math=m;_total=_math+_english;}; void setEnglish(int e){_english=e;_total=_math+_english;} void print(); static int _stNum; private: int _ID; string _name; int _class; int _math; int _english; int _total; }; int student::_stNum=0; student::student(int id, string name, int iclass, int ma, int en) { _ID=id; _name=name; _class=iclass; _math=ma; _english=en; _total=_math+_english; _stNum++; }; void student::setName(string s) { _name=s; }; void student::print() { cout<<_ID <<" "<< _name <<" "<<_class <<" "<<_math <<" "<<_english <<" "<<_total < ec; printMenu(); cin>>order; while(order!=5) { switch(order) { case 1: if (ec.size()==0) { cout<<"ERR:---->No data in the system!"<>order; break; } else { vector::iterator iter=ec.begin(); vector::iterator iter_end=ec.end(); printHead(); for(;iter!=iter_end;iter++) { (*iter).print(); } printTail(ec.size()); printMenu(); cin>>order; break; } case 2: cout<<"Insert-->ID:"; cin>>tmp_ID; cout<<"Insert-->Name:"; cin>>tmp_name; cout<<"Insert-->Class:"; cin>>tmp_class; cout<<"Insert-->Mark of Math:"; cin>>tmp_math; cout<<"Insert-->Mark of English:"; cin>>tmp_english; ec.push_back(student(tmp_ID,tmp_name,tmp_class,tmp_math,tmp_english)); printMenu(); cin>>order; break; case 3: { string search_name; bool isFind=false; cout<<" Orignal_Update-->Name:"; cin>>search_name; vector::iterator iter=ec.begin(); vector::iterator iter_end=ec.end(); for(;iter!=iter_end;iter++) { if( (*iter).getName()==search_name ) { isFind=true; cout<<"New_Update-->ID:"; cin>>tmp_ID; cout<<"New_Update-->Name:"; cin>>tmp_name; cout<<"New_Update-->Class:"; cin>>tmp_class; cout<<"New_Update-->Mark of Math:"; cin>>tmp_math; cout<<"New_Update-->Mark of English:"; cin>>tmp_english; (*iter).setID(tmp_ID); (*iter).setName(tmp_name); (*iter).setClass(tmp_class); (*iter).setMath(tmp_math); (*iter).setEnglish(tmp_english); } } if(!isFind) { cout<<"There no student named "<>order; break; } case 4: string search_name; int search_ID; int name_ID=0; bool isFind=false; cout<<"-----------"<>name_ID; if (name_ID==1) { cout<<" Search-->name:"<>search_name; vector::iterator iter=ec.begin(); vector::iterator iter_end=ec.end(); for(;iter!=iter_end;iter++) { if( (*iter).getName()==search_name ) { if(!isFind) { cout<>order; break; } if (name_ID==2) { cout<<" Search-->ID:"<>search_ID; vector::iterator iter=ec.begin(); vector::iterator iter_end=ec.end(); for(;iter!=iter_end;iter++) { if( (*iter).getID()==search_ID) { if(!isFind) {cout<>order; break; } } } } void printMenu(void) { cout<1) {cout<c语言 电话簿管理系统#include<stdio.h> #include<stdlib.h> #include<string.h> #include <iostream> //主函数 int main() { LinkQueue Q; initAddressBook(Q); int flag=0; while(flag!=8) { printf("※※※※※主※※※※※菜※※※※※单※※※※※ "); printf("※1、增加联系人 2、删除联系人 ※ "); printf("※3、修改联系人 4、清空通讯录 ※ "); printf("※5、查找联系人 6、按组显示 ※ "); printf("※7、显示全部联系人 8、退出 ※ "); printf("※※※※※※※※※※※※※※※※※※※※※※※ "); printf("请输入编号(1-8): "); scanf("%d",&flag); if(flag<1||flag>8) { printf("输入错误请重新输入! "); continue; } else { switch(flag){ case 1: if(enAddressBook(Q)) printf("增加联系人成功! "); else printf("增加联系人失败! "); break; case 2: if(delPerson(Q)) printf("删除联系人成功! "); else printf("联系人删除失败! "); break; case 3: if(update(Q)) printf("修改联系人成功! "); else printf("修改联系人失败! "); break; case 4: if(clearAddressBook(Q)) printf("通讯录已清空! "); else printf("通讯录清空失败! "); break; case 5: findByName(Q); break; case 6: findByGroup(Q); break; case 7: disAll(Q); break; case 8: system("cls"); break; } } } printf("※※※※※感谢您使用本系统!※※※※※※ "); return 0; } //初始化通讯录 void initAddressBook(LinkQueue &Q) { Q.front=Q.rear=(QNode *)malloc(sizeof(QNode)); if(!Q.front) exit(1); else Q.front->next=NULL; } //清空通讯录 bool clearAddressBook(LinkQueue &Q) { system("cls"); while(addressBookLength(Q)!=0) { QNode *p; p=Q.front->next; Q.front->next=p->next; if(p==Q.rear) Q.rear=Q.front; free(p); } return true; } //通讯录当前人数 int addressBookLength(LinkQueue &Q) { int i=0; QNode *p; p=Q.front; if(Q.front==Q.rear) i=0; else { while(p!=Q.rear) { p=p->next; i++; } } return i; } //删除联系人 bool delPerson(LinkQueue &Q) { char _name[20]; system("cls"); printf("请输入要删除的联系人的姓名: "); scanf("%s",_name); QNode *p,*q; if(Q.front==Q.rear) { printf("通讯录为空! "); return false; } else { p=Q.front; q=Q.front->next; while(q!=Q.rear){ if(strcmp(q->name,_name)==0) { p->next=q->next; free(q);//删除节点 return true; } else { p=p->next; q=q->next; } } if((strcmp(q->name,_name)==0)) { free(q); Q.front=Q.rear; return true; } else { printf("无此联系人! "); return false; } } } //查找联系人 bool findByName(LinkQueue &Q) { system("cls"); if(Q.front==Q.rear) { printf("手机中无联系人! "); return false; } else { char _name[20]; printf("请输入要查询的联系人姓名: "); scanf("%s",_name); QNode *p; p=Q.front->next; while(p->next!=NULL) { if(strcmp(p->name,_name)==0) { printf("姓名:%s 号码:%s 分组:%s ",p->name,p->tel,p->group); return true; } p=p->next; } if(strcmp(p->name,_name)==0){ printf("姓名:%s 号码:%s 分组:%s ",p->name,p->tel,p->group); return true; } else { printf("查无此人! "); return false; } } } //按组显示联系人 bool findByGroup(LinkQueue &Q) { system("cls"); if(Q.front==Q.rear) { printf("手机中无联系人! "); return false; } else { char _group[20]; printf("请输入要查询的分组: "); scanf("%s",_group); QNode *p; p=Q.front->next; while(p->next!=NULL) { if(strcmp(p->group,_group)==0) { printf("姓名:%s 号码:%s ",p->name,p->tel); } p=p->next; } if(strcmp(p->group,_group)==0){ printf("姓名:%s 号码:%s ",p->name,p->tel); return true; } else { printf("无此分组! "); return false; } } } //增加联系人 bool enAddressBook(LinkQueue &Q) { system("cls"); QNode *p; p=(QNode *)malloc(sizeof(QNode)); if(!p) return false; else { printf("请输入联系人姓名: "); scanf("%s",p->name); printf("请输入联系人号码: "); scanf("%s",&p->tel); printf("请输入联系人分组: "); scanf("%s",p->group); if(Q.front->next==NULL) { Q.front->next=p; Q.rear=p; Q.rear->next=NULL; } else { p->next=NULL; Q.rear->next=p; Q.rear=p; } return true; } } //修改联系人 bool update(LinkQueue &Q) { system("cls"); if(Q.front==Q.rear) { printf("手机中无联系人! "); return false; } else { char _name[20]; printf("请输入要修改的联系人姓名: "); scanf("%s",_name); QNode *p; p=Q.front->next; while(p->next!=NULL) { if(strcmp(p->name,_name)==0) { printf("请输入新联系人姓名: "); scanf("%s",p->name); printf("请输入新联系人号码: "); scanf("%s",&p->tel); printf("请输入新联系人分组: "); scanf("%s",p->group); return true; } p=p->next; } if(strcmp(p->name,_name)==0){ printf("请输入新联系人姓名: "); scanf("%s",p->name); printf("请输入新联系人号码: "); scanf("%s",&p->tel); printf("请输入新联系人分组: "); scanf("%s",p->group); return true; } else { printf("查无此人! "); return false; } } } //显示所有联系人 void disAll(LinkQueue &Q) { system("cls"); int i=0; QNode *p; p=Q.front->next; if(Q.front==Q.rear) printf("无联系人! "); else { printf(" 姓名 号码 分组 "); while(p!=NULL){ printf("%15s %15s %15s ",p->name,p->tel,p->group); p=p->next; } } }

  • booklinkc语言 电话簿管理系统相关文档

特网云-新上线香港五区补货资源充足限时抢 虚拟主机6折,低至38元!

官方网站:点击访问特网云官网活动方案:===========================香港云限时购==============================支持Linux和Windows操作系统,配置都是可以自选的,非常的灵活,宽带充足新老客户活动期间新购活动款产品都可以享受续费折扣(只限在活动期间购买活动款产品才可享受续费折扣 优惠码:AADE01),购买折扣与续费折扣不叠加,都是在原价...

vpsdime:VPS内存/2核/VPS,4G内存/2核/50gSSD/2T流量/达拉斯机房达拉斯机房,新产品系列-Windows VPS

vpsdime上了新产品系列-Windows VPS,配置依旧很高但是价格依旧是走低端线路。或许vpsdime的母公司Nodisto IT想把核心产品集中到vpsdime上吧,当然这只是站长个人的猜测,毕竟winity.io也是专业卖Windows vps的,而且也是他们自己的品牌。vpsdime是一家新上来不久的奇葩VPS提供商,实际是和backupspy以及crowncloud等都是同一家公司...

Megalayer促销:美国圣何塞CN2线路VPS月付48元起/香港VPS月付59元起/香港E3独服月付499元起

Megalayer是新晋崛起的国外服务器商,成立于2019年,一直都处于稳定发展的状态,机房目前有美国机房,香港机房,菲律宾机房。其中圣何塞包括CN2或者国际线路,Megalayer商家提供了一些VPS特价套餐,譬如15M带宽CN2线路主机最低每月48元起,基于KVM架构,支持windows或者Linux操作系统。。Megalayer技术团队行业经验丰富,分别来自于蓝汛、IBM等知名企业。Mega...

booklink为你推荐
互联网周鸿祎excursionsios5更新win7支持ipad支持ipad支持ipadphotoshop技术ps是一种什么技术??????ipadwifiipad插卡版和wifi版有什么区别,价格差的多么?iexplore.exe应用程序错误iexplore.exe---应用程序错误.是什么意思?win10445端口win的22端口和23端口作用分别是什么 ?
四川虚拟主机 免费域名解析 a2hosting bash漏洞 56折 免费网站监控 佛山高防服务器 鲁诺 上海服务器 789电视剧 ca187 中国电信宽带测速器 上海电信测速 独立主机 阿里云邮箱登陆 七牛云存储 存储服务器 netvigator japanese50m咸熟 asp介绍 更多