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语言 电话簿管理系统相关文档

HostYun:联通AS9929线路,最低月付18元起,最高500Mbps带宽,洛杉矶机房

最近AS9929线路比较火,联通A网,对标电信CN2,HostYun也推出了走联通AS9929线路的VPS主机,基于KVM架构,开设在洛杉矶机房,采用SSD硬盘,分为入门和高带宽型,最高提供500Mbps带宽,可使用9折优惠码,最低每月仅18元起。这是一家成立于2008年的VPS主机品牌,原主机分享组织(hostshare.cn),商家以提供低端廉价VPS产品而广为人知,是小成本投入学习练手首选。...

Hosteons:洛杉矶/纽约/达拉斯免费升级10Gbps端口,KVM年付21美元起

今年1月的时候Hosteons开始提供1Gbps端口KVM架构VPS,目前商家在LET发布消息,到本月30日之前,用户下单洛杉矶/纽约/达拉斯三个地区机房KVM主机可以从1Gbps免费升级到10Gbps端口,最低年付仅21美元起。Hosteons是一家成立于2018年的国外VPS主机商,主要提供VPS、Hybrid Dedicated Servers及独立服务器租用等,提供IPv4+IPv6,支持...

Hostinger 限时外贸美国主机活动 低至月12元且赠送1个COM域名

Hostinger 商家我们可能一些新用户不是太熟悉,因为我们很多新人用户都可能较多的直接从云服务器、独立服务器起步的。而Hostinger商家已经有将近十年的历史的商家,曾经主做低价虚拟主机,也是比较有知名度的,那时候也有接触过,不过一直没有过多的使用。这不这么多年过去,Hostinger商家一直比较稳妥的在运营,最近看到这个商家在改版UI后且产品上也在活动策划比较多。目前Hostinger在进...

booklink为你推荐
设备ituneswin10关闭445端口如何进入注册表修改关闭445端口css下拉菜单如何用css3做导航栏下拉菜单iphonewifi苹果手机怎样设置Wi-Fi静态IP?迅雷快鸟迅雷快鸟支持移动宽带提速吗win7关闭135端口win7下怎么关135和8909端口micromediamacromedia的中文名chromeframe我的Chrome Frame为什么不能使用?css选择器css3的选择器有哪些?www.baidu.jp日本视频怎样看
域名空间 未注册域名查询 深圳主机租用 vps是什么 oneasiahost windows主机 wavecom 表格样式 seovip 域名评估 cn3 卡巴斯基破解版 丽萨 石家庄服务器托管 杭州电信宽带 沈阳idc fatcow winds 什么是dns globalsign 更多