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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: C语言实验小项目实例源码大全订票信息管理系统贪吃蛇图书商品管理网络通信等

1、火车订票系统

运行程序时,首先进入到菜单部分,菜单部分提供了菜单显示和输入功能部分。其运行效果如图1.1所示。在主界面上输入数字0——6,实现相应的功能。

654acaeca41a12d7757a6cc102ff7f2.png


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

8200eab1a943f83af712d12c933d107.png


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

548ab8d09824dc5200b3689bf346b0a.png


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

1fa967a77875e086d36dfbca6b032ec.png


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

d9a4677d8ed2ce3635a388264ab3808.png


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


c3a1921fc341699888e2c608ee980c2.png

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


502c2e53716f244f0416dd7cc6eabec.png


部分源码如下,其余完整详见下载。


/*订票子模块*/
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所示。


7c2b9d0599ab0d0ac27a7d76d80b4bc.png

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


8d2a6d8c108f9dedbbff9e1f8ea2b6c.png


3、学生个人消费管理系统

运行程序时,首先进入到菜单部分,菜单部分提供了菜单显示和输入功能部分。其运行效果如图1.1所示。在主界面上输入数字0——7,实现相应的功能。

0b5c127339aff44aa165088f8e5b543.png


此系统有两种录入方式,一种是输入1时,直接从终端键盘输入信息,使用方法如下:

主界面输入“1”,进入创建界面,开始创建学生个人消费信息。学生个人消费信息创建界面运行效果如图1.2所示。

2e44e5f05562fb47bf3dc941eefa5c3.png


另一种是输入2时,从磁盘文件录入学生信息。使用方法如下:

首先在自己创建的文件f:\cff.txt记事本中输入学生个人消费信息,如图1.3所示。

c59ff5ef4d2cef2549a717c41d361d7.png


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


8408b3b6371d63a9a74a4574ae175f8.png

通过以上两种录入方式,分别对学生信息进行3-7的操作,当输入1,创建完信息后,可以直接操作3-7的功能,同样在输入2后,也可以直接操作3-7的功能。但是需要注意,每次3~7的功能操作都是针对前一步的录入方式。与之前操作过的录入方式无关。

输入“3”,可以查询学生消费信息,根据提示输入查询的学生学号,即可调出该学生的信息,运行效果如图1.5所示。

f3a53653f26bf96a59440b9d5ae22cf.png


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

c42f73a978d7f580254398a3d149e50.png


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

b5a8036c30205d15ee89ecc0f53346a.png


其余详见下载。


4、企业员工管理

企业员工信息管理系统主要是对企业员工的基本信息进行增、删、改、查的相关操作,以便用户可以快速地对这些信息进行管理。本系统对管理者的控制更加严格,只设置一个管理账号。

(1)在机器上装好DEV-C++环境,读者在下载后直接双击安装。

(2)进入源码所在目录,选中源码右键选择选项“打开方式”,然后再选择子选项“DEV-C++IDE”,选中后出现如图1.1所示界面。

186bcb32c3647491ca5383077966355.png


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

418873a7d2095d5875df1696f7d0eb6.png


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

c033795857eb0a19f6401f808f302be.png


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


d30dcef8edaba2482ab3739efb8ad1b.png


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、贪吃蛇游戏


604a12bfc2ff6fdff5d5d5c218bf50f.png3f45013d50e3d710eb335850b3063ad.png


e5dd0234a980b1fa5c3fd18abada145.png

7、学生信息管理系统

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

0cf2db8043378a7a78c3f25c7bdf2c4.png


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


d9ecfe5c2d7e0fae669d170e9d6eae3.png

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

2562951f865c3806e1455d8f5cfd673.png


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

07fb29d09b457f09b0ba8eac25924c3.png


其余详见下载。


8、图书管理系统

图书管理系统主要有以下功能:

 录入图书信息。

 实现删除功能,即输入图书号删除相应的记录。

 实现查找功能,即输入图书号或图书名查询该书相关信息。

 实现修改功能,即输入图书号或图书名修改相应信息。

 添加会员信息,只有会员才可借书。

 实现借书功能,即输入图书号及会员号进行借书。

 实现还书功能,还书时也同样需输入图书号及会员号。

 保存添加的图书信息。

 保存添加的会员信息。


图书管理系统主界面如图1所示。

e39dffcacc9bddc5a83272ea48159d5.png



说明:运行图书管理系统时,需要将代码中数据库连接字符串中的服务器地址修改为本地的MYSQL服务器地址,用户名和密码修改为本地登录MYSQL服务器的用户名和密码。


9、网络通信编程

程序主界面包含了4个功能选项,通过选择不同的选项执行不同的功能。程序首界面如图24.1所示。


a390bfb1b20f4a39896c5250b1be46c.png

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


8124928b7d702d098b29dc58372d1cf.png

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


e0c3c463cf99a079dce4eb63806f87f.png


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


0f5d855bc4c41ee95bbae1da3762a83.png

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



ad27f84be4be653cf7d31f6b32bb476.png

