2024欧洲杯_推荐外围- 欢迎您%#

开yun体育官网入口登录体育 stu[i].score[0]-2024欧洲杯_推荐外围- 欢迎您%#

发布日期:2025-02-14 08:17    点击次数:145

开yun体育官网入口登录体育 stu[i].score[0]-2024欧洲杯_推荐外围- 欢迎您%#

学生信息责罚系统

功能:加多、删除、保存、刷新、查询、修改、露出学生信息模块念念想,将每一个功能写成一个函数将每个学生基本信息界说一个结构体 N为宏界说,最大学生数

struct STU {

char num[100]; //学号

char name[100]; //姓名

char sex[10]; //性别

int age; //年事

float score[3]; //收获*3[C话语,高数,英语]

}开yun体育官网入口登录体育stu[N];

函数声明

void menu(); //打印菜单

张开剩余97%

void help(); //打印使用匡助

void increase(); //加多学生信息

void search(); //搜索学生信息

void dlt(); //删除学生信息

void save(); //保存学生信息

void display(); //露出学生信息

void modify(); //修改学生信息

void flush(); //刷新学生信息

void exit(); //退出

main函数

在对每一个函数定名时尽量作念到见名知意

当t为真时,轮回启动,t为假时,轮回杀青

int main()

{

int number;

while (t)

{

menu();

printf("请输入菜单编号:");

scanf("%d", &number);

switch (number)

{

case 1:help(); break; //使用匡助

case 2:increase(); break; //加多学生信息

case 3:search(); break; //查询学生信息

case 4:dlt(); break; //删除学生信息

case 5:save(); break; //保存刻下信息

case 6:display(); break; //露出刻下信息

case 7:modify(); break; //修改学生信息

case 8:flush(); break; //刷新学生信息

case 9:exit(0); break; //退出

default:printf("输入有误!");

}

}

}

menu函数

void menu() //露出菜单

{

printf("\n");

printf("*****************************************************\n");

printf("* 学生信息责罚系统 *\n");

printf("*****************************************************\n");

printf("********************系统功能菜单*********************\n");

printf("----------------------- -------------------------\n");

printf("*****************************************************\n");

printf("** 1、使用匡助 * 2、加多学生信息 **\n");

printf("*****************************************************\n");

printf("** 3、查询学生信息 * 4、删除学生信息 **\n");

printf("*****************************************************\n");

printf("** 5、保存刻下信息 * 6、露出刻下信息 **\n");

printf("*****************************************************\n");

printf("** 7、修改学生信息 * 8、刷新学生信息 **\n");

printf("*****************************************************\n");

printf("** 9、退出系统 * **\n");

printf("************************* \n");

printf("----------------------- -------------------------\n");

}

help函数system(“pause”); 让系统暂停

void help() //使用匡助

{

printf("\n这是一个学生责罚系统,为绵薄您更快了解它,请先阅读以下注视事项:\n");

printf("\n 注视事项: \n ");

printf("\n 1、请字据教唆进行操作!\n");

printf("\n 2、初度使用请先遴荐加多学生信息!\n");

printf("\n 3、修改或者加多学生信息后切记保存!\n");

printf("\n 4、若是数据有不实,请先修改再保存!\n");

printf("\n 5、若您之前使用过,下次参加系统请先刷新学生信息!\n");

printf("\n 6、在添加学生时,用两个字符代表不同的性别,比如男用‘M’代替,女用‘W’代替!\n");

printf("\n 7、保存或者刷新时,输入的文献名后缀请使用.txt,比如: stu.txt,系统会在源局势\n");

printf("\n “学生责罚系统.exe”的交流目次缔造一个.txt文献来保存学生信息,您不错稽察\n");

printf("\n 该文献,但非专科东谈主员不要大概更正,不然会酿成刷新数据绝顶或刷新失败!\n");

printf("\n 8、学生信息包括:姓名、学号、性别、年事、C话语收获、高数收获、英语收获等!\n");

printf("\n 9、使用际遇任何问题请与咱们筹备,电话:12345678\n");

printf("\n 10、终末感谢您的使用!\n");

system("pause"); //让系统暂停

}

increase函数(加多学生信息)界说flag,判断学生信息是否存在n为已存在的学生信息数目

