目录:
一,设计要求1,总体要求:2,具体功能:
二,设计框架
三,程序代码1,声明函数和头文件2,声明结构体3,声明全局变量4,主体启动函数5,主菜单函数6,创建学生档案函数7,编辑学生档案函数8,查询学生档案函数9,输出籍贯与专业函数10,查询学籍变化函数11,删除学生信息函数
四,测试代码1,运行界面2,创建学生档案3,修改学生档案信息4,查询学生档案信息5,查询学生籍贯和专业信息6,查询学生学籍变化7,删除学生信息
五,设计的总结和感想
给读者的话:由于期末作业简单,而且没有要求用到文件的知识,毕竟都还没怎么上过结构体,所以这个系统的代码也略显简单,希望以后回过头来再看这些代码,有更好的见解和领悟。如果你也是为了完成实训或者交作业而看到这篇文章,请不要直接抄袭,注释我写得非常清楚,希望能够真正地帮助到你。
设计要求:
1,总体要求
用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。
2,具体功能:
1,系统以菜单方式工作。
2,登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息;
3,删除已知学号的学生信息;
4,查找已知学号的学生信息;
5,按学号,专业输出学生籍贯表。
6,查询学生学籍变化,比如入学,转专业,退学,降级,休学,毕业。
程序代码:
1, 声明函数和头文件
#include #include#include#include
#define N 100
voidmenu();voidStudent_Create();voidStudent_Edit();voidStudent_find();voidStudent_native();voidStudent_changes();void Student_pop();
2, 声明结构体
structStuden_book
{intnum;char name[20];charsex;intage;char native[80]; //籍贯
char depart[20]; //系别
char majoy[20]; //专业
char clas[20]; //班级
char native_changes[30]; //学籍
}stu[N];
3, 声明全局变量
static int i=0;
4, 主体启动函数
int main() //启动程序
{
menu();return 0;
}
5, 主菜单函数
void menu() //主菜单
{char sel='a';while(sel!='0')
{
system("cls");//清屏函数
printf("|-----------------------------------------------|\n");
printf("| 学 生 学 籍 管 理 系 统 主 菜 单 |\n");
printf("|-----------------------------------------------|\n");
printf("| 1------创建学生档案信息 【欢】 |\n");
printf("| 2------修改学生档案信息 【迎】 |\n");
printf("| 3------删除学生档案信息 【使】 |\n");
printf("| 4------查询学生档案信息 【用】 |\n");
printf("| 5------查询学生籍贯信息 【本】 |\n");
printf("| 6------查询学生学籍变化 【程】 |\n");
printf("| 0------退出学籍管理系统 【序】 |\n");
printf("|-----------------------------------------------|\n");
printf("请输入选项编号(0-6):");
sel= getch(); //无需回车
switch(sel)
{case '1':
Student_Create();break;case '2':
Student_Edit();break;case '3':
Student_pop();break;case '4':
Student_find();break;case '5':
Student_native();break;case '6':
Student_changes();break;case '0':break;
}if(sel=='0')
printf("\n Thanks for your used!");
} }
6, 创建学生档案函数
void Student_Create() //创建学生档案
{charchoose;
Add:
system("cls");
printf("请输入学生学号:\n");
scanf("%d",&stu[i].num);
printf("请输入学生姓名:\n");
scanf("%s",&stu[i].name);
getchar();
printf("请输入学生性别(M或F):\n");
scanf("%c",&stu[i].sex);
printf("请输入学生年龄:\n");
scanf("%d",&stu[i].age);
printf("请输入学生籍贯:\n");
scanf("%s",&stu[i].native);
printf("请输入学生系别:\n");
scanf("%s",&stu[i].depart);
printf("请输入学生专业:\n");
scanf("%s",&stu[i].majoy);
printf("请输入学生班级:\n");
scanf("%s",&stu[i].clas);
printf("请输入学生学籍变化:\n");
scanf("%s",&stu[i].native_changes);
i++; //输完一项++,方便下一项输入 ,同时计输入的学生总数
getchar();//回车继续
printf("是否继续添加('Y'or'N')?");
choose=getchar();if(choose=='Y'||choose=='y')gotoAdd;
}
7, 编辑学生档案函数
void Student_Edit() //根据学号查找学生信息并编辑
{intt,number,n;charx;
printf("\n输入学号:");
scanf("%d",&number);for(t=0;t
{if(stu[t].num==number)
n=t;
}
printf("\n学生的信息如下:\n");
printf("1—学号:%d\n",stu[n].num);
printf("2—姓名:%s\n",stu[n].name);
printf("3—性别:%c\n",stu[n].sex);
printf("4—年龄:%d\n",stu[n].age);
printf("5—籍贯:%s\n",stu[n].native);
printf("6—系别:%s\n",stu[n].depart);
printf("7—专业:%s\n",stu[n].majoy);
printf("8—班级:%s\n",stu[n].clas);
printf("9—学籍变化:%s\n",stu[n].native_changes);
printf("0—退出编辑\n");
printf("请输入要编辑的选项(0-9):");
x=getch();switch(x)
{case '1':
scanf("%d",&stu[n].num);break;case '2':
scanf("%s",&stu[n].name);break;case '3':
scanf("%c",&stu[n].sex);break;case '4':
scanf("%d",&stu[n].age);break;case '5':
scanf("%s",&stu[n].native);break;case '6':
scanf("%s",&stu[n].depart);break;case '7':
scanf("%s",&stu[n].majoy);break;case '8':
scanf("%s",&stu[n].clas);break;case '9':
scanf("%s",&stu[n].native_changes);break;case '0':return; }
}
8, 查询学生档案函数
void Student_find() //根据学号查找学生信息
{charchoose;intt,n,number;
Find:int s=0;
printf("\n请输入要查询的学号:");
scanf("%d",&number);for(t=0;t
{n=t;
printf("\n【%d号】学生的信息如下:\n",number);
printf("1—学号:%d\n",stu[n].num);
printf("2—姓名:%s\n",stu[n].name);
printf("3—性别:%c\n",stu[n].sex);
printf("4—年龄:%d\n",stu[n].age);
printf("5—籍贯:%s\n",stu[n].native);
printf("6—系别:%s\n",stu[n].depart);
printf("7—专业:%s\n",stu[n].majoy);
printf("8—班级:%s\n",stu[n].clas);
printf("9—学籍变化:%s\n",stu[n].native_changes);
s=1;
}if(s==0)
printf("无此学生信息");
getchar();
printf("是否继续(Y/N)?:");
choose=getchar();
getchar();if(choose=='y'||choose=='Y')goto Find;
9, 输出籍贯与专业函数
void Student_native() //按学号,专业输出学生籍贯表
{charchoose;int number=0;intt;
Native:int s=0;
printf("\n输入查询的学号:");
scanf("%d",&number);for(t=0;t
{
printf("【%d号】学生的信息如下:\n",number);
printf("学号:%d\n",stu[t].num);
printf("籍贯:%s\n",stu[t].native);
printf("专业:%s\n",stu[t].majoy);
s=1;
}if(s==0)
printf("暂无该学生信息");
getchar();
printf("是否继续(Y/N)?:");
choose=getchar();
getchar();if(choose=='y'||choose=='Y')gotoNative;
}
10,查询学籍变化函数
void Student_changes() //查询学生的学籍变化
{intt;for(t=0;t
{
printf("\n%s的学籍情况如下:\n",stu[t].name);
printf("%s",stu[t].native_changes);
}
getchar();
}
11,删除学生信息函数
void Student_pop() //删除学生信息
{int k=0,number,t;charchoose;
Del:
system("cls"); /*清屏*/printf("\n请输入要删除的学号:");
scanf("%d",&number);
getchar();for(t=0;t
{if(number==stu[t].num)
{ k=1;break;}
}if(k==1)
{for(k=t;k
{
stu[k]=stu[k+1];
}
i--; //删除一项 总数对应减少
printf("已删除\n\n");
}else{
printf("找不到要删除的记录!\n");
printf("按回车键返回:");
getchar();
}
printf("是否继续(Y/N)?:");
choose=getchar(); getchar();if(choose=='y'||choose=='Y')gotoDel;
}
主菜单界面: