课程信息管理系统C语言程序
学生信息管理系统c语言代码

#include<stdio.h>#include<stdlib.h>#include<string.h>#define LEN 15#define N 100struct record //定义结构体{char code[LEN];char name[LEN];int age;char sex[3];char time[LEN];char add[30];char tel[LEN];char mail[30];}stu[N];int k=1,n,m; //引用void readfile();void seek();void modify();void insert();void del();void display();void save();void menu();int main(){while(k)menu();system("pause");return 0;}void help(){printf("\n0.欢迎使用系统帮助!\n");printf("\n1.进入系统后,先刷新学生信息,再查询;\n");printf("\n2.按照菜单提示键入数字代号;\n");printf("\n3.增加学生信息后,切记保存按;\n");printf("\n4.谢谢您的使用!\n");}void readfile()//建立信息{char *p="student.txt";FILE *fp;int i=0;if ((fp=fopen("C:\\Users\\86139\\Desktop\\student.txt","r+"))==NULL){printf("Open file %s error! Strike any key to exit!",p);system("pause");//暂停的意思,等待用户信号exit(0);}while(fscanf(fp,"%s %s %d %s %s %s %s %s",stu[i].code,stu[i].name,&stu[i].age,stu[i].sex,stu[i].time,s tu[i].add,stu[i].tel,stu[i].mail)==8){i++;i=i;}fclose(fp);n=i;printf("录入完毕!\n");}void seek() //查找信息{int i,item,flag;char s1[21];printf("------------------\n");printf("-----1.按学号查询-----\n");printf("-----2.按姓名查询-----\n");printf("-----3.退出本菜单-----\n");printf("------------------\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)//{flag=1;printf("学生学号学生姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");printf("%6s %7s %6d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,st u[i].time,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;printf("学生学号学生姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");printf("%6s %7s %6d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,st u[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() //修改信息{int i,item,num;char sex1[3],s1[LEN],s2[LEN];printf("请输入要要修改的学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,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("请输入新的出生年月:\n");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("请输入新的电话号码:\n");scanf("%s",s2);strcpy(stu[num].tel,s2); break;case 7:printf("请输入新的E-mail地址:\n");scanf("%s",s2);strcpy(stu[num].mail,s2); break;case 8:return;default:printf("请在1-8之间选择\n");}}}void sort()//排序{int i,j,*p,*q,s;char temp[10];for(i=0;i<n-1;i++){for(j=n-1;j>i;j--)if(strcmp(stu[j-1].code,stu[j].code)>0)//比较学号的大小{strcpy(temp,stu[j-1].code); //交换学号以及以下的信息(冒泡排序)strcpy(stu[j-1].code,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()//插入函数{int i=n,j,flag;printf("请输入待增加的学生数:\n");scanf("%d",&m);do{flag=1;while(flag){flag=0;printf("请输入第%d 个学生的学号:\n",i+1);scanf("%s",stu[i].code);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);scanf("%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()//删除信息{int i,j,flag=0;char s1[LEN+1];printf("请输入要删除学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,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--;}}void display() //浏览信息{int i;printf("所有学生的信息为:\n");printf("学生学号学生姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%6s %7s %5d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].ti me,stu[i].add,stu[i].tel,stu[i].mail);}}void save() // 保存{int i;FILE *fp;fp=fopen("C:\\Users\\86139\\Desktop\\student.txt","a");for(i=0;i<n;i++){fprintf(fp,"%s %s %d %s %s %s %s %s\n",stu[i].code,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()//菜单{int num;printf(" \n\n 学生信息管理系统\n\n");printf("*********************系统功能菜单************************ \n");printf("友情提示:查询前请先刷新系统!\n");printf(" ---------------------- ---------------------- \n");printf(" ********************************************* \n");printf(" * 0.系统帮助及说明* * 1.刷新学生信息* \n");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语言)

