【linux下用C语言编写带图形界面的交通违章管理系统附带源代码】

编程入门 行业动态 更新时间:2024-10-04 13:28:31

【linux下用C语言编写带图形界面的交通违章<a href=https://www.elefans.com/category/jswz/34/1769858.html style=管理系统附带源代码】"/>

【linux下用C语言编写带图形界面的交通违章管理系统附带源代码】

linux下用C语言编写带图形界面的交通违章管理系统
下载地址:
由于源代码量过大,所以需要源代码的可以关注我私发给你,在编程过程中需要的软件不会下载或者使用都可以问我,过程中有任何不明白的问题都可以私发我,如果代码中存在问题也可指出,我会修改,非常感谢!!!
一、题目内容
用嵌入式Linux数据库编程,用C实现交通违章管理系统,通过图形化界面实现对机动车辆、驾驶员、交通警察、违章处罚、通知书的增、删、查、改四个操作,最后把所有内容显示在违章通知单上。

二、设计框架

(一)登陆界面
输入账号,密码后,如果账号密码匹配则进入系统,否则弹出错误提示框,提醒登陆用户账户或密码错误,请重新输入。

(二)功能界面

用户可选择相应的功能进行操作。功能界面分为机动车辆、驾驶员、交通警察、违章处罚、通知书、违章通知单。

(三)查询功能

机动车辆、驾驶员、交通警察、违章处罚、通知书五个大的模块,输入各自的编号,例如机动车辆就是输入车牌号,然后点击确定即可查看所有信息。

(四)添加功能

输入各项信息如果符合即可添加成功

(五)修改功能
输入你想修改的内容点击修改即可修改成功

(六)删除功能

只需要输入你想删除的编号点击确定即可删除

三、详细设计
(一)登陆界面
1.实现功能
输入账号,密码后,如果账号密码匹配则进入系统,否则弹出错误提示框,提醒登陆用户账户或密码错误,请重新输入。
2.设计思路
main()函数主要是画出用户文本框的和密码输入文本框,和一个“登陆”按钮,当用户按下确认是,就会触发按钮时间,调用callback_buttton()函数对按钮事件进行响应。初始设置用户名为:wyg,密码为:123456wyg。
3、成果展示

(二)功能界面
calllback_button()函数主要是对输入界面的响应。获取用户输入的账号和密码,并进行判断,如果匹配则进入功能界面,否则弹出提示框,提示用户密码或账号错误。功能界面主要是六个按钮,按钮被绑定相应的函数。
成果展示


(三)查询功能
在这里以机动车辆为例介绍
1.实现功能
在车牌号处输入你想查询的车牌号,即可查看机动车辆信息。包括车牌号,车型号,厂商名字,生产日期等。
2.设计思路
callback_button1()是对查看机动车辆信息按钮事件的响应,画出按输入车牌号查询的界面,包括机动车辆的所有信息。在这个界面中的“确定”按钮绑定函数lookfor(),并作出相应的处理。
lookfor()函数主要是打开交通违章管理数据库,并按照用户输入的车牌号,并根据车牌号信息生成相应的sql语句,通过数据库查询,如果没有查找到相关信息,则输出提示框提示用户查询失败,否则就将查询到的信息显示到界面中。
3.成果展示


(四)添加功能

1.实现功能
输在机动车辆信息添加模块中,我们先在每个选项中输入相应的值,最后按确认即可完成添加。
2.设计思路
callback_buttonc2()是对添加车辆信息添加按钮的事件响应,画出车辆插入的界面,包括车辆所有信息。在这个界面中的“确定”按钮绑定函数lookforc2(),并作出相应的处理。
lookforc1()函数主要获取用户的输入的车辆信息,如果某些选项没有输入,则表示此项为默认值,根据用户的输入信息处理成的数据库插入语句,用sqlite3_exec()执行sql语句,根据插入情况,弹出插入失败或成功的提示框。
3、成果展示

(五)修改功能
1.实现功能
我们通过此模块,我们可以对已存在的车辆信息进行更改,只需在相应的选项中按要求输入,即可完成更改。
2.设计思路
calllback_buttonc3()函数主要是对输入界面的车辆信息修改按钮响应。画出用户的车辆信息输入界面,具体的修改过程由本界面中“确认”按钮绑定函数lookforc3()完成。
lookforc3()函数的先根据输入的车牌号,查找相应的信息。在将从界面用户输入将要修改的信息,如果某项输入为空,则有查找出原来的信息项代替,根据这些信息形成sql插入语句,先把此车牌号的车辆信息删除,再将我们得到的sql语句用sqlite3_exec()完成插入,即可完成车辆的信息修改。
3、成果展示(对之前添加的陕A0000进行车型号的生产厂商还有时间的修改)

(六)删除功能
1、实现功能
在车牌号处输入车牌号,即可删除该车辆信息。包括车牌号、车型号、厂商名字、生产日期
2.设计思路
callback_buttonc4()是对删除车辆信息按钮事件的响应,画出按输入车牌号删除的界面,在这个界面中的“确定”按钮绑定函数lookforc4(),并作出相应的处理。
lookforc4()函数主要是打开交通违章管理数据库,并按照用户输入的车牌号,并根据车牌号信息生成相应的sql语句,通过数据库删除车辆信息,如果没有删除成功,则输出提示框提示用户删除失败,否则就将显示删除成功。
3、成果展示

四、违章通知单显示
前面只是举了机动车辆的增、删、查、改,还有四个模块功能需要实现了才可显示一个完整的通知单,只需要输入你想查询的处罚编号即可显示通知单所有信息。直接上成果展示


其他几个模块大致成果也展示一下



