- 博客(11)
- 收藏
- 关注
原创 C++ -- 基于多态的后宫管理系统(其实就是职工管理或者图书管理系统根据我自己的需求改编,毕竟追我的人太多了,要好好管理一下)
Linux环境下C++基于多态的后宫管理系统实现如下几个功能后宫每位佳丽都有4个属性,分别是编号、姓名、颜值、身份并且把数据保存到文件中,保证数据不会在程序结束时流失,下一次使用还可以恢复以前的数据让我们来看看添加功能当输入正确时添加成功当输入编号已经存在或者身份不对时,提示输入失败显示功能,输入2显示所有人信息删除功能两种模式,姓名模式输入要删除的姓名,编号模式输入要删除的编号,当有重名人时,不能用姓名模式删除,当输入的编号或姓名不存在时,提示用户不存在其他经过测试都是成功的
2020-09-12 00:24:27
299
原创 C语言--暴力解决骑士周游问题
在一个8x8的棋盘上,让马按照象棋走法,走完棋盘所有位置,且同一位置只能走一次,求马走的路径每个位置有8种走法,让马按照一定的顺序尝试,若走不通则返回上一步尝试另外几种可能,依次类推知道尝试成功走完棋盘。实现代码:#include"stdio.h"//初始化X#define X 8//初始化Y#define Y 8//棋盘数组int chess[X][Y];//根据count 的值尝试不同走法,若能走通返回1,走不通返回0int try(int *x, int *y, int cou
2020-09-05 15:06:58
767
原创 C语言--线索二叉树创建与遍历
线索二叉树就是把左或者右孩子为空的位置,设置为前驱或者后继因为中序遍历第一个元素是C,没有前驱,最后一个元素F也没有后继,所以我们设置一个头结点,C的前驱和F的后继都指向投节点,头节点的前驱为根节点,后继为最后一个元素F。#include"stdio.h"#include"stdlib.h"//线索标志位//link表示指向左右孩子//thread表示指向前驱后继enum{link, thread};//二叉树结构体struct btree{ char data; struct
2020-09-03 15:04:29
490
原创 C语言--二叉树创建与遍历
#include"stdio.h"#include"stdlib.h"struct tree{ char data; struct tree *lchild; struct tree *rchild;};//创建二叉树,按照前序遍历方式输入void createtree(struct tree **T){ char c; scanf("%c", &c); if(' ' == c) { *T = NULL; } else { *T = (struct tre.
2020-09-02 20:57:12
1081
原创 C语言 -- KMP算法(找子串)
KMP算法是一种改进的字符串匹配算法KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next()函数实现,函数本身包含了模式串的局部匹配信息。KMP算法的时间复杂度O(m+n)如上图所示,初始化前缀为0,后缀为1,next第一位0(i = 1, j = 0, next[1] = 0),然后像后依次求next数组。next的第i位等于j。当 前缀 为T[1~4]abab时,后缀 为T[3~6]abaa,第四个元素不同,
2020-09-02 12:58:22
1216
原创 C语言--通讯录
在Linux环境下用C语言实现通讯录,可增删查改,通过文件保存数据。大致框架1.头文件child.h2.子函数child.c3.主函数程序代码:child.h#ifndef CHILD_H#define CHILD_H#include "stdio.h"#include "stdlib.h"#include "string.h"#define NAME 20#define PHONE 12#define SEX 5#define ADDR 20#define MAX 1
2020-08-31 14:30:51
180
原创 C语言--单机三子棋
玩家通过键盘输入坐标 与 人工智障进行三子棋对战#include "stdio.h"#include "stdlib.h"#include "time.h"#include "unistd.h"#define ROW 3#define COL 3//数组初始化函数void initarr(char arr[ROW][COL], int row, int col){ for(int i=0; i<row; i++) { for(int j=0; j<col; j++)
2020-08-31 14:09:58
101
原创 C语言--猜数字游戏
随机生成一个1~100的数让用户猜#include "stdio.h"#include "stdlib.h"#include "time.h"//目录void begin(){ printf("***********************\n"); printf("****1.play 0.exit*****\n"); printf("***********************\n");}//游戏void game(){ int ret, i; ret = rand()
2020-08-31 14:01:29
117
原创 C语言--汉诺塔
汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。设移动盘子数为n,为了将这n个盘子从X杆移动到Z杆,可以做以下三步:(1)以Z盘为中介,从X杆将1至n-1号盘移至Y杆;(2)将X杆中剩下的第n号盘移至Z杆;(3)以X杆为中介;从Y杆将1至n-1号盘移至Z杆。
2020-08-31 13:53:50
174
原创 C语言--循环链表打印拉丁方阵
(新手上路)拉丁方阵(英语:Latin square)是一种 n × n 的方阵,在这种 n × n 的方阵里,恰有 n 种不同的元素,每一种不同的元素在同一行或同一列里只出现一次。#include "stdio.h"#include "stdlib.h"//链表结构体struct List{ int data; struct List *next;};// 创建循环链表void createlist(struct List **L, int n){ struct List *p;
2020-08-31 13:40:38
356
原创 C语言--八皇后问题
该问题是19世纪著名数学家高斯于1850年提出在8X8的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后不能在同一行、同一列或者同一斜线上。问有多少种摆法。#include "stdio.h"int count = 1;//判断是否有危险int wx(int row, int n, char (*arr)[8]){ int i = row; int j = n; int k = 0; int flag1 = 0;//上 for(k = i; k >= 0 ; k-
2020-08-31 13:25:48
177
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人