课程信息管理系统源代码#include<stdio.h>#include<stdlib.h>#include<string.h>struct Class{int Number;int ClassNumber;char Name[10];float TeachTime;float PracticeTime;float Credit;char Semester[10];char TextWay[10];} Class[10],CL;/**********输入模块***********/void save()//定义函数save,向文件输出课程信息{FILE *fp;int i;if ((fopen("Class.txt", "r")) == NULL)//打开输出文件Class fp = fopen("Class.txt", "w+");elsefp = fopen("Class.txt", "r+");for (i = 0; i<10; i++){fprintf(fp, "%d", Class[i].Number);fputc('\n', fp);fprintf(fp, "%d", Class[i].ClassNumber);fputc('\n', fp);fprintf(fp, "%s", Class[i].Name);fputc('\n', fp);fprintf(fp, "%f",Class[i].TeachTime);fputc('\n', fp);fprintf(fp, "%f", Class[i].PracticeTime);fputc('\n', fp);fprintf(fp, "%f", Class[i].Credit);fputc('\n', fp);fprintf(fp, "%s", Class[i].Semester);fputc('\n', fp);fprintf(fp, "%s", Class[i].TextWay);fputc('\n', fp);}fclose(fp);}void Input(){int i = 0;char c;for (int t = 1; t;i++){printf("请输入要输入的课程的相关信息:\n");printf("请输入记录编号:");scanf("%d", &Class[i].Number);printf("请输入课程编号:");scanf("%d", &Class[i].ClassNumber);printf("请输入课程名:");scanf("%s", Class[i].Name);printf("请输入讲课学时:");scanf("%f", &Class[i].TeachTime);printf("请输入实践学时:");scanf("%f", &Class[i].PracticeTime);Class[i].Credit = (Class[i].TeachTime + Class[i].PracticeTime) / 16;printf("请输入开课学期:");scanf("%s", Class[i].Semester);printf("请输入考核方式:");scanf("%s", Class[i].TextWay);printf("是否继续输入Y/N\n");fflush(stdin);scanf("%c",&c);switch (c){case 'Y':break;case 'N':t = 0;break;default:printf("输入错误\n");}}save();}/*******修改模块*******/void Modification()int n,i;printf("请输入您要修改的课程的记录编号:");scanf("%d", &n);for ( i = 0; i < 10; i++){if (Class[i].Number == n)break;}FILE*fp;if ((fp = fopen("Class.txt", "r")) == NULL){printf("cannot open file\n");exit(0);}fscanf(fp, "%d%d%s%f%f%f%s%s\n",&Class[i].Number,&Class[i].ClassNumber, Class[i].Name, &Class[i].TeachTime, &Class[i].PracticeTime, &Class[i].Credit, Class[i].Semester, Class[i].TextWay);printf("请输入要修改的课程的相关信息:\n");printf("请输入课程编号:");scanf("%d", &CL.ClassNumber);Class[i].Number=CL.ClassNumber;printf("请输入课程名:");scanf("%s", );strcpy(Class[i].Name,);printf("请输入讲课学时:");scanf("%f", &CL.TeachTime);Class[i].TeachTime=CL.TeachTime;printf("请输入实践学时:");scanf("%f", &CL.PracticeTime);Class[i].PracticeTime=CL.PracticeTime;CL.Credit = (CL.TeachTime+ CL.PracticeTime) / 16;Class[i].Credit=CL.Credit ;printf("请输入开课学期:");scanf("%s", CL.Semester);strcpy(Class[i].Semester,CL.Semester);printf("请输入考核方式:");scanf("%s", CL.TextWay);strcpy(Class[i].TextWay,CL.TextWay);save();fclose(fp);}/***********统计模块***********/void Statistics()int i,n1=0,n2=0;float m1=0,m2=0;FILE*fp;if ((fp = fopen("Class.txt", "r")) == NULL){printf("cannot open file\n");exit(0);}for ( i = 0; i < 10; i++){fscanf(fp, "%d%d%s%f%f%f%s%s\n",&Class[i].Number,&Class[i].ClassNumber, Class[i].Name, &Class[i].TeachTime, &Class[i].PracticeTime, &Class[i].Credit, Class[i].Semester, Class[i].TextWay);if (strcmp(Class[i].Semester,"春季")==0){n1++;m1= m1 + Class[i].Credit;}else if (strcmp(Class[i].Semester,"秋季")==0){n2++;m2 = m2 + Class[i].Credit;}}printf("春季学期总课程数为%d\n", n1);printf("春季学期总学分数为%f\n", m1);printf("秋季学期总课程数为%d\n", n2);printf("秋季学期总学分数为%f\n", m2);}/**********查询模块**************/void Query(){int i, k,a;float b;char m[10];FILE*fp;if ((fp = fopen("Class.txt", "r")) == NULL){printf("cannot open file\n");exit(0);}for (i= 0; i<10; i++)fscanf(fp, "%d%d%s%f%f%f%s%s\n",&Class[i].Number,&Class[i].ClassNumber, Class[i].Name, &Class[i].TeachTime, &Class[i].PracticeTime, &Class[i].Credit, Class[i].Semester, Class[i].TextWay);printf("查询模块:");printf("\n");printf("***********************************************\n");printf("* *\n");printf("* 1:课程编号2:课程学分*\n");printf("* *\n");printf("* 3:开课学期*\n");printf("* *\n");printf("***********************************************\n");printf("\n\n请输入查询选项:");scanf("%d", &k);for (; k<1 || k>4;){printf("请输入1到4之间的整数:");scanf("%d", &k);}if (k==1){printf("请输入要查询的课程编号:");scanf("%d", &a);for ( i = 0; i < 10; i++){if (Class[i].ClassNumber == a)break;}printf("记录编号:%d\n",Class[i].Number);printf("课程编号:%d\n",Class[i].ClassNumber);printf("课程名:%s\n",Class[i].Name);printf("讲课学时:%f\n",Class[i].TeachTime);printf("实践学时:%f\n",Class[i].PracticeTime);printf("学分:%f\n",Class[i].Credit);printf("开课学期:%s\n",Class[i].Semester);printf("考核方式:%s\n\n",Class[i].TextWay);}else if (k==2){printf("请输入要查询的课程的学分:");scanf("%f", &b);for ( i = 0; i < 10; i++){if (Class[i].Credit == b){printf("记录编号:%d\n",Class[i].Number);printf("课程编号:%d\n",Class[i].ClassNumber);printf("课程名:%s\n",Class[i].Name);printf("讲课学时:%f\n",Class[i].TeachTime);printf("实践学时:%f\n",Class[i].PracticeTime);printf("学分:%f\n",Class[i].Credit);printf("开课学期:%s\n",Class[i].Semester);printf("考核方式:%s\n\n",Class[i].TextWay);}}}else{printf("请输入要查询的开课学期:");scanf("%s", m);for ( i = 0; i < 10; i++){if (strcmp(Class[i].Semester,m)==0){printf("记录编号:%d\n",Class[i].Number);printf("课程编号:%d\n",Class[i].ClassNumber);printf("课程名:%s\n",Class[i].Name);printf("讲课学时:%f\n",Class[i].TeachTime);printf("实践学时:%f\n",Class[i].PracticeTime);printf("学分:%f\n",Class[i].Credit);printf("开课学期:%s\n",Class[i].Semester);printf("考核方式:%s\n\n",Class[i].TextWay);}}}}/**********添加模块*************/void Add(){int i;FILE*fp;if ((fp = fopen("Class.txt", "r")) == NULL){printf("cannot open file\n");exit(0);}for (i=0; i<10; i++){fscanf(fp, "%d%d%s%f%f%f%s%s\n",&Class[i].Number,&Class[i].ClassNumber, Class[i].Name, &Class[i].TeachTime, &Class[i].PracticeTime, &Class[i].Credit, Class[i].Semester, Class[i].TextWay);if (Class[i].Number == 0)break;}printf("请输入要添加的课程的相关信息:\n");printf("请输入记录编号:");scanf("%d", &Class[i].Number);printf("请输入课程编号:");scanf("%d", &Class[i].ClassNumber);printf("请输入课程名:");scanf("%s", Class[i].Name);printf("请输入讲课学时:");scanf("%f", &Class[i].TeachTime);printf("请输入实践学时:");scanf("%f", &Class[i].PracticeTime);Class[i].Credit = (Class[i].TeachTime + Class[i].PracticeTime) / 16;printf("请输入开课学期:");scanf("%s", Class[i].Semester);printf("请输入考核方式:");scanf("%s", Class[i].TextWay);save();}/********删除模块**********/void Delete(){int n,i;printf("请输入要删除的课程的课程编号:");scanf("%d", &n);FILE*fp;if ((fp = fopen("Class.txt", "r")) == NULL){printf("cannot open file\n");exit(0);}for ( i = 0; i < 10; i++){fscanf(fp, "%d%d%s%f%f%f%s%s\n",&Class[i].Number,&Class[i].ClassNumber, Class[i].Name, &Class[i].TeachTime, &Class[i].PracticeTime, &Class[i].Credit, Class[i].Semester, Class[i].TextWay);if (Class[i].ClassNumber == n)Class[i].Number = 0;Class[i].ClassNumber=0;Class[i].Credit = 0;strcpy(Class[i].Name, "0");Class[i].PracticeTime = 0;strcpy(Class[i].Semester, "0");Class[i].TeachTime=0;strcpy(Class[i].TextWay, "0");break;}}save();fclose(fp);}/*******显示模块**********/void Display(){FILE*fp;if ((fp = fopen("Class.txt", "r")) == NULL){printf("cannot open file\n");exit(0);}for (int i = 0; i<10; i++)fscanf(fp, "%d%d%s%f%f%f%s%s\n",&Class[i].Number,&Class[i].ClassNumber, Class[i].Name, &Class[i].TeachTime, &Class[i].PracticeTime, &Class[i].Credit, Class[i].Semester, Class[i].TextWay);for (i = 0; i < 10&&Class[i].Number!='\0'; i++){printf("记录编号:%d\n",Class[i].Number);printf("课程编号:%d\n",Class[i].ClassNumber);printf("课程名:%s\n",Class[i].Name);printf("讲课学时:%f\n",Class[i].TeachTime);printf("实践学时:%f\n",Class[i].PracticeTime);printf("学分:%f\n",Class[i].Credit);printf("开课学期:%s\n",Class[i].Semester);printf("考核方式:%s\n\n",Class[i].TextWay);}fclose(fp);}/**********退出模块*************/{exit(0);}/**********主函数*************/int main(){char c;while(1){int n;printf("*********************MENU********************\n");printf("* *\n");printf("* 1:课程信息输入2:课程信息修改*\n");printf("* *\n");printf("* 3:课程信息统计4:课程信息查询*\n");printf("* *\n");printf("* 5:课程添加6:课程信息删除*\n");printf("* *\n");printf("* 7:浏览8:退出*\n");printf("* *\n");printf("*********************************************\n");printf("\n\n请选择功能序号:");scanf("%d", &n);/*对选择的数字进行判断*/for (; n<1 || n>8;){printf("请输入1到8之间的整数:");scanf("%d", &n);}/*选择功能*/switch (n){case 1:Input(); Display(); break;case 2:Modification(); Display(); break;case 3:Statistics(); break;case 4:Query(); break;case 5:Add(); Display(); break;case 6:Delete(); Display(); break;case 7:Display();break;case 8:Quit();}printf("是否继续Y/N\n");fflush(stdin);scanf("%c",&c);if(c=='N')Quit();system("cls");}return 0;}。
学生信息管理系统C语言源代码

