发布时间 : 星期二 文章(桂电)学生成绩管理系统(论文加源代码) 数据结构与算法课设(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