void increase() //加多学生信息

{

int m, flag, i = n, j;

printf("请输入待添加的学生东谈主数:\n");

scanf("%d", &m);

if (m > 0)

{

do

{

flag = 1;

while (flag != 0)

{

flag = 0;

printf("请输入第%d位学生的学号:\n", i + 1);

getchar();

gets(stu[i].num);

for (j = 0; j < i; j++)

{

if (strcmp(stu[i].num, stu[j].num) == 0)

{

printf("该学号已存在,请重新输入!\n");

flag = 1;

break;

}

}

}

printf("请输入第%d位学生姓名:\n", i + 1);

gets(stu[i].name);

printf("请输入第%d位学素性别:\n", i + 1);

gets(stu[i].sex);

printf("请输入第%d位学生年事:\n", i + 1);

scanf("%d", &stu[i].age);

printf("请输入第%d位学生C话语收获:\n", i + 1);

scanf("%f", &stu[i].score[0]);

printf("请输入第%d位学生高档数学收获:\n", i + 1);

scanf("%f", &stu[i].score[1]);

printf("请输入第%d位学生大学英语收获:\n", i + 1);

scanf("%f", &stu[i].score[2]);

i++;

} while (i < m + n);

n += m;

printf("添加完成!");

system("pause");

}

}

search函数

打印时使用\t,让打印出来的局势整皆界说flag,判断学生信息是否存在由于用户操作次数不同,是以在外层套一个轮回case 3:return;默示在用户输入3时,退出该轮回,复返主函数

void search() //查询学生信息