#include<stdio.h>#include<malloc.h>#include<string.h>#include<stdlib.h>#define len sizeof(struct student)FILE *fp;struct student{long num;char name[15];int age;char sex[3];char chushen[10];char dizhi[20];char phone[11];char email[20];struct student *next;};void menu(){printf("===========学生信息管理系统==========\n\n");printf(" 1、录入学生信息\n");printf(" 2、浏览学生信息\n");printf(" 3、查询学生信息\n");printf(" 4、删除学生信息\n");printf(" 5、插入学生信息\n");printf(" 6、修改学生信息\n");printf(" 7、排序学生信息\n");printf(" 8、退出管理系统\n");printf("=====================================\n");}struct student *creat() //录入学生信息{int n;struct student *head;struct student *p1,*p2;n=0;p1=p2=(struct student *) malloc(len);scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p1->num,&p1->age,p1->name,p1->sex,p1->chushen ,p1->dizhi,p1->phone,p1->email);head=NULL;while(p1->num!=0){n=n+1;if(n==1) head=p1;else p2->next=p1;p2=p1;p1=(struct student *)malloc(len);scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p1->num,&p1->age,p1->name,p1->sex,p1->chu shen,p1->dizhi,p1->phone,p1->email);}p2->next=NULL;return(head);}void insert(struct student *head) //插入学生信息{int search_num;struct student *p,*q,*s;p=head;printf("在哪个学生前插入请输入学号:\n");scanf("%d",&search_num);while((p!=NULL)&&(p->num!=search_num)){q=p;p=p->next;}s=(struct student *)malloc(len);q->next=s;system("cls");printf("请输入学生信息:\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&s->num,&s->age,s->name,s->sex,s->chushen,s->diz hi,s->phone,s->email);s->next=p;}void printList(struct student *head) //浏览全部学生信息{struct student *p;p=head;if(head==NULL)printf("没有学生信息!!\n");else{do{fread(p,len,1,fp);printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->diz hi,p->phone,p->email);p=p->next;}while(p!=NULL);}}void findList_num(struct student *head,long search_num) //按学号查找{struct student *p;p=head;while((p!=NULL)&&(p->num!=search_num))p=p->next;if(p!=NULL)printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->diz hi,p->phone,p->email);elseprintf("没有该学生信息!!\n");}void findList_name(struct student *head,char *search_name) //按姓名查找{struct student *p;int cmp1=0,cmp=0;p=head;while(p!=NULL)if(strcmp(p->name,search_name)!=0){p=p->next;cmp++;}else{printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->dizhi,p->phone,p->email);p=p->next;cmp1=1;}if(cmp!=0&&cmp1==0)printf("没有该学生信息!!\n");}void xiugai(struct student *p1,long xiu_num) //修改学生信息{struct student *p2;p2=p1;while((p2!=NULL)&&(p2->num!=xiu_num))p2=p2->next;if(p2!=NULL){scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p2->num,&p2->age,p2->name,p2->sex,p2->chu shen,p2->dizhi,p2->phone,p2->email);}elseprintf("没有该学生信息!!\n");}struct student *delList(struct student *head,long del_num) // 删除学生信息{struct student *p,*q;p=head;q=head;while(p &&(p->num != del_num)){q=p;p=p->next;}if(p==NULL)printf("无此学号!\n");else{if(p == head){head = p->next;free(p);}else{q->next = p->next;free(p);}}return head;}void paixu(struct student *head) //按学号排序{struct student *p,*f,*t;char ch[100];int i;t=f=p=head;for(p=head;p->next!=NULL;p=p->next){for(t=head,f=t->next;t->next!=NULL;t=t->next,f=f->next){if(t->num>f->num>0){i=t->num;t->num=f->num;f->num=i;i=t->age;t->age=f->age;f->age=i;strcpy(ch,t->name);strcpy(t->name,f->name);strcpy(f->name,ch);strcpy(ch,t->sex);strcpy(t->sex,f->sex);strcpy(f->sex,ch);strcpy(ch,t->chushen);strcpy(t->chushen,f->chushen);strcpy(f->chushen,ch);strcpy(ch,t->dizhi);strcpy(t->dizhi,f->dizhi);strcpy(f->dizhi,ch);strcpy(ch,t->phone);strcpy(t->phone,f->phone);strcpy(f->phone,ch);strcpy(ch,t->email);strcpy(t->email,f->email);strcpy(f->email,ch);}}}// return head;}void save(struct student *head) //保存为磁盘文件{struct student *p;if((fp=fopen("keshe","w"))==NULL){printf("cannot open this file\n");exit(0);}p=head;while(p!=NULL){fprintf(fp,"%d\n",p->num);fprintf(fp,"%d\n",p->age);fprintf(fp,"%s\n",p->name);fprintf(fp,"%s\n",p->sex);fprintf(fp,"%s\n",p->chushen);fprintf(fp,"%s\n",p->dizhi);fprintf(fp,"%s\n",p->phone);fprintf(fp,"%s\n",p->email);p=p->next;}fclose(fp);}struct student *read() //从磁盘读取文件{struct student *head=NULL;struct student *p=NULL;struct student *t=NULL;int a;// fp=fopen("keshe","r");if((fp=fopen("keshe","r"))==NULL){printf("cannot open this file\n");exit(0);}while(1){t=(struct student *)malloc(len);a=fscanf(fp,"%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&t->num,&t->age,t->name,t->sex,t->chush en,t->dizhi,t->phone,t->email);if(a==0||a==-1)return head;t->next=NULL;if(p==NULL){p=t;head=t;}else{p->next=t;p=p->next;p->next=NULL;}}fclose(fp);}void main(){int code=0;struct student *pt = NULL;while(code!=8){menu();printf("请输入上述序号进行操作:\n");scanf("%d",&code);system("cls");switch(code){case 1:{system("cls");printf("每个学生的信息之间用Tab键分隔\n");printf("===========================录入学生信息==============================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");pt=creat();save(pt);system("cls");printf("===========================录入学生信息==============================\n");printf("---------------------------------------------------------------------\n");printf("************录入学生信息成功***********!!\n");printf("按回车键返回主菜单\n");getchar();getchar();system("cls");};break;case 2:{system("cls");printf("===========================学生信息表================================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");pt=read();printList(pt);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("\n按回车键返回主菜单\n");getchar();getchar();system("cls");};break;case 3:{int search=0;system("cls");printf("===========================查询学生信息==============================\n");printf("---------------------------------------------------------------------\n");while(search!=3){printf("1、按学号查询\n2、按姓名查询\n3、退出查询\n");scanf("%d",&search);switch(search){case 1:{long search_num;system("cls");printf("请输入学生学号\n");scanf("%d",&search_num);system("cls");printf("===========================查询结果==================================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");findList_num(read(),search_num);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("\n按回车键返回查询菜单\n");getchar();getchar();system("cls");};break;case 2:{char search_name[15];system("cls");printf("请输入学生姓名\n");scanf("%s",search_name);system("cls");printf("===========================查询结果==================================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");findList_name(read(),search_name);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("\n按回车键返回查询菜单\n");getchar();getchar();system("cls");};}}system("cls");};break;case 4:{long del_num;system("cls");printf("===========================删除学生信息==============================\n");printf("---------------------------------------------------------------------\n");printf("请输入要删除学生信息的学号:\n");scanf("%d",&del_num);system("cls");pt=delList(read(),del_num);save(pt);printf("===========================删除结果================================\n");printf("-------------------------------------------------------------------\n");printf("学号为%d的学生信息成功删除\n",del_num);printf("\n按回车键返回主菜单\n");getchar();getchar();system("cls");};break;case 5:{system("cls");printf("每个学生的信息之间用Tab键分隔\n");printf("===========================插入学生信息==============================\n");printf("---------------------------------------------------------------------\n");insert(pt);save(pt);system("cls");printf("===========================插入学生信息==============================\n");printf("---------------------------------------------------------------------\n");printf("****插入学生信息成功***!!\n\n");printf("按回车键返回主菜单\n");getchar();getchar();system("cls");}break;case 6:{long search_num;system("cls");printf("请输入要修改的学生学号:\n");scanf("%d",&search_num);system("cls");printf("每个学生的信息之间用Tab键分隔\n");printf("===========================修改学生信息==================================\n");printf("-------------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");findList_num(read(),search_num);printf("\n");printf("请输入修改信息:\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");pt=read();xiugai(pt,search_num);save(pt);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("****修改学生信息成功***!!\n\n");printf("\n按回车键返回查询菜单\n");getchar();getchar();system("cls");};break;case 7:{system("cls");printf(" 按学号从小到大排序\n\n");printf("===========================学生信息表================================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");pt=read();paixu(pt);printList(pt);save(pt);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("\n按回车键返回主菜单\n");getchar();getchar();system("cls");};break;case 8:read();break;}}}。
学生管理系统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语言课程设计信息管理一、教学目标本节课的教学目标是让学生掌握C语言在信息管理方面的基本概念和应用,包括数据结构、算法和程序设计等方面的知识。
具体来说,知识目标要求学生了解C语言的基本语法、数据类型、运算符、控制语句和函数等;技能目标要求学生能够使用C语言编写简单的信息管理程序,如员工信息管理系统、图书管理系统等;情感态度价值观目标要求学生培养对编程的兴趣和热情,提高自主学习和解决问题的能力。
二、教学内容本节课的教学内容主要包括C语言的基本语法、数据类型、运算符、控制语句和函数等。
具体安排如下:1.引言:介绍C语言的发展历程、特点和应用领域。
2.数据类型和变量:讲解整型、浮点型、字符型等数据类型,以及变量的声明和使用。
3.运算符:介绍算术运算符、关系运算符、逻辑运算符等,并通过示例演示其用法。
4.控制语句:讲解顺序结构、分支结构和循环结构,以及相应的控制语句。
5.函数:介绍函数的定义、声明和调用,讲解函数的参数传递和返回值。
6.实例讲解:通过实际案例,演示如何使用C语言编写简单的信息管理程序。
三、教学方法为了激发学生的学习兴趣和主动性,本节课将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。
具体安排如下:1.讲授法:讲解C语言的基本语法、数据类型、运算符、控制语句和函数等知识点。
2.讨论法:学生进行小组讨论,分享学习心得和编程经验。
3.案例分析法:分析实际案例,让学生了解C语言在信息管理方面的应用。
4.实验法:安排课后的编程实践,让学生动手编写简单的信息管理程序。
四、教学资源为了支持教学内容和教学方法的实施,本节课将准备以下教学资源:1.教材:《C语言程序设计》等相关教材,为学生提供理论知识的学习材料。
2.参考书:提供一些拓展阅读的资料,帮助学生深入了解C语言的编程技巧。
3.多媒体资料:制作PPT课件,展示C语言的基本语法和示例代码。
4.实验设备:为学生提供计算机和编程环境,让他们能够实际操作和实践。
用C语言编写的一个学生信息管理系统