10、图书管理系统

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

edf9f533d8595caad3a5f58d22c1eaf.png


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

6e7ca5d201520303b99c0107a7f2b45.png


从上到下4行文字分别代表IP、用户名、密码、数据库名,读者可以依照自己的MySQL配置重新添加。(注意冒号后为的空白为tab)


11、商品管理系统

商品管理系统主要是对商品的基本信息进行增、删、改、查以及商品的插入的操作,以便用户可以快速地对这些信息进行管理。


(1)在机器上装好DEV-C++环境,读者在下载后直接双击安装。

(2)进入源码所在目录,选中源码右键选择选项“打开方式”,然后再选择子选项“DEV-C++IDE”,选中后出现如图23.1所示界面。


ccadd2bd4b6d4d43775abc0a2844e3c.png

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


4660b305eb565fb8e9f7a1a4fa2e40d.png


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


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
安全 虚拟化
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力。通过具体案例,展示了方案的制定和实施过程,强调了目标明确、技术先进、计划周密、风险可控和预算合理的重要性。
46 5
|
2月前
|
C语言
【数据结构】栈和队列(c语言实现)(附源码)
本文介绍了栈和队列两种数据结构。栈是一种只能在一端进行插入和删除操作的线性表,遵循“先进后出”原则;队列则在一端插入、另一端删除,遵循“先进先出”原则。文章详细讲解了栈和队列的结构定义、方法声明及实现,并提供了完整的代码示例。栈和队列在实际应用中非常广泛,如二叉树的层序遍历和快速排序的非递归实现等。
236 9
|
2月前
|
网络协议 物联网 数据处理
C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势
本文探讨了C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势。文章详细讲解了使用C语言实现网络通信程序的基本步骤,包括TCP和UDP通信程序的实现,并讨论了关键技术、优化方法及未来发展趋势,旨在帮助读者掌握C语言在网络通信中的应用技巧。
50 2
|
2月前
|
弹性计算 监控 数据库
制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程
本文通过一个制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程,展示了企业级应用上云的实践方法与显著优势,包括弹性计算资源、高可靠性、数据安全及降低维护成本等,为企业数字化转型提供参考。
63 5
|
2月前
|
存储 网络协议 物联网
C 语言物联网开发之网络通信与数据传输难题
本文探讨了C语言在物联网开发中遇到的网络通信与数据传输挑战,分析了常见问题并提出了优化策略,旨在提高数据传输效率和系统稳定性。
|
2月前
|
存储 搜索推荐 算法
【数据结构】树型结构详解 + 堆的实现(c语言)(附源码)
本文介绍了树和二叉树的基本概念及结构,重点讲解了堆这一重要的数据结构。堆是一种特殊的完全二叉树,常用于实现优先队列和高效的排序算法(如堆排序)。文章详细描述了堆的性质、存储方式及其实现方法,包括插入、删除和取堆顶数据等操作的具体实现。通过这些内容,读者可以全面了解堆的原理和应用。
104 16
|
2月前
|
搜索推荐 算法 C语言
【排序算法】八大排序(下)(c语言实现)(附源码)
本文继续学习并实现了八大排序算法中的后四种:堆排序、快速排序、归并排序和计数排序。详细介绍了每种排序算法的原理、步骤和代码实现,并通过测试数据展示了它们的性能表现。堆排序利用堆的特性进行排序,快速排序通过递归和多种划分方法实现高效排序,归并排序通过分治法将问题分解后再合并,计数排序则通过统计每个元素的出现次数实现非比较排序。最后,文章还对比了这些排序算法在处理一百万个整形数据时的运行时间,帮助读者了解不同算法的优劣。
144 7
|
2月前
|
搜索推荐 算法 C语言
【排序算法】八大排序(上)(c语言实现)(附源码)
本文介绍了四种常见的排序算法:冒泡排序、选择排序、插入排序和希尔排序。通过具体的代码实现和测试数据,详细解释了每种算法的工作原理和性能特点。冒泡排序通过不断交换相邻元素来排序,选择排序通过选择最小元素进行交换,插入排序通过逐步插入元素到已排序部分,而希尔排序则是插入排序的改进版,通过预排序使数据更接近有序,从而提高效率。文章最后总结了这四种算法的空间和时间复杂度,以及它们的稳定性。
122 8
|
2月前
|
C语言
【数据结构】二叉树(c语言)(附源码)
本文介绍了如何使用链式结构实现二叉树的基本功能,包括前序、中序、后序和层序遍历,统计节点个数和树的高度,查找节点,判断是否为完全二叉树,以及销毁二叉树。通过手动创建一棵二叉树,详细讲解了每个功能的实现方法和代码示例,帮助读者深入理解递归和数据结构的应用。
143 8
|
2月前
|
C语言 Windows
C语言课设项目之2048游戏源码
C语言课设项目之2048游戏源码,可作为课程设计项目参考,代码有详细的注释,另外编译可运行文件也已经打包,windows电脑双击即可运行效果
39 1