您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 基于Linux系统的学生信息管理系统
程序设计报告基于Linux系统的学生信息管理系统功能:在Linux系统下,实现学生信息的管理功能开发环境:LinuxUbuntu12.04,Intel64位处理器开发语言:C语言运行环境:普通PC机编译环境:gccMakefile本系统对学生信息进行管理,分有学生、老师、老板三种板块,不同权限的用户登录会进入不同的界面进行操作。系统主界面分为注册,登录,忘记密码,关于以及退出,如果没有这个系统的账号和密码可以进行注册,注册时候会问你要注册的权限是什么,并且根据你注册的权限进去相应的界面。登录时候需要输入账号以及密码,如果账号密码均正确将进入账号所属权限的界面;如果有错误,会根据错误类型提醒用户。忘记密码可通过管理员用户查看进行找回。关于则是一点具体信息。退出则会退出此程序。以下具体介绍每个权限中的具体功能:1.学生界面:学生的功能包括查看学生信息,考试,提交试卷,修改密码,返回以及退出的功能。将各个函数封装成一个box,然后在主函数中进行调用,具体代码如下:①box中的各函数:#includestu_box.h#includestdio.h#includestdlib.h#includestring.hstaticvoidinit_node(structstu_info*head,structstu_infoinfo){strcpy(head-name,info.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;}staticvoid__add(structstu_info*a,structstu_info*new,structstu_info*b){a-next=new;new-next=b;b-prev=new;new-prev=a;}staticintadd(structstu_info*head,structstu_infoinfo){structstu_info*new=NULL;new=(structstu_info*)malloc(sizeof(structstu_info));init_node(new,info);__add(head,new,head-next);return1;}staticintread_from_stdin(structstu_box*box){structstu_info*head=box-head;structstu_infoinfo;printf(\t\t\t\t\t\t请输入学生信息:\n);printf(\t\t\t\t\t\t例如:张山男23123456789136000000上海市嵌入式\n\t\t\t\t\t\t);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);return1;}staticintread_from_file(structstu_box*box){structstu_info*head=box-head;structstu_infoinfo;//1.fopenFILE*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){add(head,info);}fclose(fp);return0;}staticintedit(structstu_box*box){return1;}staticintdisplay(structstu_box*box){structstu_info*tmp=box-head;for(tmp=box-head-next;tmp!=box-head;tmp=tmp-next){printf(\t\t\t\t%s\t%s\t%d\t%s\t%s\t%s\t%s\n,tmp-name,tmp-sex,tmp-age,tmp-cid,tmp-tel,tmp-addr,tmp-object);}return1;}staticvoidinit_head(structstu_info*head){structstu_infoinfo={abc,男,22,123456789012345678,123456789,上海市,嵌入式};init_node(head,info);}staticintdel(structstu_box*box){charname[32];printf(\t\t\t\t\t\t请输入需要删除学生的姓名:\n\t\t\t\t\t\t);scanf(%s,name);structstu_info*tmp=box-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;}}return1;}staticintsave(structstu_box*box){structstu_info*head=box-head;structstu_info*tmp=NULL;//1.打开文件FILE*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%s\n,tmp-name,tmp-sex,tmp-age,tmp-cid,tmp-tel,tmp-addr,tmp-object);}//3.关闭文件fclose(fp);return0;}structstu_box*init_stu_box(){structstu_box*box=NULL;box=(structstu_box*)malloc(sizeof(structstu_box));//创建链表structstu_info*head=NULL;head=(structstu_info*)malloc(sizeof(structstu_info));init_head(head);box-head=head;box-edit=edit;box-del=del;box-display=display;box-save=save;box-readin=read_from_stdin;box-readfp=read_from_file;returnbox;}②主函数:#includeuser_box.h#includestdio.h#includestdlib.h#includeunistd.h#includetime.h#includeuser.h#includestu_box.hstaticvoiddisplay_menu(){//system(clear);printf(\t\t\t\t\t\t*****************************************\n);printf(\t\t\t\t\t\t**\n);printf(\t\t\t\t\t\t*1.查看学生信息*\n);printf(\t\t\t\t\t\t*2.考试*\n);printf(\t\t\t\t\t\t*3.提交试卷*\n);printf(\t\t\t\t\t\t*4.修改密码*\n);printf(\t\t\t\t\t\t*5.返回*\n);printf(\t\t\t\t\t\t*0.退出*\n);printf(\t\t\t\t\t\t**\n);printf(\t\t\t\t\t\t*****************************************\n);}voiddisplay_stu_info(structstu_box*box){box-readfp(box);system(clear);printf(\n\n\n\n\n);printf(\t\t\t\t*****学生信息*****\n);printf(\n\n\t\t\t\t+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n);box-display(box);printf(\t\t\t\t+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n);box-save(box);}//考试inttest(){//printf(__%s__\n,__func__);charpath[32];printf(\t\t\t\t\t\t请输入存放试卷的路径:\n\t\t\t\t\t\t);scanf(%s,path);//getchar();FILE*fp_s=NULL;fp_s=fopen(dat/test.txt,r+);if(fp_s==NULL){perror(fopen():fp_s);return-1;}FILE*fp_d=NULL;fp_d=fopen(path,w+);if(fp_d==NULL){perror(fopen():fp_d);return-1;}charc;while((c=fgetc(fp_s))!=EOF){fputc(c,fp_d);}fclose(fp_s);fclose(fp_d);return0;}//提交试卷intupload(structuser*u){charpath[32];printf(\t\t\t\t\t\t请输入存放答案的路径:\n\t\t\t\t\t\t);scanf(%s,path);FILE*fp_s=NULL;fp_s=fopen(path,r+);if(fp_s==NULL){perror(fopen():fp_s);return-1;}charstr[32];sprintf(str,%s%s%s,dat/,u-name,_ret.txt);FILE*fp_d=NULL;fp_d=fopen(str,w+);if(fp_d==NULL){perror(fopen():fp_d);return-1;}charc;while((c=fgetc(fp_s))!=EOF){fputc(c,fp_d);}fclose(fp_s);fclose(fp_d);return0;}//修改密码intmod_pd(){structuser_info_box*box1=init_user_box();box1-readfp(box1);box1-chmm(box1);box1-save(box1);return0;}intstu_main(structuser*u){//structuser_info_box*box1=init_u
本文标题:基于Linux系统的学生信息管理系统
链接地址:https://www.777doc.com/doc-5710359 .html