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