学生管理系统 C语言
学生管理系统c语言简单版

学生管理系统c语言简单版学生管理系统c语言简单版介绍:学生管理系统是一种用于管理学生信息的软件,它可以方便地对学生的基本信息、课程成绩等进行录入、查询、修改和删除等操作。
本文将介绍如何使用C语言编写一个简单的学生管理系统。
功能:1. 添加学生信息2. 查询学生信息3. 修改学生信息4. 删除学生信息5. 显示所有学生信息实现方法:1. 添加学生信息添加学生信息需要输入以下内容:姓名、性别、年龄、班级和电话号码。
我们可以定义一个结构体来存储这些信息,代码如下:```struct Student {char name[20];char sex[10];int age;char class[20];char phone[20];};```然后定义一个数组来存储多个学生的信息:```struct Student students[100];int count = 0; // 学生数量```接下来,我们可以编写一个函数来添加新的学生信息:```void addStudent() {struct Student student;printf("请输入姓名:");scanf("%s", );printf("请输入性别:");scanf("%s", student.sex);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入班级:");scanf("%s", student.class);printf("请输入电话号码:");scanf("%s", student.phone);students[count++] = student; // 将新的学生信息存储到数组中 printf("添加成功!\n");}```2. 查询学生信息查询学生信息可以按照姓名或电话号码进行查询。
学生信息管理系统c语言

学生信息管理系统c语言1学生信息管理系统C语言学生信息管理系统C语言是一个以全校学生信息为对象,以c 语言为编程语言,以windows或linux系统环境下操作的具有管理功能的软件系统。
它的主要功能是实现学校的学生信息的管理和处理,如查询、添加、修改、删除学生信息等功能。
2学生信息管理系统C语言的成熟度目前,用c语言开发出来的学生信息管理系统已经具备较高的成熟度,它可以实现大多数主流学校的学生信息管理系统的基本需求,如学生信息查询、增加、删除、修改等,同时也可以实现更多复杂的功能,比如报表统计、统一登录和权限管理等。
3学生信息管理系统C语言的主要功能学生信息管理系统C语言的主要功能有:学生信息查询、增加、删除、修改,录入、报表统计、统一登录和权限管理等功能,其中学生信息查询的功能可以实现学生的基本信息,学习成绩,校园缴费,报到服务等查询;增加、删除和修改功能可以方便学校对学生信息进行管理;报表统计使用Excel或Access或界面精密Tsort对学生信息进行统计;统一登录和权限管理是指学校可以给不同用户赋予不同的权限,不同用户只能访问其角色所拥有的功能。
4学生信息管理系统C语言的优缺点学生信息管理系统用c语言编写的优点是:代码调试方便,程序运行速度快,新手也能上手,而且对于数据库实现也比较容易;优点也有缺点,首先,C语言是一门面向过程编程语言,缺乏面向对象、动态内存分配等特性,可维护性和可扩展性较差,其次,C语言的数据类型容易混乱,入口函数的嵌套层次太深容易出错。
5改进建议为了提高学生信息系统C语言的安全性、可扩展性和可维护性,让系统更加智能,建议:①使用现代化的Java、Python或C++编写代码;②采用组件式设计,将模块分开,单独编程;③支持多种浏览器,支持动态页面显示;④采用更多的设计模式,做到安全易用、可扩展、可维护;⑤建立事务系统,实现系统的智能化,通过人工智能实现系统的可维护性和安全性。
学生管理系统C语言版

