1、最新基于Linux系统的学生信息管理系统程序设计报告基于Linux系统的学生信息管理系统功能:在Linux系统下,实现学生信息的管理功能开发环境:Linux Ubuntu 12.04,Intel 64位处理器开发语言:C语言运行环境:普通PC机编译环境:gcc Makefile本系统对学生信息进行管理,分有学生、老师、老板三种板块,不同权限的用户登录会进入不同的界面进行操作。系统主界面分为注册,登录,忘记密码,关于以及退出,如果没有这个系统的账号和密码可以进行注册,注册时候会问你要注册的权限是什么,并且根据你注册的权限进去相应的界面。登录时候需要输入账号以及密码,如果账号密码均正确将进入账号所
2、属权限的界面;如果有错误,会根据错误类型提醒用户。忘记密码可通过管理员用户查看进行找回。关于则是一点具体信息。退出则会退出此程序。以下具体介绍每个权限中的具体功能:1.学生界面:学生的功能包括查看学生信息,考试,提交试卷,修改密码,返回以及退出的功能。将各个函数封装成一个box,然后在主函数中进行调用,具体代码如下:box中的各函数:#include stu_box.h#include #include #include static void init_node(struct stu_info *head, struct stu_info info) strcpy(head-name, in
3、fo.name); strcpy(head-sex, info.sex); head-age = info.age; strcpy(head-cid, info.cid); strcpy(head-tel, info.tel); strcpy(head-addr, info.addr); strcpy(head-object, info.object); head-next = head; head-prev = head;static void _add(struct stu_info *a, struct stu_info *new, struct stu_info *b) a-next
4、= new; new-next = b; b-prev = new; new-prev = a;static int add(struct stu_info *head, struct stu_info info) struct stu_info *new = NULL; new = (struct stu_info *)malloc(sizeof(struct stu_info); init_node(new, info); _add(head, new, head-next); return 1;static int read_from_stdin(struct stu_box *box)
5、 struct stu_info *head = box-head; struct stu_info info; printf(tttttt请输入学生信息:n); printf(tttttt例如:张山 男 23 123456789 136000000 上海市 嵌入式ntttttt); scanf(%s %s %d %s %s %s %s, info.name, info.sex, &info.age, info.cid, info.tel, info.addr, info.object); add(head, info); return 1;static int read_from_file(
6、struct stu_box *box) struct stu_info *head = box-head; struct stu_info info; /1.fopen FILE *fp = NULL; fp = fopen(dat/stu_info.dat, r+); if(fp = NULL) perror(fopen); return -1; while( (fscanf(fp, %s %s %d %s %s %s %s, info.name, info.sex, &info.age, info.cid, info.tel, info.addr, info.object) != EOF
7、) add(head, info); fclose(fp); return 0;static int edit(struct stu_box *box) return 1;static int display(struct stu_box *box) struct stu_info *tmp = box-head; for(tmp = box-head-next; tmp != box-head; tmp= tmp-next) printf(tttt%st%st%dt%st%st %st%sn, tmp-name, tmp-sex, tmp-age, tmp-cid, tmp-tel, tmp
8、-addr, tmp-object); return 1;static void init_head(struct stu_info *head) struct stu_info info = abc, 男, 22, 123456789012345678, 123456789, 上海市, 嵌入式; init_node(head, info);static int del(struct stu_box *box) char name32; printf(tttttt请输入需要删除学生的姓名:ntttttt); scanf(%s, name); struct stu_info *tmp = box
9、-head; for(tmp = box-head-next; tmp != box-head; tmp= tmp-next) if(strcmp(tmp-name, name) = 0) tmp-prev-next = tmp-next; tmp-next-prev = tmp-prev; init_head(tmp); free(tmp); break; return 1;static int save(struct stu_box *box) struct stu_info *head = box-head; struct stu_info *tmp = NULL; /1.打开文件 FI
10、LE *fp = NULL; fp = fopen(dat/stu_info.dat,w+); if(fp = NULL) perror(fopen(); return -1; for(tmp = head-next; tmp != head; tmp = tmp-next) /2.往文件里面写入 fprintf(fp, %s %s %d %s %s %s %sn, tmp-name, tmp-sex, tmp-age, tmp-cid, tmp-tel, tmp-addr, tmp-object); /3.关闭文件 fclose(fp); return 0; struct stu_box *
11、init_stu_box() struct stu_box *box = NULL; box = (struct stu_box *)malloc(sizeof(struct stu_box); /创建链表 struct stu_info *head = NULL; head = (struct stu_info *)malloc(sizeof(struct stu_info); init_head(head); box-head = head; box-edit = edit; box-del = del; box-display = display; box-save = save; bo
12、x-readin = read_from_stdin; box-readfp = read_from_file; return box;主函数:#include user_box.h#include #include #include #include #include user.h#include stu_box.hstatic void display_menu()/ system(clear); printf(tttttt*n); printf(tttttt* *n); printf(tttttt* 1. 查看学生信息 *n); printf(tttttt* 2. 考试 *n); pri
13、ntf(tttttt* 3. 提交试卷 *n); printf(tttttt* 4. 修改密码 *n); printf(tttttt* 5. 返回 *n); printf(tttttt* 0. 退出 *n); printf(tttttt* *n); printf(tttttt*n);void display_stu_info(struct stu_box *box) box-readfp(box); system(clear); printf(nnnnn); printf(tttt *学生信息* n); printf(nntttt+n); box-display(box); printf(tttt+n); box-save(box);/考
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1