课程信息管理系统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语言课程设计之学生信息管理系统 (2)

学生信息管理系统设计案例一、引言学生信息管理系统是一种集学生信息录入、查询、修改和删除等功能于一体的软件系统。
为了满足学校对学生信息的有效管理和查询需求,本文将介绍一种用C语言实现的学生信息管理系统设计案例。
二、需求分析学生信息管理系统主要有以下几个功能模块: 1. 学生信息录入:包括学生姓名、学号、年龄、性别等基本信息的录入。
2. 学生信息查询:可以根据学号或姓名进行查询,并显示查询结果。
3. 学生信息修改:可以根据学号或姓名选择要修改的学生信息,并进行修改操作。
4. 学生信息删除:可以根据学号或姓名选择要删除的学生信息,并进行删除操作。
三、系统设计1. 数据结构设计为了存储学生信息,我们需要定义一个学生结构体,包括姓名、学号、年龄、性别等字段。
同时,为了方便管理学生信息,我们可以使用链表数据结构来存储学生信息,并设计一个头节点来指向链表的第一个节点。
struct student {char name[20];int student_id;int age;char gender[10];struct student* next;};struct student* head; // 头节点2. 功能模块设计2.1 学生信息录入在该功能模块中,用户需要输入学生的姓名、学号、年龄和性别等信息,并将该学生信息添加到链表中。
为了方便起见,我们可以将该功能模块定义为一个函数add_student()。
2.2 学生信息查询在该功能模块中,用户可以根据学号或姓名进行学生信息的查询。
查询结果将会显示学生的基本信息。
为了方便起见,我们可以将该功能模块定义为一个函数search_student()。
2.3 学生信息修改在该功能模块中,用户可以根据学号或姓名选择要修改的学生信息,并进行修改操作。
为了方便起见,我们可以将该功能模块定义为一个函数update_student()。
2.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语言