{

int number, flag, i;

char s1[100];

printf("*****************************\n");

printf("**-------1.按学号查询------**\n");

printf("**-------2.按姓名查询------**\n");

printf("**-------3.退出本菜单------**\n");

printf("*****************************\n");

while (1)

{

flag = 0;

printf("请输入要实行的操作序号:\n");

scanf("%d", &number);

switch (number)

{

case 1:

printf("请输入需要查找学生的学号:\n");

scanf("%s",s1);

for (i = 0; i < n; i++)

{

if (strcmp(stu[i].num, s1) == 0)

{

flag = 1;

printf("学号\t\t姓名\t\t性别\t\t年事\t\tC话语\t\t高数\t\t英语\n");

printf("%s\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%.2f\t\t%.2f\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].score[0], stu[i].score[1], stu[i].score[2]);

}

}break;

case 2:

printf("请输入需要查找学生的姓名:\n");

scanf("%s",s1);

for (i = 0; i < n; i++)

{

if (strcmp(stu[i].name, s1) == 0)

{

flag = 1;

printf("学号\t\t姓名\t\t性别\t\t年事\t\tC话语\t\t高数\t\t英语\n");

printf("%s\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%.2f\t\t%.2f\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].score[0], stu[i].score[1], stu[i].score[2]);

}

}break;

case 3:return;

default:printf("请在1--3之间输入!\n");

}

if (flag == 0)

printf("找不到该学生,请重新输入!\n");

}

}

dlt函数(删除学生信息)

删除后,将n–,默示,学生总额减一界说flag,判断是否找到对应的学生信息

void dlt() //删除信息

{

int flag, i, j;

char s1[100];

printf("请输入要删除学生的学号:\n");

getchar();

gets(s1);

flag = 0;

for (i = 0; i < n; i++)

{

if (strcmp(stu[i].num, s1) == 0)

{

flag = 1;

for (j = i; j < n - 1; j++)

{

stu[j] = stu[j + 1];

}

}

if (flag == 1) break;

}

if (flag == 0) printf("未找到该学生!\n");

if (flag == 1)

{

printf("删除告捷!\n");

n--;

}

system("pause");

}

display函数(露出刻下信息)

n为目放学生总额

void display() //露出刻下信息

{

int i;

if (n == 0)

printf("您好,目下暂无学生信息,请先添加学生信息!\n");

else

{

printf("目下共有%d名学生\n", n);

printf("学号\t\t姓名\t\t性别\t\t年事\t\tC话语\t\t高数\t\t英语\n");

for (i = 0; i < n; i++)

{

printf("%s\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%.2f\t\t%.2f\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].score[0], stu[i].score[1], stu[i].score[2]);

}

}

system("pause");

}

modify函数(修改学生信息)

界说flag,判断需要修改的学生信息是否存在

void modify() //修改学生信息

{

int flag, age, num, i;

char number[100], sex[10];

float score1, score2, score3;

char s1[100];

printf("请输入需要修改的学生姓名:\n");

getchar();

gets(s1);

while (1)

{

flag = 0;

for (i = 0; i < n; i++)

{

if (strcmp(s1, stu[i].name) == 0)

{

flag = 1;

printf("***************************************************\n");

printf("*----1.修改学号-------- - -----2.修改性别-------*\n");

printf("*----3.修改年事-------- - -----4.修改C话语收获--*\n");

printf("*----5.修改高数收获---- - -----6.修改英语收获---*\n");

printf("*-------------------7.退出本菜单------------------*\n");

printf("***************************************************\n\n");

printf("请输入菜单编号:\n");

scanf("%d", &num);

switch (num)

{

case 1:

printf("请输入新学号:\n");

getchar();

gets(number);

strcpy(stu[i].num, number);

break;

case 2:

printf("请输入性别:\n");

getchar();

gets(sex);

strcpy(stu[i].sex, sex);

break;

case 3:

printf("请输入年事:\n");

scanf("%d", &age);

stu[i].age = age;

break;

case 4:

printf("请输入C话语收获:\n");

scanf("%f", &score1);

stu[i].score[0] = score1;

break;

case 5:

printf("请输入高数收获:\n");

scanf("%f", &score2);

stu[i].score[1] = score2;

break;

case 6:

printf("请输入英语收获:\n");

scanf("%f", &score3);

stu[i].score[2] = score3;

break;

case 7:return;

default:printf("请输入1--7之间的数字!\n");

}

if (num > 0 && num < 8)

printf("修改告捷!\n");

break;

}

}

if (flag == 0)

{

printf("未找到该学生,请重新输入学生姓名:\n");

gets(s1);

}

}

system("pause");

}

flush函数(刷新学生信息)

fread(&stu[i], sizeof(struct STU), 1, fp) == 1默示函数告捷实行,刷新告捷

void flush() //刷新学生信息

{

FILE* fp;

char filename[100];

int i, k = 0;

printf("请输入需要刷新的文献名:\n");

getchar();

gets(filename);

if ((fp = fopen(filename, "r")) == NULL)

{

printf("大开文献失败!\n");

exit(0);

}

for (i = 0; i < N; i++)

{

if (fread(&stu[i], sizeof(struct STU), 1, fp) == 1)

{

k++;

}

}

n = k;

if (k == 0) printf("刷新失败!\n");

else printf("刷新告捷!\n");

fclose(fp);

system("pause");

}

无缺代码如下:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#define N 50

void menu();

void help();

void increase();

void search();

void dlt();

void save();

void display();

void modify();

void flush();

void exit();

int n = 0, t = 1; //n为总东谈主数,t死心轮回

struct STU {

char num[100]; //学号

char name[100]; //姓名

char sex[10]; //性别

int age; //年事

float score[3]; //收获*3

}stu[N];

int main()

{

int number;

while (t)

{

menu();

printf("请输入菜单编号:");

scanf("%d", &number);

switch (number)

{

case 1:help(); break; //使用匡助

case 2:increase(); break; //加多学生信息

case 3:search(); break; //查询学生信息

case 4:dlt(); break; //删除学生信息

case 5:save(); break; //保存刻下信息

case 6:display(); break; //露出刻下信息

case 7:modify(); break; //修改学生信息

case 8:flush(); break; //刷新学生信息

case 9:exit(0); break; //退出

default:printf("输入有误!");

}

}

}

void menu() //露出菜单

{

printf("\n");

printf("*****************************************************\n");

printf("* 学生信息责罚系统 *\n");

printf("*****************************************************\n");

printf("********************系统功能菜单*********************\n");

printf("----------------------- -------------------------\n");

printf("*****************************************************\n");

printf("** 1、使用匡助 * 2、加多学生信息 **\n");

printf("*****************************************************\n");

printf("** 3、查询学生信息 * 4、删除学生信息 **\n");

printf("*****************************************************\n");

printf("** 5、保存刻下信息 * 6、露出刻下信息 **\n");

printf("*****************************************************\n");

printf("** 7、修改学生信息 * 8、刷新学生信息 **\n");

printf("*****************************************************\n");

printf("** 9、退出系统 * **\n");

printf("************************* \n");

printf("----------------------- -------------------------\n");

}

void help() //使用匡助

{

printf("\n这是一个学生责罚系统,为绵薄您更快了解它,请先阅读以下注视事项:\n");

printf("\n 注视事项: \n ");

printf("\n 1、请字据教唆进行操作!\n");

printf("\n 2、初度使用请先遴荐加多学生信息!\n");

printf("\n 3、修改或者加多学生信息后切记保存!\n");

printf("\n 4、若是数据有不实,请先修改再保存!\n");

printf("\n 5、若您之前使用过,下次参加系统请先刷新学生信息!\n");

printf("\n 6、在添加学生时,用两个字符代表不同的性别,比如男用‘M’代替,女用‘W’代替!\n");

printf("\n 7、保存或者刷新时,输入的文献名后缀请使用.txt,比如: stu.txt,系统会在源局势\n");

printf("\n “学生责罚系统.exe”的交流目次缔造一个.txt文献来保存学生信息,您不错稽察\n");

printf("\n 该文献,但非专科东谈主员不要大概更正,不然会酿成刷新数据绝顶或刷新失败!\n");

printf("\n 8、学生信息包括:姓名、学号、性别、年事、C话语收获、高数收获、英语收获等!\n");

printf("\n 9、使用际遇任何问题请与咱们筹备,电话:12345678\n");

printf("\n 10、终末感谢您的使用!\n");

system("pause"); //让系统暂停

}

void increase() //加多学生信息

{

int m, flag, i = n, j;

printf("请输入待添加的学生东谈主数:\n");

scanf("%d", &m);

if (m > 0)

{

do

{

flag = 1;

while (flag != 0)

{

flag = 0;

printf("请输入第%d位学生的学号:\n", i + 1);

getchar();

gets(stu[i].num);

for (j = 0; j < i; j++)

{

if (strcmp(stu[i].num, stu[j].num) == 0)

{

printf("该学号已存在,请重新输入!\n");

flag = 1;

break;

}

}

}

printf("请输入第%d位学生姓名:\n", i + 1);

gets(stu[i].name);

printf("请输入第%d位学素性别:\n", i + 1);

gets(stu[i].sex);

printf("请输入第%d位学生年事:\n", i + 1);

scanf("%d", &stu[i].age);

printf("请输入第%d位学生C话语收获:\n", i + 1);

scanf("%f", &stu[i].score[0]);

printf("请输入第%d位学生高档数学收获:\n", i + 1);

scanf("%f", &stu[i].score[1]);

printf("请输入第%d位学生大学英语收获:\n", i + 1);

scanf("%f", &stu[i].score[2]);

i++;

} while (i < m + n);

n += m;

printf("添加完成!");

system("pause");

}

}

void search() //查询学生信息

{

int number, flag, i;

char s1[100];

printf("*****************************\n");

printf("**-------1.按学号查询------**\n");

printf("**-------2.按姓名查询------**\n");

printf("**-------3.退出本菜单------**\n");

printf("*****************************\n");

while (1)

{

flag = 0;

printf("请输入要实行的操作序号:\n");

scanf("%d", &number);

switch (number)

{

case 1:

printf("请输入需要查找学生的学号:\n");

scanf("%s",s1);

for (i = 0; i < n; i++)

{

if (strcmp(stu[i].num, s1) == 0)

{

flag = 1;

printf("学号\t\t姓名\t\t性别\t\t年事\t\tC话语\t\t高数\t\t英语\n");

printf("%s\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%.2f\t\t%.2f\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].score[0], stu[i].score[1], stu[i].score[2]);

}

}break;

case 2:

printf("请输入需要查找学生的姓名:\n");

scanf("%s", s1);

for (i = 0; i < n; i++)

{

if (strcmp(stu[i].name, s1) == 0)

{

flag = 1;

printf("学号\t\t姓名\t\t性别\t\t年事\t\tC话语\t\t高数\t\t英语\n");

printf("%s\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%.2f\t\t%.2f\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].score[0], stu[i].score[1], stu[i].score[2]);

}

}break;

case 3:return;

default:printf("请在1--3之间输入!\n");

}

if (flag == 0)

printf("找不到该学生,请重新输入!\n");

}

}

void dlt() //删除信息

{

int flag, i, j;

char s1[100];

printf("请输入要删除学生的学号:\n");

getchar();

gets(s1);

flag = 0;

for (i = 0; i < n; i++)

{

if (strcmp(stu[i].num, s1) == 0)

{

flag = 1;

for (j = i; j < n - 1; j++)

{

stu[j] = stu[j + 1];

}

}

if (flag == 1) break;

}

if (flag == 0) printf("未找到该学生!\n");

if (flag == 1)

{

printf("删除告捷!\n");

n--;

}

system("pause");

}

void save() //保存学生信息

{

FILE* fp;

char filename[100];

int i;

printf("请输入要保存的文献名:\n");

scanf("%s", filename);

if ((fp = fopen(filename, "w")) == NULL)

{

printf("大开文献失败!\n");

exit(0);

}

for (i = 0; i < n; i++)

{

if (fwrite(&stu[i], sizeof(struct STU), 1, fp) != 1)

printf("保存失败!\n");

}

printf("保存告捷!\n");

fclose(fp);

system("pause");

}

void display() //露出刻下信息

{

int i;

if (n == 0)

printf("您好,目下暂无学生信息,请先添加学生信息!\n");

else

{

printf("目下共有%d名学生\n", n);

printf("学号\t\t姓名\t\t性别\t\t年事\t\tC话语\t\t高数\t\t英语\n");

for (i = 0; i < n; i++)

{

printf("%s\t\t%s\t\t%s\t\t%d\t\t%.2f\t\t%.2f\t\t%.2f\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].score[0], stu[i].score[1], stu[i].score[2]);

}

}

system("pause");

}

void modify() //修改学生信息

{

int flag, age, num, i;

char number[100], sex[10];

float score1, score2, score3;

char s1[100];

printf("请输入需要修改的学生姓名:\n");

getchar();

gets(s1);

while (1)

{

flag = 0;

for (i = 0; i < n; i++)

{

if (strcmp(s1, stu[i].name) == 0)

{

flag = 1;

printf("***************************************************\n");

printf("*----1.修改学号-------- - -----2.修改性别-------*\n");

printf("*----3.修改年事-------- - -----4.修改C话语收获--*\n");

printf("*----5.修改高数收获---- - -----6.修改英语收获---*\n");

printf("*-------------------7.退出本菜单------------------*\n");

printf("***************************************************\n\n");

printf("请输入菜单编号:\n");

scanf("%d", &num);

switch (num)

{

case 1:

printf("请输入新学号:\n");

getchar();

gets(number);

strcpy(stu[i].num, number);

break;

case 2:

printf("请输入性别:\n");

getchar();

gets(sex);

strcpy(stu[i].sex, sex);

break;

case 3:

printf("请输入年事:\n");

scanf("%d", &age);

stu[i].age = age;

break;

case 4:

printf("请输入C话语收获:\n");

scanf("%f", &score1);

stu[i].score[0] = score1;

break;

case 5:

printf("请输入高数收获:\n");

scanf("%f", &score2);

stu[i].score[1] = score2;

break;

case 6:

printf("请输入英语收获:\n");

scanf("%f", &score3);

stu[i].score[2] = score3;

break;

case 7:return;

default:printf("请输入1--7之间的数字!\n");

}

if (num > 0 && num < 8)

printf("修改告捷!\n");

break;

}

}

if (flag == 0)

{

printf("未找到该学生,请重新输入学生姓名:\n");

gets(s1);

}

}

system("pause");

}

void flush() //刷新学生信息

{

FILE* fp;

char filename[100];

int i, k = 0;

printf("请输入需要刷新的文献名:\n");

getchar();

gets(filename);

if ((fp = fopen(filename, "r")) == NULL)

{

printf("大开文献失败!\n");

exit(0);

}

for (i = 0; i < N; i++)

{

if (fread(&stu[i], sizeof(struct STU), 1, fp) == 1)

{

k++;

}

}

n = k;

if (k == 0) printf("刷新失败!\n");

else printf("刷新告捷!\n");

fclose(fp);

system("pause");

}

发布于:四川省