用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作。
在主函数里能实现以下功能。
运行后出现一个选择提示。
可选择的功能有1)创建新的学生信息链表2)增加一个新的学生信息3)按学号删除某个学生信息4)按学号查找某个学生信息5)可以按照学生成绩对链表排序6)退出系统#include "stdio.h"#include "stdlib.h"#include "string.h"#include "conio.h"jiemian();struct student{char name[50];char sex[5];int age;char num[50];float score1;float score2;float score3;float sum;float ave;}stu[50],del;void gn1(){int i=0;char num1;for(i=0;i<50;i++){printf("请输入要添加的学生资料:\n");printf("学号:");scanf("%s",stu[i].num);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",&stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("请输入学生的三门成绩:\n");printf("语文:");scanf("%f",&stu[i].score1);printf("数学:");scanf("%f",&stu[i].score2);printf("英语:");scanf("%f",&stu[i].score3);printf("是否继续添加:y/n\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n'){system("cls");jiemian();}}}void gn2(){int i;char num[50];printf("请输入要查找的学生学号:\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(stu[i].num,num)==0){stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);break;}if(i==50)printf("查找不到!请重新输入!\n");getch();system("cls");jiemian();}void gn3(){char num1,i=0;printf("请输入要修改的学生学号:\n");scanf("%s",stu[i].num);printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("请输入学生的三门成绩:\n");printf("语文:");scanf("%f",&stu[i].score1);printf("数学:");scanf("%f",&stu[i].score2);printf("英语:");scanf("%f",&stu[i].score3);printf("是否继续修改:y/n?\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n')system("cls");jiemian();}void gn4(){int i;char num[50];printf("请输入要删除的学生学号:\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(num,stu[i].num)==0){printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);stu[i]=del;printf("信息已删除,按任意键返回..\n");break;}if(i==50)printf("您输入的信息不存在!\n");getch();system("cls");jiemian();}void gn5(){int i=0;stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t总成绩\t 平均成绩\n"); for(i=0;i<50;i++){if(stu[i].age==0)break;printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);}printf("按任意键返回...");getch();system("cls");jiemian();}void gn6(){FILE *fp;int i;char filename[50];printf("\n");printf("\n");printf("请输入要保存的文件名:");scanf("%s",filename);if((fp=fopen(filename,"wb"))==NULL)printf("文件名为空,不能保存!\n");for(i=0;i<50;i++){if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("文件保存失败!\n");}fclose(fp);printf("文件已保存!\n");printf("按任意键返回...\n");getch();system("cls");jiemian();}void gn7(){FILE *fp;int i=0; //打开文件流char filename[50];printf("请输入文件名:");scanf("%s",filename); //输入要载入的文件名if((fp=fopen(filename,"rb"))==0) //如果当前目录下不存在相对应的文件,输出文件不存在,退出系统。
课程信息管理系统c语言