课程信息管理系统C语言1. 简介本文将详细探讨课程信息管理系统的设计与实现,使用C语言作为开发语言。
课程信息管理系统是一种用于管理学校或机构的课程信息的软件系统,通过该系统可以实现课程的增删改查、学生选课、教师管理等功能。
为了更好地组织和管理课程信息,该系统需要一套完整的数据结构和相应的算法来实现各项功能。
2. 功能需求基于C语言的课程信息管理系统应具备以下功能: 1. 学生管理:包括学生的基本信息、选课信息、成绩管理等。
2. 教师管理:包括教师的基本信息、授课课程、教学评价等。
3. 课程管理:包括课程的基本信息、选课限制、课程评价等。
4. 成绩管理:包括成绩录入、成绩查询、成绩统计分析等。
5. 选课管理:包括选课限制、选课时间、选课冲突等。
6. 系统设置:包括管理员账户管理、密码修改、系统日志等。
3. 系统设计3.1 数据结构设计课程信息管理系统需要设计合适的数据结构来存储和管理学生、教师、课程和成绩等信息。
下面是各个实体的数据结构设计示例:3.1.1 学生数据结构设计typedef struct Student {int id; // 学号char name[20]; // 姓名int gender; // 性别(0表示男,1表示女)char major[20]; // 专业struct Student* next; // 指向下一个学生结点的指针} Student;3.1.2 教师数据结构设计typedef struct Teacher {int id; // 工号char name[20]; // 姓名int gender; // 性别(0表示男,1表示女)char department[20]; // 部门struct Teacher* next; // 指向下一个教师结点的指针} Teacher;3.1.3 课程数据结构设计typedef struct Course {int id; // 课程号char name[20]; // 课程名称int credit; // 学分struct Course* next; // 指向下一个课程结点的指针} Course;3.1.4 成绩数据结构设计typedef struct Score {int studentId; // 学生学号int courseId; // 课程号float score; // 分数struct Score* next; // 指向下一个成绩结点的指针} Score;3.2 功能模块设计课程信息管理系统可以划分为以下功能模块: #### 3.2.1 学生管理模块学生管理模块负责学生信息的录入、修改和查询等功能。
课程信息管理系统c语言课程设计

课程信息管理系统c语言课程设计一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握课程信息管理系统C语言的基本概念、原理和编程方法;技能目标要求学生能够运用C语言进行简单的程序设计和调试;情感态度价值观目标要求学生培养良好的编程习惯和团队合作精神。
通过本课程的学习,学生将了解课程信息管理系统C语言的基本语法和编程技巧,掌握C语言程序设计的基本方法,培养编程思维和解决问题的能力。
同时,学生将学会与他人合作,培养团队合作精神和良好的编程习惯。
二、教学内容根据课程目标,本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针等。
教学大纲将按照教材的章节进行安排,每个章节都会有相应的教学内容和教学任务。
具体的教学内容安排如下:1.第一章:C语言概述和基本语法2.第二章:数据类型和运算符3.第三章:控制结构4.第四章:函数和数组5.第五章:指针和字符串6.第六章:文件操作和程序设计三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法。
包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:通过教师的讲解,向学生传授C语言的基本概念和原理。
2.讨论法:学生进行小组讨论,促进学生之间的交流和合作。
3.案例分析法:通过分析实际案例,让学生了解C语言在实际应用中的作用和编程技巧。
4.实验法:安排实验室实践环节,让学生动手编写程序,培养编程能力和实验技能。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备适当的教学资源。
包括教材、参考书、多媒体资料和实验设备等。
1.教材:选择适合本课程的教材,作为学生学习的主要参考资料。
2.参考书:提供相关的参考书籍,供学生深入学习和拓展知识。
3.多媒体资料:制作多媒体课件和教学视频,帮助学生更好地理解和掌握知识点。
4.实验设备:提供计算机实验室,让学生进行实验和实践,提高编程能力和实验技能。
课程信息管理系统C语言程序

#i n c l u d e<s t d i o.h>#include<stdlib.h>#include<string.h>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) //删除学生记录函数{char s[20];int i=0,j;printf("\t请输入想删除记录中的课程编号:");scanf("%s",s);while(strcmp(per[i].num,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) //查询学生记录{int m;printf("\t\n请选择查询方式:\n");printf("\t┌─────----─┐\n");printf("\t│1------课程编号│\n");printf("\t│2------课程名称│\n");printf("\t│3------返回│\n");printf("\t└───--─--──┘\n");printf("请选择:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3){printf("输入错误,请重新选择:");scanf("%d",&m);}if(m==1) // 按课程编号查询{char s[20];int i=0;printf("\t请输入想查询的课程编号:");scanf("\t%s",s);while(strcmp(per[i].num,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) //按课程名称查询{char s[20];int i=0;printf("\t请输入想查询的课程名称:");scanf("\t%s",s);while(strcmp(per[i].name,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) //修改课程记录{char s[20];int i=0;printf("\t请输入想修改的课程信息管理系统中的课程编号:");scanf("%s",s);while(strcmp(per[i].num,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; //定义文件指针char filenum[20]; //定义文件名printf("\t保存到文件\n"); //输入文件名printf("\t请输入所保存的文件名:");scanf("\t%s",filenum);if((fp=fopen(filenum,"w"))==NULL){printf("\t无法打开文件\n");system("pause");return;}fprintf(fp,"****************************************** 课程信息管理系统**********************************\n");fprintf(fp," 课程编号课程名称学分选修课号任课教师\n");fprintf(fp,"------------------------------------------------------------------------------------------\n");while(i<=n){fprintf(fp,"%-10s%-10s%-15s%-18s%%s\n",per[i-1].num,per[i-1].name,per[i-1].credit,per[i-1].clas,per[i-1].teache r);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;}#include<stdio.h>#include<string.h>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];p=head;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");}}}#include<stdio.h>#include<stdlib.h>#include<string.h>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) //删除学生记录函数{char s[20];int i=0,j;printf("\t请输入想删除记录中的课程编号:");scanf("%s",s);while(strcmp(per[i].num,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) //查询学生记录{int m;printf("\t\n请选择查询方式:\n");printf("\\n");printf("1------课程编号\n");printf("2------课程名称\n");printf("3------返回\n");printf("\n");printf("请选择:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3){printf("输入错误,请重新选择:");scanf("%d",&m);}if(m==1) // 按课程编号查询{char s[20];int i=0;printf("\t请输入想查询的课程编号:");scanf("\t%s",s);while(strcmp(per[i].num,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) //按课程名称查询{char s[20];int i=0;printf("\t请输入想查询的课程名称:");scanf("\t%s",s);while(strcmp(per[i].name,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) //修改课程记录{char s[20];int i=0;printf("\t请输入想修改的课程信息管理系统中的课程编号:");scanf("%s",s);while(strcmp(per[i].num,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; //定义文件指针char filenum[20]; //定义文件名printf("\t保存到文件\n"); //输入文件名printf("\t请输入所保存的文件名:");scanf("\t%s",filenum);if((fp=fopen(filenum,"w"))==NULL){printf("\t无法打开文件\n");system("pause");return;}fprintf(fp,"****************************************** 课程信息管理系统**********************************\n");fprintf(fp," 课程编号课程名称学分选修课号任课教师\n");fprintf(fp,"------------------------------------------------------------------------------------------\n");while(i<=n){fprintf(fp,"%-10s%-10s%-15s%-18s%%s\n",per[i-1].num,per[i-1].name,per[i-1].credit,per[i-1].clas,per[i-1].teache r);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谢谢您的使用,再见。
c语言课程设计(学生信息管理系统)

c语言课程设计(学生信息管理系统)一、系统功能学生信息管理系统是一款基于C语言开发的数据管理程序,可实现对学生信息的增删改查等功能。
具体功能列表如下: a. 添加学生信息:可根据学生的基本信息,如学生学号、姓名、性别、地址、联系电话等,依次记录入系统; b. 删除学生信息:可根据学生学号、姓名等信息,从系统中删除不必要的学生信息; c. 修改学生信息:可根据已有的学生信息,修改学生某些属性内容,以更新系统中的数据; d. 查看学生信息:可根据学生学号、姓名等信息,查看指定学生的所有信息及多种查询功能; e. 数据保存功能:可将当前系统中的学生信息,保存成文件的形式; f. 备份/恢复功能:可对学生信息文件进行备份并对备份文件进行恢复; g. 查询统计功能:可根据学院代号、专业代号等信息,进行不同的查询统计; h. 排序功能:可根据学生学号、姓名等信息,对学生信息进行排序; i. 帮助功能:可提供详细的使用帮助文档,以帮助用户更好地使用系统;二、程序实现及结构1. 主程序:此程序用于控制整个系统的运行,可实现系统菜单显示、功能调用及功能切换等功能,可根据用户的操作需求,调用其他子程序实现各项功能。
2. 子程序:此程序是系统的主要部分,可实现学生信息的增删改查等功能,并可支持学生信息的备份,恢复,排序及查询统计等功能,用于实现主程序调用的功能。
3. 管理模块:此模块可实现对用户的登录及注册功能,可检测用户登录及注册的账号是否正确,以及是否有权限使用系统;4. 数据库模块:此模块可实现对学生信息的存储及调用,便于对各类学生信息进行更方便的管理。
此模块还可以负责系统的备份及恢复功能的实现。
5. 图形界面模块:此模块负责实现系统的图形化界面,使用户可以更加友好地操作系统,可以根据用户的需求,随时更改系统界面设置。
三、程序设计学生信息管理系统的设计主要有四个部分:1. 主程序:主程序的设计要求负责控制整个系统的运行,并根据用户的操作调用子程序实现各个功能。
c语言学生信息管理系统用到的函数

在C语言中,一个学生信息管理系统可能需要以下几种类型的函数:1. 输入函数:用于获取用户输入的学生信息。
例如,你可能需要一个函数来获取学生的姓名,学号,成绩等。
```cvoid inputStudentInfo(Student* student);```2. 查找函数:用于根据学生姓名或学号查找学生信息。
```cStudent* findStudentByID(Student students[], int size, int id);Student* findStudentByName(Student students[], int size, char* name);```3. 修改函数:用于修改已存在的学生信息。
```cvoid updateStudentInfo(Student* student);```4. 删除函数:用于删除学生信息。
```cvoid deleteStudent(Student students[], int size, int id);```5. 显示所有学生信息:用于显示所有学生的信息。
```cvoid displayAllStudents(Student students[], int size); ```6. 排序函数:用于对学生信息进行排序,例如按照成绩从高到低排序。
```cvoid sortStudentsByScore(Student students[], int size); ```7. 保存和加载函数:用于将学生信息保存到文件或从文件中加载学生信息。
```cvoid saveStudentsToFile(Student students[], int size, char* filename);Student* loadStudentsFromFile(char* filename, int* size);```以上是一个基本的学生信息管理系统的功能和对应的函数。
c语言程序设计大作业学生信息管理系统

一、概述随着信息技术的不断发展和应用,计算机程序设计作为重要的基础课程,对学生的综合能力有着重要的培养作用。
在C语言程序设计课程中,大作业是检验学生对知识的掌握和应用能力的重要环节。
学生信息管理系统作为一种常见的大作业题目,涉及到了文件操作、结构体、指针等多个知识点,对学生的理论知识掌握和实战能力都有一定的考验。
二、需求分析学生信息管理系统是一个管理学生基本信息的软件,具有录入、查找、删除、修改等功能。
在设计学生信息管理系统的时候,首先要明确系统的功能需求,并且考虑到系统的扩展性和健壮性。
1. 学生基本信息包括学号、尊称、性别、芳龄、专业等内容,系统应具备录入学生信息的功能,并且能够将信息保存在文件中,方便下次使用。
2. 用户可以通过查找功能根据学号或尊称查询学生信息,系统需要具备高效的查找算法。
3. 可以对学生信息进行删除和修改操作,需要保证操作的准确性和安全性。
4. 系统需要具备良好的用户界面,方便用户的操作和管理。
三、系统设计在进行学生信息管理系统的设计时,需要考虑到系统的模块化和扩展性,将整个系统划分为多个模块,进行单独设计和测试。
1. 学生信息录入模块:负责接收用户输入的学生信息,并将信息写入文件中。
2. 学生信息查找模块:通过学号或尊称进行查找操作,需要设计高效的查找算法。
3. 学生信息删除模块:实现对学生信息的删除功能。
4. 学生信息修改模块:实现对学生信息的修改功能。
5. 用户界面设计:设计友好的用户界面,方便用户的操作和管理。
四、系统实现在进行系统实现时,需要根据设计的模块进行逐一实现和测试,保证系统的稳定性和功能完整性。
1. 学生信息录入模块实现:接收用户输入的学生信息,并将信息写入文件。
2. 学生信息查找模块实现:设计高效的查找算法,并实现根据学号或尊称进行查找操作。
3. 学生信息删除模块实现:实现对学生信息的删除功能,并确保操作的准确性和安全性。
4. 学生信息修改模块实现:实现对学生信息的修改功能,保证信息的一致性。
学生信息管理系统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"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语言代码

#include <stdio.h>#include <string.h>#include <malloc.h>struct shengri{int year;int month;int day;};struct student{char name[40];char sno[20];char sid[20];struct shengri birth;int address[200];};struct student *stu=NULL;int current=0;int total=0;void insert(){if(stu==NULL)stu=(struct student *)malloc(total*sizeof(struct student));if(current>=total){printf("对不起,由于人数已满,不能添加新学生信息\n");return;}printf("请输入学生姓名: ");scanf("%s",stu[current].name);printf("请输入学生学号: ");scanf("%s",stu[current].sno);printf("请输入学生身份证号码: ");scanf("%s",stu[current].sid);printf("请输入学生出生日期格式(年-月-日): ");scanf(" %d-%d-%d",&stu[current].birth.year,&stu[current].birth.month,&stu[ current].birth.day);printf("请输入学生家庭地址: ");scanf("%s",stu[current].address);current++;return;}void query(){char name[40];char xuehao[40];int i,item,flag;printf("\n");printf("1.按学号查询\n");printf("2.按姓名查询\n");printf("3.退出本菜单\n");printf("\n");while(1){printf("\n");printf("请选择子菜单编号:");scanf("%d",&item);flag=0;switch(item){case 1:printf("请输入要查询的学生的学号:");scanf("%s",xuehao);for(i=0;i<current;i++)if(strcmp(stu[i].sno,xuehao)==0){flag=1;printf("学生信息如下\n");printf("姓名: %s\n",stu[i].name);printf("学号: %s\n",stu[i].sno);printf("身份证号: %s\n",stu[i].sid);printf("出生日期: %d-%d-%d\n",stu[i].birth.year,stu[i].birth.month,stu[i].birth.day); printf("家庭地址: %s\n",stu[i].address);return;}if(flag==0)printf("\n");printf(" 警告:学号为%s的学生不存在",xuehao);break;break;case 2:printf("请输入要查询的学生的姓名:");scanf("%s",name);for(i=0;i<current;i++)if(strcmp(stu[i].name,name)==0){flag=1;printf("学生信息如下\n");printf("姓名: %s\n",stu[i].name);printf("学号: %s\n",stu[i].sno);printf("身份证号: %s\n",stu[i].sid);printf("出生日期: %d-%d-%d\n",stu[i].birth.year,stu[i].birth.month,stu[i].birth.day); printf("家庭地址: %s\n",stu[i].address);return;}if(flag==0)printf("\n");printf(" 警告:姓名为%s学生不存在",name);break;case 3:return;default:printf("非法输入,请在1-3之间选择\n");}}}void update(){char name[40];int i;printf("请输入要修改的学生姓名: ");scanf("%s",name);for(i=0;i< current;i++){if(strcmp(stu[i].name,name)==0){printf("请输入修改后的学生姓名: ");scanf("%s",stu[i].name);printf("\n");printf("修改前的学生学号为: ");printf("%s",stu[i].sno);printf("\n");printf("请输入修改后的学生学号: ");scanf("%s",stu[i].sno);printf("\n");printf("修改前的学生身份证号为: ");printf("%s",stu[i].sid);printf("\n");printf("请输入修改后的学生身份证号: ");scanf("%s",stu[i].sid);printf("\n");printf("修改前的学生出生日期,格式(年-月-日):");printf("%d-%d-%d",stu[i].birth.year,stu[i].birth.month,stu[i].birth.day);printf("\n");printf("请输入修改后的学生出生日期,格式(年-月-日):");scanf("%d-%d-%d",&stu[i].birth.year,&stu[i].birth.month,&stu[i].birth.day);printf("\n");printf("修改前的家庭住址为: ");printf("%s",stu[i].address);printf("\n");printf("请输入修改后的家庭地址: ");scanf("%s",stu[i].address);return;}}printf(" 该学生不存在,请重新选择\n");return;}void deiete(){char name[40];int i,k;char a;printf("请输入要删除的学生姓名: ");scanf("%s",name);printf("\n");for(i=0;i< current;i++){if(strcmp(stu[i].name,name)==0){printf("要删除的学生姓名为:%s\n",stu[i].name);printf("\n");printf("你确定要删除吗?继续请按'y',放弃请按'n'\n");printf("\n");printf("请选择:");scanf("%s",&a);if (a=='y'||a=='Y'){for(k=i;k<current;k++)strcpy(stu[k].name,stu[k+1].name);break;}if(a=='n'||a=='N'){printf("放弃删除!");return;}printf("非法输入");return;}}if(i==current)printf("警告:姓名为%s的学生不存在\n\n",name);else{printf("该学生已成功删除!\n");current--;}return;}void list(){int i;printf("一共有%d个学生信息\n",current);printf("\n");printf("学生信息列表为:\n");printf("\n");for(i=0;i<current;i++){printf("第%d个学生信息如下:\n",i+1);printf(" 姓名: %s\n",stu[i].name);printf(" 学号: %s\n",stu[i].sno);printf(" 身份证号码: %s\n",stu[i].sid);printf(" 出生日期:%d-%d-%d\n",stu[i].birth.year,stu[i].birth.month,stu[i].birth.day);printf(" 地址:%s\n",stu[i].address);printf("\n");}return;}void save(){int count;FILE*fs;fs=fopen("studentdata.dat","wb");if(fs==NULL){printf("不能打开文件\n");return;}count=fwrite(stu,sizeof(struct student),current,fs);fclose(fs);if(count!=current){printf("保存失败\n");return;}printf("保存成功!\n");return;}void load(){FILE *fs;int count=0;int succ=0;fs=fopen("studentdata.dat","rb");if(fs==NULL){printf("不能打开文件!\n");return;}succ=fseek(fs,0,2);if(succ!=0){printf("文件操作失败!\n");return;}count=ftell(fs);fseek(fs,0,0);current=count/sizeof(struct student);stu=(struct student *)malloc(total*sizeof(struct student)); count=fread(stu,sizeof(struct student),current,fs);fclose(fs);if(count!=current){printf("读取文件失败\n");return;}printf("读取文件成功\n");return;}void main(){int choice;printf(" \n尊敬的用户您好,欢迎使用学生信息管理系统\n");printf("\n 1.进入系统后,先按“7”加载学生信息,再查询;\n");printf("\n 2.按照菜单提示输入数字代号;\n");printf("\n 3.增加学生信息后,切记保存按“6”;\n");printf("\n 4.谢谢您的使用!\n");printf("\n");printf("\n");printf("\n\t ****学****生****信****息****管****理****系****统*****\n");printf("\n");printf("\n");printf(" 主编:计算机应用班:第五组作品\n");printf("\n");printf(" 由胡磊,李文娟,冉琼,梁凯华,马立虎共同参与完成\n");printf("\n");printf("请您输入要录入的学生总人数:");scanf("%d",&total);while(1){printf("--------------------------------------------------------------------------------");printf(" ----------------------------");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(" 7: --加载学生信息-- \n"); printf(" 0: --退出程序 -- \n");printf("--------------------------------------------------------------------------------\n");printf("\n\n");printf(" 请选择:");scanf("%d",&choice);printf("\n\n");switch(choice){case 1:insert();break;case 2:query();break;case 3:update();break;case 4:deiete();break;case 5:list();break;case 6:save();break;case 7:load();break;case 0:return;default:printf("非法选择请重新选择");}}}。
学生信息管理系统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)。
#include<stdio.h>#include<stdlib.h>#include<string.h>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].cla s,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) //删除学生记录函数{char s[20];int i=0,j;printf("\t请输入想删除记录中的课程编号:");scanf("%s",s);while(strcmp(per[i].num,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) //查询学生记录{int m;printf("\t\n请选择查询方式:\n");printf("\t┌─────----─┐\n");printf("\t│1------课程编号│\n");printf("\t│2------课程名称│\n");printf("\t│3------返回│\n");printf("\t└───--─--──┘\n");printf("请选择:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3){printf("输入错误,请重新选择:");scanf("%d",&m);}if(m==1) // 按课程编号查询{char s[20];int i=0;printf("\t请输入想查询的课程编号:");scanf("\t%s",s);while(strcmp(per[i].num,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) //按课程名称查询{char s[20];int i=0;printf("\t请输入想查询的课程名称:");scanf("\t%s",s);while(strcmp(per[i].name,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) //修改课程记录{char s[20];int i=0;printf("\t请输入想修改的课程信息管理系统中的课程编号:");scanf("%s",s);while(strcmp(per[i].num,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; //定义文件指针char filenum[20]; //定义文件名printf("\t保存到文件\n"); //输入文件名printf("\t请输入所保存的文件名:");scanf("\t%s",filenum);if((fp=fopen(filenum,"w"))==NULL){printf("\t无法打开文件\n");system("pause");return;}fprintf(fp,"****************************************** 课程信息管理系统**********************************\n");fprintf(fp," 课程编号课程名称学分选修课号任课教师\n");fprintf(fp,"------------------------------------------------------------------------------------------\n");while(i<=n){fprintf(fp,"%-10s%-10s%-15s%-18s%%s\n",per[i-1].num,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;}#include<stdio.h>#include<string.h>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;}else{p->next=new;printf("\n");p=p->next;printf("add success:\n");printf("\n");getchar();}printf("input 0 to end input:\n");scanf("%d",&ij);if(ij==0){break;}}}struct link search(){struct link *p;char ckeyname[10];p=head;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->cunitna me);}}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->cunitna me);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->cunitna me);printf("\n");p=p->next;}printf("%s,%s,%s,%d,%s,%s",p->cno,p->cname,p->cforecourse,p->ia,p->cunitno,p->cunitna me);}}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");}}}#include<stdio.h>#include<stdlib.h>#include<string.h>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].cla s,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) //删除学生记录函数{char s[20];int i=0,j;printf("\t请输入想删除记录中的课程编号:");scanf("%s",s);while(strcmp(per[i].num,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) //查询学生记录{int m;printf("\t\n请选择查询方式:\n");printf("\\n");printf("1------课程编号\n");printf("2------课程名称\n");printf("3------返回\n");printf("\n");printf("请选择:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3){printf("输入错误,请重新选择:");scanf("%d",&m);}if(m==1) // 按课程编号查询{char s[20];int i=0;printf("\t请输入想查询的课程编号:");scanf("\t%s",s);while(strcmp(per[i].num,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) //按课程名称查询{char s[20];int i=0;printf("\t请输入想查询的课程名称:");scanf("\t%s",s);while(strcmp(per[i].name,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) //修改课程记录{char s[20];int i=0;printf("\t请输入想修改的课程信息管理系统中的课程编号:");scanf("%s",s);while(strcmp(per[i].num,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; //定义文件指针char filenum[20]; //定义文件名printf("\t保存到文件\n"); //输入文件名printf("\t请输入所保存的文件名:");scanf("\t%s",filenum);if((fp=fopen(filenum,"w"))==NULL){printf("\t无法打开文件\n");system("pause");return;}fprintf(fp,"****************************************** 课程信息管理系统**********************************\n");fprintf(fp," 课程编号课程名称学分选修课号任课教师\n");fprintf(fp,"------------------------------------------------------------------------------------------\n");while(i<=n){fprintf(fp,"%-10s%-10s%-15s%-18s%%s\n",per[i-1].num,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谢谢您的使用,再见。