From 2ff3bf3e3c8fc75e995c722dc7354ff115794365 Mon Sep 17 00:00:00 2001 From: "30298574152@qq.com" <30298574152@qq.com> Date: Thu, 10 Jan 2019 23:25:18 +0800 Subject: [PATCH] first commit --- 123.cpp.cpp | 333 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 277 insertions(+), 56 deletions(-) diff --git a/123.cpp.cpp b/123.cpp.cpp index 938707f..2bf5912 100644 --- a/123.cpp.cpp +++ b/123.cpp.cpp @@ -58,9 +58,6 @@ void meun() // } } - - - void new_student() { system("color 12"); @@ -108,7 +105,7 @@ void new_student() if ((fp1 = fopen("Student.txt","r")) == NULL) { system("cls"); - printf("***---文件打开失败!请重试!---***\n");; + printf("***---文件打开失败,请重试!---***\n");; system("pause"); return; } @@ -144,7 +141,7 @@ void new_student() if (fclose(fp1)) { - printf("***---文件关闭失败!请重试!---***\n"); + printf("***---文件关闭失败,请重试!---***\n"); return; } } @@ -156,18 +153,18 @@ void new_student() { if ((p = (struct Student*)malloc(sizeof(struct Student))) == NULL) { - printf("***---获取内存失败,请重试!---***\n"); + printf("***---获取内存失败,请重试!---***\n"); return; } printf("***---请输入第%d个学生的信息---***\n",i+1); while (1) { - printf("***---学号为11位,请输入学生学号:"); + printf("***---学号为11位,请输入学生学号:"); scanf("%s",p->num); if (strlen(p->num) !=11) { - printf("***---您输入有误,请重新输入!---***");; + printf("***---您输入有误,请重新输入!---***");; system("pause"); continue; } @@ -249,7 +246,7 @@ void new_student() if ((fp2 = fopen("Student.txt","w")) == NULL) { - printf("***---文件打开失败!请重试!---***\n"); + printf("***---文件打开失败,请重试!---***\n"); return; } @@ -263,14 +260,14 @@ void new_student() if (fclose(fp2)) { - printf("***---文件关闭失败!请重试!---***\n"); + printf("***---文件关闭失败,请重试!---***\n"); return; } else { for (int i=1; i<=10; i++) { - printf("***---正在保存*****%d0%%,请稍后\n", i); + printf("***---正在保存*****%d0%%,请稍后\n", i); Sleep(1); system("cls"); } @@ -291,13 +288,13 @@ void output_student() if ((fp1 = fopen("Student.txt","r")) == NULL) { - printf("***---文件打开失败!请重试!---***\n"); + printf("***---文件打开失败,请重试!---***\n"); return; } if ((head = (struct Student*)malloc(sizeof(struct Student))) == NULL) { - printf("***---获取内存失败,请重试!---***\n"); + printf("***---获取内存失败,请重试!---***\n"); return; } @@ -305,7 +302,8 @@ void output_student() if(ch==EOF) { system("cls"); - printf("***---没有学生信息,请录入!---***\n");; + printf("***---没有学生信息,请录入!---***\n"); + Sleep(500); system("pause"); return; } @@ -315,7 +313,7 @@ void output_student() { if ((p1 = (struct Student*)malloc(sizeof(struct Student))) == NULL) { - printf("***---获取数据失败,请重试!---***\n"); + printf("***---获取数据失败,请重试!---***\n"); return; } @@ -336,14 +334,14 @@ void output_student() if (fclose(fp1)) { - printf("***---文件关闭失败!请重试!---***\n"); + printf("***---文件关闭失败,请重试!---***\n"); return; } p2 = head; system("cls"); - printf("学号: 姓名: 年龄: 性别: 出生年月: 地址: 电话号码: 邮箱:\n\n"); + printf("学号: 姓名: 年龄: 性别: 出生年月: 地址: 电话号码: 邮箱:\n\n"); while (p2->next!=NULL) { printf("%-15s%-8s%-8s%-8s%-15s%-20s%-14s%-30s\n", p2->num,p2->name,p2->age, @@ -417,6 +415,7 @@ char search_student(char bools, char *info) // { system("cls"); printf("***---没有学生信息,请录入!---***\n"); + Sleep(500); printf("\n"); system("pause"); return 'n'; @@ -427,7 +426,7 @@ char search_student(char bools, char *info) // { if ((p1 = (struct Student*)malloc(sizeof(struct Student))) == NULL) { - printf("***---获取数据失败,请重试!---***\n"); + printf("***---获取数据失败,请重试!---***\n"); return 'n'; } fscanf(fp1,"%s %s %s %s %s %s %s %s", p1->num,p1->name,p1->age, @@ -519,7 +518,7 @@ char search_student(char bools, char *info) // if (!flag) { - printf("***---您查询的学生不存在,请重试!---***\n"); + printf("***---您查询的学生不存在,请重试!---***\n"); system("pause"); return 'y'; } @@ -598,7 +597,7 @@ void modify(char bools,char *info) // if(ch1==EOF) { system("cls"); - printf("***---没有学生信息,请录入!---***\n"); + printf("***---没有学生信息,请录入!---***\n"); system("pause"); return; } @@ -662,35 +661,35 @@ void modify(char bools,char *info) // switch (a[i]) { case 1: - printf("***---请输入修改后的学号:\n"); + printf("***---请输入修改后的学号:"); gets(p1->num); break; case 2: - printf("***---请输入修改后的姓名:\n"); + printf("***---请输入修改后的姓名:"); gets(p1->name); break; case 3: - printf("***---请输入修改后的年龄:\n"); + printf("***---请输入修改后的年龄:"); gets(p1->age); break; case 4: - printf("***---请输入修改后的性别:\n"); + printf("***---请输入修改后的性别:"); gets(p1->sex); break; case 5: - printf("***---请输入修改后的出生年月:\n"); + printf("***---请输入修改后的出生年月:"); gets(p1->birthday); break; case 6: - printf("***---请输入修改后的地址:\n"); + printf("***---请输入修改后的地址:"); gets(p1->address); break; case 7: - printf("***---请输入修改后的电话号码:\n"); + printf("***---请输入修改后的电话号码:"); gets(p1->telephone); break; case 8: - printf("***---请输入修改后的邮箱:\n"); + printf("***---请输入修改后的邮箱:"); gets(p1->email); break; default: @@ -726,35 +725,35 @@ void modify(char bools,char *info) // switch (a[i]) { case 1: - printf("***---请输入修改后的学号:\n"); + printf("***---请输入修改后的学号:"); gets(p2->num); break; case 2: - printf("***---请输入修改后的姓名:\n"); + printf("***---请输入修改后的姓名:"); gets(p2->name); break; case 3: - printf("***---请输入修改后的年龄:\n"); + printf("***---请输入修改后的年龄:"); gets(p2->age); break; case 4: - printf("***---请输入修改后的性别:\n"); + printf("***---请输入修改后的性别:"); gets(p2->sex); break; case 5: - printf("***---请输入修改后的出生年月:\n"); + printf("***---请输入修改后的出生年月:"); gets(p2->birthday); break; case 6: - printf("***---请输入修改后的地址:\n"); + printf("***---请输入修改后的地址:"); gets(p2->address); break; case 7: - printf("***---请输入修改后的电话号码:\n"); + printf("***---请输入修改后的电话号码:"); gets(p2->telephone); break; case 8: - printf("***---请输入修改后的邮箱:\n"); + printf("***---请输入修改后的邮箱:"); gets(p2->email); break; default: @@ -798,39 +797,39 @@ void modify(char bools,char *info) // switch (a[i]) { case 1: - printf("***---请输入修改后的学号:\n"); + printf("***---请输入修改后的学号:"); gets(p1->num); break; case 2: - printf("***---请输入修改后的姓名:\n"); + printf("***---请输入修改后的姓名:"); gets(p1->name); break; case 3: - printf("***---请输入修改后的年龄:\n"); + printf("***---请输入修改后的年龄:"); gets(p1->age); break; case 4: - printf("***---请输入修改后的性别:\n"); + printf("***---请输入修改后的性别:"); gets(p1->sex); break; case 5: - printf("***---请输入修改后的出生年月:\n"); + printf("***---请输入修改后的出生年月:"); gets(p1->birthday); break; case 6: - printf("***---请输入修改后的地址:\n"); + printf("***---请输入修改后的地址:"); gets(p1->address); break; case 7: - printf("\t\t\t\t请输入修改后的电话号码:\n"); + printf("\t\t\t\t请输入修改后的电话号码:"); gets(p1->telephone); break; case 8: - printf("***---请输入修改后的邮箱:\n"); + printf("***---请输入修改后的邮箱:"); gets(p1->email); break; default: - printf("***---您输入有误,请重试!\n");; + printf("***---您输入有误,请重试!\n");; system("pause"); return; } @@ -861,34 +860,34 @@ void modify(char bools,char *info) // switch (a[i]) { case 1: - printf("***---请输入修改后的学号:\n"); + printf("***---请输入修改后的学号:"); gets(p2->num); break; case 2: - printf("***---请输入修改后的姓名:\n"); + printf("***---请输入修改后的姓名:"); gets(p2->name); break; case 3: - printf("***---请输入修改后的年龄:\n"); + printf("***---请输入修改后的年龄:"); gets(p2->age); break; case 4: - printf("***---请输入修改后的性别:\n"); + printf("***---请输入修改后的性别:"); gets(p2->sex); break; case 5: - printf("***---请输入修改后的出生年月:\n"); + printf("***---请输入修改后的出生年月:"); gets(p2->birthday); break; case 6: - printf("***---请输入修改后的地址:\n"); + printf("***---请输入修改后的地址:"); gets(p2->address); break; case 7: - printf("***---请输入修改后的电话号码:\n"); + printf("***---请输入修改后的电话号码:"); gets(p2->telephone); break; - case 8: printf("***---请输入修改后的邮箱:\n"); + case 8: printf("***---请输入修改后的邮箱:"); gets(p2->email); break; default: @@ -927,7 +926,7 @@ void modify(char bools,char *info) // { for (int i=1; i<=10; i++) { - printf("***---正在修改*****%d0%%,请稍后---***\n", i); + printf("***---正在修改*****%d0%%,请稍后---***\n", i); Sleep(1); system("cls"); } @@ -964,7 +963,7 @@ void modify(char bools,char *info) // { for (int i=1; i<=10; i++) { - printf("***---正在保存*****%d0%%,请稍后---***\n", i); + printf("***---正在保存*****%d0%%,请稍后---***\n", i); Sleep(1); system("cls"); } @@ -990,4 +989,226 @@ char menu_modefy_save() // printf("--------------------------\n"); printf("***---请选择是否保存:"); return getchar(); -} \ No newline at end of file +} +void delete_meun() //打印删除菜单,调用删除函数 +{ + void deletes(char bools,char *info); + system("color E4"); + + char bools; + char info[20]; + + system("cls"); + printf("----------------------------\n"); + printf("***--- 0.返回主菜单 ---***\n"); + printf("***--- 1.按学号删除 ---***\n"); + printf("***--- 2.按姓名删除 ---***\n"); + printf("----------------------------\n"); + printf("***---请输入你想执行的功能:"); + scanf("\n%c",&bools); + + system("cls"); + if ((bools != '1') && (bools != '2')) + { + system("color 0F"); + return ; + } + + + else if (bools == '1') + { + + printf("***---请输入要删除学生的学号:"); + scanf("%s",info); + } + else + { + printf("***---请输入要删除学生的姓名:"); + scanf("\n%s",info); + } + + deletes(bools,info); +} + +void deletes(char bools,char *info) //删除函数 +{ + struct Student *head; + struct Student *p1=NULL, *p2=NULL; + + FILE *fp1; + + if ((fp1 = fopen("Student.txt","r")) == NULL) + { + printf("***---文件打开失败,请重试!---***\n"); + return; + } + + while (!feof(fp1)) + { + if ((p1 = (struct Student*)malloc(sizeof(struct Student))) == NULL) + { + printf("***---获取数据失败,请重试!---***\n"); + return; + } + fscanf(fp1,"%s %s %s %s %s %s %s %s", p1->num,p1->name,p1->age, + p1->sex,p1->birthday,p1->address,p1->telephone,p1->email); + + if (p2 == NULL) + { + head = p2 = p1; + } + else + { + p2->next = p1; + p2 = p1; + p2->next = NULL; + } + } + if (fclose(fp1)) + { + printf("***---文件关闭失败,请重试!---***\n"); + return; + } + + int flag = 0; + p1 = head; + p2 = head->next; + + //输入学号删除 + if (bools == '1') + { + if (!strcmp(head->num, info)) + { + head = head->next; + free(p1); + flag = 1; + } + else + { + while (p2->next!= NULL) + { + if (!strcmp(p2->num, info)) + { + p1->next = p2->next; + free(p2); + flag = 1; + break; + } + else + { + p1 = p1->next; + p2 = p2->next; + } + } + } + + } + + //输入姓名删除 + else + { + if (!strcmp(head->name, info)) + { + head = head->next; + free(p1); + flag = 1; + } + else + { + while (p2->next!= NULL) + { + if (!strcmp(p2->name, info)) + { + p1->next = p2->next; + free(p2); + flag = 1; + break; + } + else + { + p1 = p1->next; + p2 = p2->next; + } + } + } + } + + if (!flag) + { + printf("***---您删除的学生不存在,请重试!---***\n"); + printf("\n"); + system("pause"); + return; + } + else + { + for (int i=1; i<=10; i++) + { + printf("***---正在删除*****%d0%%,请稍后---***\n", i); + Sleep(1); + system("cls"); + } + + printf("***---删除成功!---***\n"); + Sleep(500); + } + char menu_delete_save(); + char temp = menu_delete_save(); //保存删除后的数据 + if ((temp == 'y') || (temp == 'Y')) + { + FILE *fp2; + p1 = head; + + if ((fp2 = fopen("Student.txt","w")) == NULL) + { + printf("***---文件打开失败,请重试!---***\n"); + return; + } + + while (p1->next!= NULL) + { + fprintf(fp2,"%s %s %s %s %s %s %s %s\n", p1->num, p1->name, p1->age, + p1->sex, p1->birthday, p1->address, p1->telephone, p1->email); + p1 = p1->next; + } + + if (fclose(fp2)) + { + printf("***---文件关闭失败,请重试!---***\n"); + return; + } + else + { + for (int i=1;i<=10;i++) + { + printf("***---正在保存*****%d0%%,请稍后---***\n", i); + Sleep(1); + system("cls"); + } + printf("***---保存成功!---***\n"); + Sleep(500); + } + } + else + { + system("cls"); + printf("***---您的删除操作未保存!---***\n"); + Sleep(500); + } +} + +char menu_delete_save() //打印删除是否保存的菜单 +{ + system("cls"); + + printf("------------------------\n"); + printf("***--- y.保存 ---***\n"); + printf("***--- n.不保存 ---***\n"); + printf("------------------------\n"); + printf("***---请选择是否保存:"); + + getchar(); + return getchar(); +} + +