void selectMainMenu(void); /*选择处理主菜单*/
/*生成成绩单模块所用函数:*/
void displayMenuIteml(void); /*处理生成成绩单菜单*/
void handleCreateAchiMenu(void); /*处理生成成绩菜单子项*/
do
{
showMainMenu();
scanf("%d",&selectItem);
switch(selectItem)
{
case 1:
handleCreateAchiMenu(); /*产生成绩单模块函数*/
break;
case 2:
int handlePassword(void)
{
char secretCode[6]; /*用于输入密码*/
int secretcodeNumber=3; /*用于输入密码次数三次退出系统*/
/*科目管理模块所用函数:*/
void handleSubjectMenu(void); /*科目管理处理菜单*/
void displaySubjectMenu(int subjectCode); /*显示科目管理菜单*/
void achievementInput(int subjectCode); /*输入相关科目成绩*/
void inputStuInfo(void); /*录入学生成绩*/
void addStuInfo(void); /*添加学生信息*/
void deleteStuInfo(void); /*删除学生信息*/
C语言学生管理系统

C语言学生管理系统#include#include#include#include#include#define LEN sizeof(struct student)#define FORMAT "%-8d%-15s%-12.1lf%-12.1lf%-12.1lf%-12.1lf\n"#define DATA stu[i].num,stu[i].name,stu[i].elec,stu[i].expe,stu[i].requ,stu[i].sum struct student/*定义学生成绩结构体*/{ int num;/*学号*/char name[15];/*姓名*/double elec;/*选修课*/double expe;/*实验课*/double requ;/*必修课*/double sum;/*总分*/};struct student stu[50];/*定义结构体数组*/void in();/*录入学生成绩信息*/void show();/*显示学生信息*/void order();/*按总分排序*/void del();/*删除学生成绩信息*/void modify();/*修改学生成绩信息*/void menu();/*主菜单*/void insert();/*插入学生信息*/void total();/*计算总人数*/void search();/*查找学生信息*/void main()/*主函数*/{ int n;menu();scanf("%d",&n);/*输入选择功能的编号*/while(n){ switch(n){ case 1: in();break;case 2: search();break;case 3: del();break;case 4: modify();break;case 5: insert();break;case 6: order();break;case 7: total();break;default:break;}getch();menu();/*执行完功能再次显示菜单界面*/scanf("%d",&n);}}void in()/*录入学生信息*/{ int i,m=0;/*m是记录的条数*/char ch[2];FILE *fp;/*定义文件指针*/if((fp=fopen("data.txt","a+"))==NULL)/*打开指定文件*/ { printf("can not open\n");return;}while(!feof(fp)) {if(fread(&stu[m] ,LEN,1,fp)==1)m++;/*统计当前记录条数*/}fclose(fp);if(m==0)printf("No record!\n");else{system("cls");show();/*调用show函数,显示原有信息*/}if((fp=fopen("data.txt","wb"))==NULL){ printf("can not open\n");return;}for(i=0;iscanf("%s",ch);while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要录入新信息*/ {printf("number:");scanf("%d",&stu[m].num);/*输入学生学号*/ for(i=0;i<m;i++)< p="">if(stu[i].num==stu[m].num){printf("the number is existing,press any to continue!");getch();fclose(fp);return;}printf("name:");scanf("%s",stu[m].name);/*输入学生姓名*/printf("elective:");scanf("%lf",&stu[m].elec);/*输入选修课成绩*/printf("experiment:");scanf("%lf",&stu[m].expe);/*输入实验课成绩*/printf("required course:");scanf("%lf",&stu[m].requ);/*输入必修课成绩*/ stu[m].sum=stu[m].elec+stu[m].expe+stu[m].requ;/*计算出总成绩*/if(fwrite(&stu[m],LEN,1,fp)!=1)/*将新录入的信息写入指定的磁盘文件*/{ printf("can not save!"); getch(); }else { printf("%s saved!\n",stu[m].name);m++;}printf("continue?(y/n):");/*询问是否继续*/scanf("%s",ch);}fclose(fp);printf("OK!\n");}void show(){ FILE *fp;int i,m=0;fp=fopen("data.txt","rb");while(!feof(fp)){if(fread(&stu[m] ,LEN,1,fp)==1)m++;}fclose(fp);printf("number name elective experiment required sum\t\n");for(i=0;i<m;i++)< p="">{printf(FORMAT,DATA);/*将信息按指定格式打印*/}}void menu()/*自定义函数实现菜单功能*/{system("cls");printf("\n\n\n\n\n");printf("\t\t|---------------------STUDENT-------------------|\n");printf("\t\t|\t 0. exit |\n");printf("\t\t|\t 1. input record |\n");printf("\t\t|\t 2. search record |\n");printf("\t\t|\t 3. delete record |\n");printf("\t\t|\t 4. modify record |\n");printf("\t\t|\t 5. insert record |\n");printf("\t\t|\t 6. order |\n");printf("\t\t|\t 7. number |\n");printf("\t\t|-----------------------------------------------|\n\n");printf("\t\t\tchoose(0-7):");}void order()/*自定义排序函数*/{ FILE *fp;struct student t;int i=0,j=0,m=0;if((fp=fopen("data.txt","r+"))==NULL){printf("can not open!\n");return;}while(!feof(fp))if(fread(&stu[m] ,LEN,1,fp)==1)m++;fclose(fp);if(m==0){printf("no record!\n");return;}if((fp=fopen("data.txt","wb"))==NULL){printf("can not open\n");return;}for(i=0;i<m-1;i++)< p="">for(j=i+1;j<="" p="">if(stu[i].sum<stu[j].sum)< p="">{ t=stu[i];stu[i]=stu[j];stu[j]=t;}if((fp=fopen("data.txt","wb"))==NULL){ printf("can not open\n");return;}for(i=0;i{printf("%s can not save!\n");getch();}fclose(fp);printf("save successfully\n");}void del()/*自定义删除函数*/{FILE *fp;int snum,i,j,m=0;char ch[2];if((fp=fopen("data.txt","r+"))==NULL){ printf("can not open\n");return;}while(!feof(fp)) if(fread(&stu[m],LEN,1,fp)==1) m++; fclose(fp);if(m==0){printf("no record!\n");return;}printf("please input the number:");scanf("%d",&snum);for(i=0;i<m;i++)< p="">if(snum==stu[i].num)break;printf("find the student,delete?(y/n)");scanf("%s",ch);if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要进行删除*/for(j=i;j<m;j++)< p="">stu[j]=stu[j+1];/*将后一个记录移到前一个记录的位置*/m--;/*记录的总个数减1*/if((fp=fopen("data.txt","wb"))==NULL){ printf("can not open\n");return;}for(j=0;j<="" p="">if(fwrite(&stu[j] ,LEN,1,fp)!=1){ printf("can not save!\n");getch();}fclose(fp);printf("delete successfully!\n");}void search()/*自定义查找函数*/{ FILE *fp;int snum,i,m=0;char ch[2];if((fp=fopen("data.txt","rb"))==NULL){ printf("can not open\n");return;}while(!feof(fp)) if(fread(&stu[m],LEN,1,fp)==1) m++;fclose(fp);if(m==0) {printf("no record!\n");return;}printf("please input the number:");scanf("%d",&snum);for(i=0;i<m;i++)< p="">if(snum==stu[i].num)/*查找输入的学号是否在记录中*/{ printf("find the student,show?(y/n)");scanf("%s",ch);if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){printf("number name elective experiment required sum\t\n");printf(FORMAT,DATA);/*将查找出的结果按指定格式输出*/ break;}}if(i==m) printf("can not find the student!\n");/*未找到要查找的信息*/}void modify()/*自定义修改函数*/{ FILE *fp;int i,j,m=0,snum;if((fp=fopen("data.txt","r+"))==NULL){ printf("can not open\n");return;}while(!feof(fp))if(fread(&stu[m],LEN,1,fp)==1) m++;if(m==0) {printf("no record!\n");fclose(fp);return;}printf("please input the number of the student which do you want to modify!\n"); scanf("%d",&snum);for(i=0;i<m;i++)< p="">if(snum==stu[i].num)/*检索记录中是否有要修改的信息*/break;printf("find the student!you can modify!\n");printf("name:\n");scanf("%s",stu[i].name);/*输入名字*/printf("\nelective:");scanf("%lf",&stu[i].elec);/*输入选修课成绩*/printf("\nexperiment:");scanf("%lf",&stu[i].expe);/*输入实验课成绩*/printf("\nrequired course:");scanf("%lf",&stu[i].requ);/*输入必修课成绩*/stu[i].sum=stu[i].elec+stu[i].expe+stu[i].requ;if((fp=fopen("data.txt","wb"))==NULL){ printf("can not open\n");return;}for(j=0;j<="" p="">if(fwrite(&stu[j] ,LEN,1,fp)!=1){ printf("can not save!"); getch(); }fclose(fp);}void insert()/*自定义插入函数*/{ FILE *fp;int i,j,k,m=0,snum;if((fp=fopen("data.txt","r+"))==NULL){ printf("can not open\n");return;}while(!feof(fp))if(fread(&stu[m],LEN,1,fp)==1) m++;if(m==0) {printf("no record!\n");fclose(fp);return;}printf("please input position where do you want to insert!(input the number)\n"); scanf("%d",&snum);/*输入要插入的位置*/for(i=0;i<m;i++)< p="">if(snum==stu[i].num)break;for(j=m-1;j>i;j--)stu[j+1]=stu[j];/*从最后一条记录开始均向后移一位*/printf("now please input the new information.\n");printf("number:");scanf("%d",&stu[i+1].num);for(k=0;k<m;k++)< p="">if(stu[k].num==stu[i+1].num){printf("the number is existing,press any to continue!");getch();fclose(fp);return;}printf("name:\n");scanf("%s",stu[i+1].name);printf("\nelective:");scanf("%lf",&stu[i+1].elec);printf("\nexperiment:");scanf("%lf",&stu[i+1].expe);printf("\nrequired course:");scanf("%lf",&stu[i+1].requ);stu[i+1].sum=stu[i+1].elec+stu[i+1].expe+stu[i+1].requ;if((fp=fopen("data.txt","wb"))==NULL){ printf("can not open\n");return;}for(k=0;k<=m;k++)if(fwrite(&stu[k] ,LEN,1,fp)!=1)/*将修改后的记录写入磁盘文件中*/{ printf("can not save!"); getch(); }fclose(fp);}void total(){ FILE *fp;int m=0;if((fp=fopen("data.txt","r+"))==NULL){ printf("can not open\n");return;}while(!feof(fp))if(fread(&stu[m],LEN,1,fp)==1)m++;/*统计记录个数即学生个数*/if(m==0) {printf("no record!\n");fclose(fp);return;}printf("the class are %d students!\n",m);/*将统计的个数输出*/ fclose(fp);}</m;k++)<></m;i++)<></m;i++)<></m;i++)<></m;j++)<></m;i++)<></stu[j].sum)<></m-1;i++)<></m;i++)<></m;i++)<>。
c语言课程设计学生管理系统

c语言课程设计学生管理系统一、教学目标本课程的目标是让学生掌握C语言编程的基本技能,通过实现一个学生管理系统,让学生了解和掌握面向对象编程的思想和方法,培养学生的编程能力和问题解决能力。
具体目标如下:1.知识目标:使学生掌握C语言的基本语法、数据结构、算法和面向对象编程思想。
2.技能目标:使学生能够使用C语言独立编写和调试程序,具备基本的软件开发能力。
3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,增强学生的自主学习意识和团队合作精神。
二、教学内容教学内容以C语言编程为核心,主要包括以下几个部分:1.C语言基础:介绍C语言的基本语法、数据类型、运算符、控制结构等。
2.数据结构:讲解常用的数据结构,如数组、链表、栈和队列等,以及如何在C语言中实现和应用。
3.算法:介绍基本的算法思想和实现方法,如排序、查找等。
4.面向对象编程:讲解面向对象编程的基本概念,如类、对象、封装、继承和多态等,以及如何在C语言中实现面向对象编程。
5.学生管理系统实现:以学生管理系统为案例,引导学生运用所学知识解决实际问题。
三、教学方法为了提高教学效果,将采用多种教学方法相结合的方式进行教学:1.讲授法:讲解C语言的基本语法、数据结构、算法和面向对象编程思想。
2.案例分析法:通过分析学生管理系统的实现,使学生理解和掌握面向对象编程的思想和方法。
3.实验法:安排实验室实践环节,让学生动手编写代码,培养学生的实际编程能力。
4.讨论法:学生进行小组讨论,分享学习心得和解决问题的方法,提高学生的团队合作能力。
四、教学资源为了支持教学内容和教学方法的实施,将准备以下教学资源:1.教材:《C程序设计原理与应用》。
2.参考书:《C语言程序设计》。
3.多媒体资料:制作课件和教学视频,以便于学生复习和自学。
4.实验设备:为学生提供计算机实验室,让学生能够进行实际编程练习。
五、教学评估为了全面、客观地评估学生的学习成果,将采用多种评估方式相结合的方法:1.平时表现:评估学生在课堂上的参与程度、提问和回答问题的积极性等,占总评的20%。
学生信息管理系统c语言版源代码

学生信息管理系统c语言版源代码#include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #define N 1000typedef struct student {int number;char name[20];int grade;int gaoshu;int yingyu;int jisuanji;int sum;}STUDENT;STUDENT student[N]; int shuliang=0;void menu();void fhzjm(){char biaozhi[20];printf("\n");printf("还需要操作么,如果需要操作请输入:yes,否则请输入:no\n");scanf("%s",biaozhi);if(strcmp(biaozhi,"yes")==0){menu();}else if(strcmp(biaozhi,"no")==0)exit(0);else{printf("请输入正确的字符,谢谢~\n"); fhzjm();}}void DengJi(){int rs;int i,k=1;system("CLS");printf("请输入需要输入几个学生信息:"); scanf("%d",&rs);for(i=shuliang;i<shuliang+rs;i++,k++) {printf("请输入第%d个学生的学号:",k); scanf("%d",&student[i].number);printf("请输入学生的姓名:");scanf("%s",student[i].name);printf("请输入学生3门课的成绩:"); printf("请输入第1门课的成绩:");scanf("%d",&student[i].gaoshu);printf("请输入第2门课的成绩:");scanf("%d",&student[i].yingyu);printf("请输入第3门课的成绩:");scanf("%d",&student[i].jisuanji);}shuliang=shuliang+rs;fhzjm();}void ShanChu(){char shanchuinfo[10];system("CLS");printf("删除全部学生信息请输入\"all\",删除指定学号的学生信息请输入\"one\"\n");scanf("%s",shanchuinfo);if(strcmp(shanchuinfo,"all")==0){int j;printf("你删除的学生信息如下:\n");printf("-----------学号-------------姓名-------------高数--------------英语--------------计算机\t\n");for(j=0;j<shuliang;j++)printf("----%d-------%s-------%d-------%d-------%d\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].jisuanji);shuliang=0;printf("删除成功\n\n");}else if(strcmp(shanchuinfo,"one")==0){struct student *p=NULL;int choice;int i,j,k=0;printf("请输入你要删除的人的学号:");scanf("%d",&choice);for(i=0;i<shuliang;i++){if(choice==student[i].number){k=1;j=i;break;}}if(k){if(shuliang==1){p=&student[0];free(p);shuliang=0;}else{for(i=j;i<shuliang;i++) {student[i]=student[i+1];}shuliang=shuliang-1;}printf("删除成功\n\n");}else{printf("输入数据错误~\n"); }}fhzjm();}void LiuLan(){int i;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");}else{for(i=0;i<shuliang;i++){printf("第%d个学生的学号为:%d\n",i+1,student[i].number);printf("第%d个学生的姓名为:%s\n",i+1,student[i].name);printf("第%d个学生的第一门课的成绩为:%d\n",i+1,student[i].gaoshu);printf("第%d个学生的第二门课的成绩为:%d\n",i+1,student[i].yingyu);printf("第%d个学生的第三门课的成绩为:%d\n",i+1,student[i].jisuanji);student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("第%d个学生的总成绩为:%d\n",i+1,student[i].sum);}}fhzjm();}void ChaZhao(){int xx;char choice,yy[20];int i,j,k=0;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");fhzjm();}printf("三种查找方式:学号,姓名,成绩\n");printf("如果按学号查找请输1,如果按姓名查找请输2,如果按成绩查找请输3\n");printf("请输入您查找的方式:");scanf("%s",&choice);if(choice=='1'){printf("请输入需要查找学生的学号:");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].number){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='2'){printf("请输入需要查找学生的姓名:\n");scanf("%s",yy);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(strcmp(yy,student[i].name)==0){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='3'){printf("请输入需要查找学生的成绩:\n");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数----英语----计算机----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].grade){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}fhzjm();}void PaiXu(){struct student *p1[N],**p2,*temp;int i,j;system("CLS");p2=p1;for( i=0;i<shuliang;i++){p1[i]=student+i;}for( i=0;i<shuliang;i++){for( j=i+1;j<shuliang;j++){if((*(p2+i))->sum<(*(p2+j))->sum){temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp;} }}printf("按照总成绩排序之后的信息为:\n");printf("----学号----姓名----总成绩----\t\n");for( i=0;i<shuliang;i++){student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("----%d-----%s----%d-----\n",(*(p2+i))->number,(*(p2+i))->name,(*(p2+i))->sum);}fhzjm();}void CunChu(){int i;FILE *rs;if((rs=fopen("student.txt","w"))==NULL){printf("not open");exit(0);}for(i=0;i<shuliang;i++){fwrite(&student[i], sizeof(student[i]), 1, rs); }if(ferror(rs)){fclose(rs);perror("写文件失败~\n");return;}printf("存储文件成功~\n");fclose(rs);fhzjm();}void DaoChu(){struct student t;int i=0;FILE* fp = fopen("student.txt", "r");shuliang=0;if(NULL==fp){perror("读取文件打开失败~\n");return;}memset(student,0x0,sizeof(student));while(1){fread(&t,sizeof(t),1,fp);if(ferror(fp)){fclose(fp);perror("读文件过程失败~\n");return;}if(feof(fp)){break;}student[i]=t;i++;}fclose(fp);shuliang=i; printf("导出文件成功~\n"); fhzjm();}void menu(){int n=0;system("CLS");printf(" 学生信息管理系统\n");printf(" 作者:陈椿\n");printf("-------------------MENU-----------------\n"); printf(" 1.登记学生信息\n");printf(" 2.删除学生信息\n");printf(" 3.浏览所有已经登记的学生\n");printf(" 4.查找\n");printf(" 4.1按学号查找\n");printf(" 4.2按姓名查找\n");printf(" 4.3按成绩查找\n");printf(" 5.根据总成绩排序\n");printf(" 6.存储到文件\n");printf(" 7.从文件导出\n");printf(" 8.退出系统\n");a: printf(" 请选择:");scanf("%d",&n);switch (n){case 1:DengJi();break;case 2:ShanChu();break;case 3:LiuLan();break;case 4:ChaZhao();break;case 5:PaiXu();break;case 6:CunChu();break;case 7:DaoChu();break;case 8:exit(0);break;default:{printf("请输入1-8之间的数字,谢谢~\n"); goto a;}}}main() {menu();}。
C语言编写学生管理系统的代码

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<ctype.h>#include<conio.h>struct student{char number[21];char name[21];int age;char sex[3];char birthday[8];}studentArray[100];typedef struct student student;student studentArray[100];char putout[5][12]={"学号","姓名","年龄","性别","出生年月"}; //为格式化输出做准备int count=0;//函数声明部分void explain();void readfile();void searchStudent();void modifyStudent();void addStudent();void delStudent();void printAllstudent();void save();void quit();void initial();void initial(){FILE *fp;char choice='y';int i=0;fp=fopen("e:\\students.txt","r");if(!fp){printf("创建文件失败,即将返回\n");return ;}for(;fread(&studentArray[i],sizeof(struct student),1,fp)!=0;i++);count=i;}//0、说明模块void explain(){printf("\n 很高兴能为您服务\n");printf("\n1.进入本系统,请先刷新学生信息,再查训\n");printf("\n2.您可以根据自己需要的信息键入菜单上的编号\n");printf("\n3.修改学生信息后记得退出前保存信息,以免信息流失\n");printf("\n4.在各个子菜单里按提示操作\n");printf("\n5.谢谢您的使用及支持\n");}//1、刷新模块void readfile(){char *p="students.txt";FILE *fp;int i=0;if((fp=fopen("students.txt","r"))==NULL){printf("打开文件%s出错!请按按任意键返回",p);system("pause");{i++;i=i;}fclose(fp);printf("刷新完毕。
学生管理系统c语言源代码

学生管理系统c语言源代码学生管理系统c语言源代码#include stdio.h#include dos.h#include string.h#include stdlib.h#include malloc.h#define SIZE 8struct student{char name;char num;int score;float ave;struct student *next;}stu[SIZE],temp,s;void shuru(){int i,j,sum,length,flag=1,a;FILE *fp;while(flag==1){printf(“Define a rangeclass number:");scanf("%d",printf("Input the total number of the class(a):"); scanf("%d",length);if(lengtha)flag=0;}for(i=0;ilength;i++){printf("\n请输入学生的信息:");printf("\n输入姓名:");scanf("%s",stu[i].name);printf("\n输入序号.:");scanf("%s",stu[i].num);printf("\n输入成绩:\n");sum=0;for(j=0;jj++){printf("score %d:",j+1);scanf("%d",stu[i].score[j]);sum+=stu[i].score[j];}stu[i].ave=sum/3.0;}学生管理系统c语言源代码fp=fopen("stu1.txt","w");for(i=0;ilength;i++)if(fwrite(stu[i],sizeof(struct student),1,fp)!=1)printf("File write error\n");fclose(fp);fp=fopen("stu1.txt","r");printf("\name\ NO. score1 score2 score3 sum ave\n");for(i=0;ilength;i++){fread(stu[i],sizeof(struct student),1,fp);printf("%3s%5s%7d%7d%7d%7d%10.2f\n",stu[i].name,stu[i].num,stu[i ].score,stu[i].score,stu[i].score,sum=stu[i].score+stu[i].score+stu[i].score,stu[i].ave);}}void chaxun(){ FILE *fp, *fp1;char n,name;int i,j,k,t,m,flag=1;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:\n");k=i;printf("\nPlease select the menu(1.number ):"); scanf("%d",switch(m){case 1:printf("\nchaxun number:");scanf("%s",n);for(flag=1,i=0;ii++){if(strcmp(n,stu[i].num)==0){j=i;flag=0;break;}}break;case 2:printf("\nchaxun name:");scanf("%s",name);for(flag=1,i=0;ii++){if(strcmp(name,stu[i].name)==0){j=i;flag=0;break;学生管理系统c语言源代码}}}if(!flag){printf("\nYou can find:\n");fp1=fopen("stu2.txt","w");printf(" name NO. score1 score2 score3ave\n");fwrite(stu[j],sizeof(struct student),1,fp1);printf("%-15s%11s%7d%7d%7d%10.2f",stu[j].name,stu[j].num,stu[j].score,stu[j].score,stu[j].score,stu[j].ave);}else printf("\nNot found!");fclose(fp);fclose(fp1);}xiugai(){ int a;printf("\nplease select the menu(1.CHARU 2.__ ):");scanf("%d",switch(a){case 1:Insert(); break;case 2:Delete(); break;}}Insert(){ FILE *fp;int i,j,t,n;printf("\nNO.:");scanf("%s",s.num);printf("name:");scanf("%s",);printf("score1,score2,score3:");scanf("%d,%d,%d",s.score,s.score,s.score);s.ave=(s.score+s.score+s.score)/3.0;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:\n");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++) {printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)学生管理系统c语言源代码printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;for(t=0;stu[t].aves.avett++);printf("\nnow:\n");fp=fopen("stu1.txt","w");for(i=0;ii++){fwrite(stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fwrite(s,sizeof(struct student),1,fp);printf("\n%-15s%11s%7d%7d%7d%10.2f",,s.num,s.score,s.score, s.score,s.ave);for(i=t;ii++){fwrite(stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);}Delete(){ FILE *fp;int i,j,t,n,flag;char number;if((fp=fopen("stu1.txt","rb"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++) {printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;学生管理系统c语言源代码printf("\nInput number deleted:");scanf("%s",number);for(flag=1,i=0;flagii++){if(strcmp(number,stu[i].num)==0){for(t=i;tt++){strcpy(stu[t].num,stu[t+1].num);strcpy(stu[t].name,stu[t+1].name);for(j=0;jj++)stu[t].score[j]=stu[t+1].score[j];stu[t].ave=stu[t+1].ave;}n=n-1;elseprintf("\n Not found!");printf("\nNow,the content of file:\n");fp=fopen("stu1.txt","wb");for(i=0;ii++)fwrite(stu[i],sizeof(struct student),1,fp);fclose(fp);fp=fopen("stu1.txt","r");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++)printf("%-15s%11s%7d%7d%7d%10.2f\n",stu[i].name,stu[i].num,stu[i].score, stu[i].score,stu[i].score,stu[i].ave);fclose(fp);}paixu(){FILE *fp;int i,j,n;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\nfile'stu1.txt':");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++) {printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;for(i=0;ii++)for(j=i+1;jj++)学生管理系统c语言源代码if(stu[i].avestu[j].ave){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}printf("\nnow:");fp=fopen("stu1.txt","w");for(i=0;ii++){fwrite(stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);tongji(){ FILE *fp;int i,j,k,labe1,b;int a5=0;int a6=0;int a7=0;int a8=0;int a9=0; int a10=0; float t;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\nfile'stu1.txt':");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++){printf("\n%-15s%11s",stu[i].name,stu[i].num); for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);k=i;for(i=0;ii++){labe1=0;if(stu[i].ave60){labe1++;t=labe1/(float)k*100;}}printf("\nbujigelv:");printf("%f%",t);printf("\n");for(j=0;jj++){a5=0;a6=0;a7=0;a8=0;a9=0;a10=0;k=i;printf("kemu is %d:\n",j);for(i=0;ii++)学生管理系统c语言源代码{b=stu[i].score[j]/10;if(b6)a5++;elseif(b=6b7)a6++;elseif(b=7b8)a7++;elseif(b=8b9)a8++;if(b=9b10)a9++;elseif(b==10)a10++;}printf(" 不及格is %d\n",a5);printf(" 60--69 is %d\n",a6);printf(" 70--79 is %d\n",a7);printf(" 80--89 is %d\n",a8);printf(" 90--99 is %d\n",a9);printf(" 100 is %d\n",a10);}}main(){int a;printf(" ____\n"); printf(" 欢迎进入学生成绩管理系统\n");printf(" ____\n"); while(1){printf("\n选择菜单:\n");printf("\n");printf(" 1.输入 2.查询 3.排序 4.修改 5.统计 6.退出\n"); scanf("%d",switch(a){case 1: shuru();break;case 2: chaxun(); break;case 3: paixu(); break;case 4: xiugai(); break;学生管理系统c语言源代码case 5: tongji();break; case 6: exit(0); }。
学生管理系统 C语言代码

#include"stdio.h"#include"stdlib.h"#include"string.h"struct stu_info1{char num[13];//学号char name[10];//姓名char sex[5];//性别char cls[20];//班级}stu1[6];struct stu_info2{char counum[6];//课程号char counam[20];//课程名称int credit;//学分}stu2[6];struct stu_info3{char num[13];//学号char counum[6];//课程号float results;//分数}stu3[12];struct stu_info4{char num[13];//学号char counum[6];//课程号float results;//分数}stu4[12];int n=11;void main(){void gengxin();void input1();void input2();void input3();void output();void xianshi();void chaxun();void printf1();void printf2();input1();input2();output();int i;loop: ;printf("*************欢迎使用分数查询系统*************\n");printf("** 请选择**\n");printf("** 1.录入2.删除无用信息(管理员功能) **\n");printf("** 3.显示4.查询(学生功能) **\n");printf("** 5.显示学生信息6.显示课程信息**\n");printf("** 7.退出**\n");printf("**********************************************\n");scanf("%d",&i);switch(i){case 1: input3();break;case 2:gengxin();break;case 3:xianshi();goto loop;case 4: chaxun();goto loop;case 5: printf1();goto loop;case 6: printf2();goto loop;case 7:break;default:printf("error");break;}}void input1()//录入结构体stu1[]{int i;FILE *fp;if((fp=fopen("A.txt","r"))==NULL){printf("can not open file\n");exit(0);}/* printf(" 学号姓名性别班级\n");*/for(i=0;i<=5;i++){fscanf(fp,"%s%s%s%s",&stu1[i].num,&stu1[i].name,&stu1[i].sex,&stu1[i].cls);/*printf("%-13s %-10s %-5s %-20s\n",stu1[i].num,stu1[i].name,stu1[i].sex,stu1[i] .cls);*/}fclose(fp);}void input2()//录入结构体stu2[]{int i;FILE *fp;if((fp=fopen("B.txt","r"))==NULL){printf("can not open file\n");exit(0);}for(i=0;i<=5;i++){fscanf(fp,"%s%s%d",&stu2[i].counum,&stu2[i].counam,&stu2[i].credit);}fclose(fp);}void input3()//录入成绩{FILE *fp;fp=fopen("C.txt","w");int a,i,j,k;float cetss;char number[13],cnum[6],mima[10];printf("请输入管理员密码\n");scanf("%s",mima);if(strcmp(mima,"abc111")==0){printf("请输入要录入学生成绩的个数\n");scanf("%d",&a);for(i=1;i<=a;i++){printf("请输入要录入的第%d同学的学号:",i);scanf("%s",number);printf("请输入要录入的第%d同学的课程号:",i);scanf("%s",cnum);for(j=0;j<=5;j++)//学号{if((strcmp(number,stu1[j].num)==0))break;}if(j<=5){for(k=0;k<=5;k++)//课程号{if(strcmp(cnum,stu2[k].counum)==0){printf("请输入要录入同学的成绩:");scanf("%f",&cetss);fprintf(fp,"%s %s %f\n",number,cnum,cetss);break;}}}if(j>5||k>5){printf("Error,please input again");i=i-1;}printf("录入成功\n");}}else{printf("密码错误\n");}}void output()// 录入结构体stu3[]{int i;FILE *fp=fopen("C.txt","r");for(i=0;i<n;i++){fscanf(fp,"%s%s%f",&stu3[i].num,&stu3[i].counum,&stu3[i].results);/*printf("%s%s%f\n",stu3[i].num,stu3[i].counum,stu3[i].results);*/ }fclose(fp);}void xianshi()// 显示成绩{int i,j;for(i=0;i<n;i++){for(j=0;j<6;j++){if((strcmp(stu3[i].num,stu1[j].num))==0)printf("%s\t",stu1[j].name);}for(j=0;j<6;j++){if(strcmp(stu3[i].counum,stu2[j].counum)==0)printf("%s\t",stu2[j].counam);}printf("%3.1f\n",stu3[i].results);}}void chaxun()//查询功能{char number[13],c;int i,j,k,a,b,d;while((c=getchar())!='Q'){a=0,b=0;//a记录学分b记录学科printf("请输入要查询同学的学号\n");scanf("%s",number);for(i=0;i<n;i++){if(strcmp(number,stu3[i].num)==0){printf("学号:%s\t",stu3[i].num);for(j=0;j<6;j++){if(strcmp(stu3[i].num,stu1[j].num)==0){printf("姓名:%s\n",stu1[j].name);}}break;}}d=i;for(i=0;i<n;i++)if(strcmp(number,stu3[i].num)==0){b=b+1;for(j=0;j<6;j++){if(strcmp(stu3[i].num,stu1[j].num)==0){for(k=0;k<6;k++){if(strcmp(stu3[i].counum,stu2[k].counum)==0)break;}break;}}if(stu3[i].results>=60){a=a+stu2[k].credit;printf("课程号:%s\t课程名称:%s\t成绩:%3.1f\t实得学分:%d\n",stu3[i].counum,stu2[k].counam,stu3[i].results,stu2[k].credit);}elseprintf("课程号:%s\t课程名称:%s\t成绩:%3.1f\t实得学分:%d\n",stu3[i].counum,stu2[k].counam,stu3[i].results,0);}if(d<n){printf("共修%d科\t\t实得总学分:%d\n",b,a);}else{printf("学号输入错误\n");}getchar();printf("退出请按Q+回车,继续查询请按回车键");}}void gengxin()//更新信息,删除C.txt中无用信息{FILE *fp;int i,j,k;char mima[10];printf("请输入管理员密码\n");scanf("%s",mima);if(strcmp(mima,"abc111")==0){fp=fopen("C.txt","w");for(i=0;i<n;i++){for(j=0;j<6;j++)if(strcmp(stu3[i].num,stu1[j].num)==0){for(k=0;k<=5;k++)if(strcmp(stu3[i].counum,stu2[k].counum)==0)break;if(k<=5){fprintf(fp,"%s %s %f\n",stu3[i].num,stu3[i].counum,stu3[i].results);}}}printf("更新C.txt成功\n");fclose(fp);}else{printf("密码错误\n");}}void printf1()//显示学生信息{int i;printf(" 学号姓名性别班级\n");for(i=0;i<=5;i++){printf("%-13s%-10s%-5s %-20s\n\n",stu1[i].num,stu1[i].name,stu1[i].sex,stu1[i].cls);}}void printf2()//显示课程信息{int i;printf(" 课程编号课程名称学分\n");for(i=0;i<=5;i++){printf("%-6s%-20s %-4d\n\n",stu2[i].counum,stu2[i].counam,stu2[i].credit);}}。
c语言课程设计学生管理系统

c 语言课程设计学生管理系统一、教学目标本章节的教学目标为:知识目标:使学生掌握C语言编程的基本语法;理解结构体、指针、函数等基本概念;了解学生管理系统的基本需求和设计思路。
技能目标:培养学生运用C语言进行程序设计的能力;能够独立完成学生管理系统的基本功能模块的编码和调试。
情感态度价值观目标:培养学生对计算机编程的兴趣和热情,增强其自主学习和解决问题的意识。
二、教学内容本章节的教学内容为:1.C语言基础知识:数据类型、运算符、表达式等。
2.控制结构:顺序结构、分支结构、循环结构等。
3.函数:函数的定义、调用、参数传递等。
4.指针:指针的基本概念、指针的运算、指针与数组等。
5.结构体:结构体的定义、使用、结构体数组等。
6.学生管理系统的设计与实现:学生信息的管理、查询、修改和删除等功能。
三、教学方法本章节的教学方法为:1.讲授法:通过讲解C语言的基本语法、概念和原理,使学生掌握基础知识。
2.案例分析法:通过分析学生管理系统的实际案例,使学生理解并掌握系统的功能需求和设计思路。
3.实验法:让学生动手编写和调试代码,培养其编程能力和问题解决能力。
四、教学资源本章节的教学资源为:1.教材:《C语言程序设计》等相关教材。
2.参考书:《C语言编程思想》、《C指针》等。
3.多媒体资料:教学PPT、视频教程等。
4.实验设备:计算机、编程环境等。
五、教学评估本章节的教学评估方式为:1.平时表现:考察学生在课堂上的参与度、提问回答等情况,占总评的20%。
2.作业:布置与学生管理系统相关的编程作业,考察学生的编程能力和理解程度,占总评的30%。
3.考试:进行学生管理系统的编程考试,考察学生的综合运用能力,占总评的50%。
六、教学安排本章节的教学安排为:1.教学进度:按照教材的章节顺序进行教学,确保每个章节都有足够的时间进行讲解和练习。
2.教学时间:每周安排2课时进行课堂教学,每课时45分钟。
3.教学地点:计算机实验室,以便学生进行编程实践。
c语言大作业学生管理系统

c语言大作业学生管理系统随着信息化的快速发展,计算机技术已经深入到各个领域。
在教育领域中,学生管理系统是学校管理学生信息的重要工具。
本次大作业将以“c语言大作业学生管理系统”为题,介绍如何使用c语言开发一个简单的学生管理系统。
一、需求分析学生管理系统需要实现以下功能:1、添加学生信息2、查询学生信息3、修改学生信息4、删除学生信息5、显示所有学生信息二、设计1、定义数据结构为了存储学生信息,我们可以定义一个结构体,包含学生的姓名、学号、性别、年龄等信息。
cinclude <stdio.h>include <stdlib.h>include <string.h>typedef struct {char name;char id;char gender;int age;Student;2、定义函数为了实现学生管理系统的各个功能,我们可以定义以下函数:1、add_student():添加学生信息2、query_student():查询学生信息3、modify_student():修改学生信息4、delete_student():删除学生信息5、display_students():显示所有学生信息三、实现下面是一个简单的实现示例:cinclude <stdio.h>include <stdlib.h>include <string.h>typedef struct {char name;char id;char gender;int age;Student;void add_student(Student *students, int *num_students) { Student student;printf("Enter name: ");scanf("%s", );printf("Enter ID: ");scanf("%s", student.id);printf("Enter gender: ");scanf("%s", student.gender);printf("Enter age: ");scanf("%d", &student.age);students[*num_students] = student;(*num_students)++;printf("Student added successfully.C语言学生信息管理系统实验报告C语言学生信息管理系统实验报告一、实验目的本实验旨在通过使用C语言编写学生信息管理系统,提升我们的编程技能和系统设计能力。
c语言课程设计学生管理系统设计

c语言课程设计学生管理系统设计一、教学目标本课程的教学目标是使学生掌握C语言的基本语法,熟练使用C语言进行程序设计,并通过学生管理系统的设计与实现,让学生了解面向对象编程的基本思想,培养学生解决实际问题的能力。
1.掌握C语言的基本语法和数据结构。
2.理解面向对象编程的基本概念。
3.能够使用C语言编写简单的程序。
4.能够设计和实现一个学生管理系统。
情感态度价值观目标:1.培养学生的团队合作意识和解决问题的能力。
2.培养学生的创新精神和对计算机科学的热爱。
二、教学内容教学内容主要包括C语言的基本语法、数据结构、面向对象编程思想以及学生管理系统的设计与实现。
1.C语言的基本语法:包括变量、数据类型、运算符、控制结构等。
2.数据结构:包括数组、链表、栈、队列等。
3.面向对象编程:包括类、对象、封装、继承、多态等。
4.学生管理系统:包括学生信息的增删改查、成绩管理等。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:用于讲解C语言的基本语法、数据结构和面向对象编程的基本概念。
2.案例分析法:通过分析实际的学生管理系统案例,让学生了解面向对象编程的思想和应用。
3.实验法:让学生通过实际操作,动手编写代码,培养学生的编程能力和解决实际问题的能力。
四、教学资源教学资源包括教材、实验设备和学生管理系统案例。
1.教材:选用权威、实用的C语言教材,为学生提供系统的理论知识。
2.实验设备:提供计算机实验室,让学生进行实际操作。
3.学生管理系统案例:提供实际的学生管理系统案例,供学生分析和实践。
以上是本课程的教学设计,希望能够帮助学生更好地学习C语言,提高编程能力,培养解决实际问题的能力。
五、教学评估本课程的教学评估主要包括平时表现、作业和考试三个部分,以全面、客观、公正地评估学生的学习成果。
1.平时表现:通过课堂参与、提问、讨论等方式评估学生的学习态度和积极性。
2.作业:布置适量的作业,评估学生的编程能力和对知识的理解程度。
C语言 学生信息管理系统(完整版)

电子科技大学成都学院程序综合设计论文论文题目学生信息管理系统学生姓名魏国学号1340840625专业机械设计制造及其自动化系(分院)电子工程系授课教师杜娥2015年12月制摘要随着经济的发展,社会的进步,计算机越来越深入到我们日常的工作学习及生活中,成为我们日常生活不可或缺的辅助工具。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已成为人们深刻认识,它已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
现在由于学校规模进一步扩大,学生人数逐渐上升,在学校的学生信息管理中,虽然已经存在许多学生信息管理系统,但由于学校之间的管理差异很信息的不同,各个学校的学生信息管理的要求不一致,这样我们需要根据具体学习的具体要求来开发学生信息管理系统以方便学生管理。
本系统主要对学生各种信息进行处理。
本系统采用C语言编写,设计从实用性出发,设计开发出一个操作简单且符合实际需要的学生信息管理系统。
本文设计出一个可以添加、修改、查询、删除、统计的学生信息管理系统;最后,通过测试分析,力求将学到的只是在学生信息管理系统的得到全面运用,并使系统在实际的操作中能按照设计的要求安全有效的正确运行。
学生信息管理系统是为了实现学校对学生信息管理的系统化、规范化和自动化,从而提高学校管理效率而设计的。
它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成学生信息管理提供了强有力的工具和管理手段。
学生信息管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了学生信息管理的要求。
学生信息管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了学生信息管理计算机化。
关键字:学生信息,管理系统,数据库,C语言编写第一章系统功能和组成模块1.1系统功能学生信息管理系统存放了每个学生的学号,姓名,性别,年龄,出生年月,家庭住址,政治面貌等信息的数据库。
学生信息管理系统(C语言)

学⽣信息管理系统(C语⾔)#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct student{int id;char name[20];int age;char sex;char birthday[20];char address[20];char phone[15];char email[30];struct student *next;}student;student *head = NULL;int length;void create(){student *p1,*p2;length = 0;p1 = (student *)malloc(sizeof(student));p1->id = -1;if(head == NULL){head = p1;}printf("请输⼊学⽣的学号、姓名、年龄、性别、出⽣年⽉、地址、电话、电⼦邮箱:\n");while(1){p2 = (student *)malloc(sizeof(student));scanf("%d %s %d %c %s %s %s %s",&p2->id,p2->name,&p2->age,&p2->sex,&p2->birthday,&p2->address,p2->phone,p2->email);if(p2->id == 0){printf("链表创建完成!\n");break;}length ++;p1->next = p2;p2->next = NULL;p1 = p1->next;}return ;}void LoadStudentInFromFile(){student *p,*q;int c;FILE* f;f = fopen("input.txt","rb");if(f == NULL){return ;}fseek(f,0,SEEK_SET);p = (student *)malloc(sizeof(student));p->next = NULL;head = p;while(!feof(f)){c = fgetc(f);if(c != -1){fseek(f,-1,SEEK_CUR);}else{return ;}q = (student *)malloc(sizeof(student));fscanf(f,"%d",&q->id);fscanf(f,"%s",q->name);fscanf(f,"%d",&q->age);fscanf(f,"%c",&q->sex);fscanf(f,"%s",q->birthday);fscanf(f,"%s",q->address);fscanf(f,"%s",q->phone);fscanf(f,"%s",q->email);q->next = NULL;p->next = q;p = p->next;length ++;//链表长度}}void ModifyStudentInfo(){student *p = head->next;int num;printf("请输⼊要修改的学⽣的学号:");scanf("%d",&num);while(p != NULL){if(p->id == num){printf("修改前,学号为%d的学⽣信息如下:\n",num);printf("%d %s %d %c %s %s %s %s",p->id,p->name,p->age,p->sex,p->birthday,p->address,p->phone,p->email); printf("请输⼊学⽣的新电话:");getchar();gets(p->phone);printf("请输⼊学⽣的新地址:");gets(p->address);printf("修改后,学号为%d的学⽣信息如下:\n",num);printf("%d %s %d %c %s %s %s %s",&p->id,p->name,&p->age,p->sex,p->birthday,p->address,p->phone,p->email);return ;}p = p->next;}if(p == NULL){printf("该学号不存在!\n");return ;}}void display(){student *p = head->next;printf("链表中所有的学⽣信息如下:\n");while(p != NULL){printf("%d %s %d %c %s %s %s %s",p->id,p->name,p->age,p->sex,p->birthday,p->address,p->phone,p->email);printf("\n");p = p->next;}return ;}void search(){int num,x;char name[20];student *p = head->next;printf("请选择查询⽅式:\n");printf("1、按学号查询\t2、按姓名查询\n");scanf("%d",&x);if(x == 1){printf("需要查找的学⽣学号为:");scanf("%d",num);while(p != NULL){if(p->id == num){printf("学号为%d的学⽣信息如下:\n",num);printf("%d %s %d %c %s %s %s %s",p->id,p->name,p->age,p->sex,p->birthday,p->address,p->phone,p->email);return ;}p = p->next;}if(p == NULL){printf("⽆此记录!\n");}}else if(x == 2){printf("需要查找的学⽣姓名为:");getchar();gets(name);p = head->next;while(p != NULL){if(strcmp(p->name,name) == 0){printf("学⽣姓名为%s的学⽣信息如下:\n",name);printf("%d %s %d %c %s %s %s %s",p->id,p->name,p->age,p->sex,p->birthday,p->address,p->phone,p->email);return ;}p = p->next;}if(p == NULL){printf("⽆此记录!\n");}}return ;}void insert(){int num,i;student *p,*q;p = head;printf("请输⼊你要插⼊的位置:");scanf("%d",&num);if(num > length){printf("找不到插⼊的位置\n");return ;}else{printf("请输⼊你要插⼊的学⽣的信息:\n");q = (student *)malloc(sizeof(student));scanf("%d %s %d %c %s %s %s %s",&q->id,q->name,&q->age,&q->sex,q->birthday,q->address,q->phone,q->email);while(p != NULL){if(p->id == q->id){printf("该学号已经存在,⽆法插⼊!\n");return ;}p = p->next;}p = head;for(i=0; i<num; ++i){p = p->next;}q->next = p->next;p->next = q;length ++;printf("插⼊成功!\n");return ;}}void Delete(){int num;student *p,*q;q = head;p = head->next;printf("请输⼊要删除的学⽣的学号:\n");scanf("%d",&num);while(p != NULL){if(p->id == num){q->next = p->next;free(p);length --;printf("删除成功!\n");return ;}p = p->next;q = q->next;}if(p == NULL){printf("找不到要删除的编号!\n");return ;}}void menu(){printf("___________________________________________________\n"); printf("| 学⽣信息管理系统 |\n");printf("| 0、退出系统 |\n");printf("| 1、录⼊学⽣信息 |\n");printf("| 2、建⽴链表 |\n");printf("| 3、显⽰链表 |\n");printf("| 4、查找链表中的某个元素 |\n");printf("| 5、删除链表中指定学号的结点 |\n");printf("| 6、指定位置上插⼊⼀个新结点 |\n");printf("| 7、修改学⽣信息 |\n");printf("__________________________________________________\n"); return ;}int main(void){int a;menu();while(1){printf("请输⼊相应的功能:");scanf("%d",&a);switch(a){case0:return0;case1:LoadStudentInFromFile();menu();break;case2:create();menu();break;case3:if(head){display();menu();}else{printf("链表为空,请先建⽴链表!\n");menu();}break;case4:if(head){search();menu();}else{printf("链表为空,请先建⽴链表!\n");menu();}break;case5:if(head){Delete();menu();}else{printf("链表为空,请先建⽴链表!\n");menu();}break;case6:if(head){insert();menu();}else{printf("链表为空,请先建⽴链表!\n");menu();}break;case7:if(head){ModifyStudentInfo();menu();}else{printf("链表为空,请先建⽴链表!\n"); menu();}break;default:break;}}system("pause");return0;}。
学生管理系统c语言

#include<stdio.h>#include<string.h>#include<malloc.h>typedef struct _STUDENTINFOR_ {char Name[20];unsigned int Age;}Stu,*pStu;typedef struct _NODE_{pStu pStuTemp;_NODE_* pNext;}Node,*pNode;pNode pHead = NULL;pNode pTail = NULL;int BOK = 1;int g_count = 0;int count = 0;void MainMenu(); //void MenuOne(); //void MenuTwo();//void CreateList(char* Name,int Age);// void SortList(); //void InsertOneStuInfor();//void DeletOneStuInfor();void DeletStuInforBasisName();// void DeletStuInforBasisAge();void DeletStuInforBasisAgeLimit(); void TravelAllStuInfor();void TravelOneStuInfor();void TravelStuInforBasisName();void TravelStuInforBasisAgeLimit();void WriteFileJudge();void ReadFileJudge();int OneFileJudge();void WriteFile();void ReadFile();void FreeMemory();int Select();//void FreeFile();//pNode InsertCalcNode();//pNode DeletCalcNode(pNode pNodeTemp);//void main(){int i = 0;char Name[20] = {0};unsigned int Age = 0;do{MainMenu();printf("请选择你要执行的功能:\n");scanf("%d",&i);switch(i){BOK = 1;case 1:do{printf("请输入学生信息:\n");scanf("%s",Name);scanf("%d",&Age);CreateList(Name,Age);Select();}while(BOK==1);WriteFileJudge();printf("\n返回至主菜单?\n");Select();break;case 2:do{printf("%d %d\n",g_count,count);ReadFileJudge();FreeFile();printf("%d %d\n",g_count,count);TravelAllStuInfor();InsertOneStuInfor();TravelAllStuInfor();WriteFileJudge();Select();}while(BOK==1);printf("\n返回至主菜单?\n");Select();break;case 3:i = 0;MenuOne();do{printf("请选择删除方法:\n");scanf("%d",&i);switch(i){case 1:ReadFileJudge();FreeFile();DeletStuInforBasisName();WriteFileJudge();break;case 2:ReadFileJudge();FreeFile();DeletStuInforBasisAge();WriteFileJudge();break;case 3:ReadFileJudge();FreeFile();DeletStuInforBasisAgeLimit();WriteFileJudge();break;case 4:ReadFileJudge();FreeFile();DeletOneStuInfor();WriteFileJudge();break;default:break;}Select();}while(BOK==1);printf("\n返回至主菜单?\n");Select();break;case 4:MenuTwo();do{printf("请选择查找方式:\n");scanf("%d",&i);switch(i){case 1:ReadFileJudge();//FreeFile();TravelAllStuInfor();FreeMemory();break;case 2:ReadFileJudge();//FreeFile();TravelOneStuInfor();FreeMemory();break;case 3:ReadFileJudge();//FreeFile();SortList();printf("排序后输出学生信息:\n");TravelAllStuInfor();FreeMemory();break;case 4:ReadFileJudge();//FreeFile();TravelStuInforBasisName();FreeMemory();break;case 5:ReadFileJudge();//FreeFile();TravelStuInforBasisAgeLimit();FreeMemory();break;default:break;}Select();}while(BOK==1);printf("\n返回至主菜单?\n");Select();break;case 5:FreeFile();printf("\n返回至主菜单?\n");Select();break;case 6:BOK = 0;break;default:BOK = 0;break;}}while(BOK==1);}void MainMenu(){int i = 0;printf("学生信息管理系统:\n");for(i=0;i<8;i++){printf(" ");}printf("1》输入学生信息2》添加学生信息3》删除学生信息\n\n");for(i=0;i<8;i++){printf(" ");}printf("4》显示学生信息5》清空文件6》退出系统\n\n");}void MenuOne(){int i = 0;printf("3》删除学生信息:\n");for(i=0;i<6;i++){printf(" ");}printf("1>依据姓名删除2>依据年龄删除3>依据年龄范围删除4>删除单个学生信息\n\n");}void MenuTwo(){int i = 0;printf("4》显示学生信息:\n");for(i=0;i<6;i++){printf(" ");}printf("1>显示全部学生信息2>显示单个学生信息3>按照从大到小的顺序显示学生信息\n\n");for(i=0;i<6;i++){printf(" ");}printf("4>显示姓名相同的学生的信息5>按照年龄分布输出学生信息\n\n");}int Select(){char Select = 0;printf("请问是否继续? Y(Yes) or N(No):\n");scanf(" %c",&Select);switch(Select){case 'Y':BOK = 1;break;case 'N':BOK = 0;break;default:BOK = 0;break;}return BOK;}void FreeFile(){FILE* fp = fopen("StuInfor.txt","w");fclose(fp);fp = fopen("count.txt","w");fclose(fp);g_count = 0;printf("文件已清空!\n");}void CreateList(char* Name,int Age){pNode pNodeTemp = (pNode)malloc(sizeof(Node));if(pNodeTemp==NULL){printf("没有内存可供申请!\n");}else{pNodeTemp->pStuTemp = (pStu)malloc(sizeof(Stu));if(pNodeTemp->pStuTemp==NULL){printf("内存不够!\n\n");free(pNodeTemp);}else{strcpy(pNodeTemp->pStuTemp->Name,Name);pNodeTemp->pStuTemp->Age = Age;pNodeTemp->pNext = NULL;if(pHead==NULL){pHead = pTail = pNodeTemp;}else{pTail->pNext = pNodeTemp;pTail = pNodeTemp;}}}}void SortList(){pNode pNodeTemp = pHead;pNode pNextNodeTemp = NULL;pStu pTemp = NULL;int i = 0;int j = 0;for(i=0;i<count-1;i++){pNextNodeTemp = pNodeTemp->pNext;for(j=i+1;j<count;j++){if(pNextNodeTemp->pStuTemp->Age > pNodeTemp->pStuTemp->Age){pTemp = pNextNodeTemp->pStuTemp;pNextNodeTemp->pStuTemp = pNodeTemp->pStuTemp;pNodeTemp->pStuTemp = pTemp;}pNextNodeTemp = pNextNodeTemp->pNext;}pNodeTemp = pNodeTemp->pNext;}}pNode InsertCalcNode(){unsigned int Num = 0;pNode pNodeTemp = pHead;printf("请输入要插入的位置:\n");scanf("%d",&Num);while(Num>count){printf("你的输入有错误,请重试!\n");scanf("%d",&Num);}Num--;while(Num!=0){pNodeTemp = pNodeTemp->pNext;Num--;}return pNodeTemp;}void InsertOneStuInfor(){char Name[20] = {0};int Age = 0;pNode pNodeTemp = (pNode)malloc(sizeof(Node));if(pNodeTemp==NULL){printf("没有内存可供申请!\n");}else{pNodeTemp->pStuTemp = (pStu)malloc(sizeof(Stu));if(pNodeTemp->pStuTemp==NULL){printf("内存不够!\n");free(pNodeTemp);}else{printf("请输入要插入的学生信息:\n");scanf("%s",pNodeTemp->pStuTemp->Name);scanf("%d",&pNodeTemp->pStuTemp->Age);pNodeTemp->pNext = NULL;pNode pCurrentTemp = InsertCalcNode();if(pCurrentTemp->pNext==NULL){pCurrentTemp->pNext = pNodeTemp;pTail = pNodeTemp;}else{pNodeTemp->pNext = pCurrentTemp->pNext;pCurrentTemp->pNext = pNodeTemp;}count++;}}}pNode DeletCalcNode(pNode pNodeTemp){if(pNodeTemp==pHead){pHead = pNodeTemp->pNext;free(pNodeTemp->pStuTemp);free(pNodeTemp);pNodeTemp = pHead;count--;}else if(pNodeTemp==pTail){pNode pFormerNodeTemp = pHead;while(pFormerNodeTemp ->pNext!=pTail){pFormerNodeTemp = pFormerNodeTemp ->pNext;}pTail = pFormerNodeTemp;pTail->pNext = NULL;free(pNodeTemp->pStuTemp);free(pNodeTemp);pNodeTemp = NULL;count--;}else{pNode pFormerNodeTemp = pHead;while(pFormerNodeTemp ->pNext!=pNodeTemp){pFormerNodeTemp = pFormerNodeTemp ->pNext;}pFormerNodeTemp->pNext = pNodeTemp->pNext;free(pNodeTemp->pStuTemp);free(pNodeTemp);count--;pNodeTemp = pFormerNodeTemp->pNext;}return pNodeTemp;}void DeletStuInforBasisName(){char Name[20] = {0};int a = 0;int n = 0;pNode pNodeTemp = pHead;printf("请输入你所要删除学生的姓名:\n");scanf("%s",Name);do{a = strcmp(pNodeTemp->pStuTemp->Name,Name);if(a!=0){pNodeTemp = pNodeTemp->pNext;}else{pNodeTemp = DeletCalcNode(pNodeTemp);n++;}}while(pNodeTemp!=NULL);if(n==0){printf("没有您所要删除的信息!\n");}TravelAllStuInfor();}void DeletOneStuInfor(){char Name[20] = {0};unsigned int Age = 0;int n = 0;int a = 0;pNode pNodeTemp = pHead;printf("请输入你所要删除学生的姓名:\n");scanf("%s",Name);printf("请输入你要删除的年龄值:\n");scanf("%d",&Age);do{a = strcmp(pNodeTemp->pStuTemp->Name,Name);if(a!=0){pNodeTemp = pNodeTemp->pNext;}else{if(pNodeTemp->pStuTemp->Age!=Age){pNodeTemp = pNodeTemp->pNext;}else{pNodeTemp = DeletCalcNode(pNodeTemp);n++;}}}while(pNodeTemp!=NULL);if(n==0){printf("没有您所要删除的信息!\n");}TravelAllStuInfor();}void DeletStuInforBasisAge(){int Age = 0;int n = 0;pNode pNodeTemp = pHead;printf("请输入你要删除的年龄值:\n");scanf("%d",&Age);do{if(pNodeTemp->pStuTemp->Age!=Age){pNodeTemp = pNodeTemp->pNext;}else{pNodeTemp = DeletCalcNode(pNodeTemp);n++;}}while(pNodeTemp!=NULL);if(n==0){printf("没有您所要删除的信息!\n");}TravelAllStuInfor();}void DeletStuInforBasisAgeLimit(){int Age = 0;int n = 0;pNode pNodeTemp = pHead;printf("删除超过某一年龄值的学生信息,请输入年龄底线值:\n");scanf("%d",&Age);do{if(pNodeTemp->pStuTemp->Age<=Age){pNodeTemp = pNodeTemp->pNext;}else{pNodeTemp = DeletCalcNode(pNodeTemp);n++;}}while(pNodeTemp!=NULL);if(n==0){printf("没有您所要删除的信息!\n");}TravelAllStuInfor();}void TravelAllStuInfor(){int i = 0;pNode pNodeTemp = pHead;//if(pHead==pTail==NULL)if(pHead==NULL){printf("链表为空!\n");}else{while(pNodeTemp!=NULL){printf("%s",pNodeTemp->pStuTemp->Name);printf("%d",pNodeTemp->pStuTemp->Age);pNodeTemp = pNodeTemp->pNext;printf("\n");}}}void TravelOneStuInfor(){char Name[20] = {20};int Age = 0;int a = 0;int n = 0;pNode pNodeTemp = pHead;printf("请输入你要查询的学生姓名:\n");scanf("%s",Name);printf("请输入你要查询的学生年龄:\n");scanf("%d",&Age);do{a = strcmp(pNodeTemp->pStuTemp->Name,Name);if(a!=0){pNodeTemp = pNodeTemp->pNext;}else{if(pNodeTemp->pStuTemp->Age!=Age){pNodeTemp = pNodeTemp->pNext;}else{printf("%s",pNodeTemp->pStuTemp->Name);printf("%d",pNodeTemp->pStuTemp->Age);printf("\n");pNodeTemp = pNodeTemp->pNext;n++;}}}while(pNodeTemp!=NULL);if(n==0){printf("没有您所要查询的信息!\n");}}void TravelStuInforBasisName(){char Name[20] = {0};int a = 0;int n = 0;pNode pNodeTemp = pHead;printf("请输入你要查询的学生姓名:\n");scanf("%s",Name);do{a = strcmp(pNodeTemp->pStuTemp->Name,Name);if(a!=0){pNodeTemp = pNodeTemp->pNext;}else{printf("%s",pNodeTemp->pStuTemp->Name);printf("%d",pNodeTemp->pStuTemp->Age);printf("\n");pNodeTemp = pNodeTemp->pNext;n++;}}while(pNodeTemp!=NULL);if(n==0){printf("没有您所要查询的信息!\n");}}void TravelStuInforBasisAgeLimit(){int Age = 0;int n = 0;pNode pNodeTemp = pHead;printf("输出所有超过某一年龄的所有学生的信息,请输入这一年龄:\n");scanf("%d",&Age);do{if(pNodeTemp->pStuTemp->Age<=Age){pNodeTemp = pNodeTemp->pNext;}else{printf("%s",pNodeTemp->pStuTemp->Name);printf("%d",pNodeTemp->pStuTemp->Age);printf("\n");pNodeTemp = pNodeTemp->pNext;n++;}}while(pNodeTemp!=NULL);if(n==0){printf("没有您所要查询的信息!\n");}}void WriteFileJudge(){FILE* fp = fopen("count.txt","r");if(fp==NULL){fp = fopen("count.txt","w");WriteFile();}else{//int i = 0;// i = OneFileJudge();// if(i==0)// {// printf("原存储学生信息数为0!");// WriteFile();// }// else// {fread(&g_count,1,sizeof(int),fp);fclose(fp);WriteFile();// }}printf("信息已存储至文件!\n");}void ReadFileJudge(){FILE* fp = fopen("count.txt","r");int i = 0;if(fp==NULL){printf("文件不存在!\n");}else{// i = OneFileJudge();// if(i==0)// {// printf("文件为空,无学生信息!\n");//}// else//{fread(&g_count,1,sizeof(int),fp); //刚开始忘记写这句话,造成错误!只是后面读文件,遍历链表都出错误ReadFile();//}}}/*int OneFileJudge(){FILE* fp = fopen("count.txt","r");int a = 0;int i = 0;a = fgetc(fp);while(a!=EOF){a = fgetc(fp);i++;}return i;}*/void WriteFile(){FILE* fp = fopen("StuInfor.txt","a+");pNode pNodeTemp = pHead;while(pNodeTemp!=NULL){fwrite(pNodeTemp->pStuTemp,1,sizeof(Stu),fp);pNodeTemp = pNodeTemp->pNext;g_count++;}fclose(fp);FreeMemory();fp = fopen("count.txt","w");fwrite(&g_count,1,sizeof(int),fp);fclose(fp);}void ReadFile(){FILE* fp = fopen("StuInfor.txt","r");int i = 0;Stu StuInfor = {0};for(i=0;i<g_count;i++){fread(&StuInfor,1,sizeof(Stu),fp);CreateList(,StuInfor.Age);count++;}}void FreeMemory(){pNode pNodeTemp = NULL;while(pNodeTemp!=NULL)//while(pNodeTemp==NULL){pNodeTemp = pHead;pHead = pHead->pNext;free(pNodeTemp->pStuTemp);free(pNodeTemp);}pHead = pTail = NULL;printf("\n已清空整个链表! ");count = 0;}。
学生管理系统C语言

学生管理系统C语言#include"stdio.h"#include"string.h"#define N 4struct student{int num;char name[20];int pingshi;int shiyan;int kaoshi;float zonghe;float avg;int paiming;}stu[N];main(){ void input();void output();void tongji();void seek1();void seek2();void delete1();void delete2();void insert1();void insert2();void sort();void renew1();void renew2();char name[20];int a,n,y=1,m,p,q,s;printf("please input name:");scanf("%s",name);printf("%s",name);printf("\nplease input a:");scanf("%d",&a);printf("%d",a);if((name[20]="mahaijun"&&a==3412)||(name[20]="hutianqi"&&a==3406)||(name[20]="jialina" &&a==3407))printf("\nsuccess");while(y){ printf("\n");printf("**********************************************************\n");printf(" \n");printf("==========================================================\n");printf(" student manage system \n");printf("==========================================================\n");printf(" 1.pleaseinput student's .pingshi. shiyan .kaoshi \n");printf(" 2.output studentscore \n");printf(" 3.score tongji \n");printf(" 4.seek \n");printf(" 5.delete \n");printf(" 6.insert \n");printf(" 7.sort \n");printf(" 8.renew \n");printf(" 9.quit \n");printf("**********************************************************\n");printf("please 1~9:\n");scanf("%d",&n);switch(n){case 1:input(stu,N);break;case 2:output(stu,N);break;case 3:tongji(stu,N);break;case 4:{printf("Please input the ways of seek,1.number, :\n");scanf("%d",&m);if(m==1) seek1(stu,N);else seek2(stu,N);};break;case 5:{printf("Please input the ways of delete,1.number,:\n");scanf("%d",&p);if(p==1) delete1(stu,N);else delete2(stu,N);};break;case 6:{printf("Please input the ways of insert,1.zhiding,2.suiji:\n");scanf("%d",&q);if(q==1) insert1(stu,N);else insert2(stu,N);};break;case 7:sort(stu,N);break;case 8:{printf("Please input the ways of update,1.number, :\n");scanf("%d",&s);if(s==1) renew1(stu,N);else renew2(stu,N);};break;case 9:y=0;break;default:printf("please input again");break;}}}void input(){int i;for(i=0;i<N;i++){ printf("please %d student's data:\n",i+1);printf("num:");scanf("%d",&stu[i].num);printf("\nmame:");scanf("%s",stu[i].name);printf("\npingshi:");scanf("%d",&stu[i].pingshi);printf("\nshiyan:");scanf("%d",&stu[i].shiyan);printf("\nkaoshi:");scanf("%d",&stu[i].kaoshi);printf("Display all students data:\n");printf("num\tname\tpingshi\tshiyan\tkaoshi:\n");}}void output(){ int i;for(i=0;i<N;i++)printf("%d\t%s\t%d\t%d\t%d:\n",stu[i].num,stu[i].name,stu[i].pingshi,stu[i].shiyan,stu[i].kaoshi);}void tongji(){int i,a=0,b=0,c=0,d=0,e=0,max=0,min=0;for(i=0;i<N;i++)stu[i].zonghe=(float)(stu[i].pingshi*0.1+stu[i].kaoshi*0.7+stu[i].shiyan*0.2);for(i=0;i<N;i++)if(stu[max].zonghe<stu[i].zonghe) max=i;printf("the high score student is:\n");printf("%d\t%s\t%d\t%d\t%d\t%f\n",stu[max].num,stu[max].name,stu[max].pingshi,stu[max].shiyan,stu[max].kaoshi,stu[max].zonghe);for(i=0;i<N;i++)if(stu[min].zonghe>stu[i].zonghe) min=i;printf("the lower score student is:\n");printf("%d\t%s\t%d\t%d\t%d\t%f\n",stu[min].num,stu[min].name,stu[min].pingshi,stu[min].shiya n,stu[min].kaoshi,stu[min].zonghe);for(i=0;i<N;i++){if(stu[i].zonghe>=90) a++;else if(stu[i].zonghe>=80) b++;else if(stu[i].zonghe>=70) c++;else if(stu[i].zonghe>=60) d++;else e++;}printf("90 yi shang de ren gong you:%d\n",a);printf("90~80 jian de ren gong you:%d\n",b);printf("80~70 jian de ren gong you:%d\n",c);printf("70~60 jian de ren gong you:%d\n",d);printf("60 yi xia de ren gong you:%d\n",e);}void seek1(){int i,m;printf("please input the seek student's number:\n");scanf("%d",&m);for(i=0;i<N;i++)if(m==stu[i].num) break;if(i>=N) printf("please seek again!");elseprintf("%d\t%s\t%d\t%d\t%d\t%f\n",stu[i].num,stu[i].name,stu[i].pingshi,stu[i].shiyan,stu[i].kaosh i,stu[i].zonghe);}void seek2(){int i;char m[15];printf("please input the seek student's name:\n");scanf("%s",m);for(i=0;i<N;i++)if(!strcmp(m,stu[i].name)) break;if(i>=N) printf("no the people!");elseprintf("%d\t%s\t%d\t%d\t%d\t%f\n",stu[i].num,stu[i].name,stu[i].pingshi,stu[i].shiyan,stu[i].kaoshi,stu[i].zonghe);}void delete1(){int i,j=0,m;printf("please input the delete student's number:\n");scanf("%d",&m);for(i=0;i<N;i++)if(stu[i].num!=m) stu[j++]=stu[i];for(i=0;i<j;i++)printf("%d\t%s\t%d\t%d\t%d\t%f\n",stu[i].num,stu[i].name,stu[i].pingshi,stu[i].shiyan,stu[i].kaosh i,stu[i].zonghe);}void delete2(){int i,j=0;char m[15];printf("please input the delete student's name:\n");scanf("%s",&m);for(i=0;i<N;i++)if(strcmp(stu[i].name,m)!=0) stu[j++]=stu[i];for(i=0;i<j;i++)printf("%d\t%s\t%d\t%d\t%d\t%f\n",stu[i].num,stu[i].name,stu[i].pingshi,stu[i].shiyan,stu[i].kaosh i,stu[i].zonghe);}void insert1(){int i,j=0,m;printf("please input the delete student's number:\n");scanf("%d",&m);for(i=0;i<N;i++)if(stu[i].num!=m) stu[j++]=stu[i];for(i=0;i<j;i++)printf("%d\t%s\t%d\t%d\t%d\t%f\n",stu[i].num,stu[i].name,stu[i].pingshi,stu[i].shiyan,stu[i].kaosh i,stu[i].zonghe);}void insert2(){int i,j=0;char m[15];printf("please input the delete student's name:\n");scanf("%s",&m);for(i=0;i<N;i++)if(strcmp(stu[i].name,m)!=0) stu[j++]=stu[i];for(i=0;i<j;i++)printf("%d\t%s\t%d\t%d\t%d\t%f\n",stu[i].num,stu[i].name,stu[i].pingshi,stu[i].shiyan,stu[i].kaosh i,stu[i].zonghe);}void sort(){struct student t;int i,j;for(i=0;i<N-1;i++)for(j=i+1;j<N;j++)if(stu[i].zonghe<stu[j].zonghe){t=stu[i];stu[i]=stu[j];stu[j]=t;}for(i=0;i<N;i++)stu[i].paiming=i+1;for(i=0;i<N;i++)printf("%d\t%s\t%d\t%d\t%d\t%f\t%d\n",stu[i].num,stu[i].name,stu[i].pingshi,stu[i].shiyan,stu[i]. kaoshi,stu[i].zonghe,stu[i].paiming);}void renew1(){struct student t;int i,a,j,x;printf("please input the update student's number:\n");scanf("%d",&a);for(i=0;i<N;i++)if(a==stu[i].num){ x=i;printf("%d\t%s\t%d\t%d\t%d\t%d\t%d\n",stu[x].num,stu[x].name,stu[x].pingshi,stu[x].shiyan,stu[ x].kaoshi,stu[x].zonghe,stu[x].paiming);break;}printf("lease input the update student's number:\n");printf("number name pingshi experiment test\n");scanf("%d%s%d%d%d",&stu[x].num,stu[x].name,&stu[x].pingshi,&stu[x].shiyan,&stu[x].kaoshi) ;printf("%d\t%s\t%d\t%d\t%d\n",stu[x].num,stu[x].name,stu[x].pingshi,stu[x].shiyan,stu[x].kaoshi) ;stu[x].zonghe=(float)(stu[x].pingshi*0.1+stu[x].kaoshi*0.7+stu[x].shiyan*0.2);for(i=0;i<N-1;i++)for(j=i+1;j<N;j++)if(stu[i].zonghe<stu[j].zonghe){t=stu[i];stu[i]=stu[j];stu[j]=t;}for(i=0;i<N;i++)stu[i].paiming=i+1;printf("%d\t%s\t%d\t%d\t%d\t%f\t%d\n",stu[x].num,stu[x].name,stu[x].pingshi,stu[x].shiyan,stu[ x].kaoshi,stu[x].zonghe,stu[x].paiming);}void renew2(){struct student t;int i,j,x;char a[15];printf("please input the update student's name:\n");scanf("%s",a);for(i=0;i<N;i++)if(!strcmp(a,stu[i].name)){x=i;printf("%d\t%c\t%d\t%d\t%d\t%f\t%d\n",stu[x].num,stu[x].name,stu[x].pingshi,stu[x].shiyan,stu[ x].kaoshi,stu[x].zonghe,stu[x].paiming);break;}printf("please input the update student's name:\n");printf("number name pingshi experiment test\n");scanf("%d%s%d%d%d",&stu[x].num,stu[x].name,&stu[x].pingshi,&stu[x].shiyan,&stu[x].kaoshi) ;stu[x].zonghe=(float)(stu[x].pingshi*0.1+stu[x].kaoshi*0.7+stu[x].shiyan*0.2);for(i=0;i<N-1;i++)for(j=i+1;j<N;j++)if(stu[i].zonghe<stu[j].zonghe){t=stu[i];stu[i]=stu[j];stu[j]=t;}for(i=0;i<N;i++)stu[i].paiming=i+1;printf("%d\t%s\t%d\t%d\t%d\t%f\t%d\n",stu[x].num,stu[x].name,stu[x].pingshi,stu[x].shiyan,stu[ x].kaoshi,stu[x].zonghe,stu[x].paiming);}。
学生信息管理系统c语言代码

#include<> #include<>#include<>#define LEN 15#define N 100struct record 迎使用系统帮助!\n");printf("\n1. 进入系统后, 先刷新学生信息, 再查询;\n");printf("\n2. 按照菜单提示键入数字代号;\n");printf("\n3. 增加学生信息后, 切记保存按;\n");printf("\n4. 谢谢您的使用!\n");}voidreadfile()ode,stu[i].name,&stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i]. tel,stu[i].mail)==8){i++;i=i;}fclose(fp);n=i;printf(" 录入完毕!\n");}void seek()学号查询--- \n");printf(" -- 2. 按姓名查询-------- \n");printf(" -- 3. 退出本菜单--- \n");while(1){printf(" 请选择子菜单编号:");scanf("%d",&item);flag=0;switch(item){case 1:printf(" 请输入要查询的学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0)ode,stu[i].name,stu[i].age,stu[i].sex,stu[i].t ime,stu[i].add,stu[i].tel,stu[i].mail);if(flag==0){printf(" 该学号不存在!\n");}}break;case 2:printf(" 请输入要查询的学生的姓名:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].name,s1)==0)flag=1;电话E-mail\n");printf("-\n");printf("%6s %7s %6d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].n ame,stu[i] .age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);}if(flag==0)printf(" 该姓名不存在!\n"); break;case 3:return;default:printf(" 请在1-3 之间选择\n");}}}void modify() ode,s1)==0){num=i;printf("------------- ------------ \n");printf("1.修改姓名\n");printf("2. 修改年龄\n");printf("3. 修改性别\n");printf("4. 修改出生年月\n");printf("5. 修改地址\n"); printf("6. 修改电话号码\n");printf("7.修改 E-mail 地址 \n"); printf("8. 退出本菜单 \n");printf("------------------------ \n");}while(1){printf(" 请选择子菜单编号 :"); scanf("%d",&item); switch(item){case 1:printf(" 请输入新的姓名 :\n")scanf("%s",s2); strcpy(stu[num].name,s2); break;case 2:printf(" 请输入新的年龄 :\n")scanf("%d",&stu[num].age);break;case 3:printf(" 请输入新的性别 :\n")scanf("%s",sex1); strcpy(stu[num].sex,sex1); break;case 4:printf(" 请输入新的出生年月scanf("%s",s2);strcpy(stu[num].time,s2); break;case 5:printf(" 请输入新的地址 :\n")scanf("%s",s2);strcpy(stu[num].add,s2); break;case 6:printf("请输入新的电话号码scanf("%s",s2); strcpy(stu[num].tel,s2); break;scanf("%s",s2); strcpy(stu[num].mail,s2); break;:\n");:\n");case 8:return;default:printf(" 请在1-8 之间选择\n");}}}void sort()ode,stu[j].code)>0)ode); ode,stu[j].code);strcpy(stu[j].code,temp); strcpy(temp,stu[j-1].name);strcpy(stu[j-1].name,stu[j].name);strcpy(stu[j].name,temp); strcpy(temp,stu[j-1].sex);strcpy(stu[j-1].sex,stu[j].sex); strcpy(stu[j].sex,temp);strcpy(temp,stu[j-1].time); strcpy(stu[j-1].time,stu[j].time); strcpy(stu[j].time,temp);strcpy(temp,stu[j-1].add); strcpy(stu[j-1].add,stu[j].add);strcpy(stu[j].add,temp); strcpy(temp,stu[j-1].tel);strcpy(stu[j-1].tel,stu[j].tel); strcpy(stu[j].tel,temp);strcpy(temp,stu[j-1].mail);strcpy(stu[j-1].mail,stu[j].mail);strcpy(stu[j].mail,temp);p=&stu[j-1].age;q=&stu[j].age;s=*q;*q=*p;*p=s;}}}void insert()ode);for(j=0;j<i;j++)if(strcmp(stu[i].code,stu[j].code)==0){printf(" 已有该学号, 请检查后重新录入!\n");flag=1;break;}}printf(" 请输入第%d 个学生的姓名:\n",i+1);scanf("%s",stu[i].name);printf(" 请输入第%d 个学生的年龄:\n",i+1);scanf("%d",&stu[i].age);printf(" 请输入第%d 个学生的性别:\n",i+1);scanf("%s",stu[i].sex);printf(”请输入第%d个学生的出生年月:(格式:年•月)\n",i+1);scanf("%s",stu[i].time);printf(" 请输入第%d 个学生的地址:\n",i+1);scan f("%s",stu[i].add);printf(" 请输入第%d 个学生的电话:\n",i+1);scanf("%s",stu[i].tel);printf(" 请输入第%d 个学生的E-mail:\n",i+1);scanf("%s",stu[i].mail);if(flag==0){i=i;i++;}}while(i<n+m);n+=m;printf(" 录入完毕!\n\n");sort();void del()ode,s1)==0){flag=1;for(j=i;j<n-1;j++)stu[j]=stu[j+1];if(flag==0)printf(" 该学号不存在!\n");if(flag==1){printf(" 删除成功, 显示结果请选择菜单\n");n--;}}voidode,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i]. mail);}}voidode,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i]. mail);} fclose(fp);}void menu() 统帮助及说明* * 1. 刷新学生信息* \n"); display()save()printf(" ********************************************* \n");printf(" * 2. 查询学生信息* * 3.修改学生信息* \n"); printf(" ********************************************* \n");printf(" * 4. 增加学生信息* * 5. 按学号删除信息* \n");printf(" *********************************************\n");printf(" * 6. 显示当前信息* * 7.保存当前学生信息* \n");printf(" ********************** **********************\n");printf(" * 8. 退出系统* \n");printf(" ********************** \n");printf("\n") printf(" 请选择菜单编号:"); scanf("%d",&num);switch(num){case 0:help();break;case 1:readfile();break;case 2:seek();break;case 3:modify();break;case 4:insert();break;case 5:del();break;case 6:display();break;case 7:save();break;case 8:k=0;break;default:printf(" 请在0-8 之间选择\n"); }。
简单的学生信息管理系统(C语言)

简单的学生信息管理系统(C语言)-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII#include<stdio.h>#include<conio.h> //输入函数getch的头文件,不能用getchar,具体请查看两者的区别#include<stdlib.h> //申请空间的函数malloc的头文件typedef struct{ //定义结构体类型,包含四项内容,可以自由添加int num;char name[10];int age;char sex[5];}st;typedef struct node //构造结点(也是结构体变量){st data; //数据域struct node *next; //指针域(指向结构体,也就是自身)}list;list *create() //建立一个单链表{list *p,*r,*head; //定义结构体指针变量int i,n;head = (list *)malloc(sizeof(list)); //申请头结点r = head;head->next = NULL; //头结点的指针域先定义为空printf("请输入学生人数:\n");scanf("%d",&n);printf("请输入学生个人信息:\n\n学号,姓名,年龄,性别\n");for(i=1;i<=n;i++){p = (list *)malloc(sizeof(list)); //申请一个结点scanf("%d%s%d%s",&p->data.num,&p->,&p->data.age,&p->data.sex); //向结点的数据域输入学生信息p->next = NULL;r->next = p; //将头结点指向第一个结点,以此类推。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C/C++程序设计课程设计报告专业:班级:学号:姓名:版本号:时间:目录1 概述 (2)1.1目的 (2)1.2计划 (2)2 课程设计过程及结果 (3)2.1编程环境及工具 (3)2.2排序与简单分析 (3)2.3综合设计 (3)2.3.1 功能实现 (3)2.3.2 程序异常处理 (5)2.3.3 特色功能 (5)3 课程设计总结 (6)3.1课程设计计划执行情况 (6)3.2我理解的C++ (6)3.3改进设想 (6)附录关键代码 (6)原创声明:本课程设计报告及相应的软件程序的全部内容均为本人独立完成,如有抄袭,愿承担相应后果。
声明人___________________学号:__________________1概述1.1 目的1、熟悉c语言的编译环境2、掌握c语言的基本操作3、回顾并加深对C/C++程序设计相关知识的理解,能够用C/C++独立完成简单数据管理软件的编写4、锻炼同学思维强度与能力5、培养同学认真态度和刻苦的精神1.2 计划用Microsoft Visual C++ 6.0进行编译,利用之前学过的课程知识和查询资料等方法完成题目的设计,用Debug进行调试。
1.回顾c语言编程基本内容,了解各种数据类型及掌握各种语句的结构类型。
2.完成一个简单任务:排序与简单分析把一个完全由小写字母组成字符串按照每个字母的出现次数从低到高重新排序。
出现次数相同的按照字母顺序排列,(a最前,z最后)。
输入:任意一个字符串(小写,长度小于255)输出:重新排序后的结果例如,输入:aassdfkjiowea回车则输出为:defijkowssaaa3.综合设计:设计实现学生成绩管理软件。
参考下面的数据,用C/C++设计一个简单的学生成绩管理软件,实现基本的功能。
学生信息文件(A.TXT)及其内容(示意):学号姓名性别班级200800800901 张三男电子0801200800820902 李四女通信0801200800800903 王五女电子0802200800820904 赵六男通信0801……课程信息(B.TXT)及其内容(示意):课程编号课程名称学分C01 大学英语 4C02 高等数学 4C03 C++程序设计 3……学生成绩信息文件(C.TXT)及其内容(示意,成绩保存使用浮点数):学号课程成绩200800800901 C01 89200800800902 C01 68.5200800800901 C02 45.5200800800903 C02 78实现数据录入显示功能查询功能数据删除、整理功能排序功能。
2课程设计过程及结果2.1 编程环境及工具环境变量的设置及作用环境变量的设置:右击我的电脑——高级——环境变量——在系统变量里有path选项——双击打开——在原有变量的基础上添加英文状态下的分号——然后将路径名输入即可作用:安装软件时往往须要向系统目录中复制某些文件,而使用另外一个系统时会由于缺少这些文件而无法运行。
因此,我们可以通过设置环境变量的方法来解决这个问题批处理及命令行编译2.2 排序与简单分析题目重述:把一个完全由小写字母组成字符串按照每个字母的出现次数从低到高重新排序。
出现次数相同的按照字母顺序排列,(a最前,z最后)。
输入:任意一个字符串(小写,长度小于255)输出:重新排序后的结果题目分析:此次设计排序有两个要求,并有优先排序。
1、先以字母个数的多少来排序2、字母字数相同的按照先后顺序来排。
要实现以上两个要求,最基本的方法是:先按字母先后顺序排序(冒泡排序法),存到一个数组a里,然后用两个数组b,c,一个记录字母的个数,一个记录字母的下标,然后对b数组排序,同时c也跟着排序,最后,用for循环把排好的字母顺序打印出来。
(具体见附录中的排序程序)。
2.3 综合设计2.3.1功能实现1.数据录入2..显示功能3.查询功能4.数据删除、整理功能2.3.1.1文件读入1.分别把三个文件录入到三个结构体里先定义结构体数组stu1[] ,stu2[],stu3[];stu1[6]用来记录学生信息,stu2[6]用来记录课程信息,stu3[12]用来记录成绩信息struct stu_info1{c har num[13];//学号c har name[10];//姓名c har sex[5];//性别c har cls[20];//班级}stu1[6];struct stu_info2{c har counum[6];//课程号c har counam[20];//课程名称i nt credit;//学分}stu2[6];struct stu_info3{c har num[13];//学号c har counum[6];//课程号f loat results;//分数}stu3[12];2.三个文件用fscanf来读到结构体里:void input1()//录入结构体stu1[]{i nt i;F ILE *fp;i f((fp=fopen("A.txt","r"))==NULL){printf("can not open file\n");exit(0);}f or(i=0;i<=5;i++){fscanf(fp,"%s%s%s%s",&stu1[i].num,&stu1[i].name,&stu1[i].sex,&stu1[i].cls);}f close(fp);}此处只写了将A.txt录入结构体stu1[6]的子函数,将B.txt,C.txt 录入stu2[6],stu3[12]的子函数和这个子函数类似,具体函数请参考附录中的子函数input2()和output() 函数。
2.3.1.2数据录入1用只读方式打开.C.txt,FILE *fp;fp=fopen("C.txt","w");2.判断学号,课程号是否分别在A.txt和B.txt中存在。
.当输入学号和课程号后,先检查在学号在A.txt中是否存在,若存在,再检查课程号是否在B.txt中存在(检查的时候用字符串比较函数strcmp)。
3.把成绩录入到C.txt里第2步判断学号和课程号是否分别在A.txt和B.txt中存在后,若都存在就用fprintf录入C.txt,否则提示错误,重新输入。
具体数据录入的程序见附录中的子函数input3()。
2.3.1.3信息显示能分别显示学生信息,课程信息,和成绩信息,显示成绩信息时,课程号用课程名称代替,学号用学生姓名代替。
显示学生信息和成绩信息就是直接输出结构体stu1[6],stu2[6] 就可以;显示成绩信息时,需要用循环,从结构体stu3[12] 里挨个输出时,学号需要从stu1[6]中查找,找到后显示该同学姓名,课程号需要从stu2[6]中查找,找到后显示课程名称,成绩直接显示stu3[12]中的成绩就可以。
具体成绩显示的代码见附录中的子函数xianshi(),printf1(),printf2() 。
2.3.1.4信息的查找文件的打开方式,均为只读。
思路:1.输入学号2.在C.txt中寻找,若找不到,输出“学号输入错误”3.若找到C.txt中寻找相应的课程号和成绩。
4.根据学号在A.txt里寻找姓名,根据课程号在B.txt中寻找课名与学分,输出时候,若成绩小于六十,学分输出为0,反之则输出在B.txt里查到的学分。
5.实现学分与课程的统计2.3.2程序异常处理在编程的过程中,大部分错误,是由于自己忘了加“;”或者是括号“()”或“{}”没有相对应而引起的形式错误。
这种错误容易改正。
有的时候用fopen打开文件忘记用fclose关闭,这时候检查不出错误,但是运行不行。
有的时候用scanf获取数据的时候,获取的不是字符串,但是忘记了加&,也会导致检查不出错误,但是运行结果不对。
2.3.3特色功能能实现更新C.txt的功能,即当A.txt ,B.txt的内容改变时,C中的内容用一个函数去更新。
本程序中,还实现了区分管理员功能和学生功能,录入功能和更新功能只有管理员可以使用,需要输入管理员密码。
3课程设计总结3.1 课程设计计划执行情况基本按照计划进行。
实现了四个基本功能,扩展了管理员密码的功能。
编程的过程是不太难的的,但找错的过程难。
经常因为程序运行不正常,找了很长时间才找出错误。
此次编程中,让我更理解了编程中格式的重要性和注释的重要性。
我学会了一句话:程序不只是写给你自己看的。
我也知道了良好的编程习惯有多重要。
3.2 我理解的C++在这次课程设计中,我发现了C语言竟然这么强大,以前就以为C语言能算个加减乘除什么的,就以为就是电脑运行的比人脑快,所以C语言才很重要,以前认为花好长时间编个程序真没必要,比如加法程序,有编的时间还不如自己算呢!现在我知道了C语言很强大,也认识到了C的重要性,知道了C语言能做很多事情。
以后一定要学好编程。
3.3 改进设想增加用户登录和密码功能,把这个程序包装起来,做的和学校的教务系统类似。
附录关键代码排序代码#include"stdio.h"#include"string.h"void main(){int t,i,j,k,m;char a[255]={0};int b[26]={0},c[26]={0};scanf("%s",a);m=strlen(a);for(i=0;i<m-1;i++)for(j=0;j<m-1-i;j++)if(a[j]>a[j+1]){t=a[j+1];a[j+1]=a[j];a[j]=t;}i=0;k=0;for(j=m-1;j>=i;j--)if(a[i]==a[j]){b[k]=i;c[k]=j-i+1;i=j+1;k=k+1;j=m;}for(i=0;i<k-1;i++)for(j=0;j<k-i-1;j++)if(c[j]>c[j+1]){t=c[j];c[j]=c[j+1];c[j+1]=t;t=b[j];b[j]=b[j+1];b[j+1]=t;}for(i=0;i<=k-1;i++)for(j=1;j<=c[i];j++)printf("%c",a[b[i]]); printf("\n");}学生成绩管理软件代码:#include"stdio.h"#include"stdlib.h"#include"string.h"struct stu_info1{char num[13];//学号char name[10];//姓名char sex[5];//性别char cls[20];//班级}stu1[6];struct stu_info2{char counum[6];//课程号char counam[20];//课程名称int credit;//学分}stu2[6];struct stu_info3{char num[13];//学号char counum[6];//课程号float results;//分数}stu3[12];struct stu_info4{char num[13];//学号char counum[6];//课程号float results;//分数}stu4[12];int n=11;void main(){void gengxin();void input1();void input2();void input3();void output();void xianshi();void chaxun();void printf1();void printf2();input1();input2();output();int i;loop: ;printf("*************欢迎使用分数查询系统*************\n");printf("** 请选择**\n");printf("** 1.录入2.删除无用信息(管理员功能) **\n");printf("** 3.显示4.查询(学生功能) **\n");printf("** 5.显示学生信息6.显示课程信息**\n");printf("** 7.退出**\n");printf("**********************************************\n");scanf("%d",&i);switch(i){case 1: input3();break;case 2:gengxin();break;case 3:xianshi();goto loop;case 4: chaxun();goto loop;case 5: printf1();goto loop;case 6: printf2();goto loop;case 7:break;default:printf("error");break;}}void input1()//录入结构体stu1[]{int i;FILE *fp;if((fp=fopen("A.txt","r"))==NULL){printf("can not open file\n");exit(0);}/* printf(" 学号姓名性别班级\n");*/for(i=0;i<=5;i++){fscanf(fp,"%s%s%s%s",&stu1[i].num,&stu1[i].name,&stu1[i].sex,&stu1[i].cls);/*printf("%-13s %-10s %-5s %-20s\n",stu1[i].num,stu1[i].name,stu1[i].sex,stu1[i ].cls);*/}fclose(fp);}void input2()//录入结构体stu2[]{int i;FILE *fp;if((fp=fopen("B.txt","r"))==NULL){printf("can not open file\n");exit(0);}for(i=0;i<=5;i++){fscanf(fp,"%s%s%d",&stu2[i].counum,&stu2[i].counam,&stu2[i].credit);}fclose(fp);}void input3()//录入成绩{FILE *fp;fp=fopen("C.txt","w");int a,i,j,k;float cetss;char number[13],cnum[6],mima[10];printf("请输入管理员密码\n");scanf("%s",mima);if(strcmp(mima,"abc111")==0){printf("请输入要录入学生成绩的个数\n");scanf("%d",&a);for(i=1;i<=a;i++){printf("请输入要录入的第%d同学的学号:",i);scanf("%s",number);printf("请输入要录入的第%d同学的课程号:",i);scanf("%s",cnum);for(j=0;j<=5;j++)//学号{if((strcmp(number,stu1[j].num)==0))break;}if(j<=5){for(k=0;k<=5;k++)//课程号{if(strcmp(cnum,stu2[k].counum)==0){printf("请输入要录入同学的成绩:");scanf("%f",&cetss);fprintf(fp,"%s %s %f\n",number,cnum,cetss);break;}}}if(j>5||k>5){printf("Error,please input again");i=i-1;}printf("录入成功\n");}}else{printf("密码错误\n");}}void output()// 录入结构体stu3[]{int i;FILE *fp=fopen("C.txt","r");for(i=0;i<n;i++){fscanf(fp,"%s%s%f",&stu3[i].num,&stu3[i].counum,&stu3[i].results);/*printf("%s%s%f\n",stu3[i].num,stu3[i].counum,stu3[i].results);*/ }fclose(fp);}void xianshi()// 显示成绩{int i,j;for(i=0;i<n;i++){for(j=0;j<6;j++){if((strcmp(stu3[i].num,stu1[j].num))==0)printf("%s\t",stu1[j].name);}for(j=0;j<6;j++){if(strcmp(stu3[i].counum,stu2[j].counum)==0)printf("%s\t",stu2[j].counam);}printf("%3.1f\n",stu3[i].results);}}void chaxun()//查询功能{char number[13],c;int i,j,k,a,b,d;while((c=getchar())!='Q'){a=0,b=0;//a记录学分b记录学科printf("请输入要查询同学的学号\n");scanf("%s",number);for(i=0;i<n;i++){if(strcmp(number,stu3[i].num)==0){printf("学号:%s\t",stu3[i].num);for(j=0;j<6;j++){if(strcmp(stu3[i].num,stu1[j].num)==0){printf("姓名:%s\n",stu1[j].name);}}break;}}d=i;for(i=0;i<n;i++)if(strcmp(number,stu3[i].num)==0){b=b+1;for(j=0;j<6;j++){if(strcmp(stu3[i].num,stu1[j].num)==0){for(k=0;k<6;k++){if(strcmp(stu3[i].counum,stu2[k].counum)==0)break;}break;}}if(stu3[i].results>=60){a=a+stu2[k].credit;printf("课程号:%s\t课程名称:%s\t成绩:%3.1f\t实得学分:%d\n",stu3[i].counum,stu2[k].counam,stu3[i].results,stu2[k].credit);}elseprintf("课程号:%s\t课程名称:%s\t成绩:%3.1f\t实得学分:%d\n",stu3[i].counum,stu2[k].counam,stu3[i].results,0);}if(d<n){printf("共修%d科\t\t实得总学分:%d\n",b,a);}else{printf("学号输入错误\n");}getchar();printf("退出请按Q+回车,继续查询请按回车键");}}void gengxin()//更新信息,删除C.txt中无用信息{FILE *fp;int i,j,k;char mima[10];printf("请输入管理员密码\n");scanf("%s",mima);if(strcmp(mima,"abc111")==0){fp=fopen("C.txt","w");for(i=0;i<n;i++){for(j=0;j<6;j++)if(strcmp(stu3[i].num,stu1[j].num)==0){for(k=0;k<=5;k++)if(strcmp(stu3[i].counum,stu2[k].counum)==0)break;if(k<=5){fprintf(fp,"%s %s %f\n",stu3[i].num,stu3[i].counum,stu3[i].results);}}}printf("更新C.txt成功\n");fclose(fp);}else{printf("密码错误\n");}}void printf1()//显示学生信息{int i;printf(" 学号姓名性别班级\n");for(i=0;i<=5;i++){printf("%-13s%-10s%-5s %-20s\n\n",stu1[i].num,stu1[i].name,stu1[i].sex,stu1[i].cls);}}void printf2()//显示课程信息{int i;printf(" 课程编号课程名称学分\n");for(i=0;i<=5;i++){printf("%-6s%-20s %-4d\n\n",stu2[i].counum,stu2[i].counam,stu2[i].credit);}}。