📄 sharon.cpp
字号:
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
struct student
{
int num;
char name[30];
char sex;
float score;
}; //定义结构体,存放学生信息
int Input_record(student stu[],int s);//录入学生信息(学号,姓名,性别)
void query_by_number(student stu[],int s);//按学号查询学生信息
void modify_record(student stu[],int s);//修改学生信息
int delete_record(student stu[],int s);//删除学生信息
void query_by_name(student stu[],int s);//按姓名查找学生信息
void input_score(student stu[],int s);//输入学生成绩
void modify_score(student stu[],int s);//修改学生成绩
void delete_score(student stu[],int s);//删除学生成绩
void statistic(student stu[],int s);//对成绩进行统计
/*菜单*/
char menu()
{
char c;
do
{
system("cls"); /*运行前清屏*/
printf("\t\t\t|1.Input student's records. |\n");printf("\t\t\t| 输入学生信息. \n");//选1,插入学生记录
printf("\t\t\t|2.Modify student's records. |\n");printf("\t\t\t| 修改学生信息. \n");//选2,修改学生记录
printf("\t\t\t|3.Delete student's records. |\n");printf("\t\t\t| 删除学生信息. \n");//选3,删除学生记录
printf("\t\t\t|4.Query by student's record.|\n");printf("\t\t\t| 按学号进行查找. \n");//选4,按学号进行查找
printf("\t\t\t|5.Query by student's name. |\n");printf("\t\t\t| 按姓名进行查找. \n");//选5,按姓名进行查找
printf("\t\t\t|6.Input student's scores. |\n");printf("\t\t\t| 输入学生成绩. \n");//选6,输入学生成绩
printf("\t\t\t|7.Modify student's scores. |\n");printf("\t\t\t| 修改学生成绩. \n");//选7,修改学生成绩
printf("\t\t\t|8.Delete student's scores. |\n");printf("\t\t\t| 删除学生成绩. \n");//选8,删除学生成绩
printf("\t\t\t|9.Statistic. |\n");printf("\t\t\t| 成绩统计. \n");//选9,进行成绩统计(求平均分,最高分,最低分,排名)
printf("\t\t\t|0.Quit. |\n");printf("\t\t\t| 退出. \n");//选0,退出系统
printf(" ╭╮╭╮\n");
printf(" ╭★┴┴★╮\n");
printf(" │︵ ︵│\n");
printf(" ╰○--○╯ 制作:郭旭\n");
printf(" ╰○○╯ ");
printf("Give your choice(0-9): ");
fflush(stdin);
c=getchar();
}while(c<'0'||c>'9');
return c;//返回C的值到主函数
}
/*主函数*/
void main()
{
int n=0;//用来统计录入的学生信息的个数
student stu[70];
char e;
while(1)
{
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf(" ·························\n");
printf(" * ============================================== *\n");
printf(" * ============================================== *\n");
printf(" * ======·················====== *\n");
printf(" * ======· 学 员 管 理 系 统 ·====== *\n");
printf(" * ======·················====== *\n");
printf(" * ============================================== *\n");
printf(" * ============================================== *\n");
printf(" * ============================================== *\n");
printf(" * ============== 制作:QAI0709 '怪杰'一组 ===== *\n");
printf(" * ============================================== *\n");
printf(" ·························\n");
printf(" ENTER (Y/N)? ");
e=getchar();
if(e=='y'||e=='Y')
break;
}
while(1)
{switch(menu())//根据返回的menu()函数的值来进行switch..case判断,调用不同的函数
{
case '1':
printf("Please input records.\n");
n=Input_record(stu,n);//调用了Input_record()函数
break;
case '2':
printf("Modify records.\n");
modify_record(stu,n);//调用了modify_record()函数
//goto menu;
break;
case '3':
printf("Delete records.\n");
n=delete_record(stu,n);//调用delete_record()函数
break;
case '4':
printf("Query by student's number'\n");
query_by_number(stu,n);//调用query_by_number()函数,查找某个学生的信息
break;
case '5':
printf("Query by student's name.\n");
query_by_name(stu,n);//调用query_by_name()函数,查找某个学生的信息
break;
case '6':
printf("Input score.\n");
input_score(stu,n);//调用input_score()函数,输入成绩
break;
case '7':
printf("Modify score.\n");
modify_score(stu,n);//调用modify_score()函数,修改成绩
break;
case '8':
printf("Delete score.\n");
delete_score(stu,n);//调用delete_score()函数,删除成绩
break;
case '9':
printf("Statistic.\n");
statistic(stu,n);//调用statistic()函数,对成绩进行统计
break;
case '0':
{
system("cls");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\t =======================================================\n");
printf("\t =======================================================\n");
printf("\t =======================================================\n");
printf("\t =======================================================\n");
printf("\t =====Have a good luck!您已经选择退出学生管理系统!======\n");
printf("\t =======================================================\n");
printf("\t =======================================================\n");
printf("\t ======================================EXIT=============\n");
printf("\t ======================================EXIT=============\n");
printf("\t =======================================================\n");
printf("\n");
printf("\t\t\t\t╭~~~ ※╮\n");
printf("\t\t\t\t{ ⌒ ⌒ } \n");
printf("\t\t\t\t ( 00 ) \n");
printf("\t\t\t\t<~) (~> 谢谢使用'怪杰'学生管理系统\n");
}
exit(0);//退出系统
}}
}
int Input_record(student stu[],int s)
{
int i=0,c,d;
int k,j,g,w;
char a;
do
{ system("cls");
printf("\n");
printf("\n");
printf(" ╭╮╭╮\n");
printf(" ╭★┴┴★╮\n");
printf(" │︵ ︵│\n");
printf(" ╰○--○╯ 制作:丁乐 刘海文\n");
printf(" ╰○○╯ \n");
printf("\t\t ************************************************\n");
printf("\t\t *******'怪杰'一组*******************************\n");
printf("\t\t ************************************************\n");
printf("\t\t ********·················******\n");
printf("\t\t ********·您正在使用的是学生信息录入系统·******\n");
printf("\t\t ********·················******\n");
printf("\t\t ************************************************\n");
printf("\t\t ************************************************\n");
printf("\t\t ************************************************\n");
do
{
k=0;
printf("\n\t\t请输入学号(01~99):");
scanf("%d",&stu[i+s].num);
fflush(stdin);
w=stu[i+s].num;
if(!(w>0&&w<100)) //判断学号在 01~99之间
{
printf("\n\t\t学号输入有错误,请重新输入(01~99)\a: ");
k=2;
}
for(c=0;c<i+s;c++) //判断学号是否有重复
{
if(w==stu[c].num)
{
printf("\n\t\t学号重复,请重新输入(01~99)\a: ");
k=1;
}
}
}
while(k==1||k==2);
do //输入姓名并判断姓名不能为空
{
g=0;
printf("\t\t请输入学员姓名:");
fflush(stdin);//缓存清空
gets(stu[i+s].name);
if(strcmp(stu[i+s].name," ")==0||strcmp(stu[i+s].name,"")==0)
{
printf("\t\t你没有输入学员的姓名,请重新输入!\a\n\n");
g=1;
}
}
while(g==1);
do //输入性别并判断性别输入的是否有错误
{
j=0;
printf("\t\t请输入学员性别(男:M;女:F):");
fflush(stdin);//缓存清空
scanf(" %c",&stu[i+s].sex);
if(stu[i+s].sex!='m'&&stu[i+s].sex!='M'&&stu[i+s].sex!='f'&&stu[i+s].sex!='F')
{
printf("\t\t您输入的性别有错误! 请重新输入(男:M;女:F):\a\n\n");
j=1;
}
}
while(j==1);
do //输入是否继续输入并判断输入的是否有错误
{
w=0;
printf("\t 要继续输入学员信息吗?(y\\n)");
fflush(stdin);//缓存清空
scanf(" %c",&a);
if(a!='y'&&a!='Y'&&a!='n'&&a!='N')
{
printf("\t\t请输入(y\\n):\a\n\n");
w=1;
}
}
while(w==1);
if(a=='n'||a=='N')
break;
i++;
}
while(a=='y'||a=='Y');
system("cls");
printf("\t\t\t | 学号 | 姓名 | 性别 |\n"); //这段在连接后可以不要
for(d=0;d<i+s;d++)
printf("\t\t\t %d %s %c \n",stu[d].num,stu[d].name,stu[d].sex);
return s+i+1;
}
void query_by_number(student stu[],int s)
{
int num,i;
char c;
do
{ system("cls");
int k=0;
printf(" ╭╮╭╮\n");
printf(" ╭★┴┴★╮\n");
printf(" │︵ ︵│\n");
printf(" ╰○--○╯ 制作:王培志 金亮\n");
printf(" ╰○○╯ \n");
printf("\t\t ************************************************\n");
printf("\t\t *******'怪杰'一组*******************************\n");
printf("\t\t ************************************************\n");
printf("\t\t ********·················******\n");
printf("\t\t ********·您正在使用的是学生信息查询系统·******\n");
printf("\t\t ********·················******\n");
printf("\t\t ************************************************\n");
printf("\t\t ************************************************\n");
printf("\t\t ************************************************\n");
printf("\t\t\t 请输入您要查找的学生学号: ");
scanf("%d",&num);
for(i=0;i<s;i++)
if(stu[i].num==num) //找到了要查找的学号
{
printf("\t\t\t 找到该学生信息如下\n");
printf("\t\t\t | 学号 | 姓名 | 性别 |\n");
printf("\t\t\t %d %s %c ",stu[i].num,stu[i].name,stu[i].sex);
k=1;//设置标记,如果找到该学号的学生,则将标记设为1
}
if(k==0)//如果标记为0,则说明没有找到该学生
printf("\t\t\t 没有找到您要查找的学生信息.\n");
printf("\n\t\t=====================================================\n");
printf("\n\t\t 是否继续查找学生信息?Y/N");
fflush(stdin);
c=getchar();
}while(c!='n');
}
void modify_record(student stu[],int s)
{
int num,i;
char c[10],d[10],v,p;
do
{ int k=0;
system("cls");
printf(" ╭╮╭╮\n");
printf(" ╭★┴┴★╮\n");
printf(" │︵ ︵│\n");
printf(" ╰○--○╯ 制作:丁乐 刘海文\n");
printf(" ╰○○╯ \n");
printf("\t\t ************************************************\n");
printf("\t\t *******'怪杰'一组*******************************\n");
printf("\t\t ********·················******\n");
printf("\t\t ********·您正在使用的是学生信息修改系统·******\n");
printf("\t\t ********·················******\n");
printf("\t\t ************************************************\n");
printf("\t\t ************************************************\n");
printf("\t\t\t 请输入您要修改信息的学生学号: ");
scanf("%d",&num);
for(i=0;i<s;i++)
if(stu[i].num==num)
{
k=1;//设置标记
printf("\t\t\t 找到该学生信息如下\n");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -