A C++ program package was developed to calculate parallel momentum distributions (including the stripping mechanism and the diffractive dissociation mechanism) of the heavy residue (core) in single-nucleon knockout reactions induced by intermediate-energy (around and more than tens of MeV per nucleon) beams of stable and radioactive atomic nuclei. The program implements the Glauber reaction model that is based on the eikonal approximation and the sudden approximation when dealing with the scattering process, and uses a t-ρ-ρ method to build the projectile-target scattering optical potential, where the nucleonic densities of the core and the target are needed as input. The radial wavefunction of the valence nucleon is solved by a built-in bound-wave solver driven by a globally convergent search engine for optimized potential parameters of the valence nucleon to reproduce user-specified separation energies and root-mean-square (rms) radii of the valence nucleon. The YAML file format is adopted to facilitate user input. The program is expected to especially serve the interpretation of data analysis results of single-nucleon knockout from radioactive ion beams (RIBs), where the experimental practitioners may be more conversant with C++. Program summaryProgram Title: CNOKCPC Library link to program files:https://doi.org/10.17632/dmffpbjhsh.1Developer's repository link:https://gitee.com/asiarabbit/cnokLicensing provisions: GPLv3Programming language: C++Nature of problem: This program calculates the single-particle reaction cross sections of single-nucleon removal from stable and radioactive nuclei impinging on a light composite (i.e. non-hydrogen, e.g. carbon and beryllium) target at intermediate energies (around and more than tens of MeV per nucleon), and the parallel momentum (stripping+diffractive dissociation) distributions of the core, for a pure valence configuration (bound core state+valence nucleon single-particle orbit).Solution method: The bound radial wavefunction of the valence nucleon in a Woods-Saxon (WS) potential is solved following the method of shooting to a fitting point, where the wavefunction is integrated with Runge-Kutta method from 0 and some large distance r∞ to a matching point rm near the nuclear surface. The process is iterated to optimize the eigenvalue Enlj by joining the two waves at rm “smoothly”. Most integrals are evaluated with Simpson's rules, while some with Romberg integration. Searching in the (V0,r0) space of the central WS potential to reproduce the user-specified separation energy and rms radius of the valence nucleon is done via a globally convergent Newton-Raphson root-finding routine for nonlinear systems of equations.Additional comments including restrictions and unusual features: User input is read in with YAML parser (yaml-cpp). Global parameters are readily accessed and uniformly modified in a singleton class. General algorithms (integration, interpolation, minimization, and root-finding routines) are implemented with C++ template class or functors, which adapt to different data types and/or function types. Various batch modes are wrapped in the program package to save user time. For instance, in one run, with the batch mode, one can calculate inclusive single-nucleon removal cross section involving many valence configurations, the relevant inclusive core momentum distribution, and similarly for a series of projectile+target combinations in study of systematics, as is frequently encountered in the study of quenching of single-particle-orbit occupancies (spectroscopic factors) in single-nucleon knockout reactions. Unit tests with Catch are widely deployed to facilitate debugging. C++11 support is required for compilers.