📄 xueshengshujukuguanli.c
字号:
case 3 :
case 2 :
case 1 :
case 0 :f++;break;
}
p=p->next;
}
printf("\n100persons:%d\n90-99persons:%d\n80-89persons:%d\n70-79persons:%d\n60-69persons:%d\nbellow60persons:%d\n",a,b,c,d,e,f);
}
/*学生主菜单*/
menu_select8()
{
char *menu[]={"******STUDENT MENU*****",
" 0. xiu gai mi ma",
" 1. cha xun",
" 2. xuan ke",
" 3. Quit"};
char s[3];
int c,i;
gotoxy(1,25);
printf("press any key enter menu......\n");
getch();
clrscr();
gotoxy(1,1);
textcolor(YELLOW);
textbackground(BLUE);
gotoxy(10,2);
putch(0xc9);
for(i=1;i<44;i++)
putch(0xcd);
putch(0xbb);
for(i=3;i<20;i++)
{
gotoxy(10,i);putch(0xba);
gotoxy(54,i);putch(0xba);
}
gotoxy(10,20);putch(0xc8);
for(i=1;i<44;i++)
putch(0xcd);
putch(0xbc);
window(11,3,53,19);
clrscr();
for(i=0;i<5;i++)
{
gotoxy(10,i+1);
cprintf("%s",menu[i]);
}
textbackground(BLACK);
window(1,1,80,25);
gotoxy(10,21);
do{
printf("\n Enter you choice(0~3):");
scanf("%s",s);
c=atoi(s);
}while(c<0||c>3);
return c;
}
/*学生查询菜单*/
menu_select9()
{
char *menu[]={"******STUDENT CHA XUN*****",
" 0. ji ben xin xi",
" 1. ke cheng biao",
" 2. zong cheng ji",
" 3. fan hui "};
char s[3];
int c,i;
gotoxy(1,25);
printf("press any key enter menu......\n");
getch();
clrscr();
gotoxy(1,1);
textcolor(YELLOW);
textbackground(BLUE);
gotoxy(10,2);
putch(0xc9);
for(i=1;i<44;i++)
putch(0xcd);
putch(0xbb);
for(i=3;i<20;i++)
{
gotoxy(10,i);putch(0xba);
gotoxy(54,i);putch(0xba);
}
gotoxy(10,20);putch(0xc8);
for(i=1;i<44;i++)
putch(0xcd);
putch(0xbc);
window(11,3,53,19);
clrscr();
for(i=0;i<5;i++)
{
gotoxy(10,i+1);
cprintf("%s",menu[i]);
}
textbackground(BLACK);
window(1,1,80,25);
gotoxy(10,21);
do{
printf("\n Enter you choice(0~3):");
scanf("%s",s);
c=atoi(s);
}while(c<0||c>3);
return c;
}
/*学生选课菜单*/
menu_select10()
{
char *menu[]={"******STUDENT XUAN KE*****",
" 0. xuan ke ",
" 1. tui ke",
" 2. fan hui"};
char s[3];
int c,i;
gotoxy(1,25);
printf("press any key enter menu......\n");
getch();
clrscr();
gotoxy(1,1);
textcolor(YELLOW);
textbackground(BLUE);
gotoxy(10,2);
putch(0xc9);
for(i=1;i<44;i++)
putch(0xcd);
putch(0xbb);
for(i=3;i<20;i++)
{
gotoxy(10,i);putch(0xba);
gotoxy(54,i);putch(0xba);
}
gotoxy(10,20);putch(0xc8);
for(i=1;i<44;i++)
putch(0xcd);
putch(0xbc);
window(11,3,53,19);
clrscr();
for(i=0;i<4;i++)
{
gotoxy(10,i+1);
cprintf("%s",menu[i]);
}
textbackground(BLACK);
window(1,1,80,25);
gotoxy(10,21);
do{
printf("\n Enter you choice(0~2):");
scanf("%s",s);
c=atoi(s);
}while(c<0||c>2);
return c;
}
/*普通修改密码*/
PASSWORD *modify_pw_sig(PASSWORD *h)
{
PASSWORD *p;
char s[11],pass[15],pass1[15],pass2[15];
clrscr();
printf("please scanf your num\n");
scanf("%s",s);
p=h;
while(strcmp(p->num,s)&&p!=NULL)
{
p=p->next;
}
if(p==NULL)
printf("\nlist num %s student\n",s);
else
{
printf("please scanf your password\n");
scanf("%s",pass);
if(strcmp(pass,p->psw))
{
printf("wrong password!\n");
return(h);
}
printf("********have found**********\n");
printf("|num | password \n");
printf("|----------|-------------- \n");
printf("|%-10s|%-15s\n", p->num,p->psw);
inputs("enter your new password:\n",pass1,15);
inputs("enter your new password again:\n",pass2,15);
if(strcmp(pass2,pass1))
{
printf("You didn't scanf the same new password!\n");
return(h);
}
strcpy(p->psw,pass2);
printf("You have success change your password Remember it!!\n");
}
save_pw(h);
return(h);
}
/*管理员密码修改界面*/
menu_select11()
{
char *menu[]={"******ADMIN MI MA XIU GAI*****", /*定义菜单字符串数组*/
" 0. xiu gai ben mi ma",
" 1. xiu gai xue sheng mi ma",
" 2. fan hui"}; /*退出*/
char s[3]; /*以字符形式保存选择号*/
int c,i; /*定义整形变量*/
gotoxy(1,25); /*移动光标*/
printf("press any key enter menu......\n"); /*压任一键进入主菜单*/
getch(); /*输入任一键*/
clrscr(); /*清屏幕*/
gotoxy(1,1); /*移动光标*/
textcolor(YELLOW); /*设置文本显示颜色为黄色*/
textbackground(BLUE); /*设置背景颜色为蓝色*/
gotoxy(10,2); /*移动光标*/
putch(0xc9); /*输出左上角边框┏*/
for(i=1;i<44;i++)
putch(0xcd); /*输出上边框水平线*/
putch(0xbb); /*输出右上角边框 ┓*/
for(i=3;i<20;i++)
{
gotoxy(10,i);putch(0xba); /*输出左垂直线*/
gotoxy(54,i);putch(0xba);
} /*输出右垂直线*/
gotoxy(10,20);putch(0xc8); /*输出左上角边框┗*/
for(i=1;i<44;i++)
putch(0xcd); /*输出下边框水平线*/
putch(0xbc); /*输出右下角边框┛*/
window(11,3,53,19); /* 制作显示菜单的窗口,大小根据菜单条数设计*/
clrscr(); /*清屏*/
for(i=0;i<4;i++) /*输出主菜单数组*/
{
gotoxy(10,i+1);
cprintf("%s",menu[i]);
}
textbackground(BLACK); /*设置背景颜色为黑色*/
window(1,1,80,25); /*恢复原窗口大小*/
gotoxy(10,21); /*移动光标*/
do{
printf("\n Enter you choice(0~2):"); /*在菜单窗口外显示提示信息*/
scanf("%s",s); /*输入选择项*/
c=atoi(s); /*将输入的字符串转化为整形数*/
}while(c<0||c>2); /*选择项不在0~14之间重输*/
return c; /*返回选择项,主程序根据该数调用相应的函数*/
}
/*数据库密码修改*/
PASSWORD *modify_pw(PASSWORD *h)
{
PASSWORD *p;
char s[11],pass1[15],pass2[15];
clrscr();
printf("please scanf the student's number which you want to change password:\n");
scanf("%s",s);
p=h;
while(strcmp(p->num,s)&&p!=NULL)
{
p=p->next;
}
if(p==NULL)
printf("\nlist num %s student\n",s);
else
{
printf("*****************************have found***************************\n");
printf("|no | password \n");
printf("|----------|-------------- \n");
printf("|%-10s|%-15s\n", p->num,p->psw);
inputs("enter new password:\n",pass1,15);
inputs("enter new password again:\n",pass2,15);
if(strcmp(pass2,pass1))
{
printf("You didn't scanf the same new password!\n");
return(h);
}
strcpy(p->psw,pass2);
printf("You have success change the student's password\n\n\nDon't forget to tell him/her!!\n");
}
save_pw(h);
return(h);
}
/*学生数据库排序*/
STUDENT *sort(STUDENT *h)
{
int i=0; /*保存名次*/
STUDENT *p,*q,*t,*h1,*h2=h; /*定义临时指针*/
h1=h2->next; /*将原表的头指针所指的下一个结点作头指针*/
h2->next=NULL; /*第一个结点为新表的头结点*/
while(h1!=NULL) /*当原表不为空时,进行排序*/
{
t=h1; /*取原表的头结点*/
h1=h1->next; /*原表头结点指针后移*/
p=h2; /*设定移动指针p,从头指针开始*/
q=h2; /*设定移动指针q做为p的前驱,初值为头指针*/
while(t->sum<p->sum&&p!=NULL) /*作总分比较*/
{
q=p; /*待排序点值小,则新表指针后移*/
p=p->next;
}
if(p==q) /*p==q,说明待排序点值大,应排在首位*/
{
t->next=p; /*待排序点的后继为p*/
h2=t; /*新头结点为待排序点*/
}
else /*待排序点应插入在中间某个位置q和p之间,如p为空则是尾部*/
{
t->next=p; /*t的后继是p*/
q->next=t; /*q的后继是t*/
}
}
p=h2; /*已排好序的头指针赋给p,准备填写名次*/
while(p!=NULL) /*当p不为空时,进行下列操作*/
{
i++; /*结点序号*/
p->order=i; /*将名次赋值*/
p=p->next; /*指针后移*/
}
clrscr();
printf("sort sucess!!!\n"); /*排序成功*/
p=h2;
printf(" order num name sum aver\n");
for(i=1;p!=NULL;i++,p=p->next)
printf(" %d %s %s %f %f\n",i,p->num,p->name,p->sum,p->average);
return(h);
}
/*输出课程数据库链表中的结点信息*/
void print1(CLASS *h)
{
CLASS *p;
p=h;
printf("|num| name | mark | time | teacher | address | collage |stutotal|\n");
while(p!=NULL)
{
printf("|---|-------|------|------|-----------|---------|---------|--------|\n");
printf(" %s %s %s %s %s %s %s %d\n",
p->num,p->name,p->mark,p->time,p->teacher,p->address,p->collage,p->stutotal);
p=p->next;
}
}
/*打印课程表*/
void print2(char stu_num[11],CLASS *h1,STUDENT *h2)
{
CLASS *p1=h1;
int i;
STUDENT *p2=h2;
while(p2!=NULL&&strcmp(p2->num,stu_num))
{
p2=p2->next;
}
printf("|num| name | mark | time | teacher | address | collage |score |\n");
for(i=0;i<3;i++)
{
p1=h1;
while(p1!=NULL&&strcmp(p1->name,p2->kecheng[i]))
{
p1=p1->next;
}
if(p1)
{
printf("|---|-------|------|------|-----------|---------|---------|------|\n");
printf(" %s %s %s %s %s %s %s %d\n",
p1->num,p1->name,p1->mark,p1->time,p1->teacher,p1->address,p1->collage,p2->score[i]);
}
}
}
/*选课*/
void select_course(char stu_num[11],CLASS *h1,STUDENT *h2)
{
CLASS *p1=h1;
int m=0,n=0;
STUDENT *p2=h2;
char num[4];
for(;;)
{
p1=h1;
inputs("scanf the lesson's code:",num,4);
if(!strcmp(num,"@"))break;
while(p1!=NULL&&strcmp(p1->num,num))
{
p1=p1->next;
}
while(p2!=NULL&&strcmp(p2->num,stu_num))
{
p2=p2->next;
}
if(p2==NULL||p1==NULL)
{
printf("sorry! there isn't the code!\n");
}
else
{
p1->stutotal++;
while(strcmp(p1->stunum[m],NULL))
{
m++;
}
strcpy(p1->stunum[m],stu_num);
while(strcmp(p2->kecheng[n],NULL)&&n<3)
{
n++;
}
strcpy(p2->kecheng[n],p1->name);
printf("Success!\n");
}
}
save_stu(h2);
save_cla(h1);
}
/*删课*/
void delet_course(char stu_num[11],CLASS *h1,STUDENT *h2)
{
CLASS *p1=h1;
int m=0,n=0;
STUDENT *p2=h2;
char num[4];
for(;;)
{
p1=h1;
inputs("scanf the lesson's code which you want to delet:\n",num,4);
if(!strcmp(num,"@"))break;
while(p1!=NULL&&strcmp(p1->num,num)) /*找到某门课*/
{
p1=p1->next;
}
while(p2!=NULL&&strcmp(p2->num,stu_num)) /*找到学生*/
{
p2=p2->next;
}
if(p1==NULL)
{
printf("sorry! there isn't the code!\n");
}
else
{
p1->stutotal--;
while(strcmp(p1->stunum[m],stu_num)) /*把找到课程的学生纪录置零*/
{
m++;
}
strcpy(p1->stunum[m],NULL);
while(strcmp(p2->kecheng[n],num)) /*找到学生数据库中课程代号置零*/
{
n++;
}
strcpy(p2->kecheng[n],NULL);
printf("Success!\n");
}
}
save_stu(h2);
save_cla(h1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -