中国继续教育网_助力学生自学考试学历提升

欢迎访问中国继续教育网!中国继续教育网:学历提升,文凭提升,自学考试,成人高考,出国留学等相关知识科普和分享!

源码 | 学生信息管理系统(C语言 单链表实现)(基于c语言的学生信息管理系统毕业设计)

2023-08-18分类:智能AI 阅读:79

运行效果:

D:wangcCLionProjects est1212cmake-build-debug est1212.exe 【学生管理系统2.0】 ★————————————————————————————————————————★ | 1. 信息录入 2. 成绩录入 3. 信息查询 | | 4. 成绩查询 5. 删除信息 6. 信息追加 | | 7. 更改分数 8. 查看排名 9. 成绩分段 | | 10.保存文件 11.文件输出 12.文件导入 | ★——爱神直播官网——————————————按0并回车退出——————————————————★ 请输入执行数字:1 *****************************************************信息录入*********************************************************** 依次键入学号、姓名、性别、宿舍号码、电话号码,用一个【空格】隔开各数据,每一条输入完成后按回车键进行下一条输入。 【退出请输入0并回车】 样例: 5419134602爱神直播官网30 张三 男 1717 66666 在此输入: 1001 张三丰 男 521 888888 1001 张三丰 男 521 888888 1002 李四 男 522 555555 1002 李四 男 522 555555 0 0 请输入执行数字:3 请在此输入:1002 1002 输入了错误的第一次选择数字!重新输入: 3 3 输入了错误的第一次选择数字!重新输入: 爱神直播官网 0 0 输入了错误的第一次选择数字!重新输入: 1 1 通过学号(输入1),姓名(输入2):1 1 输入学号(输入0并回车结束):1001 1001 学号:1001 姓名:张三丰 性别:男 宿舍号码:521 电话号码:888888 输入学号(输入0并回车结束):

源码:

#include<stdio.h> #include<malloc.h> #include<string.h> 爱神直播官网 #include<stdlib.h> #define LEN sizeof(struct student) struct student { char num[20];//学号 char name[20];//姓名 char sex[20];//性别 char room[20];//宿舍号码 char tel[20];//电话号码 char CHN[20];//语文 char MATH[20];//数学 cha爱神直播官网r ENG[20];//英语 char PE[20];//体育 char PRO[20];//专业 char average_score[20];//平均分 struct student *next; }; int n;//节点数 struct student *creat();//信息录入 void score(struct student *head);//成绩录入 void findinformation(struct student *he爱神直播官网ad);//信息查询 void findscore(struct student *head);//成绩查询 struct student *del(struct student *head);//信息删除 struct student *insert(struct student *head);//信息插入 void update(struct student *head);//修改分数 void Oscore(struct student*head);//排序输出 void swap(struc爱神直播官网t student*p1,struct student*p2);//交换数据 void fenduan(struct student*head);//分段输出 int checknum(char ch[]);//检查纯数字的数据里是否混入了非数字的非法输入 int transformint(char ch[]);//纯数字整数(字符串转向int类型) void save(struct student *head); //文件存储 void export1();//文件输出 struct studen爱神直播官网t *import();//文件导入 int checkscore(char ch[]);//检查分数是否为0-99的纯数字 int IncludeChinese(char *str); //检查性名、性别是否包含汉字 int main() { //微信关注公众号:C语言中文社区,免费领取更多 struct student *head=NULL; char choose[20]; menu://设置主菜单的点 printf(" "); 爱神直播官网 printf(" 【学生管理系统2.0】 "); printf(" ★————————————————————————————————————————★ "); printf(" | 1. 信息录入 2. 成绩录入 3. 信息查询 | "); printf(" | 4. 成绩查询 5. 删除信息 6. 信息追加 | "); printf(" | 7. 更改分数 8. 查看排名 9. 成绩分段爱神直播官网 | "); printf(" | 10.保存文件 11.文件输出 12.文件导入 | "); printf(" ★————————————————按0并回车退出——————————————————★ "); printf("请输入执行数字:"); while(scanf("%s",choose)&&checknum(choose)==0)//检查到不是纯数字 让用户重新输入 { printf("输入无效,重新输入:"); } 爱神直播官网 switch(transformint(choose)) { case 1: head=creat(); break; case 2: score(head); break; case 3: findinformation(head); break; case 4: findscore(head); break; case 5: head=del(hea爱神直播官网d); break; case 6: head=insert(head); break; case 7: update(head); break; case 8: Oscore(head); break; case 9: fenduan(head); break; case 10: save(head); break; cas爱神直播官网e 11: export1(); break; case 12: head=import(); break; } if(transformint(choose)<0||transformint(choose)>12)//输入了不在执行数字范围内的数字返回主菜单的点 { system("cls");//清理屏幕和缓冲区 fflush(stdin); goto menu; } if(trans爱神直播官网formint(choose)!=0)//输入不是0,继续回到主菜单 { goto menu; } system("cls");//结束时清理屏幕和缓冲区,打印下方的校徽 fflush(stdin); printf(" 感谢使用! "); printf(" * "); printf(" * *** **** "); printf(" *** **** **** "); printf(" **** **** **** ***爱神直播官网* "); printf(" **** **** **** **** "); printf(" **** **** **** **** "); printf(" **** **** **** **** "); printf(" **** **** **** **** "); printf(" **** ******* **** "); printf(" ************* "); printf(" ***** "); system("pause爱神直播官网"); return 0; } struct student *creat()//录入信息,创建链表 { system("cls"); fflush(stdin); printf("*****************************************************信息录入*********************************************************** "); printf("依次键入学号、姓名、性别、宿爱神直播官网舍号码、电话号码,用一个【空格】隔开各数据,每一条输入完成后按回车键进行下一条输入。 "); printf(" 【退出请输入0并回车】 "); printf("样例: 541913460230 张三 男 1717 66666 在此输入: "); n=0; struct student *head,*p1,*p2; head = NULL; p1=p2=(struct student*)malloc(LEN); while(scanf("%s",p1->num)&&ch爱神直播官网ecknum(p1->num)==0) { printf("输入错误的学号,重新输入: "); } if(transformint(p1->num)==0)//输入了0退出函数调用,传回去表头指针head给主函数的head { system("cls"); fflush(stdin); return(head); } while(scanf("%s",p1->name)&&IncludeChinese(p1->name)==0)//这爱神直播官网几行while(scanf)都是具有容错的输入,整个程序中都存在输入容错!!! { printf("输入错误的名字,重新输入: "); } while(scanf("%s",p1->sex)&&IncludeChinese(p1->sex)==0) { printf("输入错误的性别,重新输入: "); } while(scanf("%s",p1->room)&&checknum(p1->room)==0) { printf("输入爱神直播官网错误的宿舍号码,重新输入: "); } while(scanf("%s",p1->tel)&&checknum(p1->tel)==0) { printf("输入错误的手机号码,重新输入: "); } printf(" "); while(transformint(p1->num)!=0)//输入每个节点的学号不是0的时候开始循环。 { n+=1;//节点+1 if(n==1) //PS:此处为建立链表常规过程(参考了谭浩强C程序爱神直播官网设计第九章链表,红皮那本) { head=p1;//第一个节点 表头指向上面开辟的第一个节点 p1 p2 head都指向此处此时 }else { p2->next=p1;//后面的节点,p2的next指向p1将两个节点连接到一起 p2=p1;//p2再跟p1 } p1=(struct student*)malloc(LEN);//p1指向开辟的新节点 while(scanf("%s",p1->num)&&checknum(p1->num)==0) 爱神直播官网 { printf("输入错误的学号,重新输入: "); } if(transformint(p1->num)==0) { break; } while(scanf("%s",p1->name)&&IncludeChinese(p1->name)==0) { printf("输入错误的名字,重新输入: "); } while(scanf("%s",p1->sex)&&IncludeChinese(p1->s爱神直播官网ex)==0) { printf("输入错误的性别,重新输入: "); } while(scanf("%s",p1->room)&&checknum(p1->room)==0) { printf("输入错误的宿舍号码,重新输入: "); } while(scanf("%s",p1->tel)&&checknum(p1->tel)==0) { printf("输入错误的手机号码,重新输入: "); } 爱神直播官网 printf(" "); } p2->next=NULL;//最后p1开辟的新节点丢弃了,让p2的next指向空,形成表尾结束链表。 录入结束 system("cls"); fflush(stdin); return(head); } void score(struct student *head)//拿到链表,录入成绩 { system("cls"); fflush(stdin); printf("*****爱神直播官网************************************************成绩录入*********************************************************** "); printf("依次键入语文、数学、英语、体育、专业成绩,用一个空格隔开各数据,每一条输入完成后按回车键进行下一条输入。 "); printf(" 【录完分数后自动退出】 "); printf("例如: 10 20 30 40 50 在此输入: "); int Aver;//平均分 爱神直播官网 struct student *p; for(p=head;p!=NULL;p=p->next)//遍历链表 { printf(" 现在录入%s(%s)的成绩 ",p->name,p->num); while(scanf("%s",p->CHN)&&checkscore(p->CHN)==0) { printf("输入错误的语文分数,重新输入: "); } while(scanf("%s",p->MATH)&&checkscore(p->MATH)=爱神直播官网=0) { printf("输入错误的数学分数,重新输入: "); } while(scanf("%s",p->ENG)&&checkscore(p->ENG)==0) { printf("输入错误的英语分数,重新输入: "); } while(scanf("%s",p->PE)&&checkscore(p->PE)==0) { printf("输入错误的体育分数,重新输入: "); } while爱神直播官网(scanf("%s",p->PRO)&&checkscore(p->PRO)==0) { printf("输入错误的专业分数,重新输入: "); } Aver=(transformint(p->CHN)+transformint(p->MATH)+transformint(p->ENG)+transformint(p->PE)+transformint(p->PRO))/5; itoa(Aver,p->average_score,10);//Aver十进制形式转化为字符串存储在链表的average_score平爱神直播官网均分里 printf("%s的成绩录入完了 ",p->name); } system("cls"); fflush(stdin); } void findinformation(struct student *head)//学生信息查询 { system("cls"); fflush(stdin); char choose1[20],choose2[20];//两个选择的地方,choose1选择学号/姓名 or 宿舍号 ,choos爱神直播官网e2在选择了学号/姓名时选择 学号 or 姓名 char num[20]={1};//用户即将输入的学号 char name[20];//用户即将输入的姓名 char room[20]={1};//用户即将输入的宿舍号 struct student *p; p=head; int flag=0; printf("*****************************************************信息查询******************************爱神直播官网***************************** "); printf(" 选择查找方式,学号/姓名查找(输入1),宿舍号(输入2) 请在此输入:"); choosestation1://第一次选择的点 fflush(stdin); while(scanf("%s",choose1)&&checknum(choose1)==0) { printf("输入无效,重新输入: "); } if(transformint(choose1)==1) 爱神直播官网 { printf("通过学号(输入1),姓名(输入2):"); choosestation2://第二次选择的点 fflush(stdin); while(scanf("%s",choose2)&&checknum(choose2)==0) { printf("输入无效,重新输入: "); } if(transformint(choose2)==1) { while(transformint(num)!=0) {爱神直播官网 printf(" 输入学号(输入0并回车结束):"); while(scanf("%s",num)&&checknum(num)==0) { printf("输入错误的学号,重新输入: "); } for(p=head;p!=NULL;p=p->next) { if(transformint(p->num)==transformint(num)) { printf("学号:%s 姓名:%s 性别:%s 宿舍号码:%s 电话号码:%爱神直播官网s ",p->num,p->name,p->sex,p->room,p->tel); flag=1; break; } } if(flag==0&&transformint(num)!=0) { printf("未找到此学生信息 "); } } }else if(transformint(choose2)==2) { while(name[0]!=#) { printf爱神直播官网(" 输入姓名(输入#并回车结束):"); scanf("%s",name); for(p=head;p!=NULL;p=p->next)//遍历链表 { if(strcmp(p->name,name)==0)//比较两字符串 { printf("学号:%s 姓名:%s 性别:%s 宿舍号码:%s 电话号码:%s ",p->num,p->name,p->sex,p->room,p->tel); flag=1; break; } } 爱神直播官网 if(flag==0&&name[0]!=#) { printf("未找到此学生信息! "); } } }else { printf("输入了错误的第二次选择数字!重新输入: "); goto choosestation2;//返回上面第二次选择的点 } }else if(transformint(choose1)==2) { while(transformint(room)!=0) 爱神直播官网 { printf(" 输入宿舍号(输入0并回车结束):"); while(scanf("%s",room)&&checknum(room)==0) { printf("输入错误的宿舍号码,重新输入: "); } for(p=head;p!=NULL;p=p->next) { if(p->room==room) { printf("学号:%s 姓名:%s 性别:%s 宿舍号码:%s 电话号码:%s ",p->num,爱神直播官网p->name,p->sex,p->room,p->tel); flag=1; break; } } if(flag==0&&transformint(room)!=0) { printf("未找到此学生信息! "); } } }else { printf("输入了错误的第一次选择数字!重新输入: "); goto choosestation1;//返回最上面第一次选择的点 爱神直播官网 } system("cls"); fflush(stdin); } void findscore(struct student *head)//成绩查询 { system("cls"); fflush(stdin); char num[20]={1};//初始化用户即将输入的学号 struct student *p; int flag=0;//学号是否找到的标志,1找到0没找到 p=head; p爱神直播官网rintf("*****************************************************成绩查询*********************************************************** "); printf("因为有重名的可能,暂时只能通过学号进行查询。请输入学号并回车进行查询! "); printf(" 【退出请输入0并回车】 "); while(transformint(num)!=0) { printf(" 输入学号:"); 爱神直播官网 while(scanf("%s",num)&&checknum(num)==0) { printf("输入错误的学号,重新输入: "); } for(p=head;p!=NULL;p=p->next) { if(transformint(p->num)==transformint(num)) { printf("学号:%s 姓名:%s 语文:%s 数学:%s 英语:%s 体育:%s 专业:%s ",p->num,p->name,p->CHN,p->MATH,爱神直播官网p->ENG,p->PE,p->PRO); flag=1; break; } } if(flag==0) { printf("学号未找到! "); } } system("cls"); fflush(stdin); } struct student *del(struct student *head)//删除信息函数 { system("cls"); 爱神直播官网 fflush(stdin); char num[20]={1};//用户即将输入的学号 struct student *p1,*p2; printf("*****************************************************信息删除*********************************************************** "); if(head == NULL) { system("cls"); fflus爱神直播官网h(stdin); return(head); } printf(" ***************************************输入学号进行删除学生信息(输入0结束)********************************************** "); do{ printf(" 请输入学号:"); while(scanf("%s",num)&&checknum(num)==0) { printf("输入错误的学号,重新输入: 爱神直播官网"); } if(transformint(num)==0) { break; } p1=p2=head; while(transformint(num)!=transformint(p1->num)&&p1->next!=NULL) { p2=p1; p1=p1->next; } if(transformint(num)==transformint(p1->num))//找到数字 { 爱神直播官网 if(p1==head)//如果是要删开头的节点,直接改变表头指向第二个节点,让第二个节点成为新的表头,原来的头用free释放掉 { head=p1->next; free(p1); }else//如果删后面的节点,要把p2连到p1所在节点后面的一个节点,将p1所在节点free释放掉 { p2->next=p1->next; free(p1); } printf("已删除学号为%s的信息",num); n=n-1; 爱神直播官网 }else { printf("没有找到学号为%s的学生 ",num); } }while(transformint(num)!=0); system("cls"); fflush(stdin); return(head); } struct student *insert(struct student *head)//插入信息函数 { system("cls"); fflush(stdin爱神直播官网); printf("*****************************************************信息追加*********************************************************** "); printf(" 【加入一组信息后自动退出】 "); printf("请按照 学号 姓名 性别 宿舍号码 电话号码 语文 数学 英语 体育 专业 顺序输入 "); printf("样例: 542013460658 李四 男 1206 10086 10 20 30爱神直播官网 40 50 "); int Aver; struct student *stud=(struct student*)malloc(LEN);//开辟一个单元,这一块存我们追加的信息,后面的操作把这一块连接到链表的表头 stud->next=NULL; stud->next=head; head=stud; while(scanf("%s",stud->num)&&checknum(stud->num)==0) { printf("输入错误的学号,重新输入: ")爱神直播官网; } while(scanf("%s",stud->name)&&IncludeChinese(stud->name)==0) { printf("输入错误的名字,重新输入: "); } while(scanf("%s",stud->sex)&&IncludeChinese(stud->sex)==0) { printf("输入错误的性别,重新输入: "); } while(scanf("%s",stud->room)&&chec爱神直播官网knum(stud->room)==0) { printf("输入错误的宿舍号码,重新输入: "); } while(scanf("%s",stud->tel)&&checknum(stud->tel)==0) { printf("输入错误的电话号码,重新输入: "); } while(scanf("%s",stud->CHN)&&checkscore(stud->CHN)==0) { printf("输入错误的语文分数,重新输入:爱神直播官网 "); } while(scanf("%s",stud->MATH)&&checkscore(stud->MATH)==0) { printf("输入错误的数学分数,重新输入: "); } while(scanf("%s",stud->ENG)&&checkscore(stud->ENG)==0) { printf("输入错误的英语分数,重新输入: "); } while(scanf("%s",stud->PE)&&checks爱神直播官网core(stud->PE)==0) { printf("输入错误的体育分数,重新输入: "); } while(scanf("%s",stud->PRO)&&checkscore(stud->PRO)==0) { printf("输入错误的专业分数,重新输入: "); } Aver=(transformint(stud->CHN)+transformint(stud->MATH)+transformint(stud->ENG)+transformint(stud爱神直播官网->PE)+transformint(stud->PRO))/5;//计算平均分 itoa(Aver,stud->average_score,10); n=n+1; //节点+1 system("cls"); fflush(stdin); return(head); } void update(struct student *head)//修改分数 { system("cls"); fflush(stdin); int爱神直播官网 Aver; struct student *p1,*p2; char num[20]={1};//用户即将输入的学号 char choose[20]; printf("*****************************************************分数修改*********************************************************** "); if(head == NULL)//没有录信息 空表直接返回 { syst爱神直播官网em("cls"); fflush(stdin); return; } printf(" ***************************************输入学号进行修改学生分数(输入0结束)********************************************** "); do{ printf(" 请输入学号:"); while(scanf("%s",num)&&checknum(num)==0) { print爱神直播官网f("输入错误的学号,重新输入: "); } if(transformint(num)==0) { break; } p1=p2=head; while(transformint(p1->num)!=transformint(num)&&p1->next!=NULL)//没找到,往后走 { p2=p1; p1=p1->next; } if(transformint(p1->num)==transform爱神直播官网int(num))//找到了,开始选修改的科目 { printf("修改语文请输入1,数学输入2,英语3,体育4,专业5 "); printf("请输入修改科目对应的数字:"); while(scanf("%s",choose)&&checknum(choose)==0||transformint(choose)<1||transformint(choose)>5) { printf("输入无效的编号,重新输入: "); } printf("请输入修改后的分数:"爱神直播官网); switch(transformint(choose)) { case 1: while(scanf("%s",p1->CHN)&&checknum(p1->CHN)==0) { printf("输入错误的语文分数,重新输入: "); } break; case 2: while(scanf("%s",p1->MATH)&&checknum(p1->MATH)==0) { printf("输入错误爱神直播官网的数学分数,重新输入: "); } break; case 3: while(scanf("%s",p1->ENG)&&checknum(p1->ENG)==0) { printf("输入错误的英语分数,重新输入: "); } break; case 4: while(scanf("%s",p1->PE)&&checknum(p1->PE)==0) { printf("输入错误的体育分数,重新输入:爱神直播官网n"); } break; case 5: while(scanf("%s",p1->PRO)&&checknum(p1->PRO)==0) { printf("输入错误的专业分数,重新输入: "); } break; } Aver=(transformint(p1->CHN)+transformint(p1->MATH)+transformint(p1->ENG)+transformint(p1->PE)+transformint(爱神直播官网p1->PRO))/5; itoa(Aver,p1->average_score,10);//平均分转换字符串形式 }else { printf("没有找到学号为%s的学生 ",num); } }while(transformint(num)!=0); system("cls"); fflush(stdin); } void Oscore(struct student*head)//排序输出 { sy爱神直播官网stem("cls"); fflush(stdin); printf("*****************************************************查看排名*********************************************************** "); int ranking=0; struct student *p=NULL,*p1=NULL; for(p=head;p!=NULL;p=p->next) { if(che爱神直播官网ckscore(p->average_score)==0) { printf("有同学只录取了信息,没有录成绩。所以无法公布排名 "); system("pause"); system("cls"); fflush(stdin); return; } } for(p=head;p!=NULL;p=p->next) { for(p1=p->next;p1!=NULL;p1=p1->next) { 爱神直播官网 if(transformint(p->average_score)<transformint(p1->average_score)) { swap(p,p1); } } } printf("学号 姓名 平均分 名次 语文 数学 英语 体育 专业 "); for(p=head;p!=NULL;p=p->next) { ranking+=1; printf("%s %s %s %d爱神直播官网 %s %s %s %s %s ",p->num,p->name,p->average_score,ranking,p->CHN,p->MATH,p->ENG,p->PE,p->PRO); } printf(" "); system("pause"); system("cls"); fflush(stdin); } void swap(struct student*p1,struct student*p2)//交换数据(辅助函数) { 爱神直播官网 char tempCHN[20]; char tempMATH[20]; char tempENG[20]; char tempPE[20]; char tempPRO[20]; char tempaverage[20]; char tempname[20]; char tempnum[20]; strcpy(tempnum,p1->num);/// strcpy(p1->num,p2->num); strcpy(p2->num,爱神直播官网tempnum); strcpy(tempname,p1->name);// strcpy(p1->name,p2->name); strcpy(p2->name,tempname); strcpy(tempCHN,p1->CHN);/// strcpy(p1->CHN,p2->CHN); strcpy(p2->CHN,tempCHN); strcpy(tempMATH,p1->MATH);/// strcpy(p1->MATH,p2->MATH); 爱神直播官网strcpy(p2->MATH,tempMATH); strcpy(tempENG,p1->ENG);/// strcpy(p1->ENG,p2->ENG); strcpy(p2->ENG,tempENG); strcpy(tempPE,p1->PE);/// strcpy(p1->PE,p2->PE); strcpy(p2->PE,tempPE); strcpy(tempPRO,p1->PRO);/// strcpy(p1->PRO,p2->PRO); 爱神直播官网 strcpy(p2->PRO,tempPRO); strcpy(tempaverage,p1->average_score);/// strcpy(p1->average_score,p2->average_score); strcpy(p2->average_score,tempaverage); } void fenduan(struct student*head)//分段输出 { system("cls"); fflush(stdin); 爱神直播官网printf("*****************************************************成绩分段*********************************************************** "); struct student *p; for(p=head;p!=NULL;p=p->next) { if(checkscore(p->average_score)==0) { printf("有同学只录取了信息,没有录成绩。所以无法公布分爱神直播官网段 "); system("pause"); system("cls"); fflush(stdin); return; } } printf("********************************************************A*************************************************************** "); printf("学号 姓名 平均分 语文 数学 英爱神直播官网语 体育 专业 "); for(p=head;p!=NULL;p=p->next) { if(transformint(p->average_score)>=80) { printf("%s %s %s %s %s %s %s %s ",p->num,p->name,p->average_score,p->CHN,p->MATH,p->ENG,p->PE,p->PRO); } } printf("***************爱神直播官网*****************************************B*************************************************************** "); printf("学号 姓名 平均分 语文 数学 英语 体育 专业 "); for(p=head;p!=NULL;p=p->next) { if(transformint(p->average_score)<80&&transformint(p->average_score)>=60爱神直播官网) { printf("%s %s %s %s %s %s %s %s ",p->num,p->name,p->average_score,p->CHN,p->MATH,p->ENG,p->PE,p->PRO); } } printf("********************************************************C*************************************************************** ");爱神直播官网 printf("学号 姓名 平均分 语文 数学 英语 体育 专业 "); for(p=head;p!=NULL;p=p->next) { if(transformint(p->average_score)<60) { printf("%s %s %s %s %s %s %s %s ",p->num,p->name,p->average_score,p->CHN,p->MATH,p->ENG,p->PE,p->PRO); 爱神直播官网 } } printf(" "); system("pause"); system("cls"); fflush(stdin); } void save(struct student *head)//文件保存 { system("cls"); fflush(stdin); FILE *fp; struct student *p; fp=fopen("stu.db","wb"); 爱神直播官网 for(p=head;p!=NULL;p=p->next) { fwrite(p,LEN,1,fp); } fclose(fp); printf("♂♂♂♂保存完毕♂♂♂♂♂ "); system("pause"); system("cls"); fflush(stdin); } void export1()//文件输出 { system("cls"); fflush(爱神直播官网stdin); FILE *fp; struct student *t; t=(struct student *)malloc(LEN); if((fp=fopen("stu.db","r"))==NULL){ printf("未找到文件 "); } else{ printf("学号 姓名 平均分 语文 数学 英语 体育 专业 "); int w; fseek(fp,0,2); w=ft爱神直播官网ell(fp); fseek(fp,0,0); while(w!=ftell(fp)){ fread(t,LEN,1,fp); printf("%s %s %s %s %s %s %s %s ",t->num,t->name,t->average_score,t->CHN,t->MATH,t->ENG,t->PE,t->PRO); } fclose(fp); } system("pause"); system("cls"爱神直播官网); fflush(stdin); } struct student *import()//文件导入 { system("cls"); fflush(stdin); FILE *fp; if((fp=fopen("stu.db","r"))==NULL){ printf("未找到文件 "); } else{ struct student *p1,*p2,*head; p1=p2=(st爱神直播官网ruct student *)malloc(LEN); fread(p1,LEN,1,fp); while(!feof(fp)) {//end of file n+=1; if(n==1){ head=p1; } else{ p2->next=p1; } p2=p1; p1=(struct student *)malloc(LEN); fread(p1,LEN,1,fp); } 爱神直播官网 p2->next=NULL; fclose(fp); printf("文件导入成功 "); system("pause"); system("cls"); fflush(stdin); return head; } system("cls"); fflush(stdin); return NULL; } int checknum(char ch[])//检查纯数字的数据里是否混入了非数字的非法输爱神直播官网入; { int i,flag=1; for(i=0;i<strlen(ch);i++) { if(ch[i]<0||ch[i]>9) { flag=0; break; } } return flag; } int checkscore(char ch[])//检查0-99分数 { int i,flag=1; if(strlen(ch)>=爱神直播官网3) { return 0; } for(i=0;i<strlen(ch);i++) { if(ch[i]<0||ch[i]>9) { flag=0; break; } } return flag; } int IncludeChinese(char *str)//是否包含中文 { char c; while(1) 爱神直播官网 { c=*str++; if (c==0) break; //如果到字符串尾则说明该字符串没有中文字符 if (c&0x80) //如果字符高位为1且下一字符高位也是1则有中文字符 if (*str & 0x80) return 1; } return 0; } int transformint(char ch[])//纯数字整数(字符串转向int类型) { int i=0,sum=0; for(i=0;i<s爱神直播官网trlen(ch);i++) { sum=sum*10+ch[i]-48; } return sum; }

点击链接加入群聊【C语言/C++编程学习基】:

点击链接加入群聊【C语言/C++编程基地㈡】:

部分文章来源于网络,仅作为参考,如果网站中图片和文字侵犯了您的版权,请联系我们处理!

上一篇:C语言--学生信息管理系统源码(用c语言写一个学生信息管理系统,不用链表)

下一篇:学生成绩管理系统(C语言版)--附全部源码(学生成绩管理系统c语言课程设计)

相关推荐

返回顶部