📄 chenhan.c
字号:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 3
#define PRINT1 printf("--------------------------------------------------------------------------------\n")
#define PRINT2 printf("学 号---------------姓名-----------性别-------出生年月日---------家庭地址-------\n")
#define PRINT3 printf("0%ld %s %s %d/%d/%d %s\n\n",pm[i].number,pm[i].name,pm[i].sex,pm[i].birthyear,pm[i].birthmonth,pm[i].birthday,pm[i].address)
#define PRINT4 printf("学 号---------------姓名----------语言成绩-----数学成绩----物理成绩----\n")
#define PRINT5 printf("0%ld %s %d %d %d\n\n",pm[i].number,pm[i].name,pm[i].language,pm[i].math,pm[i].wuli)
#define PRINT6 printf("学 号---------------姓名--------奖励信息--------------------------处分信息--------------------\n")
#define PRINT7 printf("0%ld %s %s %s\n\n")
/*学生户籍信息结构体定义*/
typedef struct
{ long int number; /*学号*/
char name[20]; /*姓名*/
char sex[2]; /*性别*/
int birthyear; /*出生年,月,日*/
int birthmonth;
int birthday;
char address[100]; /*地址*/
}PM;
/*成绩*/
typedef struct
{ int number; /*学号*/
int language;
int math;
int wuli;
int zong;
float jun;
}SM;
/*学生奖惩信息*/
typedef struct
{ int number; /*学号*/
char jiang[100]; /*奖励信息*/
char cheng[100]; /*处分信息*/
char pass[8]; /*密码*/
}JC;
PM pm[N];
SM sm[N];
JC jc[N];
/*储存模块*/
save_message(int sum1)
{ FILE *fp1;FILE *fp2;FILE *fp3;
int i;
if((fp1=fopen("students.txt","wb"))==NULL||(fp2=fopen("student2.txt","wb"))==NULL||(fp3=fopen("student3.txt","wb"))==NULL)
{ printf("读文件错误!\n");
return;
}
for(i=0;i<=sum1;i++)
if(fwrite(&pm[i],sizeof(PM),1,fp1)!=1||fwrite(&sm[i],sizeof(SM),1,fp2)!=1||fwrite(&jc[i],sizeof(JC),1,fp3)!=1)
printf("写文件错误!\n");
fclose(fp1);
fclose(fp2);
fclose(fp3);
}
/*读取信息*/
int read_message()
{ FILE *fp1;FILE *fp2;FILE *fp3;
int i=0;
if((fp1=fopen("students.txt","rb"))==NULL||(fp2=fopen("student2.txt","rb"))==NULL||(fp3=fopen("student3.txt","rb"))==NULL)
{printf("\n\n******系统内暂时还没有信息。按任意键返回主菜单选择信息录入!*******\n");
return;
}
while(feof(fp1)!=1)
{ fread(&pm[i],sizeof(PM),1,fp1);
if(pm[i].number==0) break;
else i++;
}
fclose(fp1);
i=0;
while(feof(fp2)!=1)
{ fread(&sm[i],sizeof(SM),1,fp2);
if(sm[i].number==0) break;
else i++;
}
fclose(fp2);
i=0;
while(feof(fp3)!=1)
{ fread(&jc[i],sizeof(JC),1,fp3);
if(jc[i].number==0) break;
else i++;
}
fclose(fp3);
return(i);
}
/*权限模块*/
password1(int sum1) /*设置管理员权限*/
{ int flag,i;long num1;char p2[8];
do
{ printf("\n -----------------------------学生管理系统------------------------\n\n\n");
printf("\n\n 请输入 用户名:");
scanf("%ld",&num1);
flushall();
printf("\n 密码(6位):");
gets(p2);
flushall();
for(i=0;i<sum1;i++)
if(num1==04073003&&strcmp(p2,jc[i].pass)==0)
flag=1;
else {flag=0;
system("cls");
printf("\n 您输入的用户名或密码错误! 请重新输入!\n");
}
}while(flag==0);
system("cls");
printf("\n\n 欢迎进入学生管理系统管理员界面!\n\n");
return(i);
}
password(int sum1)
{ int i,flag;long num;char p1[8];
do
{ printf("\n -----------------------------学生管理系统------------------------\n\n\n");
printf("\n\n 请输入 用户名:");
scanf("%ld",&num);
flushall();
printf("\n 密码(6位):");
gets(p1);
flushall();
for(i=0;i<sum1;i++)
if(jc[i].number==num&&strcmp(jc[i].pass,p1)==0)
flag=1;
else {flag=0;
system("cls");
printf("\n 您输入的用户名或密码错误! 请重新输入!\n");
}
}while(flag==0);
return(i);
}
/*录入模块*/
input_message(int sum1)
{ int i,j,s=N,choice,flag;
i=sum1,j=sum1;
password(sum1);
system("cls");
printf("\n\n 录入学生信息(最多%d名)\n",s);
printf(" ----------------------------------\n");
do
{ /*录入户籍信息*/
printf(" --------------第%d名---------------",j);
printf("\n 学号(8位):");
scanf("%ld",&pm[i].number);
flushall();
printf("\n 姓名:");
gets(pm[i].name);
flushall();
printf("\n 性别:");
scanf("%s",&pm[i].sex);
flushall();
printf("\n 出生年月日(例如1985/3/26):");
scanf("%d/%d/%d",&pm[i].birthyear,&pm[i].birthmonth,&pm[i].birthday);
flushall();
printf("\n 地址:");
gets(pm[i].address);
flushall();
/*录入成绩信息*/
printf("\n 语言成绩:");
scanf("%d",&sm[i].language);
flushall();
printf("\n 数学成绩:");
scanf("%d",&sm[i].math);
flushall();
printf("\n 物理成绩:");
scanf("%d",&sm[i].wuli);
flushall();
/*录入奖惩信息*/
printf("\n 所受奖励:");
gets(jc[i].jiang);
flushall();
printf("\n 所受处分:");
gets(jc[i].cheng);
flushall();
printf("\n 密码:");
gets(jc[i].pass);
flushall();
i++;
j++;
printf("\n 是否继续录入第%d名(Y/N)\n",j);
choice=getch();
if(choice=='Y'||choice=='y')
flag=1;
else flag=0;
}while(i<s&&flag==1);
printf("\n ----%d名学生信息录入完成----\n",j);
sum1=i;
printf("\n 按任意键返回!\n");
bioskey(0);
}
/*输出模块*/
pm_output(int sum2)
{ int i=0,j=0,count,page=1;
system("cls");
printf("\n\n -------------学生户籍信息表----------第%d页\n",page);
PRINT2;
PRINT1;
do
{ j++;
if(pm[i].number!=0)
{if(j%2!=0)
{ PRINT3;
PRINT1;
}
else
{PRINT3;
PRINT1;
if(pm[i+1].number!=0)
{++page;
printf("\n\n -------------学生户籍信息表----------第%d页\n",page);
PRINT2;
PRINT1;
}
}
}
i++;
}while(pm[i].number!=0&&i<=sum2);
}
sm_output(int sum2)
{ int i=0,j=0,count,page=1;
system("cls");
printf("\n\n -------------学生成绩信息表----------第%d页\n",page);
PRINT4;
PRINT1;
do
{ j++;
if(pm[i].number!=0)
{if(j%2!=0)
{ PRINT5;
PRINT1;
}
else
{PRINT5;
PRINT1;
if(pm[i+1].number!=0)
{++page;
printf("\n\n -------------学生成绩信息表----------第%d页\n",page);
PRINT4;
PRINT1;
}
}
}
i++;
}while(pm[i].number!=0&&i<=sum2);
}
jc_output(int sum2)
{ int i=0,j=0,count,page=1;
system("cls");
printf("\n\n -------------学生奖惩信息表----------第%d页\n",page);
PRINT6;
PRINT1;
do
{ j++;
if(pm[i].number!=0)
{if(j%2!=0)
{ PRINT7;
PRINT1;
}
else
{PRINT7;
PRINT1;
if(pm[i+1].number!=0)
{++page;
printf("\n\n -------------学生奖惩信息表----------第%d页\n",page);
PRINT6;
PRINT1;
}
}
}
i++;
}while(pm[i].number!=0&&i<=sum2);
}
output_message(int sum1)
{ int choice;
system("cls");
printf("\n\n 请选择要显示的信息:\n\n");
printf("\n 1.户籍信息\n");
printf("\n 2.成绩信息\n");
printf("\n 3.奖惩信息\n");
printf("\n 0.退出\n");
scanf("%d",&choice);
flushall();
system("cls");
switch(choice)
{ case 1: pm_output(sum1);break;
case 2: sm_output(sum1);break;
case 3: jc_output(sum1);break;
case 0: break;
}
printf("按任意键返回主菜单");
bioskey(0);
}
/*修改模块*/
change_message(int sum1)
{ int i=0,j,choice1,choice2,flag1,flag2;long num;char pass1[8],pass2[8],pass0[8];
i=password(sum1);
do
{ system("cls");
printf("\n 请选择您要修改的信息种类:\n");
printf("\n 1.学生户籍信息\n");
printf("\n 2.学生成绩信息\n");
printf("\n 3.学生奖惩信息和密码\n");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -