C语言实验小项目实例源码大全订票信息管理系统贪吃蛇图书商品管理网络通信等
wx供重浩:创享日记
对话框发送:c项目
获取完整源码源文件+视频讲解+环境资源包+文档说明等
包括火车订票系统、学生个人消费管理系统、超级万年历、学生信息管理系统、网络通信编程、商品管理系统、通讯录管理系统、企业员工管理系统、贪吃蛇游戏、图书管理系统、窗体版图书管理系统、MP3音乐播放器共12个实例项目。

每个实例项目都配有说明视频,视频内容包括每个实例项目的源码解析、实例项目功能、拆分教学等。


文章目录
- 1、火车订票系统
- 2、通讯录管理系统
- 3、学生个人消费管理系统
- 4、企业员工管理
- 5、超级万年历
- 6、贪吃蛇游戏
- 7、学生信息管理系统
- 8、图书管理系统
- 9、网络通信编程
- 10、图书管理系统
- 11、商品管理系统
- 12、MP3音乐播放器
1、火车订票系统
运行程序时,首先进入到菜单部分,菜单部分提供了菜单显示和输入功能部分。其运行效果如图1.1所示。在主界面上输入数字0——6,实现相应的功能。

主界面输入“1”,进入添加火车信息界面,如图1.2所示。根据屏幕上给出的提示输入火车的车次,起点,终点,出发时间,到达时间,票价和可以订购的票数。

主界面输入“2”,可以查询火车信息,可以选择查询的方法有两种,一种是按照车次查询,一种是按照你想要到达的地方查询,运行效果如图1.3所示。

当在主界面输入“3”时,进入订票界面,按照提示输入你想要到达的城市,会自动显示出你终点站为你输入城市的信息,根据提示输入你是否决定订票以及你的个人信息,运行效果如图1.4所示。

当在主界面输入“4”时,进入修改界面,根据提示输入你要修改的内容,修改模块的运行效果如图1.5所示。

当在主界面输入“5”时,可以显示出所有的火车信息,显示模块效果如图1.6所示。

当在主界面输入“6”时,进入到保存模块,将录入的火车信息进行保存,并且将订票人的信息也进行保存,存储在指定的磁盘文件中。运行效果如图1.7所示。

部分源码如下,其余完整详见下载。
/*订票子模块*/
void Bookticket(Link l,bookLink k)
{Node *r[10],*p ;char ch[2],tnum[10],str[10],str1[10],str2[10];book *q,*h ;int i=0,t=0,flag=0,dnum;q=k ;while(q->next!=NULL)q=q->next ;printf("Input the city you want to go: ");scanf("%s",&str);/*输入要到达的城市*/p=l->next ;while(p!=NULL){if(strcmp(p->data.reachcity,str)==0){r[i]=p ;/*将满足条件的记录存到数组r中*/i++;}p=p->next ;}printf("\n\nthe number of record have %d\n",i);printheader();for(t=0;t<i;t++)printdata(r[t]);if(i==0)printf("\nSorry!Can't find the train for you!\n");else{printf("\ndo you want to book it?<y/n>\n");scanf("%s",ch);if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否订票*/{h=(book*)malloc(sizeof(book));printf("Input your name: ");scanf("%s",&str1);strcpy(h->data.name,str1);printf("Input your id: ");scanf("%s",&str2);strcpy(h->data.num,str2);printf("please input the number of the train:");scanf("%s",tnum);for(t=0;t<i;t++)if(strcmp(r[t]->data.num,tnum)==0){if(r[t]->data.ticketnum<1)/*判断剩余的供订票的票数是否为0*/{printf("sorry,no ticket!");sleep(2);return;}printf("remain %d tickets\n",r[t]->data.ticketnum);flag=1;break;}if(flag==0){printf("input error");sleep(2);return;}printf("Input your bookNum: ");scanf("%d",&dnum);r[t]->data.ticketnum=r[t]->data.ticketnum-dnum;/*定票成功则可供订的票数相应减少*/h->data.bookNum=dnum ;h->next=NULL ;q->next=h ;q=h ;printf("\nLucky!you have booked a ticket!");getch();saveflag=1 ;}}
}
2、通讯录管理系统
通讯录管理系统主要是实现对联系人的增、删、查以及显示的基本操作。用户可以根据自己的需要在功能菜单中选择相应的操作,实现对联系人的快速管理。
(1)在机器上装好DEV C++编译环境,读者在下载后直接解压到C盘即可。
(2)进入源码所在目录,选中源码右键选择选项“打开方式”,然后再选择子选项“devcppPortable.exe”,如图1.1所示。

(3)打开DEV C++界面后,单击工具栏中的 图标即可运行程序,如图1.2所示:

3、学生个人消费管理系统
运行程序时,首先进入到菜单部分,菜单部分提供了菜单显示和输入功能部分。其运行效果如图1.1所示。在主界面上输入数字0——7,实现相应的功能。

此系统有两种录入方式,一种是输入1时,直接从终端键盘输入信息,使用方法如下:
主界面输入“1”,进入创建界面,开始创建学生个人消费信息。学生个人消费信息创建界面运行效果如图1.2所示。

另一种是输入2时,从磁盘文件录入学生信息。使用方法如下:
首先在自己创建的文件f:\cff.txt记事本中输入学生个人消费信息,如图1.3所示。

然后,在主界面中输入“2”,开始加载学生消费信息文件,根据提示输入存有学生信息的文件路径和名称,即可弹出文件中的信息。运行效果如图1.4所示。

通过以上两种录入方式,分别对学生信息进行3-7的操作,当输入1,创建完信息后,可以直接操作3-7的功能,同样在输入2后,也可以直接操作3-7的功能。但是需要注意,每次3~7的功能操作都是针对前一步的录入方式。与之前操作过的录入方式无关。
输入“3”,可以查询学生消费信息,根据提示输入查询的学生学号,即可调出该学生的信息,运行效果如图1.5所示。

输入“5”,可以添加学生的消费信息,并显示添加后学生的人数。运行效果如图1.6所示。

输入“6”,可以显示录入的学生信息,运行效果如图1.7所示。

其余详见下载。
4、企业员工管理
企业员工信息管理系统主要是对企业员工的基本信息进行增、删、改、查的相关操作,以便用户可以快速地对这些信息进行管理。本系统对管理者的控制更加严格,只设置一个管理账号。
(1)在机器上装好DEV-C++环境,读者在下载后直接双击安装。
(2)进入源码所在目录,选中源码右键选择选项“打开方式”,然后再选择子选项“DEV-C++IDE”,选中后出现如图1.1所示界面。

(3)按键盘“Ctrl+F9”进行编译,然后按“Ctrl+F10”组合键运行程序,(同样可以在功能菜单中选择“运行”-“编译”“运行”)系统进入系统初始化界面,用户输入自己的密码。如图1.2所示:

用户在编译完成后会产生一个系统的可执行文件,用户只要双击可执行文件就可以进入系统,如果是第一次进入系统,首先要对系统进行初始化,如图1.2所示,初始化完成后,再次双击系统执行文件,进入如图1.3的界面。

用户在输入正确密码后,进入系统的功能选择界面如图1.4所示。在这个界面用户可以选择相应的操作。

5、超级万年历
输入公历日期显示月历月历上显示所输入日期的星期、农历公历日期、农历的天干地支和生肖、当天是否是节气,如果是,则显示,不是,则显示距离它最近的节气的间隔日期列出当月的二十四节气。
输入农历日期,显示此农历日期所对应的公历日期和星期。
输入要查询的公历年、月显示清爽版月历。
输入年、月、日,可得出距离今天的天数。
输入数字可得出距离这个数字为天数的日期(之前、之后)。
输入两个年、月、日,可得出两者之间间隔的天数。
输入想要查询的年份,可查看当年的所有节气,和对应的日期、时间。
查询节日 粉显示公历和农历节日,公历节日按月份查询;农历节日直接显示。
部分源码如下,其余完整详见下载。
/*** 时间结构体转换*/
LONGTIME SysTimeToLong(SYSTEMTIME SystemTime)
{LONGTIME LongTime;LongTime.wYear=(long int)SystemTime.wYear;LongTime.wMonth=SystemTime.wMonth;LongTime.wDay=SystemTime.wDay;LongTime.wHour=SystemTime.wHour;LongTime.wMinute=SystemTime.wMinute;LongTime.wSecond=SystemTime.wSecond;LongTime.wMillisecond=SystemTime.wMilliseconds;LongTime.wDayOfWeek=SystemTime.wDayOfWeek;return LongTime;
}
6、贪吃蛇游戏



7、学生信息管理系统
运行程序时,首先进入到菜单部分,菜单部分提供了菜单显示和输入功能部分。其运行效果如图17.1所示。在主界面上输入0——8内的数字,实现相应的功能。

主界面输入1时,进入录入学生信息的界面,当没有存储记录时,根据提示对学生的信息进行输入,运行效果如图17.2所示。

在存在学生信息的情况下继续添加学生信息时,会首先显示存在的学生信息,运行效果如图17.3所示。

主界面输入2时,进入查询学生信息模块,根据学生学号,对学生信息进行查询。运行效果如图17.4所示。

其余详见下载。
8、图书管理系统
图书管理系统主要有以下功能:
录入图书信息。
实现删除功能,即输入图书号删除相应的记录。
实现查找功能,即输入图书号或图书名查询该书相关信息。
实现修改功能,即输入图书号或图书名修改相应信息。
添加会员信息,只有会员才可借书。
实现借书功能,即输入图书号及会员号进行借书。
实现还书功能,还书时也同样需输入图书号及会员号。
保存添加的图书信息。
保存添加的会员信息。
图书管理系统主界面如图1所示。

说明:运行图书管理系统时,需要将代码中数据库连接字符串中的服务器地址修改为本地的MYSQL服务器地址,用户名和密码修改为本地登录MYSQL服务器的用户名和密码。
9、网络通信编程
程序主界面包含了4个功能选项,通过选择不同的选项执行不同的功能。程序首界面如图24.1所示。

设置当前机器为点对点服务端时的程序界面如图24.2所示。

设置当前机器为点对点客户端时的程序界面如图24.3所示。

启动服务器中转服务端的界面效果如图24.4所示。

在主界面输入4可进入服务器中转客户端,与已处于监听状态的服务器中转服务端相连接,如图24.5所示。

10、图书管理系统
在MySQL中建立一个空的数据库并将其命名为db_mrbm。之后将mrbm.sql文件导入进该数据库中。(在控制台命令行中输入:mysql –u用户名 –p密码 db_mrbm<sql文件路径)。实例如图所示:

在Realease或者DeBug文件夹下可以找到图书管理系统的exe程序和Init.txt文件。txt文件的配置图如下:

从上到下4行文字分别代表IP、用户名、密码、数据库名,读者可以依照自己的MySQL配置重新添加。(注意冒号后为的空白为tab)
11、商品管理系统
商品管理系统主要是对商品的基本信息进行增、删、改、查以及商品的插入的操作,以便用户可以快速地对这些信息进行管理。
(1)在机器上装好DEV-C++环境,读者在下载后直接双击安装。
(2)进入源码所在目录,选中源码右键选择选项“打开方式”,然后再选择子选项“DEV-C++IDE”,选中后出现如图23.1所示界面。

(3)按键盘“Ctrl+F9”进行编译,然后按“Ctrl+F10”组合键运行程序,(同样可以在功能菜单中选择“运行”-“编译”“运行”)系统进入系统功能菜单页面。如图23.2所示:

12、MP3音乐播放器
部分源码如下,其余完整详见下载。
#include "Mp3.h"
int main(int argc, char *argv[])
{GtkBuilder *builder;gtk_init(&argc, &argv);gst_init(&argc, &argv);builder= gtk_builder_new();gtk_builder_add_from_file(builder, "Mp3.glade", NULL);main_window = GTK_WIDGET(gtk_builder_get_object(builder, "MainWindow"));//gtk_widget_set_size_request(main_window, 300, 260);play_button = GTK_WIDGET(gtk_builder_get_object(builder, "play_button"));pause_button = GTK_WIDGET(gtk_builder_get_object(builder, "pause_button"));stop_button = GTK_WIDGET(gtk_builder_get_object(builder, "stop_button"));open_file = GTK_WIDGET(gtk_builder_get_object(builder, "open_file"));status_label = GTK_WIDGET(gtk_builder_get_object(builder, "status_label"));time_label = GTK_WIDGET(gtk_builder_get_object(builder, "time_label"));seek_scale = GTK_WIDGET(gtk_builder_get_object(builder, "seek_scale"));//GtkAdjustment *adj=gtk_adjustment_new(0,0,100,1,1,100);gtk_range_set_adjustment(GTK_SCALE(seek_scale),GTK_ADJUSTMENT(gtk_adjustment_new(0,0,100,1,1,0.1)));artist_label = GTK_WIDGET(gtk_builder_get_object(builder, "artist_label"));title_label = GTK_WIDGET(gtk_builder_get_object(builder, "title_label"));gtk_widget_set_sensitive(GTK_WIDGET(stop_button), FALSE);gtk_widget_set_sensitive(GTK_WIDGET(play_button), FALSE);gtk_widget_set_sensitive(GTK_WIDGET(pause_button), FALSE);g_signal_connect(play_button, "clicked", G_CALLBACK(play_clicked), NULL);g_signal_connect(pause_button, "clicked", G_CALLBACK(pause_clicked), NULL);g_signal_connect(stop_button, "clicked", G_CALLBACK(stop_clicked), NULL);g_signal_connect(seek_scale, "value-changed", G_CALLBACK(seek_value_changed), NULL);g_signal_connect(open_file, "clicked", G_CALLBACK(open_file_clicked), NULL);gtk_builder_connect_signals(builder, NULL);g_object_unref(G_OBJECT(builder));gtk_widget_show_all(main_window);gtk_main();return 0;
}
相关文章:
C语言实验小项目实例源码大全订票信息管理系统贪吃蛇图书商品管理网络通信等
wx供重浩:创享日记 对话框发送:c项目 获取完整源码源文件视频讲解环境资源包文档说明等 包括火车订票系统、学生个人消费管理系统、超级万年历、学生信息管理系统、网络通信编程、商品管理系统、通讯录管理系统、企业员工管理系统、贪吃蛇游戏、图书管理…...
电脑图片损坏是怎么回事
电脑图片损坏是怎么回事?对于经常使用电脑的我们,总是会下载各种各样的图片,用于平时的使用中。但难免会遇到莫名其妙就损坏的图片文件,一旦发生这种情况,要如何才能修复损坏的图片呢?下面小编为大家带来常用的修复方…...
【论文研读】无人机飞行模拟仿真平台设计
无人机飞行模拟仿真平台设计 摘要: 为提高飞行控制算法的研发效率,降低研发成本,基于数字孪生技术设计一个无人机硬件在环飞行模拟仿真平台。从几何、物理和行为3个方面研究无人机数字模型构建方法,将物理实体以数字化方式呈现。设计一种多元融合场景建模法,依据属…...
【算法题】2379. 得到 K 个黑块的最少涂色次数
插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 坚持不懈,越努力越幸运,大家一起学习鸭~~~ 题目: 给你一个长度为 n 下标从 0 开始的…...
DJ1-3 计算机网络和因特网
目录 一、物理介质 1. 双绞线 2. 同轴电缆 3. 光纤线缆 4. 无线电磁波 二、端系统上的 Internet 服务 1. 面向连接的服务 TCP(Transmission Control Protocol) 2. 无连接的服务 UDP(User Datagram Protocol) TCP 和 UD…...
Git学习笔记(六)-标签管理
发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签…...
Semaphore 源码解读
一、Semaphore Semaphore 通过设置一个固定数值的信号量,并发时线程通过 acquire() 获取一个信号量,如果能成功获得则可以继续执行,否则将阻塞等待,当某个线程使用 release() 释放一个信号量时,被阻塞的线程则可以被唤…...
RZ/G2L工业核心板U盘读写速率测试
1. 测试对象HD-G2L-IOT基于HD-G2L-CORE工业级核心板设计,双路千兆网口、双路CAN-bus、2路RS-232、2路RS-485、DSI、LCD、4G/5G、WiFi、CSI摄像头接口等,接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。HD-G2L…...
《SQL与数据库基础》18. MySQL管理
SQL - MySQL管理MySQL管理系统数据库常用工具mysqlmysqladminmysqlbinlogmysqlshowmysqldumpmysqlimportsource本文以 MySQL 为例 MySQL管理 系统数据库 Mysql数据库安装完成后,自带了以下四个数据库,具体作用如下: 数据库含义mysql存储My…...
达梦关系型数据库
达梦关系型数据库一、DM8 安装1. 安装包下载2. Docker 安装3. Linux 安装4. Windows 安装二、DM 管理工具三、命令行交互工具 DIsql四、DM8 SQL使用1. 创建模式2. 创建表3. 修改表4. 读写数据5. 查看库下所有的表名6. 查看表字段信息GitHub: link. 欢迎star国产自主研发的大型…...
Postgresql | 执行计划
SQL优化主要从三个角度进行: (1)扫描方式; (2)连接方式; (3)连接顺序。 如果解决好这三方面的问题,那么这条SQL的执行效率就基本上是靠谱的。看懂SQL的执行计…...
Vue3之父子组件通过事件通信
前言 组件间传值的章节我们知道父组件给子组件传值的时候,使用v-bind的方式定义一个属性传值,子组件根据这个属性名去接收父组件的值,但是假如子组件想给父组件一些反馈呢?就不能使用这种方式来,而是使用事件的方式&a…...
在云服务器安装tomcat和mysql
将 linux 系统安装包解压到指定目录进入 bin 目录执行./startup.sh 命令启动服务器执行./shutdown.sh 关闭服务器在浏览器中访问虚拟机中的 tomcat ip端口具体操作入下解压tomcat压缩包解压,输入tom按table键自动补全tar -zxvf 启动tomcat进入bin目录在linux启动to…...
IO多路复用(select、poll、epoll网络编程)
目录一、高级IO相关1.1 同步通信和异步通信1.2 阻塞与非阻塞1.3 fcntl 函数二、五种IO模型2.1 阻塞式IO模型2.2 非阻塞式IO模型2.3 多路复用IO模型2.4 信号驱动式IO模型2.5 异步IO模型三、认识IO多路复用四、select4.1 认识select函数4.2 select函数原型4.3 select网络编程4.4 …...
Spark单机伪分布式环境搭建、完全分布式环境搭建、Spark-on-yarn模式搭建
搭建Spark需要先配置好scala环境。三种Spark环境搭建互不关联,都是从零开始搭建。如果将文章中的配置文件修改内容复制粘贴的话,所有配置文件添加的内容后面的注释记得删除,可能会报错。保险一点删除最好。Scala环境搭建上传安装包解压并重命…...
C++网络编程(一)本地socket通信
C网络编程(一) socket通信 前言 本次内容简单描述C网络通信中,采用socket连接客户端与服务器端的方法,以及过程中所涉及的函数概要与部分函数使用细节。记录本人C网络学习的过程。 网络通信的Socket socket,即“插座”,在网络中译作中文“套接字”,应…...
【Docker】Linux下Docker安装使用与Docker-compose的安装
【Docker】的安装与启动 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo yum install docker-cesudo systemctl enable dockersudo systemct…...
构造函数与普通函数,显式原型与隐式原型,原型与原型链
原型与原型链1 学前先了解一些概念1.1 构造函数和普通函数的区别1.1.1 调用方式1.1.2 函数中this的指向不同1.1.3 写法不同1.2 问题明确2 原型与原型链2.1 原型2.2 显式原型与隐式原型2.3 原型链3 原型链环形结构1 学前先了解一些概念 1.1 构造函数和普通函数的区别 构造函数…...
跨过社科院与杜兰大学金融管理硕士项目入学门槛,在金融世界里追逐成为更好的自己
没有人不想自己变得更优秀,在职的我们也是一样。当我们摸爬滚打在职场闯出一条路时,庆幸的是我们没有沉浸在当下,而是继续攻读硕士学位,在社科院与杜兰大学金融管理硕士项目汲取能量,在金融世界里追逐成为更好的自己。…...
macOS 13.3 Beta 3 (22E5236f)With OpenCore 0.9.1开发版 and winPE双引导分区原版镜像
原文地址:http://www.imacosx.cn/112494.html(转载请注明出处)镜像特点完全由黑果魏叔官方制作,针对各种机型进行默认配置,让黑苹果安装不再困难。系统镜像设置为双引导分区,全面去除clover引导分区&#x…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
[特殊字符] 手撸 Redis 互斥锁那些坑
📖 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作,想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁,也顺便跟 Redisson 的 RLock 机制对比了下,记录一波,别踩我踩过…...
【若依】框架项目部署笔记
参考【SpringBoot】【Vue】项目部署_no main manifest attribute, in springboot-0.0.1-sn-CSDN博客 多一个redis安装 准备工作: 压缩包下载:http://download.redis.io/releases 1. 上传压缩包,并进入压缩包所在目录,解压到目标…...
CMS内容管理系统的设计与实现:多站点模式的实现
在一套内容管理系统中,其实有很多站点,比如企业门户网站,产品手册,知识帮助手册等,因此会需要多个站点,甚至PC、mobile、ipad各有一个站点。 每个站点关联的有站点所在目录及所属的域名。 一、站点表设计…...
用鸿蒙HarmonyOS5实现国际象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的国际象棋小游戏的完整实现代码,使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├── …...
安宝特案例丨寻医不再长途跋涉?Vuzix再次以AR技术智能驱动远程医疗
加拿大领先科技公司TeleVU基于Vuzix智能眼镜打造远程医疗生态系统,彻底革新患者护理模式。 安宝特合作伙伴TeleVU成立30余年,沉淀医疗技术、计算机科学与人工智能经验,聚焦医疗保健领域,提供AR、AI、IoT解决方案。 该方案使医疗…...
FTPS、HTTPS、SMTPS以及WebSockets over TLS的概念及其应用场景
一、什么是FTPS? FTPS,英文全称File Transfer Protocol with support for Transport Layer Security (SSL/TLS),安全文件传输协议,是一种对常用的文件传输协议(FTP)添加传输层安全(TLS)和安全套接层(SSL)加密协议支持的扩展协议。…...
5. TypeScript 类型缩小
在 TypeScript 中,类型缩小(Narrowing)是指根据特定条件将变量的类型细化为更具体的过程。它帮助开发者编写更精确、更准确的代码,确保变量在运行时只以符合其类型的方式进行处理。 一、instanceof 缩小类型 TypeScript 中的 in…...
android计算器代码
本次作业要求实现一个计算器应用的基础框架。以下是布局文件的核心代码: <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"andr…...
