展开

关键词

C一个简单

录和学生信息管理系统的基本功能部分一模一样。 来看看不一样的部分。 查找录需要根据联系人不信息查找的功能,可以为每一种查找情况都封装一个查找函数,或者根据不情况返回不的比较结果进行查找。为了使函数更加简短,我们将该功能分为三个函数。 根据 mode 的不获取不比较方式的比较结果 mode: 1 过姓名,2 过职务,3 过职称,4 过电话,5 过邮件 int GetCmpRes(Person per, char* goal n); } else { printf(姓名t工作职务t工作职称t电话号码t电子邮件n); printf(%stt%stt%stt%stt%sn, per_arr.name, per_arr.job 开发工具 Dev-C++。 源码下载地址。

12820

C简易手机录,自学C小项目!

一、录可以用来存储1000个人的信息,每个人的信息包括:姓名、电话。 功能: 新增联系人 查找联系人 删除联系人 修改联系人 查看所有联系人 清空所有联系人 以名字排序所有联系人 这是一个简单的录,方案是初级版。只能在程序运行期间存在(没有写入文件)。 ---- 二、菜单和用户交互 菜单和用户的交互 0.退出1.新增联系人2.查找联系人3.删除联系人4.修改联系人5.查看所有联系人6.清空所有联系人7.以名字排序所有联系人 int menu() 录刚开始是空着的,每次新增联系人,才会增加一个元素。定义size用来控制当前录中有多少个人。 按名字排序: 十四、完整代码 文末源码:源码地址 更多案例可以go公众号:C入门到精

3122218
  • 广告
    关闭

    腾讯云前端性能优化大赛

    首屏耗时优化比拼,赢千元大奖

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    cTCP的socket

    ######################################## #makefile #############################...

    32020

    C战小项目——录1.0

    静态录的一.录的各项功能及主体框架1.录的要求功能 0.退出菜单 1.添加联系人信息 2.删除指定名字的联系人信息 3.修改联系人的信息 4.查找好友的信息 5.展示录联系人信息 printf(********* 5.展示联系人信息 *********n); printf(*************************************************n);}3.录的主体框架将菜单的功能一一列举出来 n); break; } } while(input); return 0;}   我们用枚举类型将功能一一列举出来,时每一个枚举成员也代表着对应的数字,我们在switch ...case 句中也不用 0个}二、功能函数的具体1.增加联系人的信息void AddContact(struct Contact* ps){ if (ps->size == MAX) { printf(该录空间已满,无法储存 未完待续…C战项目——动态录2.0

    10720

    C战小项目——录2.0

    动态录的 ——接上篇1.0版本静态录的优化2.0版本 C战小项目——录1.0—— 博客入口一.录的各项功能及主体框架  本次优化版本与上一次的1.0版本相比,改变了原有的固定内存存储录联系人的方式 1.录的要求功能 0.退出菜单 1.添加联系人信息 2.删除指定名字的联系人信息 3.修改联系人的信息 4.查找好友的信息 5.展示录联系人信息   我们根据录的各项功能进行编写页面菜单 printf(********* 5.展示联系人信息 *********n); printf(*************************************************n);}3.录的主体框架将菜单的功能一一列举出来 n); break; } } while(input); return 0;}   我们用枚举类型将功能一一列举出来,时每一个枚举成员也代表着对应的数字,我们在switch ...case 句中也不用 这就是录的2.0版本,后续将持续更新,我们将在3.0版本升级为拥有文件操作保存联系人信息的录。   欢迎大家的关注与欣赏!!未完待续…C战项目——录3.0已更新

    6720

    C战小项目——录3.0

    文件保存的录的——接上篇2.0版本动态录的优化3.0版本C战小项目——录2.0—— 博客入口一、优化改进部分  在上次的2.0版本中,我们已经拥有了可动态内存操作的录版本 保存联系人的信息由 SaveContact 函数具体:void SaveContact(struct Contact *ps){ 创建一个文件pfout FILE * pfout = fopen(contact.dat 在加载信息之前,我们默认存储联系人数量最大是2,如果我们加载的信息大于2个,那么我们需要调整我们的内存空间,用Check_capacity函数来判断是否增容以及之后的调整空间操作。 Contact *ps); void SaveContact(struct Contact *ps); void LoadContact(struct Contact *ps);小结以上 1.0版本——静态录的 2.0版本——动态录的3.0版本——可文件保存的录的  较为完整的了一个录的大部分功能,当然我们还可以再次进行优化,添加一些更有需要的功能等,我们的C战项目——录到这里就结束了

    10730

    ChashMap

    图中,紫色部分即代表哈希表,也称为哈希数组,数组的每个元素都是一个单链表的头节点,链表是用来解决冲突的,如果不的key映射到了数组的一位置处,就将其放入单链表中。 x-oss-process=imagewatermark,text_aH 图中,紫色部分即代表哈希表,也称为哈希数组,数组的每个元素都是一个单链表的头节点,链表是用来解决冲突的,如果不的key映射到了数组的一位置处 temp = temp->next; } 最后一个节点node_end的next指向新建的node prev->next = node; } return 1;} ** * @description: 过 key查找value * @param {*hashMap} 待操作的hash表 * @param {*key} 过key找对应的value * @return {*} 找到的value *char* hashMap, a, a2); InsertHashMap(hashMap, b, b1); InsertHashMap(hashMap, b, b2); InsertHashMap(hashMap, c,

    43230

    ChashMap

    ​图中,紫色部分即代表哈希表,也称为哈希数组,数组的每个元素都是一个单链表的头节点,链表是用来解决冲突的,如果不的key映射到了数组的一位置处,就将其放入单链表中。​​ x-oss-process=imagewatermark,text_aH 图中,紫色部分即代表哈希表,也称为哈希数组,数组的每个元素都是一个单链表的头节点,链表是用来解决冲突的,如果不的key映射到了数组的一位置处 temp = temp->next; } 最后一个节点node_end的next指向新建的node prev->next = node; } return 1;} ** * @description: 过 key查找value * @param {*hashMap} 待操作的hash表 * @param {*key} 过key找对应的value * @return {*} 找到的value *char* hashMap, a, a2); InsertHashMap(hashMap, b, b1); InsertHashMap(hashMap, b, b2); InsertHashMap(hashMap, c,

    83361

    过 WebSocket WebGL 3D 拓扑图时数据(二)

    我们上一篇《基于 WebSocket WebGL 3D 拓扑图时数据(一)》主要讲解了如何搭建一个时数据服务器,客户端与服务端是如何的,相信过上一篇的讲解,再配合上数据库的数据储存 ,我们就可以一个简易版的 Web 聊天工具了,有空的朋友可以自己尝试下,那么我们今天的主要内容真的是 WebGL 3D 拓扑图时数据了,请大家接着往下看。? 有了前面的知识储备,我们就可以来真正我们 3D 拓扑图组件上节点位置信息的时数据了,毋庸置疑,节点的位置信息必须是在服务端统筹控制,才能达到时数据,也就是说,我们必须在服务端创建 DataModel 当然光这些是不够的,这些还不能够达成时数据的功能,我们还需要监听和派发一些事件才能够达到效果,那么我们都监听了什么借口,派发了什么事件呢? 那么时数据系列到这里就介绍完了,如有什么问题,欢迎批评指正。

    37770

    一功能程序在汇编C下的不方式

    本篇原创作者:Rj45一功能的程序,用汇编和用C,两者有什么不形式?程序编写一个shell功能程序。C代码:?编译执行:?汇编代码:?编译执行:?? 比较从来看,C编写的程序是过库函数shell功能;而对于汇编编写的程序,其是过系统调用来shell功能的。

    15340

    数组版个人录-C

    06_18************************************************************************函数名:struct message功能:定义录结构体变量参数 录.txt,r))==NULL) { printf(nttt 录文件不存在); if ((fp=fopen(录2.txt,w))==NULL) { printf(ntt建立失败); exit (0); } else { printf(nt-----------------欢迎使用录管理系统------------------); printf(nt 录文件已建立 ); printf( feof(fp) && fread(&MESS,sizeof(struct message),1,fp);n++); printf(nt---------- 欢迎使用录管理系统 ---------- 录.txt,w))==NULL) { printf(ntt文件打开失败); } for (i=0;i

    74020

    C链表

    我尝试用最简单的与代码来描述链表,事上它本身也很简单静态单链表下面一部分的讨论都将围绕上面这幅图片展开,既然是逐,我不考虑在开头就让这个单链表完美,它将只有两个部分:链表的创建&遍历链表输出首先我们要知道一些简单的概念 这个疑问你可以自己解答比较好动态单链表到这里一个简单的链表就已经了,但是我们还需要继续改进,因为我们有时候不知道每个节点储存的数据,所以我们就需要一个动态链表了,下面这个将把用户输入的数据以链式结构储存 phead=phead->next; }} int main(){ node *h=create_linklist(); print_linklist(h); system(pause);}双向链表再想想上面图片 struct NODE *next; struct NODE *pre;}node; 由于双向链表不可避免有些操作需要从后向前遍历,于是我们就应该添加一个概念,尾指针,也就是指向尾节点的指针,如下就了一个双向链表 =a; c->data=6; c->next=NULL; c->pre=b; 输出 *node *print_head=head; while(print_head!

    1.7K30

    C栈的

    你可以把栈视作一个有下底的盒子,然后你把各种书放进去,如果你想拿书,你拿到的第一一定是你最后放进去的,这就是栈首先考虑他的形势,我们需要一个top指针和一个buttom指针分别指向栈顶和栈底的下一个节点 因为方便:试想一下我们要判断栈是否空就只需要判断top是否等于buttom,如果buttom指向栈底显然就会麻烦许多下面我们先用C一下:首先我们需要对这个装东西的“盒子”定义,而这个盒子就是栈 样的回答是因为方便理解,试想一下如果定义成下面这样:struct node{ char data; struct node *next; struct node *top; struct node * buttom;}; 这样完全行得,但是你会发在后面的代码抽象时会很难以理解 这里可以多引入之前的链表的例子,不过你完全可以跳过,还及得链表吗? pop(struct stack *sk){ node *n=sk->top; sk->top=n->next; delete n;} 就像上面,另还要注意出栈需要考虑栈是否为空,我没有写 至此,一个C版本的栈及其主要操作就完成了

    1.4K40

    C链栈

    链栈是栈的链式存储结构,链栈可以用单链表的头插法。会单链表,链栈、链队,树,二叉树等都很好理解。 ):0StackLength():5 Pop(): 9 7 5 3 1StackEmpty():1StackLength():0源代码源代码已上传到 GitHub Data-Structure-of-C, 欢迎大家下载 C数据结构

    44630

    c2048游戏

    经过一天的学习研究,终于cdos版本的2048游戏,过wsad控制方向,esc,q键退出,空格键重新开始,了计分板功能,代码如下:#include #include #include            printf(****************************n);    printf(          2048 doc版        n);    printf(       过 wsad控制      n);    printf(   过字母q或esc退出游戏   n);    printf(    过空格键可重新开始    n);    printf(     请按任意键开始游戏

    58140

    C线性表

    线性表是最简单的数据结构之一,一个线性表是n个具有相特性的数据元素的有限序列。

    23720

    C队列的

    (串不考虑),分类的理由就是每一类有规律可循,即你能过修改极少数的代码把链表变成队列、栈。 ,由于我们这里讨论的是链式队列的,所以不存在队列满的情况学了这么多章数据结构我相信你能很容易的写出队列的结构了:struct node{ char data; struct node *next;} 然后来考虑入队操作:如上图,我们希望把e节点插入到这个队列里面,其细心的朋友可能已经发了这其就是链表的尾部插入,没错,等一下我会总结一下这些规律 ,这里暂且不谈。 我们能很容易写出下面插入节点到队列的代码(如果不能你就要发反思是否认真学习了):void en_queue(struct queue *q,char c){ struct node *e=new node n){ return; } e->data=c; e->next=NULL; if(q->rear==NULL){ q->front=q->rear=e; }else{ q->rear->next=e;

    1.2K20

    C循环的

    C中采用3中法来循环,它们分别是while、for、do while,本文将分别说明这三种循环的,并对它们的运行效率进行比较。 do while首先来看do while的:下面是简单的代码:int nCount = 0;int nMax = 10;do { nCount++;} while (nCount < nMax);return 这个过程可以用goto来模拟: int nCount = 0; int nMax = 10;__WHILE: nCount++; if(nCount < nMax) goto __WHILE;while循环不于 31h (00401281);跳转到比较操作处00401278 mov eax,dword ptr 0040127B add eax,10040127E mov dword ptr ,eax;这三句话的是循环变量自增操作 生成对应的汇编代码上,初始化操作后面紧接着是循环变量自增操作,所以首先在完成初始化后会进行一次跳转,跳转到判断,然后根据判断条件再次跳转或者接着执行循环体,最后当循环完成后会再次跳转到循环变量自增的位置,样采用

    42020

    C单链表

    文章目录单链表常规操作定义单链表结构体构造单链表头插法尾插法单链表的头尾插法详解单链表判空计算单链表长度遍历单链表单链表头、尾插法构造效果单链表指定位置插入结点单链表指定位置删除结点按址求值按值求址单链表去重源代码单链表常规操作 struct Node(){ ElemType data; 单链表结点数据域 struct Node *next; 单链表结点地址域(指向下一个结点)}*LinkList, Node;构造单链表头插法 尾插法* * 尾插法创建单链表(带头结点) * datas 接收数组,用于赋值链表的结点数据 * len datas数组的长度,便于遍历*LinkList CreateHeadListT(ElemType new_code3, now_code3 -> next = new_code3 没有达到链接new_code3 -> next = new_code1 -> next; 单链表指定位置删除结点代码 欢迎大家下载 C数据结构

    53440

    C顺序栈

    1StackLength():0 Push():2 4 6 8 10StackEmpty():0StackLength():5 Pop():10 8 6 4 2StackEmpty():1StackLength():0展出了的栈的 源代码源代码已上传到 GitHub Data-Structure-of-C,欢迎大家下载 C数据结构

    57020

    相关产品

    • 云服务器

      云服务器

      腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注云+社区

      领取腾讯云代金券