五、登录和登陆后的第一个源代码如下

int main(int argc,char* argv[])95 {96     GtkWidget *window;97     GtkWidget *label;98     GtkWidget *label1;99     GtkWidget *button1;100     GtkWidget *fixed;101     GtkWidget *entry1;102     GtkWidget *entry2;103     GtkWidget *entry[3];104 105     gtk_init(&argc,&argv);106     window = gtk_window_new(GTK_WINDOW_TOPLEVEL);107     gtk_window_set_title((GtkWindow*)window,"交通违章管理系统登陆");//标题108     gtk_widget_set_usize(window,400,200);109     gtk_container_set_border_width(GTK_CONTAINER(window),15);110     gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);111     chang_background(window, 400, 200, "wyg.jpg");112     //创建一个固定布局,创建标签和按钮并把标签按钮和行编辑都放在这个固定布局里面113     fixed = gtk_fixed_new();114     gtk_container_add(GTK_CONTAINER(window),fixed);115     label = gtk_label_new("用户");116     label1 = gtk_label_new("密码");117     button1 = gtk_button_new_with_label("登录");118     entry1 = gtk_entry_new_with_max_length(20);119     entry2 = gtk_entry_new_with_max_length(20);120     gtk_fixed_put(GTK_FIXED(fixed),label,80,40);121     gtk_fixed_put(GTK_FIXED(fixed),label1,80,80);122     gtk_fixed_put(GTK_FIXED(fixed),button1,265,120);123     gtk_fixed_put(GTK_FIXED(fixed),entry1,150,40);124     gtk_fixed_put(GTK_FIXED(fixed),entry2,150,80);125     gtk_entry_set_visibility(GTK_ENTRY(entry2),FALSE);//设置密码不可见,entry2是一个编辑密码行,所以肯定不可见126     entry[0] = entry1;127     entry[1] = entry2;128     entry[2] = window;129     //写回调函数130     g_signal_connect(G_OBJECT(button1),"pressed",G_CALLBACK(callback_button),&entry);131     g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(release_resourse),NULL);132     gtk_widget_show_all(window);133     gtk_main();134     return 0;135 }
void callback_button(GtkWidget *button,GtkWidget *entry[3])138 {139     char *name = NULL;140     char *password = NULL;141     gboolean btn_state;142     name = gtk_entry_get_text((GtkEntry *)entry[0]);143     password = gtk_entry_get_text((GtkEntry *)entry[1]);144     if(strcmp(name,"wyg") == 0 && strcmp(password,"123456wyg") == 0)//判断账号密码是否匹配145     {146         GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);147         gtk_window_set_title((GtkWindow*)window,"登陆成功");148         gtk_widget_set_usize(window,500,400);149         gtk_container_set_border_width(GTK_CONTAINER(window),15);150         GtkWidget *fixed = gtk_fixed_new();151         gtk_container_add(GTK_CONTAINER(window),fixed);152         gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);153         chang_background(window, 500, 400, "wyg1.jpg");154         //在登陆成功进去的页面放入该放的东西155         GtkWidget *button1;156         GtkWidget *button2;157         GtkWidget *button3;158         GtkWidget *button4;159         GtkWidget *button5;160         GtkWidget *button6;161         GtkWidget *label;162         button1 = gtk_button_new_with_label("机动车辆");163         button2 = gtk_button_new_with_label("驾驶员");164         button3 = gtk_button_new_with_label("交通警察");165         button4 = gtk_button_new_with_label("违章处罚");166         button5 = gtk_button_new_with_label("交通违章通知书");167         button6 = gtk_button_new_with_label("通知书");168         label = gtk_label_new("欢迎使用交通违章管理系统");169         gtk_fixed_put(GTK_FIXED(fixed),label,40,20);170         gtk_fixed_put(GTK_FIXED(fixed),button1,60,100);171         gtk_fixed_put(GTK_FIXED(fixed),button2,300,100);172         gtk_fixed_put(GTK_FIXED(fixed),button3,60,200);173         gtk_fixed_put(GTK_FIXED(fixed),button4,300,200);174         gtk_fixed_put(GTK_FIXED(fixed),button5,300,300);175         gtk_fixed_put(GTK_FIXED(fixed),button6,60,300);176         release_resourse(entry[2],NULL,NULL);177         g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(release_resourse),NULL);178         g_signal_connect(G_OBJECT(button1),"pressed",G_CALLBACK(callback_button1),NULL);                                                                                                                                                 179         g_signal_connect(G_OBJECT(button2),"pressed",G_CALLBACK(callback_button2),NULL);180         g_signal_connect(G_OBJECT(button3),"pressed",G_CALLBACK(callback_button3),NULL);181         g_signal_connect(G_OBJECT(button4),"pressed",G_CALLBACK(callback_button4),NULL);  182         g_signal_connect(G_OBJECT(button5),"pressed",G_CALLBACK(callback_button5),NULL);  183         g_signal_connect(G_OBJECT(button6),"pressed",G_CALLBACK(callback_button6),NULL);  184         gtk_widget_show_all(window);185         gtk_main();186     }

六、总结
总的来说虽然有机动车辆、驾驶员、交通警察、违章处罚、通知书五大模块的增删查改,看着挺多的,但是只要写出来一个模块的,其余四个实现逻辑一模一样,可能只是个别需要修改一下,需要进行数据库课程设计的特别适合,代码简单,不难理解,有需要可关注我,私聊我。

更多推荐

【linux下用C语言编写带图形界面的交通违章管理系统附带源代码】

本文发布于:2024-02-27 20:42:55,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1766300.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:管理系统   源代码   图形界面   语言   交通违章

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!