第一章:C语言和C++课设源码
各大博客大多源码都有着各种bug、无法运行、资源数据库不完整等问题。
我们制作并整理了一些源码如下,均经过检测可用!源码按照指导即可在电脑运行。
源码均为有偿实惠,请须知!也可以在文末下方联系我快速实惠订做课设!
运行环境:可以运行C、C++的都可以,如DevC++、VS、VC++等
管理系统类
支持快速订做管理系统,C语言 C++ 面向对象 链表 结构体顺序表
各大博客大多源码都有着各种bug、无法运行、资源数据库不完整等问题。
我们制作并整理了一些源码如下,均经过检测可用!源码按照指导即可在电脑运行。
源码均为有偿实惠,请须知!也可以在文末下方联系我快速实惠订做课设!
运行环境:可以运行C、C++的都可以,如DevC++、VS、VC++等
支持快速订做管理系统,C语言 C++ 面向对象 链表 结构体顺序表
代码400行左右,操作十分流畅,完全由C语言实现!
资源包括: 源码 + 报告 + 流程图 (请看下面演示)
//操作:上下左右键
//主函数,新建一个游戏并开始
int main() {
int score = new2048();
printf("游戏结束,最终分数 %d.\n", score);
return 0;
}
int new2048(){
system("cls");
printf("操作按键:请用上下左右方向键来操作\n");
//定义游戏面板
int board[SIZE][SIZE] = {{0}};
int c, score, moveScore, gameWon;
//初始化游戏面板
initBoard(board);
//初始化游戏分数 和 胜利标志gameWon=0;
score = 0;
gameWon = 0;
//canMove判断当前用户还可以继续移动?
while (canMove(board) == 1) {
//打印游戏面板
printf("\n");
printBoard(board);
printf("\n当前分数:%d.\n\n", score);
// 发现游戏中存在2048则说明胜利。 也可删掉这段逻辑让游戏永远继续下去
if (gameWon == 0 && boardContains2048(board)) {
gameWon = 1;
printf("\n恭喜你胜利了!\n");
}
//获取键盘输入
c = getKey();
//moveScore 是获取用户移动的结果,-1表示无效移动。
moveScore = 0;
if (c == 3) {
moveScore = moveLeft(board);
} else if (c == 2) {
moveScore = moveDown(board);
} else if (c == 1) {
moveScore = moveUp(board);
} else if (c == 4) {
moveScore = moveRight(board);
}
//有效移动
if (moveScore != -1){
insertNewNumber(board);
//加分
score = score + moveScore;
}
//清屏
system("cls");
}
printBoard(board);
return score;
}
可以记录收入支出,并将数据保存到文件,下次启动程序自动读取上次保存的数据
有两个版本,一个是C语言,一个是C++,自行选择,VC++、VS、devc++等各编译器均可运行。代码注释齐全,容易理解
代码量350行。
定义结构体如下
//定义 账单 结构体
struct Record {
char type[15] ; // 收入/支出
double money ; // 金额
int time ; // 时间
char item[15] ; // 类别
char desc[15] ; // 备注
};
添加、删除、修改、查找、排序、保存、读入货物功能
添加、删除、修改、查找、排序仓库
添加、查找、排序库存记录,根据货物查询,统计货物总量。
保存文件和读取文件功能
有两个版本,一个是C语言,一个是C++,自行选择,VC++、VS、devc++等各编译器均可运行。代码注释齐全,容易理解,代码量850行。
菜单页:
添加货物:
代码量:380
知识点:图,三维数组等数据结构。采用迪杰斯特拉算法求最短路径、最短时间
里面的学校内容是可以自行修改的,你可以改成城市、你的学校
我们可以加入中间点来查询路径的最快时间和最短路径
void show4(int i,int j, int temp)
{
int k=0,a=i,b=j;
int S;
double L;
int h,m,s;
printf("\n请输入起始时间(hh:mm:ss):");
scanf("%d:%d:%d",&h,&m,&s);
if(shortest[i][j][temp]!=Maxedge)
{
if(temp == 0)
printf("从%s到%s的最短路径为:\n",ver[i].name,ver[j].name);
if(temp == 1)
printf("从%s到%s的最快时间的路径为:\n",ver[i].name,ver[j].name);
printf("%s",ver[i].name);
while(path[i][j][temp]!=0)
{
k=path[i][j][temp];
while(path[i][k][temp]!=0)
{
k=path[i][k][temp];
}
printf("----%s",ver[k].name);
i=k;
}
printf("----%s;\n",ver[j].name );
if(temp == 0)
{
printf("最短距离为:%d米。\n",shortest[a][b][temp]);
S = shortest[a][b][temp] / 1;//(人每秒1米)
time(h, m, s, S);
}
if(temp == 1)
{
printf("最快时间为:%d秒。\n",shortest[a][b][temp]);
time(h, m, s, shortest[a][b][temp]);
}
}
else
printf("从%s不能到达%s。",ver[i].name ,ver[j].name );
}
题目介绍:
用二维数组表示迷宫,1表示通顺路口,2表示搜索过的,0表示障碍路口,采用递归、堆栈的方式求迷宫出路的解并输出。
第一部分使用递归求解
为了数据的简单化,不对路口进行数据结构化,将用一个简单的int类型数组来表示迷宫
因为每一个路口的四个方向相对于当前路口的位移都是一样的,这样可以用一个int类型
二位数据表示四个方向的相对于当前位置的位移,以顺时针东、南,、西、北储存
第一个方法是采用递归的方式求解,通过探测下一个路口的方式来求解。
第二种则用堆栈求解,这里涉及到栈数据结构的使用,栈的基本操作代码略过
对学生的信息、学科成绩进行管理,并进行统计。
对信息进行读写文件操作。对于学生数据,会自动保存数据到本地,下次运行自动读取数据
代码460行左右,操作十分流畅,有两个版本,一个是C语言,一个是C++
资源包括: C/C++源码 + 报告
查看信息和统计信息
添加学生
贪吃蛇:用户通过WASD来控制蛇移动,随机出现食物,吃到食物可以加分,撞到墙体死亡,撞到自身死亡
采用C++面相对象,代码行数500+,适合期末课设。
代码量:1450,语言:C++
系统带报告!
其中一个是devc++版本,也可以用visual stdio 运行。
typedef struct //这里的出现次序指的是一个AI_tank变量中的次序,游戏共有四个AI_tank变量
{ //∵设定每个AI_tank每种特殊坦克只出现一次 ∴fast_tank & firm_tank 最多出现次数不超过1
int fast_tank_order; //fast_tank出现的次序(在第fast_tank_order次复活出现,从第0次开始),且每个AI_tank只出现一次
int firm_tank_order; //firm_tank出现的次序,同上
} LevInfo; //关卡信息(准确说是该关出现的坦克信息)
LevInfo level_info [MAX_LEVEL] = {{-1,-1},{3,-1},{-1,3},{2,3},{2,3},{2,3},{2,3},{2,3}}; //初始化,-1代表没有该类型坦克
typedef struct //子弹结构体
{
int x,y; //子弹坐标,假坐标
int direction; //子弹方向变量
bool exist; //子弹存在与否的变量,1为存在,0不存在
bool initial; //子弹是否处于建立初状态的值,1为处于建立初状态,0为处于非建立初状态
bool my; //区分AI子弹与玩家子弹的标记,0为AI子弹,1为玩家(我的)子弹
} Bullet;
Bullet bullet [BULLET_NUM]; //考虑到地图上不太可能同时存在20颗子弹,所以数组元素设置20个
typedef struct //坦克结构体
{
int x,y; //坦克中心坐标
int direction; //坦克方向
int color; //颜色参方向数,1到6分别代表不同颜色,具体在PrintTank函数定义有说明
int model; //坦克图案模型,值为1,2,3,分别代表不同的坦克图案,0为我的坦克图案,AI不能使用
int stop; //只能是AI坦克使用的参数,非0代表坦克停止走动,0为可以走动
int revive; //坦克复活次数
int num; //AI坦克编号(固定值,为常量,初始化函数中定下)0~3
int CD; //发射子弹冷却计时
bool my; //是否敌方坦克参数,我的坦克此参数为1,为常量
bool alive; //存活为1,不存活为0
} Tank;
Tank AI_tank[4] , my_tank; //my_tank为我的坦克,Ai_tank 代表AI坦克
有两个版本,一个是C语言,一个是C++,自行选择
代码行 700+,代码+ 报告书 + 详细注释
添加、删除、修改、查询用户信息
添加、删除、修改、查询图书信息
添加借阅记录和还书功能
记录还书日期
记录借书日期和借书天数
判断是否逾期
判断图书库存是否足够
读写数据到文件,下次启动自动读取上次保存的数据