资源简介
利用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
评论
共有 条评论