Home
>
娄底企业文档管理制度
>
娄底成绩管理系统文档
娄底成绩管理系统文档

time:2020-08-04 11:37:03

author:重庆佰鼎科技有限公司

【Font size: big medium smail

本文由重庆佰鼎科技有限公司提供,重点介绍了成绩管理系统文档相关内容。重庆佰鼎科技有限公司专业提供企业文档管理制度,文软文档管理系统破解,产品开发项目文档管理规范等多项产品服务。本公司长期从事该行业多项服务支持,经过多年的发展,现已成为行业服务的佼佼者。

成绩管理系统文档 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

{

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

{

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”获取素材资料与开发工具和听课权限!

Reprint please indicate:http://trna.cnsoftweb.com/wdgl-3664.html