C语言实验小项目实例源码大全订票信息管理系统贪吃蛇图书商品管理网络通信等
迪丽瓦拉
2024-05-31 13:23:24
0

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;tprintf("\ndo you want to book it?\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;tdata.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

在这里插入图片描述
在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;
}

相关内容