今天给各位分享c语言写记录的知识,其中也会对C语言怎么做笔记进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、用C语言编一个成绩记录簿2、怎么用C语言编一个学生成绩记录簿?3、如何编制一个C语言成绩记录簿4、用C语言设计一个学生成绩记录薄
用C语言编一个成绩记录簿
#include stdio.h
#include stdlib.h
#include string.h
#define MAX 1000
typedef struct Lesson //定义课程结构体
{
int Lesson_Num;
char Lesson_Name[50];
int Lesson_Mark;
int Lesson_Credit;
}Lesson;
typedef struct Student //定义学生的结构体
{
char Name[50];
int Num;
int Lesson_Count;
Lesson L[20];
}Student;
Student S[MAX];
static int Student_Count = 0; //记录学生数的变量
void PrintInterface(); //打印界面
int AddStudent(); //添加,带返回值,提示操作成功
int DelStudent(); //删除,带返回值,提示操作成功
void CheckStudent(); //查学生成绩
void CheckClass(); //查班成绩表
void WriteFile(); //写入文本文件
void ReadFile(); //读取文本文件
void main()
{
int Choice;
while (1)
{
PrintInterface();
scanf(“%d%*c”, Choice); //”%*c”是吸收回车的,因为后面会输入字母类型
if (Choice = 0 Choice = 6) //选择操作合法
{
switch (Choice)
{
case 0: exit(1);
case 1:
{
system(“cls”);
if (AddStudent()) printf(“\n添加成功…回车继续\n”);
else printf(“\n添加失败…回车继续\n”);
getchar();
getchar();
system(“cls”);
break;
}
case 2:
{
system(“cls”);
if (DelStudent()) printf(“\n删除成功…回车继续\n”);
else printf(“\n删除失败…回车继续\n”);
getchar();
getchar();
system(“cls”);
break;
}
case 3:
{
system(“cls”);
CheckStudent();
system(“cls”);
break;
}
case 4:
{
system(“cls”);
CheckClass();
system(“cls”);
break;
}
case 5: WriteFile();system(“cls”);break;
case 6: ReadFile();system(“cls”);break;
default:;
}
}
else
{
printf(“无此功能..重新选择..回车确定\n”); //选择操作非法
getchar();
system(“cls”); //清屏函数
}
}
}
void PrintInterface()
{
printf(“\t ————————– \n”);
printf(“\t| 1、添加 |\n”);
printf(“\t| |\n”);
printf(“\t| 2、删除 |\n”);
printf(“\t| |\n”);
printf(“\t| 3、查学生成绩 |\n”);
printf(“\t| |\n”);
printf(“\t| 4、查班成绩表 |\n”);
printf(“\t| |\n”);
printf(“\t| 5、写入文本文件 |\n”);
printf(“\t| |\n”);
printf(“\t| 6、读取文本文件 |\n”);
printf(“\t| |\n”);
printf(“\t| 0、退出 |\n”);
printf(“\t ————————– \n”);
printf(“\t选择操作:”);
}
int AddStudent()
{
int S_count, i, j;
printf(“\n添加中……\n”);
printf(“\n添加学生人数(如1、2 ……999):”);
scanf(“%d”, S_count);
if (Student_Count + S_count = MAX) return 0; //超过了数组上限
for (i = Student_Count; i Student_Count + S_count; i++)
{
printf(“\n\t第%d个学生:\n”, i – Student_Count + 1);
printf(“\n\t学生学号:”); scanf(“%d%*c”, S[i].Num);
printf(“\n\t学生姓名:”); gets(S[i].Name);
printf(“\n\t该学生所修课程数:”); scanf(“%d”, S[i].Lesson_Count);
for (j = 0; j S[i].Lesson_Count; j++)
{
printf(“\n\t第%d门课:\n”, j + 1);
printf(“\n\t\t课程编号:”); scanf(“%d%*c”, S[i].L[j].Lesson_Num);
printf(“\n\t\t课程名称:”); gets(S[i].L[j].Lesson_Name);
printf(“\n\t\t课程成绩:”); scanf(“%d”, S[i].L[j].Lesson_Mark);
printf(“\n\t\t课程学分:”); scanf(“%d”, S[i].L[j].Lesson_Credit);
if (S[i].L[j].Lesson_Mark 60) S[i].L[j].Lesson_Credit = 0; //不及格的课程学分为0
}
}
Student_Count += S_count;
return 1;
}
int DelStudent()
{
char *D_Name;
int D_Num;
int i, j;
printf(“\n填写待删除学生的信息:\n”);
printf(“\n学生姓名:”); gets(D_Name);
printf(“\n学生学号:”); scanf(“%d”, D_Num);
for (i = 0; i Student_Count; i++)
{
if (!strcmp(S[i].Name, D_Name) S[i].Num == D_Num)
{
printf(“\n找到该学生,删除中……\n”);
for (j = i + 1; j Student_Count; j++)
{
S[j – 1] = S[j];
}
break;
}
}
if (i == Student_Count)
{
printf(“\n未找到该学生…请核对所填信息\n\n”);
return 0;
}
else
{
Student_Count–;
return 1;
}
}
void CheckStudent()
{
int C_Choice;
char C_Name[50];
int C_Num;
int i, j;
printf(“\n输入所查学生信息(1.姓名 \\ 2.学号)选择:”);
scanf(“%d%*c”, C_Choice);
printf(“\n查找中……\n”);
if (C_Choice == 1 || C_Choice == 2) //选择合法
{
if (C_Choice == 1)
{
printf(“\n姓名:”); gets(C_Name);
for (i = 0; i Student_Count; i++) //全部穷举,防止同名同姓
{
if (!strcmp(S[i].Name, C_Name))
{
printf(“\n学号:%d\t姓名:%s\n”, S[i].Num, S[i].Name);
printf(“\n课程编号\t课程名称\t课程成绩\t课程学分\n”);
printf(“—————————————————–\n”);
for (j = 0; j S[i].Lesson_Count; j++)
{
printf(“%d\t\t%s\t\t%d\t\t%d\n”, S[i].L[j].Lesson_Num,
S[i].L[j].Lesson_Name, S[i].L[j].Lesson_Mark,
S[i].L[j].Lesson_Credit);
printf(“—————————————————–\n”);
}
printf(“\n\n”);
}
}
}
else
{
printf(“\n学号:”); scanf(“%d%*c”, C_Num);
for (i = 0; i Student_Count; i++) //不用全部穷举,学号唯一
{
if (S[i].Num == C_Num)
{
printf(“\n学号:%d\t姓名:%s\n”, S[i].Num, S[i].Name);
printf(“\n课程编号\t课程名称\t课程成绩\t课程学分\n”);
printf(“—————————————————–\n”);
for (j = 0; j S[i].Lesson_Count; j++)
{
printf(“%d\t\t%s\t\t%d\t\t%d\n”, S[i].L[j].Lesson_Num,
S[i].L[j].Lesson_Name, S[i].L[j].Lesson_Mark,
S[i].L[j].Lesson_Credit);
printf(“—————————————————–\n”);
}
printf(“\n\n”);
break;
}
}
}
printf(“查找完毕…回车继续\n”);
getchar();
}
else //选择不合法
{
printf(“选择错误…回车继续\n”);
getchar();
return;
}
}
void CheckClass()
{
int C_LNum;
double SSNum = 0, PassSNum = 0, SMark = 0;
int i, j;
printf(“\n请输入课程编号:”);
scanf(“%d%*c”, C_LNum);
printf(“\n查找中……\n\n”);
printf(“学号\t姓名\t课程名称\t课程成绩\t课程学分\n”);
printf(“—————————————————-\n”);
for (i = 0; i Student_Count; i++)
{
for (j = 0; j S[i].Lesson_Count; j++)
{
if (S[i].L[j].Lesson_Num == C_LNum)
{
printf(“%d\t%s\t%s\t\t%d\t\t%d\n”, S[i].Num, S[i].Name, S[i].L[j].Lesson_Name,
S[i].L[j].Lesson_Mark, S[i].L[j].Lesson_Credit);
printf(“—————————————————-\n”);
SMark += S[i].L[j].Lesson_Mark;
SSNum ++;
if (S[i].L[j].Lesson_Mark = 60) PassSNum++;
break;
}
}
}
printf(“\n平均分:%.2lf\t及格率:%.2lf%%\n\n”, SMark / SSNum, PassSNum / SSNum * 100);
printf(“\n查找完毕…回车继续\n”);
getchar();
}
void WriteFile()
{
FILE *fp;
int i, j;
char Adr[100];
printf(“\n请输入写入的文件地址:\n\n地址输入格式:例如d:\\\\Student.txt(\\\\为转义字符):”);
scanf(“%s%*c”, Adr);
printf(“\n写入中……\n”);
if (fp = fopen(Adr,”w”)) //写入文件
{
fprintf(fp,”%d\n”,Student_Count);
for (i = 0; i Student_Count; i++)
{
fprintf(fp,”%d\t%s\t%d\n”,S[i].Num, S[i].Name,S[i].Lesson_Count);
for (j = 0; j S[i].Lesson_Count; j++)
{
fprintf(fp,”%d\t%s\t%d\t%d\n”, S[i].L[j].Lesson_Num,
S[i].L[j].Lesson_Name,S[i].L[j].Lesson_Mark,
S[i].L[j].Lesson_Credit);
}
}
printf(“\n写入完成…回车继续\n”);
fclose(fp);
}
else
{
printf(“\n写入失败…回车继续\n”);
}
getchar();
}
void ReadFile()
{
FILE *fp;
int i, j;
char Adr[100];
printf(“\n请输入读取(为防止读入错误,希望与写入文件内容格式一致)的文件地址:\n\n地址输入格式:例如d:\\\\Student.txt(\\\\为转义字符):”);
scanf(“%s%*c”, Adr);
printf(“\n读取中……\n”);
if (fp = fopen(Adr,”r”))
{
fscanf(fp,”%d”,Student_Count);
for (i = 0; i Student_Count; i++)
{
fscanf(fp,”%d%s%d”,S[i].Num, S[i].Name,S[i].Lesson_Count);
for (j = 0; j S[i].Lesson_Count; j++)
{
fscanf(fp,”%d%s%d%d”,S[i].L[j].Lesson_Num,
S[i].L[j].Lesson_Name,S[i].L[j].Lesson_Mark,
S[i].L[j].Lesson_Credit);
}
}
printf(“\n读取成功…回车继续\n”);
fclose(fp);
}
else
{
printf(“\n读取失败…回车继续\n”);
}
getchar();
}
怎么用C语言编一个学生成绩记录簿?
#includestdio.h
#includestdlib.h
#includestring.h
typedef struct
{
char id[15];
char name[10];
int score;
} StudentInfo;
typedef struct
{
StudentInfo arr[100];
int length;
} SeqList;
FILE *fp;
char *filePath = “C:/StudentInfo.txt”;
void initSeqList(SeqList *L)
{
L-length = 0;
}
void insertSeqList(SeqList *L, int i, StudentInfo info)å
{
int j;
for(j = L-length; j i; j–)
L-arr[j] = L-arr[j-1];
L-arr[j] = info;
L-length++;
}
void printStudentInfo(StudentInfo info)
{
printf(“%s\t%s\t%d\n”, info.id, info.name, info.score);
}
void printSeqListWithSeqNo(SeqList L)
{
for(int i = 0; i L.length; i++)
{
printf(“%d\t”, i+1);
printStudentInfo(L.arr[i]);
}
}
void printSeqList(SeqList L)
{
for(int i = 0; i L.length; i++)
printStudentInfo(L.arr[i]);
}
int queryInfoById(SeqList L, char *id)
{
for(int i = 0; i L.length; i++)
if(strcmp(id, L.arr[i].id)==0)
return i;
return -1;
}
int queryInfoByName(SeqList L, char *name)
{
for(int i = 0; i L.length; i++)
if(strcmp(name, L.arr[i].name)==0)
return i;
return -1;
}
void save2File(SeqList L)
{
fp = fopen(filePath, “w”);
for (int i = 0; i L.length; i++)
fprintf(fp, “%s\t%s\t%d\n”, L.arr[i].id, L.arr[i].name, L.arr[i].score);
}
void showMenu(SeqList L);
void addInfo(SeqList L)
{
StudentInfo info;
int index;
do {
printf(“请输入学号:”);
scanf(“%s”, info.id);
index = queryInfoById(L, info.id);
if (index != -1)
{
printf(“输入的学号已存在。\n”);
printStudentInfo(L.arr[index]);
}
} while(index != -1);
do {
printf(“请输入姓名:”);
scanf(“%s”, info.name);
index = queryInfoByName(L, info.name);
if(index != -1)
{
printf(“输入的姓名已存在。\n”);
printStudentInfo(L.arr[index]);
}
} while(index != -1);
printf(“请输入成绩:”);
scanf(“%d”, info.score);
L.arr[L.length] = info;
L.length++;
save2File(L);
}
void editInfo(SeqList L)
{
StudentInfo info;
char choice;
printf(“1. 按学号修改\n2. 按姓名修改\n3. 返回上一层\n”);
while((choice=getchar())==’\n’);
int index;
if(choice == ‘1’ || choice == ‘2’)
{
if(choice == ‘1’)
{
printf(“请输入学号:”);
scanf(“%s”, info.id);
index = queryInfoById(L, info.id);
} else {
printf(“请输入姓名:”);
scanf(“%s”, info.name);
index = queryInfoByName(L, info.name);
}
if(index != -1)
printStudentInfo(L.arr[index]);
else {
printf(“%s 为 %s 的学生不存在\n”, choice==1?”学号”:”姓名”, choice==1?info.id:info.name);
editInfo(L);
return;
}
printf(“成绩改为:”);
scanf(“%d”, L.arr[index].score);
save2File(L);
}else if(choice == ‘3’)
showMenu(L);
else {
printf(“选择有误,请重新选择\n”);
editInfo(L);
return;
}
}
void insertSort(SeqList *L)
{
for(int j = 1; j L-length; j++)
{
StudentInfo key = L-arr[j];
int i = j – 1;
while(i = 0 L-arr[i].score key.score)
{
L-arr[i+1] = L-arr[i];
i–;
}
L-arr[i+1] = key;
}
}
void statisticInfo(SeqList L)
{
// 显示 60 分以下、60~79、80~89、90 分以上各分数段的学生信息
SeqList sectionListArr[4];
for (int i = 0; i 4; i++)
initSeqList(sectionListArr[i]);
float sum = 0, average, passedRate;
for (int i = 0; i L.length; i++)
{
int score = L.arr[i].score;
sum += score;
if(score 60)
insertSeqList(sectionListArr[0], sectionListArr[0].length, L.arr[i]);
else if(score = 60 score 80)
insertSeqList(sectionListArr[1], sectionListArr[1].length, L.arr[i]);
else if(score = 80 score 90)
insertSeqList(sectionListArr[2], sectionListArr[2].length, L.arr[i]);
else insertSeqList(sectionListArr[3], sectionListArr[3].length, L.arr[i]);
}
average = sum/L.length;
passedRate = (L.length-sectionListArr[0].length)*100.0/L.length;
insertSort(L);
printf(“60 分以下的学生:\n”);
printSeqList(sectionListArr[0]);
printf(“\n60 ~ 79 分的学生:\n”);
printSeqList(sectionListArr[1]);
printf(“\n80 ~ 89 分的学生:\n”);
printSeqList(sectionListArr[2]);
printf(“\n90 分以上的学生:\n”);
printSeqList(sectionListArr[3]);
printf(“\n及格率:%.1f %%\n平均分:%.1f\n”, passedRate, average);
printf(“按顺序从高到低排序:\n”);
insertSort(L);
printSeqListWithSeqNo(L);
printf(“\n最高分:\n”);
printStudentInfo(L.arr[0]);
printf(“\n最低分:\n”);
printStudentInfo(L.arr[L.length-1]);
}
void queryInfo(SeqList L)
{
char choice;
printf(“1. 按学号查询\n2. 按姓名查询\n3. 返回上层\n”);
while((choice=getchar())==’\n’);
int index;
if (choice == ‘1’)
{
char id[15];
printf(“请输入学号:”);
scanf(“%s”, id);
index = queryInfoById(L, id);
} else if(choice == ‘2’) {
char name[10];
printf(“请输入姓名:”);
scanf(“%s”, name);
index = queryInfoByName(L,name);
} else if(choice == ‘3’) {
showMenu(L);
return;
} else {
printf(“选择有误,请重新选择\n”);
queryInfo(L);
return;
}
if(index == -1)
printf(“没有查询到结果\n”);
else
printStudentInfo(L.arr[index]);
}
void showMenu(SeqList L)
{
char choice;
printf(“\n1. 查询\n2. 添加成绩\n3. 修改成绩\n4. 统计分析\n5. 退出\n”);
while((choice = getchar()) == ‘\n’);
switch(choice)
{
case ‘1’: queryInfo(L); break;
case ‘2’: addInfo(L); break;
case ‘3’: editInfo(L); break;
case ‘4’: statisticInfo(L); break;
case ‘5’: exit(0);
}
}
int main(void)
{
StudentInfo temp;
SeqList *L = (SeqList*)malloc(sizeof(SeqList));
do {
initSeqList(L);
fp = fopen(filePath, “r”);
int i = 0;
while(fscanf(fp, “%s%s%d”, temp.id, temp.name, temp.score) != EOF)
insertSeqList(L, i++, temp);
showMenu(*L);
fclose(fp);
}while(1);
return 0;
}
如何编制一个C语言成绩记录簿
//?某班级学生C语言第一次正考的成绩存于数据文件score.dat中,记录了学生学号、姓名和考试成绩,bk.dat文件中记录了补考学生的学号、姓名和补考成绩,编写程序以链式存储结构实现以下要求:
//?1、对该班级按成绩降序排序并统计成绩平均分及每个分数段的人数,结果写入到result.dat中。
//?2、再根据补考成绩修改原成绩,修改成绩后仍按成绩降序写在result.dat的后面。成绩修改原则:
//?1)补考成绩大于等于60,原成绩以60分记;2)补考成绩小于60,取两次成绩中最高值记。
#include
#include
#includedata.cjnext;
}
print(lp);
}
用C语言设计一个学生成绩记录薄
#include stdio.h
#include stdlib.h
#include string.hstruct student
{
char name[60];
char ID[7];
int score;
};int dq(struct student st[]);
void xianshi();
void bc(struct student st[]);
void add();
void select();
void zz();
void chazhao();
void xhcz();
void xmcz();
void del();
void xmsc();
void xhsc();
void tj();
void px();
void bjg();
void xg();
void xhxg();
void xmxg();
void bca();
void fh();
struct student st[300]; //这个数组用来保存所有的学生信息 和文件里面的一致
int Number=0; //记录总的学生人数 也就是数组/文件里面的学生人数
void main()
{
int choose=0;
FILE *fp=NULL;
char yesorno;
if((fp=fopen(“C://student.dat”,”rb”))==NULL)
{
printf(“\n=========提示:文件不存在,是否要创建一个?(y/n)\n”);
scanf(“%c”,yesorno);
if(yesorno==’y’||yesorno==’Y’)
{
//这里仅为了建立文件
fp=fopen(“C://student.dat”,”wb”);
fclose(fp);
}
else
exit(0);
}
else
{
Number=dq(st); //要是文件只能够已经有数据 将数据初始化到数组中
}
system(“cls”);
while(true)
{
xianshi();
printf(“\t\t====请选择:”);
scanf(“%d”,choose);
system(“cls”);
switch(choose)
{
case 0: exit(0);
//退出
break;
case 1: add();
fh();//增加学生成绩
break;
case 2: select();
fh();//查看学生成绩
break;
case 3: chazhao();
fh();// 查找
break;
case 4: del();
fh();//删除
break;
case 5: tj();
fh();//统计
break;
case 6: px();
fh();//排序
break;
case 7: bjg();
fh();//输出不及格
break;
case 8: xg();
fh();//修改
break;
case 9:zz();
fh();//作者
break;
case 10:bca();
fh();//保存
break;
default:
break;
}
fflush(stdin);
getchar();
system(“cls”);
}
}
void bca()
{
printf(“\t=====程序在运行时已自动保存…..\n”);
}
void fh()
{
printf(“\t===按Enter键返回主菜单\n”);
}
void xg() //修改学生信息
{
int way=0;
printf(“请选择修改查找方式\n”);
printf(“1 按姓名查找修改\n”);
printf(“2 按学号查找修改\n”);
scanf(“%d”,way);
switch(way)
{
case 1: xmxg();
break;
case 2: xhxg();
break;
default: printf(“输入有误,结束!\n”);
break;
}
}
//按姓名修改
void xmxg()
{
FILE *fp=NULL;
char name[60];
int i=0;
int changeIndex=0;
int index=0;
printf(“请输入要修改的学生姓名:”);
scanf(“%s”,name);
for (i=0;iNumber;i++)
{
if (strcmp(name,st[i].name))
{
changeIndex=i; //保存要修改的人的下标
}
break;
}
printf(“\t姓名\t学号\t成绩\n”);
printf(“\t%s\t%s\t%d\n\n”,st[changeIndex].name,st[changeIndex].ID,st[changeIndex].score);
printf(“请重新输入该学生信息”);
printf(“姓名:”);
scanf(“%s”,st[changeIndex].name);
printf(“学号:”);
scanf(“%s”,st[changeIndex].ID);
printf(“成绩:”);
scanf(“%d”,st[changeIndex].score); //信息修改后重新更新文件里面的数据 以保持数据一致性
fp=fopen(“C://student.dat”,”wb”);
for (i=0;iNumber;i++)
{
fwrite(st[i],sizeof(struct student),1,fp);
}
fclose(fp);
}
void xhxg()//按学号修改
{
FILE *fp=NULL;
char id[60];
int i=0;
int changeIndex=0;
int index=0;
printf(“请输入要修改的学生学号:”);
scanf(“%s”,id);
for (i=0;iNumber;i++)
{
if (strcmp(id,st[i].ID))
{
changeIndex=i; //保存要修改的人的下标
}
break;
}
printf(“\t姓名\t学号\t成绩\n”);
printf(“\t%s\t%s\t%d\n\n”,st[changeIndex].name,st[changeIndex].ID,st[changeIndex].score);
printf(“请重新输入该学生信息”);
printf(“姓名:”);
scanf(“%s”,st[changeIndex].name);
printf(“学号:”);
scanf(“%s”,st[changeIndex].ID);
printf(“成绩:”);
scanf(“%d”,st[changeIndex].score);
//信息修改后重新更新文件里面的数据 以保持数据一致性
fp=fopen(“C://student.dat”,”wb”);
for (i=0;iNumber;i++)
{
fwrite(st[i],sizeof(struct student),1,fp);
}
fclose(fp);
printf(“\t=======修改成功\n”);
}void bjg() //输出不及格人数
{
int i=0;
printf(“以下是不及格:\n”);
printf(“\t姓名\t学号\t成绩\n”);
for (i=0;iNumber;i++)
{
if (st[i].score60)
{
printf(“\t%s\t%s\t%d\n”,st[i].name,st[i].ID,st[i].score);
}
}
}
void px()//排序
{
struct student temp;
int wantNUmber=0;
int i=0;
int j=0;
for(i=0;iNumber-1;i++)
{
for(j=i;jNumber-1;j++)
{
if(st[j].scorest[j+1].score)
{
temp=st[j];
st[j]=st[j+1];
st[j+1]=temp;
}
}
}
printf(“你想输出前几名的成绩:”);
scanf(“%d”,wantNUmber);
if (wantNUmberNumber)
{
wantNUmber=Number;
} printf(“\t姓名\t学号\t成绩\n”);
for(i=0;iwantNUmber;i++)
{
printf(“\t%s\t%s\t%d\n”,st[i].name,st[i].ID,st[i].score);
}
}
void tj()//统计
{
int i=0;
double sum=0.0;
for(i=0;iNumber;i++)
{
sum+=st[i].score;
}
printf(“全班总分为:%f\n”,sum);
printf(“平均分为:%f\n”,sum/Number);
}
void del()//删除
{
int n=0;
printf(“1 按姓名删除\n”);
printf(“2 按学号删除\n”);
scanf(“%d”,n);
switch(n)
{
case 1: xmsc();
break;
case 2: xhsc();
break;
}
}
void xmsc()//按姓名删除
{
FILE *fp=NULL;
char name[60];
int i=0;
int j=0;
printf(“请输入要删除的学生姓名:”);
scanf(“%s”,name);
for(i=0;iNumber;i++)
{
if (strcmp(name,st[i].name)==0) //如果查找到就删除
{
for (j=i;jNumber-1;j++)
{
st[j]=st[j+1];
}
Number–;
}
} //将剩余数据写入文件 重新一写的方式打开文件 把以前的数据擦除了
fp=fopen(“C://student.dat”,”wb”);
for (i=0;iNumber;i++)
{
fwrite(st[i],sizeof(struct student),1,fp);
}
fclose(fp);
printf(“删除成功;\n”);
}
void xhsc()//按学号删除
{
FILE *fp=NULL;
char id[60];
int i=0;
int j=0;
printf(“请输入要删除的学生学号:”);
scanf(“%s”,id);
for(i=0;iNumber;i++)
{
if (strcmp(id,st[i].ID)==0) //如果查找到就删除
{
for (j=i;jNumber-1;j++)
{
st[j]=st[j+1];
}
Number–;
}
}
//将剩余数据写入文件 重新一写的方式打开文件 把以前的数据擦除了
fp=fopen(“C://student.dat”,”wb”);
for (i=0;iNumber;i++)
{
fwrite(st[i],sizeof(struct student),1,fp);
}
fclose(fp);
printf(“删除成功;\n”);
}
void chazhao()//查找学生
{
int n=0;
printf(“1 按姓名查找\n”);
printf(“2 按学号查找\n”);
scanf(“%d”,n);
switch(n)
{
case 1: xmcz();
break;
case 2: xhcz();
break;
default: printf(“输入有误,结束!\n”);
break;
}
}
void xhcz()//按学号查找
{
char id[7];
int i=0;
printf(“请输入要查找学生学号:”);
scanf(“%s”,id);
system(“cls”);
printf(“\t姓名\t学号\t成绩\n”);
for (i=0;iNumber;i++)
{
if (strcmp(id,st[i].ID)==0)
{
printf(“\t%s\t%s\t%d\n”,st[i].name,st[i].ID,st[i].score);
}
}
}
void xmcz()//按姓名查找
{
char name[7];
int i=0;
printf(“请输入要查找学生姓名:”);
scanf(“%s”,name);
system(“cls”);
printf(“\t姓名\t学号\t成绩\n”);
for (i=0;iNumber;i++)
{
if (strcmp(name,st[i].name)==0)
{
printf(“\t%s\t%s\t%d\n”,st[i].name,st[i].ID,st[i].score);
}
}
}
void zz()
{
printf(“\t**********************************************************\n\n”);
printf(“\t^^^^^^^^^^ 武汉工程大学邮电与信息工程学院 ^^^^^^^^^^\n\n”);
printf(“\t^^^^^^^^^ 07网络与安全管理2班 ^^^^^^^^^\n\n”);
printf(“\t^^^^^^^^ 易樊制作 ^^^^^^^^\n\n”);
printf(“\t^^^^^^^^^ 禁止CTRL+C 谢谢合作 ^^^^^^^^^\n\n”);
printf(“\t^^^^^^^^^^ QQ:895115828\n\n”);
printf(“\t**********************************************************\n\n”);
}
void select()//查看学生
{
int i=0;
printf(“以下是全部学生成绩\n”);
printf(“\t姓名\t学号\t成绩\n”);
for(i=0;iNumber;i++)
{
printf(“\t%s\t%s\t%d\n”,st[i].name,st[i].ID,st[i].score);
}
}
void add()//增加学生
{
int numberTemp=0;
int i=0;
struct student temp; //临时保存信息
printf(“请输入要增加学生成绩个数:”);
scanf(“%d”,numberTemp);
for(i=0;inumberTemp;i++)
{
printf(“输入第%d个同学信息\n”,i+1);
printf(“姓名:”);
scanf(“%s”,temp.name);
printf(“学号:”);
scanf(“%s”,temp.ID);
printf(“成绩:”);
scanf(“%d”,temp.score);
st[Number++]=temp; //将刚添加的写入到数组
bc(temp); //将刚添加的写入到文件 }
printf(“添加成功\n”);
}
void bc(struct student *st)
{
FILE *fp=NULL;
fp=fopen(“C://student.dat”,”ab+”);
fwrite(st,sizeof(struct student),1,fp);
fclose(fp);
}
int dq(struct student st[])
{
FILE *fp=NULL;
int i=0;
fp=fopen(“C://student.dat”,”rb”);
while(fread(st[i],sizeof(struct student),1,fp))
i++;
fclose(fp);
return i;
}
void xianshi()
{
printf(“\t*****************************************************************\n”);
printf(“\t* *\n”);
printf(“\t* 学生成绩管理系统 *\n”);
printf(“\t* *\n”);
printf(“\t* [1] 增加学生成绩 [2] 查看学生成绩 *\n”);
printf(“\t* [3] 查找学生成绩 [4] 删除学生成绩 *\n”);
printf(“\t* [5] 统计(总成绩和平均分) [6] 输出前N名学生成绩 *\n”);
printf(“\t* [7] 输出不及格人数 [8] 修改学生信息 *\n”);
printf(“\t* [9] 关于作者 [10] 保存数据 *\n”);
printf(“\t* [0] 退出系统 *\n”);
printf(“\t*****************************************************************\n”);
}
c语言写记录的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于C语言怎么做笔记、c语言写记录的信息别忘了在本站进行查找喔。