📄 xueshengshujukuguanli.c
字号:
}
clrscr();
inputs("enter student num:",info->num,11);
if(info->num[0]=='@') break;
inputs("enter student name:",info->name,15);
inputs("sexy(m/w):",info->sexy,1);
inputs("jiguan:",info->jiguan,10);
inputs("birthday:",info->birthday,12);
inputs("adress:",info->adress,25);
inputs("telephone:",info->telephone,12);
inputs("email:",info->email,20);
inputs("jiangfa:",info->jiangfa,100);
printf("please input kecheng name \n");
for(i=0;i<N;i++)
{
printf("kecheng%d name:",i+1);
scanf("%s",&info->kecheng[i]);
do{
printf("please input %s score:",&info->kecheng[i]);
scanf("%d",&info->score[i]);
if(info->score[i]>100||info->score[i]<0)
printf("bad data,repeat input\n");
}while(info->score[i]>100||info->score[i]<0);
s=s+info->score[i];
}
info->sum=s;
info->average=(float)s/N;
info->order=0;
info->next=h;
h=info;
printf("*************shanggewancheng**************");
printf("\n\nxiayigeshuju\n");
}
save_stu(h);
return(h);
}
/*创建课程数据库*/
CLASS *create_cla()
{
CLASS *h=NULL,*info;
for(;;)
{
info=(CLASS *)malloc(sizeof(CLASS));
if(!info)
{
printf("\nout of memory");
return NULL;
}
inputs("enter lesson num(end with @):\n",info->num,5);
if(info->num[0]=='@') break;
inputs("enter lesson name:",info->name,15);
inputs("enter mark:",info->mark,1);
inputs("enter time:",info->time,30);
inputs("enter address:",info->address,25);
inputs("enter teacher name:",info->teacher,12);
inputs("enter collage:",info->collage,20);
info->stutotal=0;
info->next=h;
h=info;
}
save_cla(h);
return(h);
}
/*创建密码数据库*/
PASSWORD *create_pw()
{
int i;
PASSWORD *h=NULL,*info;
printf("create pw.\n");
for(;;)
{
info=(PASSWORD *)malloc(sizeof(PASSWORD));
if(!info)
{
printf("\nout of memory");
return NULL;
}
clrscr();
inputs("enter num:",info->num,11);
if(info->num[0]=='@') break;
strcpy(info->psw,info->num);
info->next=h;
h=info;
}
printf("save y/n ?\n");
if(getch()=='y')
{
save_pw(h);
return(h);
}
else
{
info=NULL;
return(info);
}
}
/********************************************数据库保存子函数***********************************/
/*保存学生数据库到文件*/
void save_stu(STUDENT *h)
{
FILE *fp;
STUDENT *p;
char outfile[15]="f:\\f1\\te.txt";
printf("save y/n ?");
getchar();
if(getchar()=='y')
{
if((fp=fopen(outfile,"wb"))==NULL)
{
printf("can not open file\n");
exit(1);
}
printf("\nSaving file......\n");
p=h;
while(p!=NULL)
{
fwrite(p,sizeof(STUDENT),1,fp);
p=p->next;
}
fclose(fp);
printf("-----save success!!-----\n");
}
}
/*保存课程数据库到文件*/
void save_cla(CLASS *h)
{
FILE *fp; /*定义指向文件的指针*/
CLASS *p; /* 定义移动指针*/
char outfile[15]="f:\\f2\\te.txt"; /*保存输出文件名*/
printf("save y/n ?");
getchar();
if(getchar()=='y')
{
if((fp=fopen(outfile,"wb"))==NULL) /*为输出打开一个二进制文件,如没有则建立*/
{
printf("can not open file\n");
exit(1);
}
printf("\nSaving file......\n"); /*打开文件,提示正在保存*/
p=h; /*移动指针从头指针开始*/
while(p!=NULL) /*如p不为空*/
{
fwrite(p,sizeof(CLASS),1,fp);/*写入一条记录*/
p=p->next; /*指针后移*/
}
fclose(fp); /*关闭文件*/
printf("-----save success!!-----\n"); /*显示保存成功*/
}
}
/*密码保存*/
void save_pw(PASSWORD *h)
{
FILE *fp;
PASSWORD *p;
printf("save y/n ?");
getchar();
if(getchar()=='y')
{
char outfile[20]={"f:\\te.txt"};
if((fp=fopen(outfile,"wb"))==NULL)
{
exit(1);
}
p=h;
while(p!=NULL)
{
fwrite(p,sizeof(PASSWORD),1,fp);
p=p->next;
}
fclose(fp);
printf("-----save success!!-----\n"); /*显示保存成功*/
}
}
/********************************************数据库删除子函数**********************************/
/*学生数据库删除*/
STUDENT *delete_stu(STUDENT *h)
{
int j;
STUDENT *p,*q;
char s[11];
clrscr();
printf("please deleted num\n");
scanf("%s",s);
q=p=h;
while(strcmp(p->num,s)&&p!=NULL)
{
q=p;
p=p->next;
}
if(p==NULL)
printf("\nlist num %s student\n",s);
else
{
printf("num:%s\nname:%s\nsexy:%s\njiguan:%s\nbirthday:%s\nadress:%s\ntelephone:%s\nemail:%s\njiangfa:%s\n",p->num,p->name,p->sexy,p->jiguan,p->birthday,p->adress,p->telephone,p->email,p->jiangfa);
for(j=0;j<N;j++)
{printf("%s:",p->kecheng[j]);
printf("%d\n",p->score[j]);
}
printf("********************************end*******************************\n");
getch();
if(p==h)
h=p->next;
else
q->next=p->next;
free(p);
printf("\n have deleted No %s student\n",s);
}
save_stu(h);
return(h);
}
/*密码数据库删除*/
PASSWORD *delete_pw(PASSWORD *h)
{
PASSWORD *p,*q;
char s[11];
clrscr();
printf("please deleted num\n");
scanf("%s",s);
if(s[0]=='@') return(h);
q=p=h;
while(strcmp(p->num,s)&&p!=NULL)
{
q=p;
p=p->next;
}
if(p==NULL)
printf("\nlist no %s student\n",s);
else
{
printf("*****************************have found***************************\n");
printf("|no | password \n");
printf("|----------|-------------- \n");
printf("|%-10s|%-15s\n", p->num,p->psw);
printf("********************************end*******************************\n");
getch();
if(p==h)
h=p->next;
else
q->next=p->next;
free(p);
printf("\n have deleted No %s student\n",s);
printf("Don't forget save\n");
}
save_pw(h);
return(h);
}
/***********************************************数据库添加子函数*******************************/
/*添加学生数据库*/
STUDENT *insert_stu(STUDENT *h)
{
STUDENT *p,*q,*info;
char s[11];
int i,s1=0;
printf("please enter location before the num:");
scanf("%s",s);
printf("please new record\n");
info=(STUDENT *)malloc(sizeof(STUDENT));
if(!info)
{
printf("\nout of memory");
return NULL;
}
inputs("enter num:",info->num,11);
inputs("enter name:",info->name,15);
inputs("sexy(m/w):",info->sexy,1);
inputs("jiguan:",info->jiguan,10);
inputs("birthday:",info->birthday,12);
inputs("adress:",info->adress,25);
inputs("telephone:",info->telephone,12);
inputs("email:",info->email,20);
inputs("jiangfa:",info->jiangfa,100);
printf("please input kecheng name \n");
for(i=0;i<N;i++)
{
printf("name%d:",i+1);
scanf("%s",&info->kecheng[i]);
do{
printf("please input %s score:",&info->kecheng[i]);
scanf("%d",&info->score[i]);
if(info->score[i]>100||info->score[i]<0)
printf("bad data,repeat input\n");
}while(info->score[i]>100||info->score[i]<0);
s1=s1+info->score[i];
}
info->sum=s1;
info->average=(float)s1/N;
info->order=0;
info->next=NULL;
p=h;
q=h;
while(strcmp(p->num,s)&&p!=NULL)
{
q=p;
p=p->next;
}
if(p==NULL)
if(p==h)
h=info;
else
q->next=info;
else
if(p==h)
{
info->next=p;
h=info;
}
else
{
info->next=p;
q->next=info;
}
printf("\n----have inserted %s student----\n",info->name);
save_stu(h);
return(h);
}
/*添加密码数据库*/
PASSWORD *insert_pw(PASSWORD *h)
{
PASSWORD *p,*q,*info;
char s[11];
int s1,i;
printf("please enter location before the num\n");
scanf("%s",s);
if(s[0]=='@') return(h);
printf("\nplease new person and the password\n");
info=(PASSWORD *)malloc(sizeof(PASSWORD));
if(!info)
{
printf("\nout of memory");
return NULL;
}
inputs("enter num:",info->num,11);
inputs("enter password:",info->psw,15);
info->next=NULL;
p=h;
q=h;
while(strcmp(p->num,s)&&p!=NULL)
{
q=p;
p=p->next;
}
if(p==NULL)
if(p==h)
h=info;
else
q->next=info;
else
if(p==h)
{
info->next=p;
h=info;
}
else
{
info->next=p;
q->next=info;
}
printf("\n ----have inserted %s student----\n",info->num);
save_pw(h);
return(h);
}
/*管理员主菜单*/
menu_select()
{
char *menu[]={"******ADMIN MENU*****", /*定义菜单字符串数组*/
" 0. xiu gai mi ma",
" 1. cha xun",
" 2. lu ru",
" 3. tong ji",
" 4. pai xu",
" 5. xiu gai",
" 6. 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<8;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~6):"); /*在菜单窗口外显示提示信息*/
scanf("%s",s); /*输入选择项*/
c=atoi(s); /*将输入的字符串转化为整形数*/
}while(c<0||c>6); /*选择项不在0~14之间重输*/
return c; /*返回选择项,主程序根据该数调用相应的函数*/
}
/*管理员查询菜单*/
menu_select1()
{
char *menu[]={"******ADMIN CHA XUN*****", /*定义菜单字符串数组*/
" 0. ji ben xin xi",
" 1. dan ke cheng ji",
" 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); /*设置背景颜色为黑色*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -