快递信息管理系统源代码c++_学生信息管理系统C语言版
C语言学生信息管理系统包括以下功能:
1、学生信息的整体注册
2、学生信息的修改
3、学生成绩信息的录入
4、学生信息的添加
5、恢复误删的学生信息
6、学生信息的删除
7、密码修改保存函数
8、学生信息的查询
9、密码修改函数
10、学生信息管理系统的菜单函数
编写一个学生管理系统,附有说明文档,可以任意添加学生,删除学生,编辑学生信息,并且具有保存和读入学生信息的功能。运行时请注意要将student.txt拷贝至Debug目录中,也就是与Exe文件是同级目录,它要作为数据库的角色出现。
程序主要实现思路:
①: 使用单链表实现本程序要求,单链表每个节点存储一个学生的信息。
②: 创建一个链表类(List),链表类可实现如下功能:创建链表,插入节点,删除节点,编辑节点,显示节点,保存链表信息等功能,读入数据文件等功能(详细说明请查看源代码)。
③: 创建一个操作类(Operater),操作类实现如下功能:显示菜单,操作链表。
源码目录结构图:
源码展示:
#include "stdio.h"
#include "malloc.h"
#include "string.h"
#include "stdlib.h"
#include "conio.h"
#define M 3
struct student
{ char num[10]; /* 学生的学号 */ char name[20]; /* 学生的姓名 */ char sex[5]; /* 学生的性别 */ int age; /* 学生的年龄 */ char birth[20]; /* 学生的出生年月 */ long tele; /* 学生的电话号码 */ char addr[30]; /* 学生的地址 */ char party[10]; /* 学生是否为党员 */ float score[M]; /* 学生各门学科成绩 */ float total; /* 学生的学科成绩总分 */ struct student *next; }stud[100];
struct secret
{ char user[30]; char code[30]; }use[100];
int len; //学生人数 /
/*学生信息写入到文件中-----系统函数*/
/
void writetxt(struct student *head)
{ struct student *p; p=head; FILE *fp; fp=fopen("d://student.txt","wb"); if(fp==NULL) { printf("cannot open"); return ; } while(p!=NULL) { fwrite(p,sizeof(struct student),1,fp); p=p->next; } fclose(fp); } /
/* 学生信息的整体注册*/
/
struct student *create( )
{ char ch; char ok; int i; struct student *p,*p1,*head,*p2; FILE *fp; fp=fopen("d://student.txt","rb"); if(fp==NULL) { printf("/n 文件还不存在,是否创建?(Y/N)/n"); ch=getchar(); len=1; scanf("%c",&ok); if(ok=='Y'||ok=='y') { p1=p2=(struct student *) malloc(sizeof(struct student)); if((len)<10) printf("请输入0%d的学号:",len); else printf("请输入%d的学号:",len); scanf("%s",p1->num); if((len)<10) printf("请输入0%d的姓名:",len); else printf("请输入%d的姓名:",len); scanf("%s",p1->name); if((len)<10) printf("请输入0%d的性别:",len); else printf("请输入%d的性别:",len); scanf("%s",p1->sex); ch=getchar(); if((len)<10) printf("请输入0%d的年龄:",len); else printf("请输入%d的年龄:",len); scanf("%d",&p1->age); if((len)<10) printf("请输入0%d的生日:",len); else printf("请输入%d的生日:",len); scanf("%s",p1->birth); if((len)<10) printf("请输入0%d的电话:",len); else printf("请输入%d的电话号:",len); scanf("%ld",&p1->tele); if((len)<10) printf("请输入0%d的地址:",len); else printf("请输入%d的地址:",len); scanf("%s",p1->addr); if((len)<10) printf("请输入0%d是否为党员:",len); else printf("请输入%d是否为党员:",len); scanf("%s",p1->party); head=NULL; while(strcmp(p1->num,"0")!=0) { len++; if(head==NULL) head=p1=p2; else p2->next=p1; p2=p1; p1=(struct student *) malloc(sizeof(struct student)); if((len)<10) printf("请输入0%d的学号:",len); else printf("请输入%d的学号:",len); scanf("%s",p1->num); if((len)<10) printf("请输入0%d的姓名:",len); else printf("请输入%d的姓名:",len); scanf("%s",p1->name); if((len)<10) printf("请输入0%d的性别:",len); else printf("请输入%d的性别:",len); scanf("%s",p1->sex); ch=getchar(); if((len)<10) printf("请输入0%d的年龄:",len); else printf("请输入%d的年龄:",len); scanf("%d",&p1->age); if((len)<10) printf("请输入0%d的生日:",len); else printf("请输入%d的生日:",len); scanf("%s",p1->birth); if((len)<10) printf("请输入0%d的电话:",len); else printf("请输入%d的电话号:",len); scanf("%ld",&p1->tele); if((len)<10) printf("请输入0%d的地址:",len); else printf("请输入%d的地址:",len); scanf("%s",p1->addr); if((len)<10) printf("请输入0%d是否为党员:",len); else printf("请输入%d是否为党员:",len); scanf("%s",p1->party); } p2->next=NULL; writetxt(head); return (head); } } if(ok=='N'||ok=='n') { printf("请重新选择/n"); return NULL; } else { printf("/n 文件已经存在/n"); fp=fopen("d://student.txt","rb"); p=stud; for(i=0;!feof(fp);i++) fread(stud+i,sizeof(struct student),1,fp); len=i-1; printf(" 文件里含有%d条学生信息/n",len); printf("/n 是否使用已经存在的学生数据?(Y/N)/n"); ch=getchar(); scanf("%c",&ok); if(ok=='Y'||ok=='y') { head=p1=p2=NULL; fp=fopen("d://student.txt","rb"); if(fp==NULL) { printf("open error/n"); return NULL; } else { printf("学号 姓名 性别 年龄 出生年月 电话号码 地址 是否党员/n"); for(i=0;i<len;i++) { p1=(struct student *)malloc(sizeof(struct student)); fread(p1,sizeof(struct student),1,fp); if(head==NULL) head=p2=p1; else p2->next=p1; p2=p1; printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p1->num,p1->name,p1->sex,p1->age,p1->birth,p1->tele,p1->addr,p1->party); } fclose(fp); return(head); } } if(ok=='N'||ok=='n') { len=1; p1=p2=( struct student *) malloc(sizeof(struct student )); if((len)<10) printf("请输入0%d的学号:",len); else printf("请输入%d的学号:",len); scanf("%s",p1->num); if((len)<10) printf("请输入0%d的姓名:",len); else printf("请输入%d的姓名:",len); scanf("%s",p1->name); if((len)<10) printf("请输入0%d的性别:",len); else printf("请输入%d的性别:",len); scanf("%s",p1->sex); ch=getchar(); if((len)<10) printf("请输入0%d的年龄:",len); else printf("请输入%d的年龄:",len); scanf("%d",&p1->age); if((len)<10) printf("请输入0%d的生日:",len); else printf("请输入%d的生日:",len); scanf("%s",p1->birth); if((len)<10) printf("请输入0%d的电话:",len); else printf("请输入%d的电话号:",len); scanf("%ld",&p1->tele); if((len)<10) printf("请输入0%d的地址:",len); else printf("请输入%d的地址:",len); scanf("%s",p1->addr); if((len)<10) printf("请输入0%d是否为党员:",len); else printf("请输入%d是否为党员:",len); scanf("%s",p1->party); head=NULL; while(strcmp(p1->num,"0")!=0) { if(head==NULL) head=p1=p2; else p2->next=p1; p2=p1; p1=(struct student *) malloc(sizeof(struct student)); if((len)<10) printf("请输入0%d的学号:",len); else printf("请输入%d的学号:",len); scanf("%s",p1->num); if((len)<10) printf("请输入0%d的姓名:",len); else printf("请输入%d的姓名:",len); scanf("%s",p1->name); if((len)<10) printf("请输入0%d的性别:",len); else printf("请输入%d的性别:",len); scanf("%s",p1->sex); ch=getchar(); if((len)<10) printf("请输入0%d的年龄:",len); else printf("请输入%d的年龄:",len); scanf("%d",&p1->age); if((len)<10) printf("请输入0%d的生日:",len); else printf("请输入%d的生日:",len); scanf("%s",p1->birth); if((len)<10) printf("请输入0%d的电话:",len); else printf("请输入%d的电话号:",len); scanf("%ld",&p1->tele); if((len)<10) printf("请输入0%d的地址:",len); else printf("请输入%d的地址:",len); scanf("%s",p1->addr); if((len)<10) printf("请输入0%d是否为党员:",len); else printf("请输入%d是否为党员:",len); scanf("%s",p1->party); } p2->next=NULL; writetxt(head); } return (head); }
} /*学生信息的修改*/ struct student *change(struct student *head)
{ struct student *p=head; int age,choose,m; long tele; char num[10]; char ch,yes,sex[5],birth[20],addr[30],party[10]; char *p1; if(head==NULL) { printf("原链表为空"); return NULL; } else { while(1) { printf("请输入学号/n"); scanf("%s",num); p=head; while(p!=NULL&&strcmp(p->num,num)!=0) { p=p->next; if(p==NULL) { printf("该学生不存在/n"); break; } if(strcmp(p->name,"0")==0) { printf("该学生已不存在/n"); break; } } m=0; while(1) { if(p==NULL) break; if(strcmp(p->name,"0")==0) break; printf("请选择1.性别 2.年龄 3.出生日期4.电话 5.家庭住址6.党员/n"); scanf("%d",&choose); if(choose==1) { printf("请输入新的性别:/n"); scanf("%s",&sex); p1=sex; strcpy(p->sex,p1); printf("是否继续修改本学生学生其他信息Y/N/n"); ch=getchar(); scanf("%c",&yes); if(yes=='N'||yes=='n') break; } if(choose==2) { printf("请输入新的年龄:/n"); scanf("%d",&age); p->age=age; printf("是否继续修改本学生学生其他信息Y/N/n"); ch=getchar(); scanf("%c",&yes); if(yes=='N'||yes=='n') break; } if(choose==3) { printf("请输入新的出生日期:/n"); scanf("%s",birth); p1=birth; strcpy(p->birth,p1); printf("是否继续修改本学生学生其他信息Y/N/n"); ch=getchar(); scanf("%c",&yes); if(yes=='N'||yes=='n') break; } if(choose==4) { printf("请输入新的电话:/n"); scanf("%d",&tele); p->tele=tele; printf("是否继续修改本学生学生其他信息Y/N/n"); ch=getchar(); scanf("%c",&yes); if(yes=='N'||yes=='n') break; } if(choose==5) { printf("请输入新的家庭住址:/n"); scanf("%s",addr); p1=addr; strcpy(p->addr,p1); printf("是否继续修改本学生学生其他信息Y/N/n"); ch=getchar(); scanf("%c",&yes); if(yes=='N'||yes=='n') break; } if(choose==6) { printf("请输入'是'或'否':/n"); scanf("%s",party); p1=party; strcpy(p->party,p1); printf("是否继续修改本学生学生其他信息Y/N/n"); ch=getchar(); scanf("%c",&yes); if(yes=='N'||yes=='n') break; } } printf("是否继续修改其他学生Y/N/n"); ch=getchar(); scanf("%c",&yes); if(yes=='N'||yes=='n') break; } writetxt(head); p=head; while(p!=NULL) { printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p->num,p->name,p->sex,p->age,p->birth,p->tele,p->addr,p->party); p=p->next; } return head; }
}
/
/*学生成绩信息的录入*/
/
struct student *chengji(struct student *head)
{ FILE *fp; struct student *p1,*p; int i; float sum=0; fp=fopen("d://student1.txt","wb"); p1=(struct student *)malloc(sizeof(struct student)); p1=head; while(p1!=NULL) { if(strcmp(p1->name,"0")==0) { printf("该学生不存在/n"); p1=p1->next; continue; } printf("请输入学号为%s学生的高数、C语言、英语成绩:/n",p1->num); for(i=0;i<M;i++) { scanf("%f",&p1->score[i]); sum+=p1->score[i]; } p1->total=sum; sum=0; fwrite(p1,sizeof(struct student),1,fp); p1=p1->next; } fclose(fp); writetxt(head); p=head; printf("学号 姓名 性别 年龄 出生年月 电话号码 地址 是否党员/n"); while(p!=NULL) { printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p->num,p->name,p->sex,p->age,p->birth,p->tele,p->addr,p->party); p=p->next; } return(head);
}
/
/*学生信息的添加*/
/
struct student *insert(struct student *head)
{ char ch,ok; struct student *p,*p0,*p1; p=p1=head; while(1) { if((len+1)<10) printf("您的学号为0%d/n",len+1); else printf("您的学号为%d/n",len+1); p0=(struct student *)malloc(sizeof(struct student)); len++; if((len)<10) printf("请输入0%d的学号:",len); else printf("请输入%d的学号:",len); scanf("%s",p0->num); if((len)<10) printf("请输入0%d的姓名:",len); else printf("请输入%d的姓名:",len); scanf("%s",p0->name); if((len)<10) printf("请输入0%d的性别:",len); else printf("请输入%d的性别:",len); scanf("%s",p0->sex); ch=getchar(); if((len)<10) printf("请输入0%d的年龄:",len); else printf("请输入%d的年龄:",len); scanf("%d",&p0->age); if((len)<10) printf("请输入0%d的生日:",len); else printf("请输入%d的生日:",len); scanf("%s",p0->birth); if((len)<10) printf("请输入0%d的电话:",len); else printf("请输入%d的电话号:",len); scanf("%ld",&p0->tele); if((len)<10) printf("请输入0%d的地址:",len); else printf("请输入%d的地址:",len); scanf("%s",p0->addr); if((len)<10) printf("请输入0%d是否为党员:",len); else printf("请输入%d是否为党员:",len); scanf("%s",p0->party); while(p->next!=NULL) p=p->next; p->next=p0; p0->next=NULL; printf("是否继续添加Y/N/n") ; ch=getchar(); scanf("%c",&ok); if(ok=='y'||ok=='Y')len++; else { printf("您需要重新进行1的操作来完成该学生信息的注册,谢谢!/n"); break; } } p=head; while(p!=NULL) { printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p->num,p->name,p->sex,p->age,p->birth,p->tele,p->addr,p->party); p=p->next; } writetxt(head); return(head); }
/
/* 恢复误删的学生信息*/
/
struct student *recover(struct student *head)
{ FILE *fp; struct student *p1,*p; p=p1=(struct student*)malloc(sizeof(struct student)); char ch; char num[10]; p1=head; printf("input the recover number:"); scanf("%s",num); fp=fopen("d://recycle.txt","rb"); if(fp==NULL) { printf("回收站为空!/n"); return NULL; } else { printf("是否将回收站的数据还原?Y/N /n"); ch=getchar(); ch=getchar(); if(ch=='n'||ch=='N') printf("不需要还原!"); else { while(1) { if(strcmp(p1->num,num)==0) break; else p1=p1->next; } while(!feof(fp)) { fread(p,sizeof(struct student),1,fp); if(strcmp(p1->num,p->num)==0) { strcpy(p1->name,p->name); strcpy(p1->sex,p->sex); p1->age=p->age; strcpy(p1->birth,p->birth); p1->tele=p->tele; strcpy(p1->addr,p->addr); strcpy(p1->party,p->party); printf("dddddddddddddddddddd/n"); break; } } } writetxt(head); p=head; while(p!=NULL) { printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p->num,p->name,p->sex,p->age,p->birth,p->tele,p->addr,p->party); p=p->next; }fclose(fp); } return head;
}
/
/* 学生信息的删除*/
/
struct student *del(struct student *head)
{ FILE *fp; struct student *p1,*p2,*p0; p1=p2=head; char ch; char num[10]; printf("input the delete number:"); scanf("%s",num); if(head==NULL) printf("nothing to delete!"); else { while(p1!=NULL) { if(strcmp(p1->num,num)!=0) { p2=p1; p1=p1->next; } if(strcmp(p1->num,num)==0) { p0=p1; printf("是否永久删除该学生的信息?Y/N /n"); ch=getchar(); ch=getchar(); if(ch=='y'||ch=='Y') { printf("该学生信息已经成功从磁盘删除!/n"); if(p1==head) { p0=p1; head=p1->next; p1=p2=head; p1=p2->next; } else { p0=p1; p2->next=p1->next; p1=p2->next; } break; } else { fp=fopen("d://recycle.txt","ab+"); if(fp==NULL) { printf("cannot open the file!"); return NULL; } fwrite(p0,sizeof(struct student),1,fp); strcpy(p1->name,"0"); strcpy(p1->sex,"0"); p1->age=0; strcpy(p1->birth,"0"); p1->tele=0; strcpy(p1->addr,"0"); strcpy(p1->party,"0"); printf("学生信息已放入回收站!/n"); fclose(fp); printf("如果想恢复刚刚删除的学生信息,请输入'Y'or'y'/n"); printf("如果不想恢复刚刚删除的学生信息,请输入'N'or'n'/n"); ch=getchar(); ch=getchar(); if(ch=='y'||ch=='Y') { head=recover(head); break; } if(ch=='n'||ch=='N') break ; } } } } writetxt(head); return head;
}
/
/* 密码修改保存函数*/ void write()
{ FILE *fp; struct secret p; int i; fp=fopen("d://mima.txt","wb"); if(fp==NULL) { printf("cannot open!"); } for(i=0;i<=len;i++) { p=use[i]; fwrite(&p,sizeof(struct secret),1,fp); } fclose(fp); } /*学生信息的查询*/ void research(struct student *head)
{ struct student *p1,*p2; p1=p2=head; int i,j,l=1,k=0; char sex[20],party[10],ch,yes; int age; char num[10],name[20]; printf("选择:1.模糊查询 2.精确查询:"); scanf("%d",&i); if(i==1) { while(l==1) { printf("选择:1.性别 2.年龄 3.是否党员:"); scanf("%d",&j); if(j==1) { p1=head; printf("输入性别:"); scanf("%s",sex); ch=getchar(); while(p1!=NULL) { if(strcmp(p1->sex,sex)==0) { printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p1->num,p1->name,p1->sex,p1->age,p1->birth,p1->tele,p1->addr,p1->party); p1=p1->next; continue; } k++; if(k==3) printf("该学生不存在!/n"); p1=p1->next; } printf("是否继续查询学生其他信息Y/N/n"); scanf("%c",&yes); printf("yes=%c/n",yes); if(yes=='N'||yes=='n') break; if(yes=='Y'||yes=='y') k=0; } if(j==2) { p1=head; printf("输入年龄:"); scanf("%d",&age); while(p1!=NULL) { if(p1->age==age) { printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p1->num,p1->name,p1->sex,p1->age,p1->birth,p1->tele,p1->addr,p1->party); p1=p1->next; continue; } k++; if(k==3) printf("该学生不存在!/n"); p1=p1->next; } printf("是否继续查询学生其他信息Y/N/n"); ch=getchar(); scanf("%c",&yes); if(yes=='N'||yes=='n') break; if(yes=='Y'||yes=='y') k=0; } if(j==3) { p1=head; printf("输入是否党员:"); scanf("%s",party); ch=getchar(); while(p1!=NULL) { if(strcmp(p1->party,party)==0) { printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p1->num,p1->name,p1->sex,p1->age,p1->birth,p1->tele,p1->addr,p1->party); p1=p1->next; continue; } k++; if(k==3) printf("该学生不存在!/n"); p1=p1->next; } printf("是否继续查询学生其他信息?Y/N/n"); scanf("%c",&yes); if(yes=='N'||yes=='n') break; if(yes=='Y'||yes=='y') k=0; } } } if(i==2) { printf("请选择细查的关键字:1.学生学号 2.学生姓名:"); scanf("%d",&j); if(j==1) { while(1) { p1=head; printf("输入学生的学号:"); scanf("%5s",num); while(p1!=NULL) { if(strcmp(p1->num,num)==0) { printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p1->num,p1->name,p1->sex,p1->age,p1->birth,p1->tele,p1->addr,p1->party); p1=p1->next;continue; } k++; if(k==3) printf("该学生不存在!/n"); p1=p1->next; } printf("是否继续查询其他学生信息?Y/N/n"); ch=getchar(); scanf("%c",&yes); if(yes=='N'||yes=='n') break; if(yes=='Y'||yes=='y') k=0; } } if(j==2) { while(1) { p1=head; printf("输入学生的名字:"); scanf("%s",name); while(p1!=NULL) { if(strcmp(p1->name,name)==0) { printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",p1->num,p1->name,p1->sex,p1->age,p1->birth,p1->tele,p1->addr,p1->party); p1=p1->next;continue; } k++; if(k==3) printf("该学生不存在!/n"); p1=p1->next; } printf("是否继续查询其他学生信息?Y/N/n"); ch=getchar(); scanf("%c",&yes); if(yes=='N'||yes=='n') break; if(yes=='Y'||yes=='y') k=0; } } }
} /
void research1(char num[])
{ int i; for(i=0;i<=len;i++) if(strcmp(stud[i].num,num)==0) printf("%2s%15s%10s%10d%15s%8ld%10s%8s/n",stud[i].num,stud[i].name,stud[i].sex,stud[i].age,stud[i].birth,stud[i].tele,stud[i].addr,stud[i].party);
} /
/* 密码修改函数-*/ void mimacli()
{ char use1[30],mima[30],newmima[30],ch; int i,j=0; printf("输入用户名:/n"); scanf("%s",use1); printf("输入密码:/n"); while(1) { mima[j]=getch(); if(mima[j]==13) break; putchar('*'); j++; } mima[j]='/0'; printf("/n"); for(i=0;i<=len;i++) { if(strcmp(stud[i].name,"0")==0) { printf("该学生不存在/n"); continue; } if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)==0) { printf("输入新密码:/n"); ch=getchar(); j=0; while(1) { newmima[j]=getch(); if(newmima[j]==13) break; putchar('*'); j++; } newmima[j]='/0'; printf("/n"); strcpy(use[i].code,newmima); write(); for(i=0;i<=len;i++){ printf("///n"); printf("%s ",use[0].user); printf("%s/n",use[0].code); printf("///n");} break; } if(strcmp(use1,use[1].user)<0||strcmp(use1,use[len].user)>0) { printf("**************************************/n"); printf(" 4用户名错误 /n"); printf("***************************************/n"); break; } if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)!=0) { printf("**************************************/n"); printf(" 密码错误 /n"); printf("***************************************/n"); break; } }
}
/
/* 学生信息管理系统的菜单函数-系统函数*/ int menu()
{ int sn,i,j=0; char use1[30]; char mima[30]; int m=0; printf(" 学生信息管理系统/n"); printf("=========================================/n"); printf(" 1.学生信息的整体注册/n"); printf(" 2.学生信息的修改/n"); printf(" 3.学生信息的添加/n"); printf(" 4.学生信息的删除/n"); printf(" 5.学生成绩信息的录入/n"); printf(" 6.学生信息的查询/n"); printf(" 7.访问者密码的修改/n"); printf(" 8.恢复误删学生信息/n"); printf(" 0.退出学生信息管理系统/n"); printf("==========================================/n"); printf("请选择0-8:/n"); while(1) { scanf("%d",&sn); if(sn==7) for(i=1;i<=len;i++) { strcpy(use[i].user,stud[i-1].num ); strcpy(use[i].code,stud[i-1].num ); } if(sn>1&&sn<7||sn==8) { printf("请输入您的用户名:"); scanf("%s",use1); printf("请输入您的密码:"); while(1) { mima[j]=getch(); if(mima[j]==13) break; putchar('*'); j++; } mima[j]='/0'; printf("/n"); if(sn==6) if(strcmp(use1,use[0].user)!=0) { for(i=0;i<=len;i++) { if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)==0) { if(i!=0) { printf("**************************************/n"); printf(" 您只能查找您本人的信息 /n"); printf("***************************************/n"); research1(use1); break; } } if(strcmp(use1,use[0].user)==0&&strcmp(use[0].code,mima)!=0) { printf("**************************************/n"); printf(" 密码错误 /n"); printf("***************************************/n"); while(1) { m++; if(m<3) { printf("重新输入:/n"); printf("请输入您的用户名:"); scanf("%s",use1); printf("请输入您的密码:"); j=0; while(1) { mima[j]=getch(); if(mima[j]==13) break; putchar('*'); j++; } mima[j]='/0'; if(strcmp(use1,use[0].user)==0&&strcmp(use[0].code,mima)!=0) { printf("**************************************/n"); printf(" 密码错误 /n"); printf("***************************************/n"); } } else { sn=0; break; } } sn=0; break; } if(strcmp(use1,use[1].user)<0||strcmp(use1,use[len].user)>0) { printf("**************************************/n"); printf(" 3用户名错误 /n"); printf("***************************************/n"); sn=0; break; } if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)!=0) { printf("**************************************/n"); printf(" 密码错误 /n"); printf("***************************************/n"); while(1) { m++; if(m<3) { if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)==0) { printf("**************************************/n"); printf(" 您没有权限来操作 /n"); printf("***************************************/n"); sn=0; break; } printf("重新输入:/n"); printf("请输入您的用户名:"); scanf("%s",use1); printf("请输入您的密码:"); j=0; while(1) { mima[j]=getch(); if(mima[j]==13) break; putchar('*'); j++; } mima[j]='/0'; printf("/n"); if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)!=0) { printf("**************************************/n"); printf(" 密码错误 /n"); printf("***************************************/n"); } else { printf("**************************************/n"); printf(" 欢迎您登陆本系统 /n"); printf("***************************************/n"); research1(use1); break; } } else { sn=0; break; } } } } } for(i=0;i<=len;i++) { if(sn==6) if(strcmp(use1,use[0].user)!=0) { sn=0; break; } if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)==0) { if(i!=0) { printf("**************************************/n"); printf(" 您没有权限来操作 /n"); printf("***************************************/n"); sn=0; break; } else { printf("**************************************/n"); printf(" 欢迎您登陆本系统 /n"); printf("***************************************/n"); break; } } if(strcmp(use1,use[0].user)==0&&strcmp(use[0].code,mima)!=0) { printf("**************************************/n"); printf(" 密码错误 /n"); printf("***************************************/n"); while(1) { m++; if(m<3) { printf("重新输入:/n"); printf("请输入您的用户名:"); scanf("%s",use1); printf("请输入您的密码:"); j=0; while(1) { mima[j]=getch(); if(mima[j]==13) break; putchar('*'); j++; } mima[j]='/0'; printf("/n"); if(strcmp(use1,use[0].user)==0&&strcmp(use[0].code,mima)!=0) { printf("**************************************/n"); printf(" 密码错误 /n"); printf("***************************************/n"); } else { printf("**************************************/n"); printf(" 欢迎您登陆本系统 /n"); printf("***************************************/n"); break; } } else { sn=0; break; } } break; } if(strcmp(use1,use[1].user)<0||strcmp(use1,use[len].user)>0) { printf("**************************************/n"); printf(" 用户名错误 /n"); printf("***************************************/n"); sn=0; break; } if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)!=0) { printf("**************************************/n"); printf(" 密码错误 /n"); printf("***************************************/n"); while(1) { m++; if(m<3) { if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)==0) { printf("**************************************/n"); printf(" 您没有权限来操作 /n"); printf("***************************************/n"); sn=0; break; } printf("重新输入:/n"); printf("请输入您的用户名:"); scanf("%s",use1); printf("请输入您的密码:"); j=0; while(1) { mima[j]=getch(); if(mima[j]==13) break; putchar('*'); j++; } mima[j]='/0'; printf("/n"); if(strcmp(use1,use[i].user)==0&&strcmp(use[i].code,mima)!=0) { printf("**************************************/n"); printf(" 密码错误 /n"); printf("***************************************/n"); } } else { sn=0; break; } } } } } if (sn<0 || sn>8) { printf("/n/t输入错误,重选0-8/n"); break; } else break; } return sn;
} /
/* 学生信息管理系统的主函数--系统函数*/
/
void main()
{ struct student *head; int i,j=0; while(1) { switch(menu()) { case 1: printf("**************************************/n"); printf(" 学生信息的整体注册 /n"); printf("***************************************/n"); head=create(); FILE *fp; struct secret p; fp=fopen("d://mima.txt","rb"); if(fp==NULL) printf("open error/n"); else { for(i=0;i<=len;i++) { fread(&p,sizeof(struct secret),1,fp); strcpy(use[i].user,p.user); strcpy(use[i].code,p.code); } fclose(fp); } break; case 2: printf("**************************************/n"); printf("学生信息的修改/n"); printf("**************************************/n"); change(head); break; case 3: printf("**************************************/n"); printf("学生信息的添加/n"); printf("**************************************/n"); head=insert(head); break; case 4: printf("**************************************/n"); printf("学生成绩信息的删除入/n"); printf("**************************************/n"); head=del(head); break; case 5: printf("**************************************/n"); printf("学生成绩信息的录入/n"); printf("**************************************/n"); head=chengji(head); break; case 6: printf("**************************************/n"); printf("学生信息的查询/n"); printf("**************************************/n"); research(head); break; case 7: printf("**************************************/n"); printf("访问者密码的修改/n"); printf("**************************************/n"); mimacli(); break; case 8: printf("**************************************/n"); printf("恢复误删信息/n"); printf("**************************************/n"); recover(head); break; case 0: printf("**************************************/n"); printf("退出学生信息管理系统/n"); printf("**************************************/n"); printf("The end./n"); return; default: printf("/n选择错误,请重选!/n"); getchar(); getchar(); } system("cls"); }
}
这是一款有关学生信息管理系统的源码,该系统是一个集成多功能的信息管理系统,有教师资料管理、学生管理、班级管理、专业管理、课程管理、成绩管理和院系管理功能模块,代码简单,适合新手入门练手!
最后,如果你想学C/C++编程可以私信小编“01”获取素材资料与开发工具和听课权限!
快递信息管理系统源代码c++_学生信息管理系统C语言版相关推荐
- 基于python的学生信息管理系统文献综述_学生信息管理系统的文献综述
基于 B/S 模式的成绩管理系统文献综述 1 .本课题研究的重要性和意义 目前,在学校里,随着高校规模的不断扩大和招生人数的不断增加,需要处理大量的 学生数据信息,越来越多的学校都需要自己的学生信息管 ...
- python学生信息管理系统项目总结_学生信息管理系统案例小结
周末拿最近学习的知识 (JDBC, Servlet, JSP) 做一个小案例, 本来周末就应该整理笔记的, 但是打球也不能耽误啊, 所以只好赶着在今天下班的时间, 做下记录. 技术准备 Java 基础 ...
- PHP MySQL学生宿舍管理系统源代码_php高校学生宿舍管理系统
本系统的最终用户为宿舍楼管理员,本宿舍楼的学生.根据我们日常生活中的经验,结合对自己学校宿舍楼管理老师的咨询和对同宿舍楼同学的了解,得出用户的下列实际要求: 应用技术:php +mysql数据库+ap ...
- 上海交通大学出版社python教材答案学生信息管理系统_学生信息管理系统(最终版)...
<学生信息管理系统.doc>由会员分享,可免费在线阅读全文,更多与<学生信息管理系统(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索. 1. ...
- 个人信息管理系统代码_学生信息管理系统(springboot + vue)
学生信息管理系统 零.基础 项目为前后分离项目 1.前端(front-end) 基于 vue-admin-template 开发 2.后端(rear-end) Jdk8 Maven3 MySQL5.7 ...
- c语言文件读写_学生信息管理系统(C语言\单向链表\文件读写)
最近在复习数据结构,早上刚复习完链表,就想到了学生信息管理系统这个经典的大作业,然后呢,花了一早上加一中午的功夫给重新实现了一遍,里面可能会有写的不好的地方,但也代表了我实现的一些想法,在这里我将分享 ...
- python学生信息管理系统课程设计报告_学生信息管理系统课程设计报告
一. 引言(简要说明设计题目的目的.意义.内容.主要任务等) 1 实验目的 在全面掌握< C 语言程序设计>课程的知识点的前提下,培养了我们分析实际问题的能力,并能够自己编写程序 实现对实 ...
- mysql学生管理系统毕业设计_学生信息管理系统的设计与实现(MyEclipse,MySQL)
学生信息管理系统的设计与实现(MyEclipse,MySQL)(任务书,开题报告,中期检查表,文献综述,毕业论文15000字,程序代码,MySQL数据库) 学生信息管理系统的开发工具是MyEclips ...
- python制作个人信息管理系统_python实现简易学生信息管理系统
本文实例为大家分享了python实现学生信息管理系统的具体代码,供大家参考,具体内容如下 简易学生信息管理系统主要功能有 1 录入学生信息 2 查找学生信息 3 删除学生信息 4 修改学生信息 5 排 ...
最新文章
- 书值 | 第 2 期:成为技术管理者,思维上应该如何转变?
- java 时间工具类 大于_Java 时间工具类
- window计算的chk在linux下可以读,Linux系统命令从入门到完全忘记(四)
- 日常 Python 编程优雅之道
- mysql5.7 非gtid同步
- linux串口环形缓冲区,能不能讲解下串口环形缓冲区的概念?
- 除了云原生,2021 年还有这八大趋势值得关注
- iptables基础概念
- python 指定时间内_python获取指定时间段内的随机不重复的时间点
- RocketMQ存储篇——整体结构以及MappedFile讲解
- AE光效效果插件:Trapcode Shine
- win10计算机错误代码,win10电脑更新失败提示错误代码0x80070424修复方法
- java开发app_使用java制作app教程
- pandoc输出中文pdf cmd命令记录
- 5G和车联网的本质联系
- 《Java 8实战》
- 《看板实战》读书笔记 XMIND版本
- stata:时间变量格式转换
- 计算机安全沙箱,360安全浏览器沙箱使用说明
- 【嵌入式07】定时器amp;PWM练习
热门文章
- One Order CLOSING date修改后的执行原理
- pricing data of Service order is copied from BP master data
- Tcode SCU3查看table log的error message - 如何查找necessary PFCG role
- Netweaver是如何判断哪些对象可以被增强的
- TCP服务器端和客户端建立连接 - 服务器端的回调处理
- ABAP和XML数据格式互相转换的两种方式
- 升级bigsur_升级 macOS Big Sur 后,程序监听端口报错
- 星号三角形python_python中的星号三角形
- c语言整数与平均值,编写求一组整数的和与平均值的程序
- 从前序与中序遍历序列构造二叉树Python解法