课程信息管理系统c语言课程信息管理系统(C语言)一、引言课程信息管理系统是一种用来管理和组织课程信息的软件系统。
它能够对教学计划、课程表、学生选课等进行管理,帮助学校、教育机构或教师高效地管理课程信息。
本文将通过介绍课程信息管理系统的功能、特点和实施过程,详细阐述C语言在该系统中的应用。
二、功能介绍1. 学生管理:该系统能够记录学生的个人信息,如学号、姓名、班级等,并能进行学生选课管理,包括选课、退课等操作。
2. 课程管理:系统可以管理各门课程的信息,如课程编号、课程名称、学分等,并能进行课程安排,制定教学计划。
3. 教师管理:系统可以记录教师的基本信息,提供教师选课、授课安排等功能。
4. 成绩管理:系统能够记录学生的各科成绩,并提供成绩查询、统计等功能,方便学生和教师进行学业评估。
5. 课程评价:系统可以记录学生对课程的评价和反馈,帮助学校和教师改进教学质量。
三、特点和优势1. 数据集中管理:课程信息管理系统将学生、教师、课程等信息集中管理,方便快捷,减少重复工作。
2. 数据安全性高:系统采用数据库来存储和管理数据,确保数据的安全性和完整性。
3. 操作简便:系统界面友好,操作简单明了,即使对计算机操作不熟悉的教师和学生也能够轻松上手。
4. 信息共享:系统支持信息共享,学生、教师和管理者可以通过系统查询相关信息,提高工作效率。
5. 数据分析功能:系统能够对学生选课情况、成绩分布等进行统计和分析,为教学改革提供数据支持。
四、实施过程1. 需求分析:通过与学校、教师和学生的沟通,明确系统的需求和功能。
2. 系统设计:根据需求分析的结果,设计系统的数据库结构、界面和功能模块。
3. 编码实现:使用C语言编写相应的代码,实现系统的各个功能模块。
4. 测试调试:对系统进行功能测试和性能测试,确保系统的稳定性和可靠性。
5. 上线部署:将系统部署到服务器上,并进行相关的数据迁移和备份工作。
6. 培训和维护:对教师和学生进行系统培训,并进行后期的系统维护和更新。
学生选课管理系统c语言

学生选课管理系统简介学生选课管理系统是一种用于学生选课和管理课程的系统。
通过该系统,学生可以方便地选取自己感兴趣的课程,并进行课程的管理和查询,同时教务部门可以通过系统进行课程的发布、修改和管理。
功能需求学生选课管理系统需要具备以下功能:1.学生注册和登录功能:学生需要先注册账号,然后通过账号登录系统。
2.学生选课功能:学生通过系统浏览可选的课程列表,并选择自己感兴趣的课程进行选课。
3.课程查询功能:学生可以查询已选和未选课程的详细信息,包括课程名称、授课教师、上课时间等。
4.课程管理功能:教务部门可以通过系统添加、修改和删除课程信息,包括课程名称、授课教师、上课时间等。
5.学生管理功能:教务部门可以通过系统管理学生信息,包括学生姓名、学号、选课情况等。
6.成绩管理功能:教务部门可以通过系统录入学生的成绩,并提供学生成绩查询功能。
7.课程评价功能:学生可以对已修完的课程进行评价,包括评分和评论。
8.学分统计功能:系统可以根据学生的选课情况自动计算学分和学分绩点,并提供查询功能。
技术实现为了实现学生选课管理系统,可以使用C语言进行开发。
以下是一些技术实现的建议:1.数据存储:可以使用文件系统来存储学生、课程和成绩等信息。
可以使用文本文件或二进制文件存储数据,通过文件操作函数进行读写。
2.用户界面:可以使用命令行界面或图形界面来实现用户的交互。
使用C语言的终端输出函数可以实现简单的命令行界面,使用图形界面库可以实现更复杂的图形界面。
3.数据结构:可以使用结构体来表示学生、课程和成绩等信息,通过数组或链表等数据结构进行管理。
4.用户认证:可以使用用户名和密码进行用户的身份验证。
可以将用户信息保存在文件中,通过比对输入的用户名和密码来验证用户身份。
5.查询和排序:可以使用各种算法来实现课程查询和排序功能。
例如,可以使用线性搜索来查询课程信息,使用冒泡排序或快速排序来对课程进行排序。
系统流程以下是学生选课管理系统的基本流程:1.学生注册和登录:学生在系统中注册账号,并通过账号登录系统。
c语言课程设计报告+学生成绩信息管理系统+源代码

