(桂电)学生成绩管理系统(论文加源代码) 数据结构与算法课设(C语言) 联系客服

发布时间 : 星期二 文章(桂电)学生成绩管理系统(论文加源代码) 数据结构与算法课设(C语言)更新完毕开始阅读c3cf3d1743323968011c9265

fflush(stdin);

sign = getchar(); //接受用户的选择

if (sign == 'y' || sign == 'Y') //如果用户确定删除 {

if (y > 0) //若用户是根据姓名查找的该信息 {

/*把该信息后的信息依次前移一位,覆盖该信息*/ for (i = y-1; i < n-1; i++) {

stud[i] = stud[i+1]; } }

else //若用户根据学号查找到该信息 {

/*把该信息后的信息依次前移一位,覆盖该信息*/ for (i = -y-1; i < n-1; i++) {

stud[i] = stud[i+1]; } } } }

/*************************************************************************** 功能:根据查找函数的返回值找到对应信息并进行选择性修改 参数:参数struct Student stud[]代表结构数组首地址

,n代表数组长度,y与要删除的数对应的下标有固定数学关系 返回值:空 */

void amend_stu(struct Student stud[], int n, int y) {

int ch; //用于接收用户对某门成绩修改的选择

int flag_score; //值作为输入有误就重复输入的循环条件 int h; //接收scanf()函数的返回值

char x; //用于判断用户中是否包含不合法输入 float am_score; //用于接收用户输入的成绩

/*接收用户对修改列项的选择*/

printf(\请输入您要对哪一门成绩进行修改?( 0:数据库; 1:算法; 2:C语言)\ fflush(stdin); scanf(\

do /*接收用户输入成绩的同时判断输入是否正确*/ {

/*接收用户输入并产生返回值*/

printf(\请输入该门课的成绩:\ flag_score = 0; h=0;

fflush(stdin);

h = scanf(\

if ((am_score < 0 || am_score > 100) //如果用户信息输入有误 || (h != 2) || (x != '\\n')) {

flag_score = -1;

printf(\输入有误,请重新输入成绩(0-100):\\n\提示重新输入 }

28

}while (flag_score < 0); //如果用户输入错误则继续循环

/*把查找到的信息修改成为用户需要的信息*/ if (y > 0) {

stud[y-1].score[ch] = am_score; printf(\修改成功!\\n\ } else {

stud[-y-1].score[ch] = am_score; printf(\修改成功!\\n\ } }

/*************************************************************************** 功能:从文件中读入学生成绩信息

参数:参数struct Student stud[]代表结构数组首地址,n代表数组长度 返回值:空 */

int add_text(struct Student stud[], int n) {

int i = 0; //用于控制循环 int num;

FILE *fp; //定义文件指针

/* char filename[20];

printf(\请输入您要打开的文件名:\ scanf(\输入文件名 */

if ((fp = fopen(\打开文件 {

printf(\打开失败!\\n\\n\\n\打开失败信息 printf(\ system(\ return(n); }

fscanf(fp, \读入总记录量

while (i

fscanf(fp,\ &stud[i].score[1], &stud[i].score[2], &stud[i].score[3], &stud[i].score[4]); i++; }

n = num;

fclose(fp); /*关闭文件*/

printf(\打开成功!\\n\\n\\n\ printf(\ return(n); }

/*************************************************************************** 功能:将学生成绩信息保存到一个文件

参数:参数struct Student stud[]代表结构数组首地址,n代表数组长度

29

返回值:空 */

void write_text(struct Student stud[], int n) //将所有记录写入文件 {

int i = 0;

FILE *fp; //定义文件指针

/*char filename[20]; //定义文件名

printf(\请输入您要保存的文件名:\输入文件名 scanf(\

if ((fp = fopen(\打开文件 {

printf(\无法打开这个文件!\\n\\n\\n\ return; }

fprintf(fp, \循环写入数据 while (i < n) {

fprintf(fp,\%.1f %.1f %.1f %.1f\\n\stud[i].num, stud[i].name, stud[i].score[0], stud[i].score[1], stud[i].score[2], stud[i].score[3], stud[i].score[4]); i++; }

fclose(fp); //关闭文件

printf(\成功记录!\\n\\n\\n\返回成功信息 }

30