基于c语言的简单学生管理系统-创新互联
此代码是本人大一c语言课设,支持从文件导入数据,将数据保存到文件。
10年积累的成都网站制作、网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有河西免费网站建设让你可以放心的选择与我们合作。界面功能如下:
//李丰旭2021年12月
#include
#include
#include
struct Student {//建立以姓名 学号 成绩为项目的结构体数组
char name[20];
char number[20];
int score;
}student[500];
//读取文件中的所有学生的信息放到结构体student中。
int getFilein(){
FILE *fp = fopen("学生成绩.txt", "r");
if(fp == NULL) {//查看是否有文件。
printf("没有找到文件已经重新建立!!\n");
}
char res[3][30];
int a;
int i = 0;
while(fscanf(fp,"%s %s %d",res[0],res[1],&a)>0) {
strcpy(student[i].name,res[0]);
strcpy(student[i].number,res[1]);
student[i].score = a;
i++;
}
fclose(fp);
return i;
}
//显示所有学生的信息
void showStudentin(int l) {
getFilein();
int i = 0;
printf(" 姓名 学号 分数 \n");
for(i = 0; i< l; i++) {
printf("%7s ",student[i].name);
printf(" %-s ",student[i].number);
printf(" %3d ",student[i].score);
printf("\n");
}
}
//搜索学生信息
void searchStudent(int l) {
int i = 0;
printf("请输入要查询的学生的学号:\n");
char number[20];
scanf("%s",number);
for(i = 0; i< l; i++) {
if(strcmp(student[i].number,number)==0){
printf("姓名:%s\n学号:%s\n分数:%d 排名:%d\n",student[i].name,student[i].number,student[i].score,i+1);
return;
}
}
printf("查无此人!");
}
//菜单
void menu(){
printf("=============================================================\n");
printf("=***********************************************************=\n");
printf("= ******学校学生成绩管理系统 =\n");
printf("=============================================================\n");
printf("= =\n");
printf("= *1.新建学生信息 *2.浏览所有学生信息 =\n");
printf("= =\n");
printf("= *3.删除学生信息 *4.查询学生信息 =\n");
printf("= =\n");
printf("= *5.按成绩重新排序 =\n");
printf("= =\n");
printf("= *0.退出并保存学生成绩 =\n");
printf("= =\n");
printf("=***********************************************************=\n");
printf("= ***制作 =\n");
printf("=============================================================\n");
}
//添加学生信息
void addStudent() {
printf("请输入要录入的学生的信息:\n");
printf("请按 姓名 学号 分数 格式输入\n");
printf("注:******学校学号为11位\n");
char name[30];
char number[100];
int score;
scanf("%s %s %d",name,number,&score);
printf("%s已经成功录入\n",name);
FILE *fp = fopen("学生成绩.txt", "a");
fprintf(fp,"%s ",name);
fprintf(fp,"%s ",number);
fprintf(fp,"%d\n",score);
fclose(fp);
}
//删除学生信息
int deleteStudent(int l) {
char name[10];
printf("请输入要删除的学生的姓名\n");
scanf("%s",name);
//先进行只读,获取非删除学生们的所有信息
FILE *fp = fopen("学生成绩.txt", "r");
if(fp == NULL) {//存疑
printf("No such file");
}
char res[3][30];
int a;
int i = 0;
while(fscanf(fp,"%s %s %d",res[0],res[1],&a)>0) {
if(strcmp(res[0],name) != 0) {
strcpy(student[i].name,res[0]);
strcpy(student[i].number,res[1]);
student[i].score = a;
i++;
}
}
fclose(fp);
//没有找到该学生
if(l == i){
return -1;
}
//进行文件内容覆盖
FILE *fq = fopen("学生成绩.txt", "w");
for(int j = 0; j< i; j++) {
fprintf(fq,"%s %s %d\n",student[j].name,student[j].number,student[j].score);
}
fclose(fq);
return 1;
}
//对学生信息根据成绩进行排序
void sort(int l) {
struct Student k;
int i,j;
for(i = 0; i< l - 1 ; i++) {//冒泡排序
for(j = 1; j< l - i; j++) {
if(student[j - 1].score
k = student[j - 1];
student[j - 1] = student[j];
student[j] = k;
}
}
}
FILE *fq = fopen("学生成绩.txt", "w");
for(int j = 0; j< l; j++) {
fprintf(fq,"%s %s %d\n",student[j].name,student[j].number,student[j].score);
}
fclose(fq);
printf("排序成功");
}
//执行各种操作
void operate(int studentNum) {
int opt;
menu();
int x = 0;
while(1) {
printf("\n请选择接下来的操作:");
scanf("%d",&opt);
if(opt == 1) {
addStudent();
studentNum++;
}
else if(opt == 2) {
showStudentin(studentNum);
}
else if(opt == 3) {
x = deleteStudent(studentNum);
if(x != -1) {
studentNum--;
printf("成功删除\n");
}
else{
printf("查无此人!");
}
}
else if(opt == 4) {
searchStudent(studentNum);
}
else if(opt == 5) {
sort(studentNum);
}
else if(opt == 0) {
break;
}
}
printf("系统已关闭");
}
int main() {
int studentNum = getFilein();
operate(studentNum);
return 0;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享题目:基于c语言的简单学生管理系统-创新互联
当前链接:http://azwzsj.com/article/esjgs.html