|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 coxixixixny 于 2020-6-10 00:47 编辑
/*录入学生的信息*/
int add(struct student st[100]){
system("cls");system("color 3f");
char ch;
char c;
fflush(stdin);//fflush函数包含在stdio.h头文件中,2113用来强制将缓5261冲区中的内容写入文件
chong:
printf("请输入所要录入的第%d个学生信息:",length+1);
printf("\n学生年龄:");
scanf("%d",&st[0].age);
if(st[0].age>200||st[0].age<0||st[0].age==200||st[0].age==0){
printf("您输入的年龄不符合实际!请重新输入!\n");
goto chong;
}
else{
printf("\n学生学号:");
scanf("%s",&st[0].logdate);
printf("\n学生姓名:");
scanf("%s",&st[0].name);
printf("\n学生专业:");
scanf("%s",&st[0].xb);
printf("\n学生年级:");
scanf("%d",&st[0].nianji);
printf("\n学生性别:");
scanf("%s",&st[0].xb);
chong1:
printf("\n学生的出生日期:(年月日(每写一个按enther换下一个)) ");
scanf("%d%d%d",&st[0].birthday.year,&st[0].birthday.month,&st[0].birthday.day);
if((st[0].birthday.year<2020||st[0].birthday.year==2020)&&(st[0].birthday.month<12||st[0].birthday.month==12)&&(st[0].birthday.day==31||st[0].birthday.day<31)){
printf("\n学生的家庭地址:");
scanf("%s",&st[0].homedz);
printf("\n学生的联系电话:");
scanf("%s",&st[0].dianhua);
length++;
while(1)
{
c=getchar();
printf("\n输入Y/y继续录入学生信息,输入N/n结束录入返回界面.\n");
ch=getchar();
if(ch=='y'||ch=='Y'){
system("cls");
fflush(stdin);
goto chong;
}
else{
if(ch=='n'||ch=='N'){
jiemian1();
}
}
}
}
else{
printf("\n输入错误!请按括号里的格式正确输入!\n");
goto chong1;
}
}
}
/*列出所有的学生的信息*/
int liechu(student st[100],int i){
system("color 3f");
system("cls");
fflush(stdin);
printf("\n年龄 学号 姓名 专业 年级 性别 出生日期(年-月-日) 家庭地址 联系电话 \n");
printf("\n%d %s %s %s %d %s %d-%d-%d %s %s\n",st.age,st.logdate,st.name,st.zy,st.nianji,st.xb,st.birthday.year,st.birthday.month,st.birthday.day,st.homedz,st.dianhua);
}
/*删除学生的信息*/
int shac(struct student st[]){
system("color 3f");
system("cls");
int liechu(struct student st[],int i);
char ch[100],c;
int i,j=-1;
printf("请输入所要删除学生信息的学号\n");
fflush(stdin);
gets(ch);
for(i=0;i<length;i++){
if((strcmp(ch,st.logdate))==0){
j=i;
liechu(st,i);
}
}
if(j==-1)
{
printf("没有找到该学生的信息记录!\n");
printf("\n");
shac(st);
}
printf("输入y/Y确定删除。输入n/N取消删除.\n");
fflush(stdin);
c=getchar();
if(c=='Y'||c=='y'){
for(j;j<length;j++){
st[j]=st[j+1];
}
length--;
printf("\n已删除!\n");
}
else{
jiemian1();
}
printf("是否继续删除其他学生信息:(确定请输入y/Y,取消则输入n/N).\n");
fflush(stdin);
c=getchar();
if(c=='y'||c=='Y'){
shac(st);
}
else{
if(c=='n'||c=='N'){
jiemian1();
}
}
}
/*修改学生的信息*/
int xiugai(struct student st[]){
system("color 3f");
system("cls");
int liechu(struct student st[],int i);
char ch[100],c;
int i,j=-1;
printf("输入学生的学号进行修改\n");
gets(ch);
for(i=0;i<length;i++){
if((strcmp(ch,st.logdate))==0){
j=i;
liechu(st,i);
}
if(j==-1){
printf("没有找到该学生的信息记录!\n");
xiugai(st);
}
printf("是否继续修改其他学生信息:(确定请输入y/Y,取消则输入n/N)\n");
fflush(stdin);
c=getchar();
if(c=='y'||c=='Y'){
fflush(stdin);
printf("\n学生年龄:");
scanf("%d",&st[j].age);
printf("\n学生学号:");
scanf("%s",&st[j].logdate);
printf("\n学生姓名:");
scanf("%s",&st[j].name);
printf("\n学生专业:");
scanf("%s",&st[j].xb);
printf("\n学生年级:");
scanf("%d",&st[j].nianji);
printf("\n学生性别:");
scanf("%s",&st[j].xb);
printf("\n学生的出生日期:(年-月-日) ");
scanf("%d%d%d",&st[j].birthday.year,&st[j].birthday.month,&st[j].birthday.day);
printf("\n学生的家庭地址:");
scanf("%s",&st[j].homedz);
printf("\n学生的联系电话:");
scanf("%s",&st[j].dianhua);
}
else{
if(c=='n'||c=='N'){
jiemian1();
}
}
printf("是否继续修改学生信息:(确定请输入y/Y,取消则输入n/N)\n");
c=getchar();
if(c=='y'||c=='Y'){
xiugai(st);
}
else{
if(c=='n'||c=='N'){
jiemian1();
}
}
}
}
/*查询学生信息*/
void chaxun(struct student st[]){
cl:
system("color 3f");
system("cls");
char c;
char ch[100];
int a,i,j=0;
int liechu(struct student st[],int i);
printf(" --------------------------------------------------------------------------------------------------------------\n");
printf(" | 学生信息管理系统 |\n");
printf(" --------------------------------------------------------------------------------------------------------------\n");
printf(" | 请选择: |\n");
printf(" | |\n");
printf(" | |\n");
printf(" | |\n");
printf(" | |\n");
printf(" | 1.输入学生学号进行查询 |\n");
printf(" | |\n");
printf(" | |\n");
printf(" | 2.输入学生年级进行查询 |\n");
printf(" | |\n");
printf(" | |\n");
printf(" | 3.返回界面 |\n");
printf(" | |\n");
printf(" | |\n");
printf(" | |\n");
printf(" --------------------------------------------------------------------------------------------------------------\n");
printf(" |请输入你的选择(输入序号1/2/3) ");
fflush(stdin);
c=getchar();
switch(c)
{
case '1':{
fflush(stdin);
printf(" |请输入学生学号:");
scanf("%s",&ch);
for(i=0;i<length;i++){
if((strcmp(ch,st.logdate))==0){
j++;
liechu(st,i);
}
}
if(j=0){
printf("没有找到该学生的信息记录!\n");
chaxun(st);
}
break;
}
case '2':{
fflush(stdin);
printf(" |请输入学生年级:");
scanf("%d",&a);
for(i=0;i<length;i++){
if(a==st.nianji){
j++;
liechu(st,i);
}
}
if(j==0){
printf("没有找到该学生的信息记录!\n");
chaxun(st);
}
break;
}
case '3':{
jiemian1();
break;
}
default:
{
printf("非法输入!请重新输入!\n");
goto cl;
}
}
printf("是否继续查询学生信息:(确定请输入y/Y,取消则输入n/N)\n");
fflush(stdin);
c=getchar();
if(c=='y'||c=='Y'){
chaxun(st);
}
else
{
main();
}
}
问题:为什么我输入学生信息进去后,然后重新查找或者删除的时候找不到该数据?请问能否帮我改一下?(顺序表)让数据信息可以保存,拜托了!!!明天要交 |
|