C语言实验小项目实例源码大全订票信息管理系统贪吃蛇图书商品管理网络通信等

news2024/11/14 9:07:53

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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/399805.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

再见 ETHDenver 2023

我们来一起回顾Web3中规模最大&#xff0c;持续时间最长的以太坊史诗级建造周我们正在庆祝#YearoftheSpork&#xff0c;并借助 Web3 中最大的以太坊社区活动之一拉开了黑客马拉松赛季的序幕。ETH Denver 旨在围绕一个共同的目标聚集了志同道合的人&#xff0c;我们非常高兴今年…

开学新装备 - 学生党是否该入手 MacBook

学生党是否该入手 macbook 这个问题&#xff0c;相信许多人在许多社区都有看到过类似讨论。只不过&#xff0c;许多讨论都掺杂了信仰、智商税、不懂、不熟悉未来需求等各种因素&#xff0c;导致内容空洞价值不大。这篇文章&#xff0c;抛开了所有非理性因素&#xff0c;详细的告…

创建第一个QT程序

系列文章目录 QT学习与实战 创建第一个QT程序系列文章目录一、创建第一个QT程序1.1Location(项目简介和位置)1.2Kits(构建套件)1.3Details(类的信息)1.4汇总二、常用操作2.1显示文件分类2.2代码分栏三、代码分析四、总结一、创建第一个QT程序 1.1Location(项目简介和位置) 创…

2.进程和线程

1.进程1.1 终止正常退出(自愿)出错退出(自愿)严重错误(非自愿)被其他进程杀死(非自愿)1.2 状态就绪态&#xff1a;可运行&#xff0c;但因为其他进程正在运行而暂时停止阻塞态&#xff1a;除非某种外部事件发生&#xff0c;否则进程不能运行1.3 实现一个进程在执行过程中可能被…

淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。

淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。 文章目录淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。本文导读1.分库分表2.数据冗余3.异步复制4.读写分离总结本文导读 淘宝的数据库架构设计采用了分布式数据库技术&#xff0c;通过…

MES系统消除制造型企业的九大浪费!

在生产制造型企业&#xff0c;正确地减少不必要的浪费才是降低生产成本、提升企业利润的关键&#xff01; 许多制造型企业的管理者&#xff0c;尤其是中层管理者没有认识到在生产管理过程中哪些行为是在真正提升企业效益、哪些行为是给企业制造浪费。 对于传统的浪费有过量生…

基于Hyperledger Fabric的学位学历认证管理系统

基于Hyperledger Fabric的学位学历认证管理系统 项目源码&#xff1a;https://github.com/Pistachiout/Academic-Degree-BlockChain 一、选题背景 学历造假、认证造假等是一个全球日益普遍的现象&#xff0c;不仅对社会产生了巨大的负面影响&#xff0c;同时也极大增加了企业…

极限的准则

目录 定理&#xff1a; 极限运算法则&#xff1a; 极限存在之间的计算&#xff1a; 例题&#xff1a; 定理&#xff1a; 定理&#xff1a; 定理1和定理2的证明方式类似&#xff0c;我们对定理2进行证明。 我们举一个例子&#xff1a; 这道题目的结果是0&#xff0c;但是计算…

excel 数据查询,几个模式化公式请收好

1、一对多查询 所谓一对多&#xff0c;就是符合某个指定条件的有多个结果&#xff0c;要把这些结果都提取出来。 如下图所示&#xff0c;希望根据F2单元格中指定的部门&#xff0c;提取出左侧列表中“生产部”的所有人员姓名。 Excel 2019及以下版本&#xff1a;在H2单元格输…

【教学典型案例】17.环境混用带来的影响

目录一&#xff1a;背景介绍二&#xff1a;思路&方案思路方案1、分权2、定期对比环境混乱的危害三&#xff1a;过程1、排查nginx请求转发是否正常2、找到开发环境项目的服务器&#xff0c;查看服务器配置的nginx3、从fastdfs服务器上找到安装存储的位置4、排查结果四&#…

Java代码优化|提高代码质量的一些小技巧

1.需要 Map 的主键和取值时&#xff0c;应该迭代 entrySet()当循环中只需要 Map 的主键时&#xff0c;迭代 keySet() 是正确的。但是&#xff0c;当需要主键和取值时&#xff0c;迭代 entrySet() 才是更高效的做法&#xff0c;比先迭代 keySet() 后再去 get 取值性能更佳。正例…

python进程间通信

进程间通信表示进程之间的数据交换。 为了开发并行应用程序&#xff0c;需要在进程间交换数据。 下图显示了多个子过程之间同步的各种通信机制 - 各种通信机制 队列 队列可以用于多进程程序。 多处理模块的Queue类与Queue.Queue类相似。 因此&#xff0c;可以使用相同的API…

【带你搞定第二、三、四层交换机】

​ 01 第二层交换机 OSI参考模型的第二层叫做数据链路层&#xff0c;第二层交换机通过链路层中的MAC地址实现不同端口间的数据交换。 第二层交换机主要功能&#xff0c;就包括物理编址、错误校验、帧序列以及数据流控制。 因为这是最基本的交换技术产品&#xff0c;目前桌面…

07-PL/SQL基础(if语句,case语句,循环语句)

本章主要内容&#xff1a; 1.PL/SQL的基本构成&#xff1a;declare,begin,exception,end; 2.结构控制语句:IF语句,CASE语句 3.循环结构&#xff1a;loop循环&#xff0c;for loop循环&#xff0c;while loop循环 PL/SQL的基本构成 特点 PL/SQL语言是SQL语言的扩展&#xff…

JS学习笔记day03

今日内容 零、 复习昨日 CSS 美化,复用,样式文件和表现文件分离便于维护 选择器 {属性:值;…} 引入css 内联文件内部使用style标签外部文件 <link href"路径" rel"stylesheet" type"text/css"> 选择器 基本 idclass标签名 属性 标签名…

【并发编程】深入理解Java内存模型及相关面试题

文章目录优秀引用1、引入2、概述3、JMM内存模型的实现3.1、简介3.2、原子性3.3、可见性3.4、有序性4、相关面试题4.1、你知道什么是Java内存模型JMM吗&#xff1f;4.2、JMM和volatile他们两个之间的关系是什么&#xff1f;4.3、JMM有哪些特性/能说说JMM的三大特性吗&#xff1f…

从新手小白到运维大咖,SysOM 多场景宕机实例解析 | 龙蜥技术

文/刘馨蔚&#xff0c;系统运维 SIG Contributor “老板老板&#xff0c;今天业务又发生了抖动&#xff0c;具体原因暂时还不能快速查清&#xff0c;再给我点时间吧。” “老板老板&#xff0c;这个问题我好像解过&#xff0c;但是也不太确定&#xff0c;我再重新分析一次吧。…

Django/Vue实现在线考试系统-05-开发环境搭建-PyCharm安装

1.0 PyCharm下载和安装 PyCharm 是 JetBrains 公司(www.jetbrains.com)研发,用于开发 Python 的 IDE 开发工具。图 1 所示为 JetBrains 公司开发的多款开发工具,其中很多工具都好评如潮,这些工具可以编写 Python、C/C++、C#、DSL、Go、Groovy、Java、JavaScript、Objecti…

关于kafka,你背了哪些面试题(持续更新中)

昨天面试大数据开发岗位&#xff0c;面试官问了一个开放性的问题&#xff0c;讲讲你对kafka的认识&#xff0c;一下有些懵住&#xff0c;不知道从哪里开始谈起。 今天和另外一个大佬聊天&#xff0c;他告诉我&#xff0c;就是要背面试题&#xff0c;背面试题是一种有效的学习方…

如何把iPhone照片导入电脑?图文教学,1分钟教你快速导入

​在日常生活中&#xff0c;我们经常会用iPhone拍摄照片&#xff0c;但是iPhone的存储空间有限&#xff0c;随着照片的增加&#xff0c;存储空间会越来越少。因此&#xff0c;把iPhone照片导入电脑成为了很多人需要解决的问题。那么&#xff0c;如何把iPhone照片导入电脑呢&…