• 大小: 78KB
    文件类型: .c
    金币: 2
    下载: 2 次
    发布日期: 2021-06-23
  • 语言: C/C++
  • 标签: GTK  

资源简介

利用GTK工具包,用C语言实现图形化界面的学生成绩管理系统

资源截图

代码片段和文件信息

/*************************************************************************
    > File Name: main.c
    > Author: zhanghaoran
    > Mail: chilumanxi@gmail.com
    > Created Time: 2015年06月25日 星期四 20时03分00秒
 ************************************************************************/

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define OK 2
#define ERROR 1
typedef struct manager{ //管理员
char id[30];//管理员序号
char password[30];//管理员密码
}admin;

typedef struct score{   //学生成绩
char math[10];
char english[10];
char C_program[10];
char computer[10];
char PE[10];
/*
 * 高数 英语 C语言 计算机 体育
 */
}SCORE;

typedef struct student{  //学生信息
char id[30];//学号
char name[30];//姓名
char age[10];//年龄
char password[30];//密码
char classes[30];//班级
SCORE score;//学生课程成绩
char rank[5];//总分排名
struct student *prev;//链表前一结点
struct student *next;//链表后一结点

}stu;

typedef struct login{    //登录所需
GtkWidget *window;   //登录窗口
GtkWidget *id;  //学号
GtkWidget *password; // 密码
GtkWidget *identify_code;//验证码
GtkWidget *label;    //标签
GtkWidget *radio;    //选项
}LOGIN;

typedef struct add{      //添加功能所需全局变量,参见上面20行
GtkWidget *window;
GtkWidget *id;
GtkWidget *name;
GtkWidget *password;
GtkWidget *classes;
GtkWidget *score_math;
GtkWidget *score_english;
GtkWidget *score_C_program;
GtkWidget *score_computer;
GtkWidget *score_PE;
GtkWidget *age;
}ADD;

typedef struct del{ //删除功能
GtkWidget *window;//删除窗口
GtkWidget *entry;//文本框
}DEL;

typedef struct save{      //存储窗口
GtkWidget *window;
}SAVE;

typedef struct inq{       //查看学生信息
GtkWidget *window;    
GtkWidget *radio;
GtkWidget *entry;  //参见上面10行
}INQ;

typedef struct change{ //管理员更改学生信息功能所需全局变量
GtkWidget *window;
GtkWidget *entry;
GtkWidget *id;
GtkWidget *name;
GtkWidget *password;
GtkWidget *classes;
GtkWidget *score_math;
GtkWidget *score_english;
GtkWidget *score_C_program;
GtkWidget *score_computer;
GtkWidget *score_PE;
GtkWidget *age;
GtkWidget *new_password;//新密码
GtkWidget *re_password; //再次输入的密码
}REV;

typedef struct sort{ //排序功能
GtkWidget *window; 
GtkWidget *radio;
}SORT;

typedef struct pro{
LOGIN *login;          //对管理员功能的整体定义
ADD *add;
DEL *del;
REV *change;
INQ *inq;
SAVE *save;
SORT *sort;
}ADMIN;

char nameid[30];          //甄别是否是管理员
int chose;                //在选择按照什么方式进行排序或查询时需要
int count;                //登录错误次数
int flag;                 //是否更改了信息

stu *head;
stu *create();            //申请一个空间
int init_head(stu *head); //初始化链表
int length(stu *head);    //链表长度
int insert_end(stu *head stu *n); //尾插
int del_node(stu *head);  //删除结点函数
int insert_cur(stu *head char id[30] stu *n);  //在某个位置进行插入
int destory(stu *head);   //销毁链表
stu *find_id_exist(stu *head char id[30]);  //查询文件中id是否存在,返回位置,不存在返回NULL
stu *find_name_exist(stu *head char id[30]);//查询文件中名字是否存在,返回位置,不存在返回NULL
stu *find_rank_exist(stu *head char id[30]);//查询文件中该排名是否存在,返回位置,不存在返回NULL
stu *find_mat

评论

共有 条评论