实验报告一、问题陈述及其需求分析(一)问题陈述学生信息管理系统是对学生信息的基本管理,其中包括以下及模块:(1)增加一个学生的信息(需输入要增加学生的所有信息);(2)统计本班学生总人数及男女生人数。
(3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。
(4)按学号对所有学生信息排序,并输出结果;(5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。
(二)功能需求分析学生信息管理系统设计学生信息包括:学号,姓名,性别,出生年月,电话使之提供以下功能:1、系统以菜单方式工作2、建立链表并显示3、插入新的学生信息4、删除某学号的学生信息5、查找某学号的学生信息6、对学生信息排序7、统计学生人数8、输出学生信息二总体设计(一)模块依据程序的数据结构,描述该程序的层次结构,如下图:1、建立链表并显示voidcreatelist(structstucode**r);2、插入新的学生信息voidinsert(structstucode**r);3、删除某学号的学生信息voiddel(structstucode**r);4、查找某学号的学生信息voidsearch1(structstucode*r);5、对学生信息排序voidsort(structstucode**r);6、统计学生人数voidsearch2(structstucode*r);7、输出学生信息voidout(structstucode*r);(二)程序总体框架模块层次结构,只确定了模块之间的关系和函数原型,不是程序的执行步骤。
程序总体框架是该程序的总体流程图。
改程序不是顺序连续地执行全部功能,而是在某一时刻有选择地执行一种或多种功能。
因此选用菜单方式是较佳的方案,程序总体框架如下图:(三)运行环境(软,硬件环境)硬件:CPU,内存,主板,硬盘,显卡,键盘,显示器等等。
软件:WindowsXPtruboc应用软件。
学生信息管理系统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语言代码

教学计划管理系统c语言代码教学计划管理系统C语言代码在现代教育中,教学计划管理是非常重要的一项工作。
教学计划管理系统可以帮助学校和教师更好地组织和管理教学过程,提高教学效果。
本文将介绍一个基于C语言开发的教学计划管理系统的代码实现。
一、系统功能设计教学计划管理系统主要包括以下功能:1. 教师信息管理:包括教师的基本信息、教授课程等;2. 课程信息管理:包括课程的基本信息、授课教师等;3. 教学计划管理:包括教学计划的编制、修改、查询等;4. 学生信息管理:包括学生的基本信息、选课情况等;5. 成绩管理:包括成绩的录入、查询、统计等。
二、系统代码实现下面是一个简化版的教学计划管理系统的C语言代码实现:```c#include <stdio.h>#include <stdlib.h>// 定义结构体typedef struct {char name[20]; // 姓名int age; // 年龄char gender[10]; // 性别} Teacher;typedef struct {char name[30]; // 课程名称Teacher teacher; // 授课教师} Course;typedef struct {Course course; // 课程int year; // 学年int semester; // 学期} TeachingPlan;typedef struct {char name[20]; // 姓名int age; // 年龄char gender[10]; // 性别TeachingPlan teachingPlan; // 教学计划} Student;// 教师信息管理函数void teacherInfoManagement() {// 实现教师信息的增删改查等操作printf("教师信息管理\n");}// 课程信息管理函数void courseInfoManagement() {// 实现课程信息的增删改查等操作printf("课程信息管理\n");}// 教学计划管理函数void teachingPlanManagement() {// 实现教学计划的编制、修改、查询等操作 printf("教学计划管理\n");}// 学生信息管理函数void studentInfoManagement() {// 实现学生信息的增删改查等操作printf("学生信息管理\n");}// 成绩管理函数void scoreManagement() {// 实现成绩的录入、查询、统计等操作 printf("成绩管理\n");}int main() {int choice;// 主菜单while (1) {printf("欢迎使用教学计划管理系统\n"); printf("1. 教师信息管理\n");printf("2. 课程信息管理\n");printf("3. 教学计划管理\n");printf("4. 学生信息管理\n");printf("5. 成绩管理\n");printf("0. 退出系统\n");printf("请输入您的选择:");scanf("%d", &choice);switch (choice) {case 1:teacherInfoManagement();break;case 2:courseInfoManagement();break;case 3:teachingPlanManagement();break;case 4:studentInfoManagement();break;case 5:scoreManagement();break;case 0:printf("感谢使用教学计划管理系统,再见!\n"); exit(0);default:printf("输入有误,请重新输入!\n");}}return 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语言学生课程信息管理系统是一个用于管理学生课程信息的软件系统。
它可以帮助学校、教师和学生轻松地进行课程管理、成绩管理和学生信息管理。
本文将介绍该系统的主要功能和特点。
一、系统概述学生课程信息管理系统是为了方便学校管理学生课程信息而开发的一款软件。
它可以实现学生选课、查看课程信息、查询成绩等功能。
通过该系统,学校可以更好地管理学生的学习情况,提高教学质量,促进学生的成长。
二、系统功能1. 学生选课功能:学生可以通过系统选择自己感兴趣的课程。
系统会显示可选课程的详细信息,包括课程名称、授课教师、上课时间等。
学生可以根据自己的兴趣和学习计划进行选择。
2. 课程信息查询功能:学生可以通过系统查询自己已选课程的详细信息。
系统会显示课程的名称、授课教师、上课时间、上课地点等信息,方便学生及时了解课程的相关信息。
3. 成绩查询功能:学生可以通过系统查询自己的课程成绩。
系统会根据学生的学号和课程信息,显示对应的成绩。
学生可以及时了解自己的学习成果,并根据成绩进行学习调整。
4. 学生信息管理功能:系统可以记录学生的基本信息,如学号、姓名、年龄、性别等。
教师和学校管理者可以通过系统对学生信息进行管理,包括添加学生信息、修改学生信息、删除学生信息等。
5. 教师信息管理功能:系统可以记录教师的基本信息,如教师编号、姓名、性别等。
学校管理者可以通过系统对教师信息进行管理,包括添加教师信息、修改教师信息、删除教师信息等。
6. 课程信息管理功能:系统可以记录课程的详细信息,如课程编号、课程名称、授课教师、上课时间、上课地点等。
学校管理者可以通过系统对课程信息进行管理,包括添加课程信息、修改课程信息、删除课程信息等。
三、系统特点1. 界面友好:系统的界面设计简洁美观,操作简单明了,方便用户使用。
2. 数据安全:系统采用数据库存储学生课程信息,保证数据的安全性和完整性。
3. 高效性:系统能够快速响应用户的请求,提供及时的信息查询和管理功能。
学生信息管理系统c语言代码

学生信息管理系统c语言代码以下是一个简单的学生信息管理系统的 C 语言代码示例,包含了学生信息的添加、查询、修改和删除功能。
由于代码超过了 400 字,我将提供一个简化的版本,你可以根据需要进行扩展和改进。
```c#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_STUDENTS 100// 学生结构体struct Student {char id[10];char name[50];int age;};// 学生信息列表struct Student students[MAX_STUDENTS];// 学生数量int studentCount = 0;// 添加学生信息void addStudent() {if (studentCount >= MAX_STUDENTS) {printf("学生数量已满,无法添加更多学生。
\n");return;}printf("请输入学生 ID: ");scanf("%s", students[studentCount].id);printf("请输入学生姓名: ");scanf("%s", students[studentCount].name);printf("请输入学生年龄: ");scanf("%d", &students[studentCount].age);studentCount++;printf("学生信息添加成功。
\n");}// 查询学生信息void queryStudent() {if (studentCount == 0) {printf("没有学生信息可供查询。
C语言 学生信息管理系统(完整版)

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

C语言课程设计学生成绩管理系统流程图本文介绍了一个基于C语言的学生成绩管理系统的流程图设计。
该系统可以帮助学校管理学生的成绩信息,包括录入学生成绩、查询学生信息、统计学生成绩等功能。
1. 系统流程图概览graph LRA[开始] --> B(登录系统)B --> C{登录是否成功}C -- 是 --> D(显示菜单)C -- 否 --> BD --> E[输入操作选项]E --> F{选择操作}F -- 1 --> G(录入学生成绩)F -- 2 --> H(查询学生信息)F -- 3 --> I(统计学生成绩)F -- 4 --> J(显示菜单)F -- 5 --> K(退出系统)G --> L[输入学生信息]L --> M[保存学生成绩]M --> N[继续操作]N --> GH --> O[输入学生学号]O --> P[查询学生信息]P --> NI --> Q[统计学生成绩]Q --> R[显示统计结果]R --> NJ --> DK --> S[结束]2. 系统流程图详解2.1. 开始系统开始运行,进入登录界面。
2.2. 登录系统用户输入登录信息,包括用户名和密码。
2.3. 用户登录验证系统对用户输入的用户名和密码进行验证,包括检查用户名是否存在和密码是否匹配等。
•如果登录验证成功,进入显示菜单页面。
•如果登录验证失败,返回登录系统页面,提示用户重新输入。
2.4. 显示菜单系统显示主功能菜单,供用户选择需要执行的操作。
2.5. 输入操作选项用户根据菜单提示,输入相应的操作选项。
2.6. 选择操作系统根据用户输入的操作选项,执行相应的操作。
•如果用户选择录入学生成绩,进入输入学生信息步骤。
•如果用户选择查询学生信息,进入输入学生学号步骤。
•如果用户选择统计学生成绩,进入统计学生成绩步骤。
C语言学生管理系统代码

struct scores *snext;
}stscores;
//宏定义学生个人信息
#define stmes (stmessage *)malloc(sizeof(stmessage)) //为学生个人信息结构体开辟动态内存空间
fflush(stdin);
s--;
}
switch(a)
{
case '1': mainmessage(); continue;//学生基本信息
case '2': mainresult();continue;//学生的成绩信息
case '3': exit(1);//退出系统
void xiugairesult();//修改学生成绩信息
void delatemessag1();//删除学生个人基本信息
void delatemessag2();//删除班级学生基本信息
void delatemessag3();//删除系基本信息
void delatemessag4();//删除全校基本信息
void ziresult4();//学生成绩信息修改菜单
void addmessage();//添加学生基本信息
void judgefile();//判断文件是否存在
void addresult();//添加学生成绩信息
void searchresult();//查询学生成绩信息
void readresult();//加载学生成绩信息到程序
//全局变量
stmessage *head=NULL;
stscores *shead=NULL;
课程信息管理系统c语言课程设计

课程信息管理系统c语言课程设计一、课程目标知识目标:1. 让学生掌握C语言中数组、结构体和文件操作等基本知识,并能够运用这些知识设计简单的信息管理系统。
2. 使学生了解课程信息管理系统的基本功能,如增加、删除、修改和查询等。
技能目标:1. 培养学生运用C语言进行程序设计的能力,能够独立编写、调试和运行简单的信息管理系统程序。
2. 培养学生分析问题、解决问题的能力,使其能够根据需求进行系统功能的设计和实现。
情感态度价值观目标:1. 培养学生对待编程的兴趣和热情,激发他们主动学习和探索的精神。
2. 培养学生的团队协作意识,学会与他人共同解决问题,提高沟通与协作能力。
3. 引导学生认识到编程在现代社会中的重要作用,培养他们利用技术手段解决实际问题的意识。
课程性质分析:本课程为C语言课程设计,旨在让学生将所学的C语言知识应用于实际项目中,提高编程实践能力。
学生特点分析:学生已具备一定的C语言基础,对数组、结构体和文件操作等知识有一定的了解,但可能缺乏将这些知识综合运用的经验。
教学要求:1. 结合课程信息管理系统的实际需求,引导学生运用所学知识进行程序设计。
2. 注重培养学生的动手实践能力,鼓励学生积极参与课程设计和讨论。
3. 关注学生的个体差异,提供有针对性的指导,帮助每位学生达成课程目标。
二、教学内容1. 数组与字符串操作:回顾数组的基本概念,掌握一维、二维数组的使用,以及字符串的存储和处理方法。
结合课程设计,实现对课程信息的批量存储和显示。
2. 结构体与链表:讲解结构体的定义和用法,引导学生利用结构体表示课程信息,并掌握链表的基本操作,如增加、删除节点等,以实现课程信息的动态管理。
3. 文件操作:介绍文件的基本概念,教授文件的打开、关闭、读写等操作,使学生能够将课程信息保存到文件中,并从文件中读取数据。
4. 函数与模块化编程:强调模块化编程的重要性,让学生掌握函数的定义、调用和参数传递方法,将程序划分为多个功能模块,提高代码的可读性和可维护性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
typedef struct{char num[15];char name[20];char credit[10];char clas[20];char teacher[20];}student;student pe[80];int menu_select(){char c;do{system("cls");printf("+---------------------------+\n");printf("| |\n");printf("| 欢迎使用课程信息管理系统|\n");printf("| |\n");printf("+---------------------------+\n");printf("\t\t *****课程信息管理系统***** \n");printf("\t\t ┌───────┐\n");printf("\t\t │1. 增加记录│\n");printf("\t\t │2. 显示记录│\n");printf("\t\t │3. 查询记录│\n");printf("\t\t │4. 修改记录│\n");printf("\t\t │5. 删除记录│\n");printf("\t\t │6. 存储记录│\n");printf("\t\t │0. 退出程序│\n");printf("\t\t └───────┘\n");printf("\t\t请您选择(0-6):");c=getchar();}while(c<'0'||c>'6');return(c-'0');}int Input(student per[],int n){int i=0;char sign,x[10];while(sign!='n'&&sign!='N'){printf("\t课程编号:");scanf("\t%s",per[n+i].num);printf("\t课程名称:");scanf("\t%s",per[n+i].name);printf("\t学分:");scanf("\t%s",per[n+i].credit);printf("\t选修课号:");scanf("\t%s",per[n+i].clas);printf("\t任课教师:");scanf("\t%s",per[n+i].teacher);gets(x);printf("\n\t是否继续添加?(Y/N)");scanf("\t%c",&sign);i++;}return(n+i);}void Display(student per[],int n){int i;printf("-------------------------------------------------------------------------------\n"); /*格式*/printf("课程编号课程名称学分选修课号任课教师\n");printf("-------------------------------------------------------------------------------\n");for(i=1;i<n+1;i++){printf("%-12s%-12s%-15s%-18s%s\n",per[i-1].num,per[i-1].name,per[i-1].credit,per[i-1].clas,per[i-1].teacher);if(i>1&&i%10==0){printf("\t-----------------------------------------\n");printf("\t");system("pause");printf("\t-----------------------------------------\n");}}printf("------------------------------------------------------------------------------\n");system("pause");}int Delete_a_record(student per[],int n) um,s)!=0&&i<n) i++;if(i==n){printf("\t系统中没有此科目!\n");return(n);}for(j=i;j<n-1;j++){strcpy(per[j].num,per[j+1].num);strcpy(per[j].name,per[j+1].name);strcpy(per[j].credit,per[j+1].credit);strcpy(per[j]. clas,per[j+1]. clas);strcpy(per[j]. teacher,per[j+1]. teacher);}printf("\t\t\t已经成功删除!\n");return(n-1);}void Query_a_record(student per[],int n) um,s)!=0&&i<n) i++;if(i==n){printf("\t系统中没有这个科目!\n");return;}printf("\t课程名称: %s\n",per[i].name);printf("\t学分: %s\n",per[i]. credit);printf("\t选修课号: %s\n",per[i].clas);printf("\t任课教师: %s\n",per[i].teacher);} ;if(m==2) ame,s)!=0&&i<n) i++;if(i==n){printf("\t系统中没有该科目!\n");return;}printf("\t课程编号%s\n",per[i].num);printf("\t学分: %s\n",per[i].credit);printf("\t选修课号: %s\n",per[i].clas);printf("\t任课教师: %s\n",per[i].teacher);} ;}void Change(student per[],int n) um,s)!=0&&i<n) i++;if(i==n){printf("\t系统中没有该科目!\n");return;}printf("\t课程编号:");scanf("\t%s",per[i].num);printf("\t课程名称:");scanf("\t%s",per[i].name);printf("\t学分:");scanf("\t%s",per[i].credit);printf("\t选修课号:");scanf("\t%s",per[i].clas);printf("\t任课教师:");scanf("\t%s",per[i].teacher);printf("\t修改成功!");}void WritetoText(student per[],int n){int i=0;FILE *fp;um,per[i-1].name,per[i-1].credit,per[i-1].clas,per[i-1].teacher);i++;}fprintf(fp,"------------------------------------------------------------------------------------------\n");fprintf(fp,"***************************************共有%d条记录****************************************\n",n);fclose(fp); /*关闭文件*/printf("成功保存\n");}int main(){int n=0;for(;;){switch(menu_select()){case 1:printf("\n\t请增加记录到系统\n");n=Input(pe,n);break;case 2:printf("\n\t\t\t 课程信息管理系统记录表\n");Display(pe,n);break;case 5:printf("\n\t从系统中删除记录\n");n=Delete_a_record(pe,n);printf("\t");system("pause");break;case 3:printf("\n\t在系统中查找记录\n");Query_a_record(pe,n);printf("\t");system("pause");break;case 4:printf("\n\t修改系统中的记录\n");Change(pe,n);printf("\t");system("pause");break;case 6:printf("\n\t保存功能\n");WritetoText(pe,n);printf("\t");system("pause");break;case 0:printf("\n\t\t谢谢您的使用,欢迎下次再来!!再见!!\n");printf("\n\t\t");system("pause");exit(0);}}return 0;}struct link{char cno[10],cname[10],cforecourse[10],cunitno[10],cunitname[10];int ia;struct link *next;};struct link *head;int menu(){int ii;printf("please choose a number:\n");printf("******************************************:\n");printf("1: create :\n");printf("2: search :\n");printf("3: delete :\n");printf("4: view :\n");printf("5: quit :\n");printf("******************************************:\n");printf("\n");printf("\n");printf("\n");printf("\n");scanf("%d",&ii);return ii;}struct link create(){int icount,ij=1;struct link *p,*new;while(1){if(icount)printf("输入头结点");}new=(struct link *)malloc(sizeof(struct link));printf("input the course no:\n");scanf("%s",new->cno);printf("input the course :\n");scanf("%s",new->cname);printf("input the forecourse :\n");scanf("%s",new->cforecourse);printf("input the course grade:\n");scanf("%d",&new->ia);printf("input the unit no. grade:\n");scanf("%s",new->cunitno);printf("input the unit name:\n");scanf("%s",new->cunitname);new->next=NULL;if(icount){head=new;p=new;printf("the fist add success:\n");getchar();getchar();icount=0;}e lse{p->next=new;printf("\n");p=p->next;printf("add success:\n");printf("\n");getchar();}p rintf("input 0 to end input:\n");scanf("%d",&ij);if(ij==0){break;}}}struct link search(){struct link *p;char ckeyname[10];printf("please input the name you want to view:\n");scanf("%s",ckeyname);while(strcmp(ckeyname,p->cname)!=0&&p->next!=NULL){p=p->next;}if(p->next==NULL){printf("no this position:\n");}else{printf("found it:\n");printf("%s,%s,%s,%d,%s,%s",p->cno,p->cname,p->cforecourse,p->ia,p->cunitno,p->cunitname);}}struct link delete(){struct link *p,*q,*r;char ckeyname[10];r=head;p=r->next;q=p->next;printf("please input the name you want to del:\n");scanf("%s",ckeyname);while(strcmp(ckeyname,p->cname)!=0&&r->next!=NULL){r=r->next;p=p->next;q=q->next;}if(r->next==NULL){printf("no this position:\n");}else{printf("found it:\n");printf("%s,%s,%s,%d,%s,%s",p->cno,p->cname,p->cforecourse,p->ia,p->cunitno,p->cunitname);r->next=p->next;printf("delete success:\n");getchar();getchar();}}void output(){struct link *p,*q;p=head;p=p->next;q=head;if(q->next==NULL){printf("no record:\n");}else{while(p->next){printf("%s,%s,%s,%d,%s,%s",p->cno,p->cname,p->cforecourse,p->ia,p->cunitno,p->cunitname);printf("\n");p=p->next;}printf("%s,%s,%s,%d,%s,%s",p->cno,p->cname,p->cforecourse,p->ia,p->cunitno,p->cunitname);}}void quit(){exit(0);}void main(){int ia=1;head=NULL;while(ia!=5){ia=menu();switch(ia){case 1:create();break;case 2:search();break;case 3:delete();break;case 4:output();break;case 5:quit();break;default:printf("input wrong:\n");}}}typedef struct{char num[15];char name[20];char credit[10];char clas[20];char teacher[20];}student;student pe[80];int menu_select(){char c;do{system("cls");printf("\n");printf("\n");printf(" 欢迎使用课程信息管理系统\n");printf("\n");printf("\n");printf(" 课程信息管理系统\n");printf("\n");printf(" 1. 增加记录\n");printf(" 2. 显示记录\n");printf(" 3. 查询记录\n");printf(" 4. 修改记录\n");printf(" 5. 删除记录\n");printf(" 6. 存储记录\n");printf(" 0. 退出程序\n");printf("\n");printf("\t\t请您选择(0-6):");c=getchar();}while(c<'0'||c>'6');return(c-'0');}int Input(student per[],int n){int i=0;char sign,x[10];while(sign!='n'&&sign!='N'){printf("\t课程编号:");scanf("\t%s",per[n+i].num);printf("\t课程名称:");scanf("\t%s",per[n+i].name);printf("\t学分:");scanf("\t%s",per[n+i].credit);printf("\t选修课号:");scanf("\t%s",per[n+i].clas);printf("\t任课教师:");scanf("\t%s",per[n+i].teacher);gets(x);printf("\n\t是否继续添加?(Y/N)");scanf("\t%c",&sign);i++;}return(n+i);}void Display(student per[],int n){int i;printf("-------------------------------------------------------------------------------\n"); /*格式*/printf("课程编号课程名称学分选修课号任课教师\n");printf("-------------------------------------------------------------------------------\n");for(i=1;i<n+1;i++){printf("%-12s%-12s%-15s%-18s%s\n",per[i-1].num,per[i-1].name,per[i-1].credit,per[i-1].clas,per[i-1].teacher);if(i>1&&i%10==0){printf("\t-----------------------------------------\n");printf("\t");system("pause");printf("\t-----------------------------------------\n");}}printf("------------------------------------------------------------------------------\n");system("pause");}int Delete_a_record(student per[],int n) um,s)!=0&&i<n) i++;if(i==n){printf("\t系统中没有此科目!\n");return(n);}for(j=i;j<n-1;j++){strcpy(per[j].num,per[j+1].num);strcpy(per[j].name,per[j+1].name);strcpy(per[j].credit,per[j+1].credit);strcpy(per[j]. clas,per[j+1]. clas);strcpy(per[j]. teacher,per[j+1]. teacher);}printf("\t\t\t已经成功删除!\n");return(n-1);}void Query_a_record(student per[],int n) um,s)!=0&&i<n) i++;if(i==n){printf("\t系统中没有这个科目!\n");return;}printf("\t课程名称: %s\n",per[i].name);printf("\t学分: %s\n",per[i]. credit);printf("\t选修课号: %s\n",per[i].clas);printf("\t任课教师: %s\n",per[i].teacher);} ;if(m==2) ame,s)!=0&&i<n) i++;if(i==n){printf("\t系统中没有该科目!\n");return;}printf("\t课程编号%s\n",per[i].num);printf("\t学分: %s\n",per[i].credit);printf("\t选修课号: %s\n",per[i].clas);printf("\t任课教师: %s\n",per[i].teacher);} ;}void Change(student per[],int n) um,s)!=0&&i<n) i++;if(i==n){printf("\t系统中没有该科目!\n");return;}printf("\t课程编号:");scanf("\t%s",per[i].num);printf("\t课程名称:");scanf("\t%s",per[i].name);printf("\t学分:");scanf("\t%s",per[i].credit);printf("\t选修课号:");scanf("\t%s",per[i].clas);printf("\t任课教师:");scanf("\t%s",per[i].teacher);printf("\t修改成功!");}void WritetoText(student per[],int n){int i=0;FILE *fp;um,per[i-1].name,per[i-1].credit,per[i-1].clas,per[i-1].teacher);}fprintf(fp,"------------------------------------------------------------------------------------------\n");fprintf(fp,"***************************************共有%d条记录****************************************\n",n);fclose(fp); /*关闭文件*/printf("成功保存\n");}int main(){int n=0;for(;;){switch(menu_select()){case 1:printf("\n\t请增加记录到系统\n");n=Input(pe,n);break;case 2:printf("\n\t\t\t 课程信息管理系统记录表\n");Display(pe,n);break;case 5:printf("\n\t从系统中删除记录\n");n=Delete_a_record(pe,n);printf("\t");system("pause");break;case 3:printf("\n\t在系统中查找记录\n");Query_a_record(pe,n);printf("\t");system("pause");break;case 4:printf("\n\t修改系统中的记录\n");Change(pe,n);printf("\t");system("pause");break;case 6:printf("\n\t保存功能\n");WritetoText(pe,n);printf("\t");system("pause");case 0:printf("\n\t\t谢谢您的使用,再见。