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

C语言学生管理系统代码
简介
学生管理系统是一个用于管理学生信息的简单程序,它可以实现添加学生信息、显示学生信息、修改学生信息和删除学生信息等功能。
通过这个系统,学校或机构可以更方便地管理和维护学生的相关数据。
功能
1.添加学生信息:通过输入学生的姓名、学号、年龄和性别等信息,将
学生信息存储在系统中。
每个学生信息包括学号、姓名、年龄和性别等关键信息。
2.显示学生信息:可以显示系统中所有学生的信息,包括学号、姓名、
年龄和性别。
3.修改学生信息:通过输入学生的学号,可以修改该学生的姓名、年龄
和性别等信息。
4.删除学生信息:通过输入学生的学号,可以删除该学生的信息。
实现
下面是一个简单的C语言学生管理系统代码示例:
```c #include <stdio.h> #include <string.h>
#define MAX_STUDENTS 100
// 定义学生结构体 struct Student { int id; char name[100]; int age; char
gender[10]; };
// 定义全局变量,用于存储学生信息和统计学生数量 struct Student
students[MAX_STUDENTS]; int num_students = 0;
// 添加学生 void addStudent() { if (num_students >= MAX_STUDENTS) { printf(。
(完整word版)教务管理系统C语言代码

find=false;
system("pause");
}
//***************************删除学生信息**************************************************
void list(){
int n=0;
int n=0;
cout<<"请输入要删除的学号:";
cin>>deleteNumber;
fstream fileNumber("number.txt",ios::in|ios::out);
fstream fileNumber2("number.txt",ios::in|ios::out);
fstream fileName("name.txt",ios::in|ios::out);
int menu(){
system("cls");
int n=1,select=-1;
cout<<endl<<endl<<endl;
cout<<setw(68)<<"★C★S★U★学生档案管理系统★C★S★U★"<<endl<<endl;
cout<<setw(26)<<n++<<"◆※输入学生信息※◆1"<<endl<<endl;
};
//******************************
C 语言 学生教务管理系统代码

C 语言学生教务管理系统代码C++语言学生教务管理系统代码 #include <stdio.h> #include <string.h> struct teacher{char name[30];char teachernumber[30];char birthplace[30];char teacherID[30];char telephone[30];char course[30]; }teacher[100];struct student{char name[30];char studentnumber[30];char birthplace[30];char studentID[30];char telephone[30]; }student[1000];struct manager{char name[30];char managernumber[30];char birthplace[30];char managerID[30];char telephone[30]; }manager[100]; struct grade{char number[30];float math;float ph;float english;float c_language;float practise;float sum;float aver;}grade[30];struct grade_count {float amax;float amin;float mathmax;float cmax;float phmax;float emax;float pmax;float mathmin;float cmin;float phmin;float emin;float pmin;char str1[10];char str2[10];char str3[10];char str4[10];char str5[10];char str6[10];char str7[10];char str8[10];char str9[10];char str10[10];char str11[10];char str12[10];}grade_count;void addteacher(){FILE *fp1;int ch=1;int i=0;while(ch==1){fp1=fopen("teacher.txt","a+");printf("请输入您要添加的教师的名字:\n"); scanf ("%s",teacher[i].name);printf("请输入您要添加的教师的教师号:\n");scanf ("%s",teacher[i].teachernumber);printf("请输入您要添加的教师的出生地:\n");scanf ("%s",teacher[i].birthplace);printf("请输入您要添加的教师的身份证号:\n");scanf ("%s",teacher[i].teacherID);printf("请输入您要添加的教师的联系方式:\n");scanf ("%s",teacher[i].telephone);printf("请输入您要添加的教师的课程:\n");scanf ("%s",teacher[i].course);fwrite(&teacher[i],sizeof(struct teacher),1,fp1);printf("%5s,%5s,%5s,%5s,%5s,%5s\n",teacher[i].name,teacher[i].teachernumber,teacher[i].birthplace,teacher[i].teache rID,teacher[i].telephone,teacher[i].course);printf("是否继续添加,继续添加请输入1,否则输入0\n");scanf ("%d",&ch);fclose(fp1);i++;}}void changeteacher(){FILE *fp,*fp2;char teachername[30];int i;int choice;fp=fopen("teacher.txt","r");fp2=fopen("teacherl.txt","w");printf("------欢迎进入教师修改系统------\n\n");printf("请输入要修改的教师的名字\n");scanf("%s",teachername);for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp)!=0;i++) {if(strcmp(teacher[i].name,teachername)==0){printf("你所要修改的教师的资料如下:\n\n");printf("姓名:〈%s〉教师号:<%s> 出生地:〈%s〉身份证号: <%s> 联系方式: <%s> 课程:<%s>\n",teacher[i].name,teacher[i].teachernumber,teacher[i].birthplace,teacher[i].teacherID,teacher[i].telephone,teacher[i].course);printf(",请选择你要更新的内容:1:修改教师的姓名\n");printf(" 2:修改教师的教师号\n");printf(" 3:修改教师的出生地\n");printf(" 4:修改教师的身份证号\n");printf(" 5:修改教师的联系方式\n");printf(" 6:修改教师的课程\n");printf("请按照提示选择1-6:");scanf("%d",&choice);switch(choice){case 1:{printf("请输入新的姓名\n");scanf("%s",teacher[i].name);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;case 2:{printf("请输入新的教师号\n");scanf("%s",teacher[i].teachernumber);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;case 3:{printf("请输入新的出生地 \n");scanf("%s",teacher[i].birthplace);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;case 4:{printf("请输入新的身份证号 \n");scanf("%s",teacher[i].teacherID);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;case 5:{printf("请输入新的联系方式 \n");scanf("%d",&teacher[i].telephone);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;case 6:{printf("请输入新的课程 \n");scanf("%d",&teacher[i].course);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;default:printf("Error");break;}continue;}fwrite(&teacher[i],sizeof(struct teacher),1,fp2);}fclose(fp);fclose(fp2);fp=fopen("teacher.txt","w");fp2=fopen("teacherl.txt","r");for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp2)!=0;i++) {fwrite(&teacher[i],sizeof(struct teacher),1,fp);}fclose(fp);fclose(fp2);fp2=fopen("teacherl.txt","w");fclose(fp2);printf("Enter\n");getchar();return;}void tnamedele(){FILE *fp,*fp1;int i;char teachername[30];char ch1;printf("请输入教师的名字:\n");scanf("%s",teachername);fp=fopen("teacher.txt","r");fp1=fopen("teacher1.txt","w");for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp)!=0;i++) if(strcmp(teachername,teacher[i].name)!=0){fwrite(&teacher[i],sizeof(struct teacher),1,fp1);fclose(fp);fclose(fp1);}printf("确定删除该教师,\n");printf(" 1.是,请输入Y;\n");printf(" 2.否,请输入N.\n");scanf ("%s",&ch1);if(ch1=='y'||ch1=='Y'){fp=fopen("teacher.txt","w");fp1=fopen("teacher1.txt","r");for(i=0;fread(&teacher[i],sizeof(structteacher),1,fp1)!=0;i++){fwrite(&teacher[i],sizeof(struct teacher),1,fp);}fclose(fp);fclose(fp1);printf("您已经成功删除\n");}}void tnumberdele(){FILE *fp,*fp2;int i;char teachernumber[30];char ch2;printf("请输入教师的教师号:\n");scanf("%s",teachernumber);fp=fopen("teacher.txt","r");fp2=fopen("teacher1.txt","w");for(i=0;fread(&teacher[i],sizeof(structteacher),1,fp)!=0;i++)if(strcmp(teachernumber,teacher[i].teachernumber)!=0) fwrite(&teacher[i],sizeof(struct teacher),1,fp2); fclose(fp);fclose(fp2);printf("确定删除该教师,\n");printf(" 1.是,请输入Y;\n");printf(" 2.否,请输入N.\n");scanf ("%s",&ch2);if(ch2=='y'||ch2=='Y'){fp=fopen("teacher.txt","w");fp2=fopen("teacher1.txt","r");for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp2)!=0;i++) {fwrite(&teacher[i],sizeof(struct teacher),1,fp);}fclose(fp);fclose(fp2);printf("您已经成功删除\n");}}void deleteteacher(){int i;do{printf("------欢迎进入教师删除系统------\n\n");printf(">>>按照教师的姓名删除按1\n");printf(">>>按照教师的教师号删除按2\n");printf(">>>返回按0\n");scanf("%d",&i);switch(i){case 0:printf("退出\n");break;case 1:tnamedele();break;case 2:tnumberdele();break;default:break;}}while(i!=0);}void countteacher(){FILE *fp;int i,j;int n=0;do{printf("您现在进行的是统计教师的操作\n\n"); printf("请稍等......按1确定,按0退出\n"); scanf("%d",&j);switch(j){case 0:printf("退出\n");break;case 1:{fp=fopen("teacher.txt","r");for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp)!=0;i++){n=n+1;}fclose(fp);printf("现在教师的总量为:%d\n",n); getchar();return;};break;default:break;}}while(j!=0);}void tnameseek(){FILE *fp1;int i;char tname[30];int ch1;do{printf("--------您现在进入的是教师查询系统--------\n\n");printf("请输入教师的名字:\n");scanf("%s",tname);fp1=fopen("teacher.txt","r");for(i=0;fread(&teacher[i],sizeof(structteacher),1,fp1)!=0;i++){if(strcmp(tname,teacher[i].name)==0)printf("%5s---%5s---%5s---%5s--%5s--%5s\n",teacher[i].name,teacher[i].teachernumber,teacher[i].birthplace,te acher[i].teacherID,teacher[i].telephone,teacher[i].course);}printf("继续请输入1,否则输入0\n");scanf("%d",&ch1);}while(ch1==1);}void tnumberseek(){FILE *fp2;int i;char tnumber[30];int ch2;do{printf("--------您现在进入的是教师查询系统--------\n\n");printf("请输入教师的教师号:\n");scanf("%s",tnumber);fp2=fopen("teacher.txt","r");for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp2)!=0;i++) {if(strcmp(tnumber,teacher[i].teachernumber)==0)printf("%5s---%5s---%5s---%5s--%5s--%5s\n",teacher[i].name,teacher[i].teachernumber,teacher[i].birthplace,te acher[i].teacherID,teacher[i].telephone,teacher[i].course);}printf("继续请输入1,否则输入0\n");scanf("%d",&ch2);}while(ch2==1);}void seekteacher(){int i;do{printf("------欢迎进入教师查询系统------\n\n"); printf("请选择您要查询的方法\n");printf(" 1:按照教师的名字查询\n");printf(" 2:按照教师的教师号查询\n");printf(" 3:退出\n");scanf("%d",&i);switch(i){case 1: tnameseek();break;case 2: tnumberseek();break;case 3: printf("退出");break;default: printf("您的操作有误");break;}}while(i!=3);}void mteachermanage(){int i;do{printf("请按以下提示进行操作:\n\n");printf("1.<<<<教师添加\n"); printf("2.<<<<教师修改\n"); printf("3.<<<<教师删除\n"); printf("4.<<<<教师统计\n"); printf("5.<<<<教师查询\n"); printf("6.<<<<退出\n");scanf ("%d",&i);switch(i){case 1: addteacher();break; case 2: changeteacher();break; case 3: deleteteacher();break; case 4: countteacher();break; case 5: seekteacher();break; case 6: printf("退出\n");break; default:break;}}while(i!=6);}void addstudent(){FILE *fp1;int ch=1;int i=0;while(ch==1){fp1=fopen("student.txt","a+");printf("请输入您要添加的学生的名字:\n");scanf ("%s",student[i].name);printf("请输入您要添加的学生的学号:\n");scanf ("%s",student[i].studentnumber);printf("请输入您要添加的学生的出生地:\n");scanf ("%s",student[i].birthplace);printf("请输入您要添加的学生的身份证号:\n");scanf ("%s",student[i].studentID);printf("请输入您要添加的学生的联系方式:\n");scanf ("%s",student[i].telephone);fwrite(&student[i],sizeof(struct student),1,fp1);printf("%5s,%5s,%5s,%5s,%5s\n",student[i].name,student[i ].studentnumber,student[i].birthplace,student[i].studentID, student[i].telephone);printf("是否继续添加,继续添加请输入1,否则输入0\n");scanf ("%d",&ch);fclose(fp1);i++;}}void changestudent(){FILE *fp,*fp2;char studentname[30];int i;int choice;fp=fopen("student.txt","r");fp2=fopen("studentl.txt","w");printf("------欢迎进入学生修改系统------\n\n");printf("请输入要修改的学生的名字\n");scanf("%s",studentname);for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) {if(strcmp(student[i].name,studentname)==0){printf("你所要修改的学生的资料如下:\n\n");printf("姓名:〈%s〉学生号:<%s> 出生地:〈%s〉身份证号: <%s> 联系方式:<%s>\n",student[i].name,student[i].studentnumber,student[i].birthplace,student[i].studentID,student[i].telephone);printf(",请选择你要更新的内容:1:修改学生的姓名\n");printf(" 2:修改学生的学号\n");printf(" 3:修改学生的出生地\n");printf(" 4:修改学生的身份证号\n");printf(" 5:修改学生的联系方式\n");printf("请按照提示选择1-5:");scanf("%d",&choice);switch(choice){case 1:{printf("请输入新的姓名\n");scanf("%s",student[i].name);fwrite(&student[i],sizeof(struct student),1,fp2); }break;case 2:{printf("请输入新的学号\n");scanf("%s",student[i].studentnumber);fwrite(&student[i],sizeof(struct student),1,fp2); }break;case 3:{printf("请输入新的出生地 \n");scanf("%s",student[i].birthplace);fwrite(&student[i],sizeof(struct student),1,fp2); }break;case 4:{printf("请输入新的身份证号 \n");scanf("%s",student[i].studentID);fwrite(&student[i],sizeof(struct student),1,fp2); }break;case 5:{printf("请输入新的联系方式 \n");scanf("%d",&student[i].telephone);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;default:printf("Error");break;}continue;}fwrite(&student[i],sizeof(struct student),1,fp2); }fclose(fp);fclose(fp2);fp=fopen("student.txt","w");fp2=fopen("studentl.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++){fwrite(&student[i],sizeof(struct student),1,fp); }fclose(fp);fclose(fp2);fp2=fopen("studentl.txt","w");fclose(fp2);printf("Enter\n");getchar();return;}void snamedele(){FILE *fp,*fp1;int i;char studentname[30];char ch1;printf("请输入学生的名字:\n");scanf("%s",studentname);fp=fopen("student.txt","r");fp1=fopen("student1.txt","w");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++){if(strcmp(studentname,student[i].name)!=0)fwrite(&student[i],sizeof(struct student),1,fp1); fclose(fp);fclose(fp1);printf("确定删除该学生,\n");printf(" 1.是,请输入Y;\n");printf(" 2.否,请输入N.\n");scanf ("%s",&ch1);if(ch1=='y'||ch1=='Y'){fp=fopen("student.txt","w");fp1=fopen("student1.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp1)!=0;i++){fwrite(&student[i],sizeof(struct student),1,fp); }fclose(fp);fclose(fp1);printf("您已经成功删除\n");}}}void snumberdele(){FILE *fp,*fp2;int i;char studentnumber[30];char ch2;printf("请输入学生的学号:\n");scanf("%s",studentnumber);fp=fopen("student.txt","r");fp2=fopen("student1.txt","w");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) {if(strcmp(studentnumber,student[i].studentnumber)!=0)fwrite(&student[i],sizeof(struct student),1,fp2);fclose(fp);fclose(fp2);printf("确定删除该教师,\n");printf(" 1.是,请输入Y;\n");printf(" 2.否,请输入N.\n");scanf ("%s",&ch2);if(ch2=='y'||ch2=='Y'){fp=fopen("student.txt","w");fp2=fopen("student1.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++) {fwrite(&student[i],sizeof(struct student),1,fp);}fclose(fp);fclose(fp2);printf("您已经成功删除\n");}}}void deletestudent(){int i;do{printf("------欢迎进入学生删除系统------\n\n");printf(">>>按照学生的姓名删除按1\n");printf(">>>按照学生的学号删除按2\n");printf(">>>返回按0\n");scanf("%d",&i);switch(i){case 0:printf("退出\n");break;case 1:snamedele();break;case 2:snumberdele();break;default:break;}}while(i!=0);}void countstudent(){FILE *fp;int i,j;int n=0;do{printf("您现在进行的是统计学生的操作\n\n"); printf("请稍等......按1确定,按0退出\n"); scanf("%d",&j);switch(j){case 0:printf("退出\n");break;case 1:{fp=fopen("student.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++){n=n+1;}fclose(fp);printf("现在学生的总量为:%d\n",n); getchar();return;};break;default:break;}}while(j!=0);}void snameseek(){FILE *fp1;int i;char sname[30];int ch1;do{printf("--------您现在进入的是学生查询系统--------\n\n");printf("请输入学生的名字:\n");scanf("%s",sname);fp1=fopen("student.txt","r");for(i=0;fread(&student[i],sizeof(structstudent),1,fp1)!=0;i++){if(strcmp(sname,student[i].name)==0)printf("%5s---%5s---%5s---%5s--%5s\n",student[i].name,st udent[i].studentnumber,student[i].birthplace,student[i].stu dentID,teacher[i].telephone);}printf("继续请输入1,否则输入0\n");scanf("%d",&ch1);}while(ch1==1);}void snumberseek(){FILE *fp2;int i;char snumber[30];int ch2;do{printf("--------您现在进入的是学生查询系统--------\n\n");printf("请输入学生的学号:\n");scanf("%s",snumber);fp2=fopen("student.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++) {if(strcmp(snumber,student[i].studentnumber)==0)printf("%5s---%5s---%5s---%5s--%5s\n",student[i].name,student[i].studentnumber,student[i].birthplace,student[i].stu dentID,student[i].telephone);}printf("继续请输入1,否则输入0\n");scanf("%d",&ch2);}while(ch2==1);}void seekstudent(){int i;do{printf("------欢迎进入学生查询系统------\n\n"); printf("请选择您要查询的方法\n");printf(" 1:按照学生的名字查询\n");printf(" 2:按照学生的学号查询\n");printf(" 3:退出\n");scanf("%d",&i);switch(i){case 1: snameseek();break;case 2: snumberseek();break;case 3: printf("退出");break;default: printf("您的操作有误");break;}}while(i!=3);}void mstudentmanage(){int i;do{printf("请按以下提示进行操作:\n\n");printf("1.<<<<学生添加\n");printf("2.<<<<学生修改\n");printf("3.<<<<学生删除\n"); printf("4.<<<<学生统计\n"); printf("5.<<<<学生查询\n"); printf("6.<<<<退出\n");scanf ("%d",&i);switch(i){case 1: addstudent();break; case 2: changestudent();break; case 3: deletestudent();break; case 4: countstudent();break; case 5: seekstudent();break; case 6: printf("退出\n");break; default:break;}}while(i!=6);}void addmanager(){FILE *fp1;int ch=1;int i=0;while(ch==1){fp1=fopen("manager.txt","a+");printf("请输入您要添加的管理员的名字:\n");scanf ("%s",manager[i].name);printf("请输入您要添加的管理员的证件号:\n");scanf ("%s",manager[i].managernumber);printf("请输入您要添加的管理员的出生地:\n");scanf ("%s",manager[i].birthplace);printf("请输入您要添加的管理员的身份证号:\n");scanf ("%s",manager[i].managerID);printf("请输入您要添加的管理员的联系方式:\n");scanf ("%s",manager[i].telephone);fwrite(&manager[i],sizeof(struct manager),1,fp1);printf("%5s,%5s,%5s,%5s,%5s\n",manager[i].name,manager[i ].managernumber,manager[i].birthplace,manager[i].managerID, manager[i].telephone);printf("是否继续添加,继续添加请输入1,否则输入0\n");scanf ("%d",&ch);fclose(fp1);i++;}}void changemanager(){FILE *fp,*fp2;char managername[30];int i;int choice;fp=fopen("manager.txt","r");fp2=fopen("managerl.txt","w");printf("------欢迎进入管理员修改系统------\n\n");printf("请输入要修改的管理员的名字\n");scanf("%s",managername);for(i=0;fread(&manager[i],sizeof(struct manager),1,fp)!=0;i++) {if(strcmp(manager[i].name,managername)==0){printf("你所要修改的管理员的资料如下:\n\n");printf("姓名:〈%s〉证件号:<%s> 出生地:〈%s〉身份证号: <%s> 联系方式: <%s>\n",manager[i].name,manager[i].managernumber,manager[i].bir thplace,manager[i].managerID,manager[i].telephone);printf(",请选择你要更新的内容:1:修改管理员的姓名\n");printf(" 2:修改管理员的证件号\n");printf(" 3:修改管理员的出生地\n");printf(" 4:修改管理员的身份证号\n");printf("。
C语言的教务管理系统(2000行代码)

C语言教务管理系统一、程序结构图二、程序运行截图1. 个人信息简介2.修改颜色3.注册界面4. 信息保存至文件5.登录界面6.管理员录入信息7. 学生信息录入8.学生成绩录入9.学生课程表录入10.学生信息查询界面11学生信息查询12.学生成绩查询13.学生课表查询三、代码(一个cpp)#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> #include <conio.h>#include"windows.h"#define student_num 1000 /*定义1000个学生*/#define teacher_num 5 /*定义5个老师(管理员)*/int is_my_student(struct student *p,int *size); /*声明返回第i+1个学生的函数*/ int is_my_teacher(struct teacher *p,int *size); /*声明返回第i+1个老师的函数*/ int length_student_name(char *p); /*声明验证用户名函数*/int length_student_password(char *p); /*声明验证密码长度函数*/int length_teacher_name(char *p); /*声明验证用户名函数*/int length_teacher_password(char *p); /*声明验证密码长度函数*/int show_menu_login(); /*声明登录菜单函数*/int show_menu_register(); /*声明注册菜单函数*/int show_teacher_select(); /*声明教师录入菜单函数*/int show_student_select(); /*声明学生查询菜单函数*/int student_register(struct student *ptr_student,int *size); /*声明学生注册函数*/ int teacher_register(struct teacher *ptr_teacher,int *size); /*声明老师注册函数*/ int vaild_student_name(char *p); /*声明验证用户名函数*/int vaild_student_password(char *p); /*声明验证密码函数*/int vaild_teacher_name(char *p); /*声明验证用户名函数*/int vaild_teacher_password(char *p); /*声明验证密码函数*/int vaild_two_password(char *p1,char *p2); /*声明验证两次密码是否相同函数*/ int yes_no_return(); /*声明选择是否返回上一层函数*/void load(); /*声明加载函数*/void register_(int *count1,int *count2); /*声明注册函数*/void display_student(struct student stu); /*声明显示学生信息函数*/void display_teacher(struct teacher tea); /*声明显示老师信息函数*/void student_file1(); /*将保存的学生的账号密码存入文件中*/ void student_file2(); /*将保存的学生的个人信息存入文件中*/ void student_file3(); /*将保存的学生的成绩存入文件中*/void teacher_file(); /*将保存的老师的账号密码存入文件中*/ void input_information(int count); /*声明输入学生信息函数*/void input_score_menu(int count); /*声明输入学生成绩函数*/void color(); /*声明选择窗体颜色函数*/void print_stu_information(int count_stu); /*声明输出账号为num的学生的信息函数*/void print_stu_score(int count_stu); /*声明输出账号为num的学生的成绩函数*/void show_menu(); /*声明初始化界面函数*/void input(); /*声明输入函数*/void menu1(); /*声明教师录入课程表主菜单函数*/void menu2(); /*声明学生查询课程表主菜单函数*/void rank(); /*声明显示时间顺序函数*/void querymenu3(); /*声明查询函数*/void looktime(); /*声明按照时间查询函数*/void looklessonname(); /*声明按照课程名查询函数*/void add(); /*声明保存函数*/void amend(); /*声明修改课程函数*/void amend1(); /*声明修改课程子函数*/void amendnews(int i); /*声明修改整个课程信息函数*/void amendtime(int i); /*声明修改课程时间函数*/void amendlessonname(int i); /*声明修改课程课程名函数*/void amendclassroom(int i); /*声明修改课程教室函数*/void deleted(); /*声明删除函数*/void add_score(int count); /*声明添加学生成绩函数*/void xiugai_score(int count); /*声明修改学生成绩函数*/void shanchu_score(int count); /*声明删除学生成绩函数*/void chaxun_score(int count); /*声明按要求查询学生成绩函数*/void paixu_score(int count); /*声明学生成绩排序函数*/void tongji_score(int count); /*声明学生成绩统计函数*/float chinese(int count); /*声明计算语文成绩最大值函数*/int chr(int count); /*声明计算语文成绩及格人数的函数*/ float english(int count); /*声明计算英语成绩最大值函数*/int ehr(int count); /*声明计算英语成绩及格人数的函数*/ float math(int count); /*声明计算数学成绩最大值函数*/int mhr(int count); /*声明计算数学成绩及格人数的函数*/ float computer(int count); /*声明计算计算机成绩最大值函数*/int thr(int count); /*声明计算计算机成绩及格人数的函数*/float PE(int count); /*声明计算体育成绩最大值函数*/int phr(int count); /*声明计算体育成绩及格人数的函数*/ float sum_score(int count); /*声明计算总分成绩最大值函数*/ void load_student(int a); /*声明启动学生函数*/void load_teacher(int a); /*声明启动老师函数*/struct student /*学生结构体*/{/*个人信息*/int student_id; /*账号*/char student_name[20]; /*姓名*/char password[16]; /*密码*/int age; /*年龄*/char qq[12]; /*QQ号*/char tel[12]; /*电话*/int grade; /*年级*//*各科成绩*/float chinese; /*语文分数*/float english; /*英语分数*/float math; /*数学分数*/float computer; /*计算机分数*/float PE; /*体育分数*/float sum; /*总分*//*课程表*/char time[10]; /*时间*/char lessonname[20]; /*课程名*/char teacher[20]; /*授课老师*/char classroom[10]; /*教室*/char hours[10]; /*第几节课*/int weeks; /*周时*/};struct teacher /*老师结构体*/ {int teacher_id; /*账号*/char teacher_name[20]; /*姓名*/char password[16]; /*密码*/};struct student our_student[student_num]; struct teacher our_teacher[teacher_num];void main() /*主函数*/{system("color f0"); /*初始化背景颜色*/show_menu(); /*制作人信息简介*/load();}void load() /*启动函数*/{int flag=1; /*控制循环结束的变量*/int a=0,b=0; /*记录已注册的学生的人数a为学生个数b为老师个数*/int *count1=&a,*count2=&b; /*指向学生人数和老师人数的指针*/int correct_student,correct_teacher;color();register_(count1,count2); /*注册学生和老师的帐号*/student_file1();teacher_file();while(flag){switch(show_menu_login()) /*显示登录菜单*/{case 1: /*选择1,进入学生登录*/if(correct_student=is_my_student(our_student,count1)){printf("\n ◆学生登录成功!\n");display_student(our_student[correct_student-1]);printf("\n");printf(" ");system("pause");load_student(a);}elseprintf("\n登录失败!\n");printf("\n");printf(" 提示:按Y退出登录界面,按N返回登录界面!!!\n");flag=yes_no_return();system("cls");break;case 2: /*选择2,进入老师登录,即管理员登录*/ if(correct_teacher=is_my_teacher(our_teacher,count2)){printf("\n ◆管理员登录成功!\n");display_teacher(our_teacher[correct_teacher-1]);printf("\n");printf(" ");system("pause");load_teacher(a);}elseprintf("\n登录失败!\n");printf("\n");printf(" 提示:按Y退出登录界面,按N返回登录界面!!!\n");flag=yes_no_return();system("cls");break;case 3: /*选择3,退出登录*/system("cls");flag=0;break;default:printf("请正确输入1-3:");system("cls");}}}void load_student(int a) /*启动学生函数*/{int flag=1;system("cls");while(flag){switch(show_student_select()){case 1: /*选择1,学生信息查询*/system("cls");print_stu_information(a);printf("\n");printf(" 提示:按Y退出学生查询界面,按N返回学生查询界面!!!\n");flag=yes_no_return();system("cls");break;case 2: /*选择2,学生成绩查询*/system("cls");print_stu_score(a);printf("\n");printf(" 提示:按Y退出学生查询界面,按N返回学生查询界面!!!\n");flag=yes_no_return();system("cls");break;case 3: /*选择3,学生课表查询*/menu2();printf(" 提示:按Y退出学生查询界面,按N返回学生查询界面!!!\n");flag=yes_no_return();system("cls");break;case 4: /*选择4,退出查询界面*/system("cls");flag=0;break;default:printf("请正确输入1-4:");system("cls");}}}void load_teacher(int a) /*启动老师函数*/{int flag=1;system("cls");while(flag){switch(show_teacher_select()){case 1: /*选择1,学生信息录入*/input_information(a);system("cls");student_file2();printf("\n 提示:按Y退出教师录入界面,按N返回教师录入界面!!!\n");flag=yes_no_return();system("cls");break;case 2: /*选择2,学生成绩录入*/input_score_menu(a);system("cls");student_file3();printf("\n 提示:按Y退出教师录入界面,按N返回教师录入界面!!!\n");flag=yes_no_return();system("cls");break;case 3: /*选择3,学生课表录入*/menu1();printf(" 提示:按Y退出教师录入界面,按N返回教师录入界面!!!\n");flag=yes_no_return();system("cls");break;case 4: /*选择4,退出管理界面*/system("cls");flag=0;break;default:printf("请正确输入1-4:");system("cls");}}}int length_student_name(char *p) /*验证用户名是否合法*/ {int l;l=strlen(p);if(l>20||l<1)return 0;elsereturn 1;}int vaild_student_name(char *p) /*判断用户名是否有效*/{int i=0;int len=strlen(p);if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z')) /*判断首字母是不是字母*/ {for(i=0;i<len;i++){if(!(p[i]='_'||(p[i]>='a'&&p[i]<='z')||(p[i]>='A'&&p[i]<='Z')||(p[i]>='0'&&p[i]<=' 9'))) /*判断后面的字符是否有效*/return 0;}return 1;}elsereturn 0;}int length_student_password(char *p) /*密码长度有效性验证*/{int len;len=strlen(p);if(len<6||len>16)return 0;elsereturn 1;}int vaild_student_password(char *p) /*密码的有效性验证*/{int i=0;for(;*p!='\0';p++){if(!((*p>='a'&&*p<='z')||(*p>'A'&&*p<'Z')||(*p>='0'&&*p<='9'))) return 0;}return 1;}int vaild_two_password(char *p1,char *p2) /*验证两次密码是否相同*/{if(strcmp(p1,p2)==0)return 1;elsereturn 0;}int student_register(struct student *ptr_student,int *size) /*完成注册功能*/{char password[16];char repassword[16];if(*size==student_num){puts(" ◆注册人数已满!");printf("\n");return 0;}system("cls");printf("\n\n");printf(" ★请输入注册学生姓名:");fflush(stdin);gets(ptr_student[*size].student_name);if(!(length_student_name(ptr_student[*size].student_name)&&vaild_student_name(ptr_student[*size].student_name))){printf(" ◆您输入的姓名无效,学生姓名在1-20之间,首字符为字母,后面必须为字母、数字或下划线!!!");return 0;}printf("\n");printf(" ★请输入注册密码:");fflush(stdin);gets(password);printf("\n");printf(" ★请再次输入注册密码:");fflush(stdin);gets(repassword);printf("\n");if(!vaild_two_password(password,repassword)){printf("\n №:两次输入的密码不一致!!!");printf("\n");return 0;}elsestrcpy(ptr_student[*size].password,password);if(!(length_student_password(ptr_student[*size].password)&&vaild_student_pa ssword(ptr_student[*size].password))){printf(" ◆您输入的密码无效,密码应在6-16位之间,密码只能包含字母和数字!!!");printf("\n");return 0;}printf(" ★您的编号为:%d,这将是您的登录账号!!!",ptr_student[*size].student_id=20150000+*size);return 1;}int is_my_student(struct student *p,int *size) /*如果登录成功则返回第i+1个学生的信息,否则返回0*/{int i;int zhanghao;char mima[18];system("cls");printf("\n\n");printf(" ★请输入您的账号:");scanf("%d",&zhanghao);fflush(stdin);printf("\n");printf(" ★请输入您的密码:");gets(mima);for(i=0;i<*size;i++){if((zhanghao==p[i].student_id)&&(strcmp(mima,p[i].password)==0)) return i+1;}return 0;}void display_student(struct student stu) /*显示学生信息*/{printf("\n ★您的账号是:%d\n",stu.student_id);}int length_teacher_name(char *p) /*验证用户名是否合法*/{int l;l=strlen(p);if(l>20||l<1)return 0;elsereturn 1;}int vaild_teacher_name(char *p) /*判断用户名是否有效*/{int i=0;int len=strlen(p);if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z')) /*判断首字母是不是字母*/ {for(i=0;i<len;i++){if(!(p[i]='_'||(p[i]>='a'&&p[i]<='z')||(p[i]>='A'&&p[i]<='Z')||(p[i]>='0'&&p[i]<=' 9'))) /*判断后面的字符是否有效*/return 0;}return 1;}elsereturn 0;}int length_teacher_password(char *p) /*密码长度有效性验证*/{int len;len=strlen(p);if(len<6||len>16)return 0;elsereturn 1;}int vaild_teacher_password(char *p) /*密码的有效性验证*/{int i=0;for(;*p!='\0';p++){if(!((*p>='a'&&*p<='z')||(*p>'A'&&*p<'Z')||(*p>='0'&&*p<='9'))) return 0;}return 1;}int teacher_register(struct teacher *ptr_teacher,int *size) /*完成注册功能*/{char password[16];char repassword[16];if(*size==teacher_num){puts(" ◆注册人数已满!");printf("\n");return 0;}system("cls");printf("\n\n");printf(" ★请输入注册教师姓名:");fflush(stdin);gets(ptr_teacher[*size].teacher_name);if(!(length_teacher_name(ptr_teacher[*size].teacher_name)&&vaild_teacher_na me(ptr_teacher[*size].teacher_name))){printf(" ◆您输入的姓名无效,教师姓名在1-20之间,首字符为字母,后面必须为字母、数字或下划线!!!");printf("\n");return 0;}printf("\n");printf(" ★请输入注册密码:");fflush(stdin);gets(password);printf("\n");printf(" ★请再次输入注册密码:");fflush(stdin);gets(repassword);printf("\n");if(!vaild_two_password(password,repassword)){printf("\n №:两次输入的密码不一致!!!");printf("\n");return 0;}elsestrcpy(ptr_teacher[*size].password,password);if(!(length_teacher_password(ptr_teacher[*size].password)&&vaild_teacher_password(ptr_teacher[*size].password))){printf(" ◆您输入的密码无效,密码应在6-16位之间,密码只能包含字母和数字!!!");printf("\n");return 0;}printf(" ★您的编号为:%d,这将是您的登录账号。
学生成绩管理系统c语言代码(供参考)

C程序学生管理系统以下是用c语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考) #include"stdio.h"#include”stdlib。
h"#include"string。
h”typedef struct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedef struct unit//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>初始化失败!”);return 0;}else{p—>next=NULL;p-〉date.number=0;//头结点存放学生人数printf("初始化成功!\n");return p;}}void add(unit *head)//增加学生{unit *p,*q;int m,n=0;q=head-〉next;p=(unit*)malloc(sizeof(unit));printf(”=〉请输入新生姓名!\n");gets(p—>);fflush(stdin);printf("=〉请输入学号!\n");while(n==0){scanf("%d",&m);fflush(stdin);if(q==NULL) n=1;while(q){if(q->date.number==m){printf("=>你输入的学号与已有同学的学号相同,请重新输入!\n");q=head-〉next;break;}else{q=q->next;if(q==NULL) n=1;}}}p—〉date。
c语言代码大全

c语言代码大全C语言代码大全。
C语言作为一种通用的高级语言,被广泛应用于系统程序设计和应用程序开发。
它具有高效的系统编程能力和灵活的应用程序编程能力,因此备受程序员们的喜爱。
在本文中,我们将为您介绍一些常见的C语言代码,帮助您更好地理解和运用C语言。
首先,让我们来看一个简单的C语言程序示例:```c。
#include <stdio.h>。
int main() {。
printf("Hello, World!\n");return 0;}。
```。
在这个示例中,我们使用了`#include`指令来包含标准输入输出库文件`stdio.h`,然后定义了一个`main`函数,函数内部使用`printf`函数打印了一条简单的消息,并通过`return 0`语句返回了程序执行的结果。
接下来,让我们看一下如何使用C语言实现一个简单的计算器功能:```c。
#include <stdio.h>。
int main() {。
char operator;double firstNumber,secondNumber;printf("Enter an operator (+, -, , /): ");scanf("%c", &operator);printf("Enter two operands: ");scanf("%lf %lf",&firstNumber, &secondNumber);switch(operator) {。
case '+':printf("%.1lf + %.1lf = %.1lf",firstNumber, secondNumber, firstNumber + secondNumber);break;case '-':printf("%.1lf %.1lf = %.1lf",firstNumber, secondNumber, firstNumber secondNumber);break;case '':printf("%.1lf %.1lf = %.1lf",firstNumber, secondNumber, firstNumber secondNumber);break;case '/':printf("%.1lf / %.1lf = %.1lf",firstNumber, secondNumber, firstNumber / secondNumber);break;default:printf("Error! operator is not correct");}。
c语言项目案例
c语言项目案例C语言项目案例。
在学习C语言的过程中,很多人会感到枯燥和乏味,因为C语言作为一门结构化的程序设计语言,更多的是以算法和逻辑为主,缺乏实际的项目案例来练习和应用。
因此,本文将给大家介绍一些C语言项目案例,帮助大家更好地理解和应用C语言。
1. 学生成绩管理系统。
学生成绩管理系统是一个非常经典的C语言项目案例。
通过这个项目,你可以学习如何设计一个简单的学生成绩管理系统,包括学生信息的录入、成绩的输入和查询、成绩的统计和分析等功能。
这个项目涉及到文件操作、结构体的使用、指针的应用等内容,对于初学者来说是一个很好的练习项目。
2. 简单的图书管理系统。
图书管理系统是另一个很好的C语言项目案例。
通过这个项目,你可以学习如何设计一个简单的图书管理系统,包括图书信息的录入、借阅和归还功能、图书信息的查询和统计等功能。
这个项目涉及到文件操作、链表的应用、字符串处理等内容,对于提高学生的编程能力和综合运用C语言知识是非常有帮助的。
3. 简单的学生选课系统。
学生选课系统是另一个很好的C语言项目案例。
通过这个项目,你可以学习如何设计一个简单的学生选课系统,包括学生信息的录入、课程的添加和删除、学生选课和退课等功能。
这个项目涉及到文件操作、数组的应用、函数的设计等内容,对于提高学生的逻辑思维和编程能力是非常有帮助的。
4. 简单的学生信息管理系统。
学生信息管理系统是一个非常基础的C语言项目案例。
通过这个项目,你可以学习如何设计一个简单的学生信息管理系统,包括学生信息的录入、修改和删除、学生信息的查询和打印等功能。
这个项目涉及到文件操作、数组的应用、字符串处理等内容,对于初学者来说是一个很好的练习项目。
总结。
通过以上介绍的C语言项目案例,我们可以看到,C语言作为一门结构化的程序设计语言,可以应用到很多实际的项目中。
通过这些项目案例的学习和练习,我们不仅可以提高自己的编程能力,还可以更好地理解和应用C语言的知识。
因此,我建议大家在学习C语言的过程中,多多尝试一些实际的项目案例,这样可以更好地提高自己的编程能力和解决问题的能力。
C语言课程设计实践报告—学生选课管理系统[内附程序源代码](可编辑)
C语言大型作业实践报告计算机1001制作者:李菁华张兆丰秦恒加2011年6月题目:选修课程管理系统要求:假定有N门选修课,每门课有课程编号、名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等信息。
学生可按要求(如总学分不能少于20学分)选课。
课程信息维护,如录入、修改、删除等,课程信息用文件保存。
课程信息浏览?输出。
学生选课功能。
查询功能包括:按学分、课程性质、学生等查询。
统计功能。
统计各门课程的选修人数。
本系统要有通用性、界面美观、操作方便。
要考虑系统安全。
课程信息录入系统选修课程信息录入选修课程信息保存主程序目录选择总体设计思路(流程图):学生选课系统课程信息读入学生信息输入选课系统数据保存选修课数据维护系统添加修改删除以word格式输出密码系统密码验证系统权限限制系统密码对退出程序密码对选修课程信息查找按各种类型查找密码错3次以上具体算法流程设计思路(流程图):主程序目录选择1.学生选课系统;2.选修课程信息输出;3.选修课程信息查找;4.管理员选项;5.退出系统。
管理员选项密码验证系统读入系统时间,通过强制转换成unsigned long int型数据作为初始密码用户输入密码(若是管理员会拥有密码钥匙,得出现在的密码,该密码每分钟都会变化)密码正确进入管理员管理界面,密码不正确重新输入密码输入错误3次以上 12 3学生选课系统选修课程信息以word2003形式输出返回主菜单选修课程信息查找选修课程信息从文件内读入输入按什么查找1.课程编号;2.课程名;3.课程种类;4.总课时;5.教学课时;6实验课时;7.学分;8.开课学期;9.已选人数。
输入查找的关键字从文件内读入的课程信息与关键字逐一对比,完全匹配输出;查找完毕学生信息输入课程信息浏览不选少于这门20分选课系统课选课成功判断学分是否大于20分大于20分结束选课选课信息储存退出程序管理员模块管理员模块 3目录选择1.学生选课系统;2.选修课程信息管理系统;3.退出系统12 5学生选课系统二级目录选择1.新建选修课程信息;2.管理选修课程信息;3.统计每门课程选择人数;4.选修课程信息输出;5.回到主菜单。
学生选课管理系统 流程图
void show (char flag);//显示信息
void save (char flag,char system);//保存信息
void check(char flag);//验证密码
void commom();//公用函数集合
void a_show(char flag);//显示信息
}SUB;
//学生信息
typedef struct STU_info
{
floatSTU_totalscore;//总分
intSTU_id;//学号
intSTU_age;//年龄
intSTU_grade;//年级
intSTU_place;//名次
charSTU_name[32];//姓名
charSTU_psword[32];//密码
ADM_update_stuinfo ADM_update_tecinfo ADM_updat_myinfo返回上一级
Adddel update showAdddel update show change_mypsword
[3]:流程图
1 2 3 4
N
Y Y
Y Y Y Y
q
N
Y
1
}TEC;
//管理员信息
typedef struct ADM_info
{
char ADM_usename[8];
char ADM_psword[6];
}ADM;
ADM use[1];
#defineY'y'
#defineN'n'
#defineS_FLAG's'
《C语言程序设计》课程教学大纲
《C语言程序设计》课程教学大纲课程名称:C语言程序设计课程类别:专业选修课适用专业:食品科学与工程考核方式:考试总学时、学分: 48学时 2.5 学分其中实验学时: 16学时一、课程教学目的高级语言程序设计是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行。
本课程旨在培养学生学会分析问题的方法和基本问题的解决能力, 初步了解程序设计的技巧和方法、掌握 C 语言的基本内容及程序设计的基本方法与编程技巧,并能够运用Microsoft Visual C++ 6.0集成开发工具编写一些小程序,为以后继续学习打下基础。
二、课程教学要求本课程主要通过适当的示例, 系统、详细地讲解程序设计的基础知识、 C 程序设计语言的基本语法、编程方法和常用算法。
通过教学的各个环节使学生达到各章中所提的基本要求。
讲授时应以培养学生的程序设计实际软件开发能力和实践应用能力为侧重点。
三、先修课程无四、课程教学重、难点重点:C语言中的逻辑值及表示方式,使用while语句、do-while语句和for语句构成的三种循环结构,常用库函数的调用方法,数组应用的基本算法;难点:指针变量的定义及基本操作;函数之间地址的传递。
五、课程教学方法与教学手段以黑板讲授和多媒体教学手段相结合的课堂教学。
通过典型的示例讲解、必要的现场实际操作演示、适量的课堂练习、课后的上机编程调试以及及时地辅导答疑,在教学过程中增强师生之间的互动性,充分发挥学生在学习过程中的自主性、能动性和创造性。
六、课程教学内容第一章程序设计基本概念(1学时)1. 教学内容程序设计的基本含义,算法的基本特点,算法的重要性,结构化程序设计的三种基本结构,使用流程图表示三种基本结构。
2. 重、难点提示重点是结构化程序设计等基本概念;难点是算法的概念。
第二章 C程序设计的初步知识(2学时)1. 教学内容简单C语言程序的构成和格式、标识符、常量和变量、整型数据、实型数据、算术表达式、赋值表达式、自加、自减运算符、强制类型转换和逗号表达式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include<stdio.h>#include<stdlib.h>struct couse * head1;struct student * head2;struct couse//课程信息结构体{int num1;char name1[20];int score;int nelepeo;//课程已选人数int Melepeo;//课程人数上限struct couse * next;};struct student//学生信息结构体{int num2;char name2[20];int nelenum[50];//已选课程编号int nelen;//已选课程数量struct student * next;};void keyboardc()//录入课程子函数(从键盘录入)struct couse *p1,*p2;N1=0;p1=p2=(struct couse*)malloc(sizeof(struct couse));printf("\n课程编号\t课程名称\t学分\t课程人数上限\n"); scanf("%d%s%d%d",&p1->num1,p1->name1,&p1->score,&p1->Melepeo);p1->nelepeo=0;head1=NULL;while(p1->num1!=0&&p1->num1!='#'){N1=N1+1;if(N1==1)head1=p1;else p2->next=p1;p2=p1;p1=(struct couse * )malloc(sizeof(struct couse));scanf("%d%s%d%d",&p1->num1,p1->name1,&p1->score,&p1->Melepeo);p1->nelepeo=0;}p2->next=NULL;void inputc()//录入课程主函数{int i;printf("\n录入课程信息\n");printf("\n1.从键盘录入\n");printf("\n2.返回主菜单\n");printf("\n请选择编号(1~3):\n");scanf("%d",&i);switch(i){case(1):keyboardc();break;case(2):break;}}void insertc(struct couse *incouse)//课程信息增加子函数{struct couse *p0,*p1,*p2;p1=head1;p0=incouse;if(head1==NULL){head1=p0;p0->next=NULL;}else{while((p0->num1>p1->num1)&&(p1->next!=NULL)) {p2=p1;p1=p1->next;}if(p0->num1 <= p1->num1){if(head1==p1) head1=p0;else p2->next=p0;p0->next=p1;}else{p1->next=p0;p0->next=NULL;}}N1=N1+1;}void delc(int num1)//课程信息删除子函数{struct couse *p1,*p2;if(head1==NULL){printf("\n没有课程,无法删除!\n");goto end;}p1=head1;while(num1!=p1->num1 && p1->next!=NULL) {p2=p1;p1=p1->next;}if(num1==p1->num1){if(p1==head1) head1=p1->next;else p2->next=p1->next;printf("\n已删除该编号课程!\n");N1=N1-1;}else printf("\n无该编号的课程!\n");end:;}void managementc()//课程信息管理主函数{struct couse * incouse;int i,num1;printf("\n课程管理\n");printf("\n1.新增课程\n");printf("\n2.删除课程\n");printf("\n3.返回主菜单\n");printf("\n请选择编号(1~3):\n");scanf("%d",&i);switch(i){case(1):{incouse=(struct couse *)malloc(sizeof(struct couse));printf("\n课程编号\t课程名称\t学分\t课程人数上限\n");scanf("%d%s%d%d",&incouse->num1,incouse->name1,&incou se->score,&incouse->Melepeo);incouse->nelepeo=0;insertc(incouse);break;}case(2):{printf("\n请输入要删除课程的编号:\n");scanf("%d",&num1);delc(num1);break;}case(3):break;}}void keyboards()//录入学生信息子函数(从键盘录入){int i;struct student *p1,*p2;N2=0;p1=p2=(struct student *)malloc(sizeof(struct student));printf("\n学生学号\t学生姓名\n");scanf("%d%s",&p1->num2,p1->name2);p1->nelen=0;for(i=0;i<20;i++) p1->nelenum[i]=0;head2=NULL;while(p1->num2!=0){N2=N2+1;if(N2==1)head2=p1;else p2->next=p1;p2=p1;p1=(struct student * )malloc(sizeof(struct student));scanf("%d%s",&p1->num2,p1->name2);p1->nelen=0;for(i=0;i<20;i++) p1->nelenum[i]=0;}p2->next=NULL;}void inputs()//录入学生信息主函数{int i;printf("\n录入学生信息\n");printf("\n1.从键盘录入\n");printf("\n2.返回主菜单\n");printf("\n请选择编号(1~2):\n");scanf("%d",&i);switch(i){case(1):keyboards();break;case(2):break;}}void inserts(struct student * incouse)//学生信息增加子函数{struct student *p0,*p1,*p2;p1=head2;p0=incouse;if(head2==NULL){head2=p0;p0->next=NULL;}else{while((p0->num2 > p1->num2) && (p1->next!=NULL)){p2=p1;p1=p1->next;}if(p0->num2 <= p1->num2){if(head2==p1) head2=p0;else p2->next=p0;p0->next=p1;}else{p1->next=p0;p0->next=NULL;}}N2=N2+1;}void dels(int num2)//学生信息删除子函数struct student *p1,*p2;if(head2==NULL){printf("\n没有该学生信息,无法删除!\n");goto end;}p1=head2;while(num2!=p1->num2 && p1->next!=NULL) {p2=p1;p1=p1->next;}if(num2==p1->num2){if(p1==head2) head2=p1->next;else p2->next=p1->next;printf("\n已删除该学生信息!\n");N2=N2-1;}else printf("\n无该学号的学生!\n");end:;void managements()//学生信息管理主函数{struct student * incouse;int i,num2;printf("\n学生信息管理\n");printf("\n1.新增学生信息\n");printf("\n2.删除学生信息\n");printf("\n3.返回主菜单\n");printf("\n请选择编号(1~3):\n");scanf("%d",&i);switch(i){case(1):{incouse=(struct student *)malloc(sizeof(struct student));incouse->nelen=0;incouse->nelenum[0]=0;printf("\n学生学号\t学生姓名\n");scanf("%d%s",&incouse->num2,incouse->name2);inserts(incouse);break;}case(2):{printf("\n请输入要删除学生的学号:\n");scanf("%d",&num2);dels(num2);break;}case(3):break;}}void elect(struct student * s)//学生选课子函数(进行选课){struct couse * p;int num1,i;printf("\n请输入要选课的编号:\n");scanf("%d",&num1);for(i=0;s->nelenum[i]!=0;i++);s->nelenum[i]=num1;(s->nelen)++;p=head1;while(p->num1!=num1) p=p->next;(p->nelepeo)++;}void cheak()//学生选课子函数(查询可选课程){char e;struct couse * c;struct student * s;int num2,i,j=0,t=0;printf("\n请输入你的学号:\n");scanf("%d",&num2);s=head2;while(s->num2!=num2 && s->next!=NULL) s=s->next;if(s->num2!=num2){printf("\n不存在你的信息,请进入主菜单录入你的信息!\n");goto end;}c=head1;printf("\n你的可选课程编号:\n");while(c!=NULL){for(t=0,i=0;s->nelenum[i]!=0;i++){if(c->num1==s->nelenum[i]) t=1;}if(t==0 && (c->nelepeo!=c->Melepeo)){printf("%d ",c->num1);j++;}c=c->next;}if(j==0){printf("\n你已选完所有课程,无法再多选!\n");goto end;}printf("\n选课(y/n)?:\n");getchar();e=getchar();i=0;while(e=='y'){elect(s);printf("\n继续选课(y/n)?:\n");getchar();e=getchar();}end:;}void back(struct student * p)//退选课程{struct couse * p1;int num1,i,j;printf("\n请输入你要退掉的课程编号:\n");scanf("%d",&num1);p1=head1;while(p1->num1!=num1) p1=p1->next;for(i=0;p->nelenum[i]!=num1;i++);for(j=i;p->nelenum[j]!=0;j++)p->nelenum[j]=p->nelenum[j+1];p->nelenum[--j]=0;(p1->nelepeo)--;printf("\n退课成功!\n");}void hcheak()//学生选课子函数(查询已选课程){char c;struct couse * p0;struct student * p;int num2,i,f=0;printf("\n请输入学号:\n");scanf("%d",&num2);p=head2;while(p->num2!=num2 && p!=NULL) p=p->next;if(p==NULL){printf("\n不存在你的信息,请回主菜单录入信息:\n");goto end;}printf("\n已选课程编号:\n");if(p->nelenum[0]==0){printf("\n你还没选课!\n");goto end;}for(i=0;p->nelenum[i]!=0;i++){printf("%d\n",p->nelenum[i]);p0=head1;while(p0->num1!=p->nelenum[i]) p0=p0->next;f=f+p0->score;}printf("\n总学分:%d\n",f);printf("\n是否进行退课(y/n)?\n");getchar();c=getchar();while(c=='y'){back(p);printf("\n继续退课(y/n)?");getchar();c=getchar();(p->nelen)--;}end:;}void elective()//学生选课主函数{int i;printf("\n学生选课\n");printf("\n1.查询可选课程\n");printf("\n2.查询已选课程\n");printf("\n3.返回主菜单\n");printf("\n请输入(1~3):\n");scanf("%d",&i);switch(i){case(1):cheak();break;case(2):hcheak();break;case(3):break;}}void listc()//查看课程信息{struct couse * p;p=head1;printf("\n课程编号课程名称学分课程已选人数课程人数上限\n");while(p!=NULL){printf("%-8d%10s%6d%8d%12d\n",p->num1,p->name1,p->sco re,p->nelepeo,p->Melepeo);p=p->next;}}void lists()//查看学生信息{struct student * p;p=head2;printf("\n学生学号学生姓名已选课程数量\n");while(p!=NULL){printf("%-4d %10s %6d\n",p->num2,p->name2,p->nelen);p=p->next;}}void store()//系统信息查看主函数{int i;printf("\n系统信息查看\n");printf("\n1.查看课程信息\n");printf("\n2.查看学生信息\n");printf("\n3.返回主菜单\n");printf("\n请输入编号(1~3):\n");scanf("%d",&i);switch(i){case(1):listc();break;case(2):lists();break;case(3):break;}}int main()//主函数{system("color f0");int i;start:printf("\n******************************欢迎使用学生选课系统******************************\n");printf("\n 菜单\n");printf("\n 1.录入课程信息\n");printf("\n 2.课程信息管理\n");printf("\n 3.录入学生信息\n");printf("\n 4.学生信息管理\n");printf("\n 5.进入选课程序\n");printf("\n 6.系统信息查看\n");printf("\n 7.退出选课系统\n");printf("\n☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");printf("\n请输入菜单选项编号(1~7):\n");scanf("%d",&i);if(i<1 || i>7){printf("\n输入错误,请重输:\n");goto start;}switch(i){case(1):{system("cls");//清屏函数inputc();goto start;break;}case(2):{system("cls");managementc();goto start;break;}case(3):{system("cls");inputs();goto start;break;}case(4):{system("cls");managements();goto start;break;}case(5):{system("cls");elective();goto start;break;}case(6):{system("cls");store();goto start;break;}case(7):{system("cls");printf("\n感谢使用本系统!再见!\n");}}return(0);}。