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

合集下载

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语言代码

(完整word版)教务管理系统C语言代码
studentNumber2.close();
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 语言学生教务管理系统代码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语言的教务管理系统(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程序学生管理系统以下是用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语言程序示例:```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语言项目案例,帮助大家更好地理解和应用C语言。

1. 学生成绩管理系统。

学生成绩管理系统是一个非常经典的C语言项目案例。

通过这个项目,你可以学习如何设计一个简单的学生成绩管理系统,包括学生信息的录入、成绩的输入和查询、成绩的统计和分析等功能。

这个项目涉及到文件操作、结构体的使用、指针的应用等内容,对于初学者来说是一个很好的练习项目。

2. 简单的图书管理系统。

图书管理系统是另一个很好的C语言项目案例。

通过这个项目,你可以学习如何设计一个简单的图书管理系统,包括图书信息的录入、借阅和归还功能、图书信息的查询和统计等功能。

这个项目涉及到文件操作、链表的应用、字符串处理等内容,对于提高学生的编程能力和综合运用C语言知识是非常有帮助的。

3. 简单的学生选课系统。

学生选课系统是另一个很好的C语言项目案例。

通过这个项目,你可以学习如何设计一个简单的学生选课系统,包括学生信息的录入、课程的添加和删除、学生选课和退课等功能。

这个项目涉及到文件操作、数组的应用、函数的设计等内容,对于提高学生的逻辑思维和编程能力是非常有帮助的。

4. 简单的学生信息管理系统。

学生信息管理系统是一个非常基础的C语言项目案例。

通过这个项目,你可以学习如何设计一个简单的学生信息管理系统,包括学生信息的录入、修改和删除、学生信息的查询和打印等功能。

这个项目涉及到文件操作、数组的应用、字符串处理等内容,对于初学者来说是一个很好的练习项目。

总结。

通过以上介绍的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 a_seek_tecinfo();//查找老师信息
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语言程序设计》课程教学大纲课程名称:C语言程序设计课程类别:专业选修课适用专业:食品科学与工程考核方式:考试总学时、学分: 48学时 2.5 学分其中实验学时: 16学时一、课程教学目的高级语言程序设计是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行。

本课程旨在培养学生学会分析问题的方法和基本问题的解决能力, 初步了解程序设计的技巧和方法、掌握 C 语言的基本内容及程序设计的基本方法与编程技巧,并能够运用Microsoft Visual C++ 6.0集成开发工具编写一些小程序,为以后继续学习打下基础。

二、课程教学要求本课程主要通过适当的示例, 系统、详细地讲解程序设计的基础知识、 C 程序设计语言的基本语法、编程方法和常用算法。

通过教学的各个环节使学生达到各章中所提的基本要求。

讲授时应以培养学生的程序设计实际软件开发能力和实践应用能力为侧重点。

三、先修课程无四、课程教学重、难点重点:C语言中的逻辑值及表示方式,使用while语句、do-while语句和for语句构成的三种循环结构,常用库函数的调用方法,数组应用的基本算法;难点:指针变量的定义及基本操作;函数之间地址的传递。

五、课程教学方法与教学手段以黑板讲授和多媒体教学手段相结合的课堂教学。

通过典型的示例讲解、必要的现场实际操作演示、适量的课堂练习、课后的上机编程调试以及及时地辅导答疑,在教学过程中增强师生之间的互动性,充分发挥学生在学习过程中的自主性、能动性和创造性。

六、课程教学内容第一章程序设计基本概念(1学时)1. 教学内容程序设计的基本含义,算法的基本特点,算法的重要性,结构化程序设计的三种基本结构,使用流程图表示三种基本结构。

2. 重、难点提示重点是结构化程序设计等基本概念;难点是算法的概念。

第二章 C程序设计的初步知识(2学时)1. 教学内容简单C语言程序的构成和格式、标识符、常量和变量、整型数据、实型数据、算术表达式、赋值表达式、自加、自减运算符、强制类型转换和逗号表达式。

学生选课管理系统c语言

学生选课管理系统c语言

学生选课管理系统简介学生选课管理系统是一种用于学生选课和管理课程的系统。

通过该系统,学生可以方便地选取自己感兴趣的课程,并进行课程的管理和查询,同时教务部门可以通过系统进行课程的发布、修改和管理。

功能需求学生选课管理系统需要具备以下功能:1.学生注册和登录功能:学生需要先注册账号,然后通过账号登录系统。

2.学生选课功能:学生通过系统浏览可选的课程列表,并选择自己感兴趣的课程进行选课。

3.课程查询功能:学生可以查询已选和未选课程的详细信息,包括课程名称、授课教师、上课时间等。

4.课程管理功能:教务部门可以通过系统添加、修改和删除课程信息,包括课程名称、授课教师、上课时间等。

5.学生管理功能:教务部门可以通过系统管理学生信息,包括学生姓名、学号、选课情况等。

6.成绩管理功能:教务部门可以通过系统录入学生的成绩,并提供学生成绩查询功能。

7.课程评价功能:学生可以对已修完的课程进行评价,包括评分和评论。

8.学分统计功能:系统可以根据学生的选课情况自动计算学分和学分绩点,并提供查询功能。

技术实现为了实现学生选课管理系统,可以使用C语言进行开发。

以下是一些技术实现的建议:1.数据存储:可以使用文件系统来存储学生、课程和成绩等信息。

可以使用文本文件或二进制文件存储数据,通过文件操作函数进行读写。

2.用户界面:可以使用命令行界面或图形界面来实现用户的交互。

使用C语言的终端输出函数可以实现简单的命令行界面,使用图形界面库可以实现更复杂的图形界面。

3.数据结构:可以使用结构体来表示学生、课程和成绩等信息,通过数组或链表等数据结构进行管理。

4.用户认证:可以使用用户名和密码进行用户的身份验证。

可以将用户信息保存在文件中,通过比对输入的用户名和密码来验证用户身份。

5.查询和排序:可以使用各种算法来实现课程查询和排序功能。

例如,可以使用线性搜索来查询课程信息,使用冒泡排序或快速排序来对课程进行排序。

系统流程以下是学生选课管理系统的基本流程:1.学生注册和登录:学生在系统中注册账号,并通过账号登录系统。

C语言课程设计—学生选课系统

C语言课程设计—学生选课系统

武汉理工大学华夏学院课程设计报告书课程名称:C课程设计题目:学生选课系统程序设计系名:信息工程系专业班级:姓名:学号:指导教师:成绩:2016年 3 月4日课程设计任务书学生姓名:专业班级:指导教师:工作单位:设计题目:学生选课系统程序设计初始条件:学生选课系统能提供学生选课,以及学生和课程信息管理等一系列功能。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、任务描述假定有n门课程,每门课程有课程编号,课程名称,课程性质,学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于15)自由选课。

试设计一个选修课程系统,使之能提供以下功能:(1)系统以菜单方式工作(2)课程信息和学生选课信息录入功能(课程信息用文件保存)(3)课程信息浏览功能(4)查询功能(5)按学分查询(6)某门课程学生选修情况(可选项)2、本课程涉及的知识点变量的定义、输入和输出函数、结构体类型的定义、结构体数组、循环语句、选择语句,文件的操作等。

设计报告撰写格式要求:一、课程设计说明书(或报告书)正文内容【设计题目】例如:学生选课系统【开发环境】硬件环境:微机系列,内存在1G以上,软件环境:Microsoft Windows XP 【开发工具】 Microsoft Visual C++ 6.0【完成时间】 2016-2 -29-----2016.3.4【需求分析】分析阐述用户的需要以及要实现的程序应具有什么样的功能。

【系统总体设计】在明确了所要解决的问题后,很自然地就要提出自己解决问题的思路和方案。

让读者了解方案的总体设计和关键技术。

要阐述自己的设计方案,说明为什么要选择或设计这样的方案。

具体包括:系统总的设计思路,功能模块图;使用的设计软硬件环境和开发技术和平台等。

【系统详细设计】在这部分中,应该具有相关关键实现技术(如使用什么库函数,使用什么循环结构等)。

【系统调试和测试】调试:介绍设计过程中遇到的问题和解决方法。

学生管理系统c语言源代码

学生管理系统c语言源代码

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

学生选课系统java代码

学生选课系统java代码

学生选课系统java代码学生选课系统是一个常见的教务管理系统,它允许学生在规定的时间内选择自己感兴趣的课程。

在这个系统中,学生可以浏览课程目录、查看课程信息、进行选课和退课等操作。

下面是一个使用Java编写的学生选课系统的代码实现。

## 1. 数据模型设计我们需要设计几个基本的数据模型来表示学生、课程和选课记录。

### 1.1 学生类(Student)```javapublic class Student {private int id; // 学号private String name; // 姓名private List<Course> courses; // 已选课程public Student(int id, String name) {this.id = id; = name;this.courses = new ArrayList<>();}// 省略 getter 和 setter 方法}```### 1.2 课程类(Course)```javapublic class Course {private int courseId; // 课程编号private String courseName; // 课程名称private int capacity; // 选课容量private List<Student> students; // 已选该门课程的学生列表public Course(int courseId, String courseName, int capacity) { this.courseId = courseId;this.courseName = courseName;this.capacity = capacity;this.students = new ArrayList<>();}// 省略 getter 和 setter 方法}```### 1.3 选课记录类(Enrollment)```javapublic class Enrollment {private Student student; // 学生private Course course; // 课程public Enrollment(Student student, Course course) {this.student = student;this.course = course;}// 省略 getter 和 setter 方法}```## 2. 学生选课系统实现接下来,我们可以开始实现学生选课系统的功能了。

7个大一C语言必学的程序C语言经典代码大全

7个大一C语言必学的程序C语言经典代码大全

7个大一C语言必学的程序C语言经典代码大全7个大一C语言必学的程序C语言是计算机专业的基础语言之一,作为大一新生,学好C语言对于你未来的学习和工作都非常重要。

以下是7个大一C语言必学的程序,通过学习和理解这些经典代码,你将对C语言的基础知识有更深入的了解,并能够应用到实际的编程中。

程序一:Hello World#include <stdio.h>int main() {printf("Hello World!\n");return 0;}这是C语言中最经典的程序,它将在屏幕上打印出"Hello World!"。

通过这个简单的程序,你将学会如何使用printf函数打印输出,并理解main函数的作用和返回值。

程序二:求和程序#include <stdio.h>int main() {int a = 10;int b = 20;int sum = a + b;printf("和为:%d\n", sum);return 0;}这个程序演示了如何进行加法运算,并将结果打印输出。

通过这个程序,你将学会如何定义变量,使用赋值运算符,并理解printf函数的格式化输出。

程序三:判断奇偶数#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数。

\n", num);} else {printf("%d是奇数。

\n", num);}return 0;}这个程序演示了如何判断一个整数是奇数还是偶数。

通过这个程序,你将学会如何使用if语句进行条件判断,并了解scanf函数的使用方法。

C语言程序设计

C语言程序设计

学生成绩管理系统----C语言程序设计课程设计C语言是一门通用的计算机语言,因为有着良好的跨平台性,有标准的规格,可以在电脑平台、单片机以及超级电脑上编译运行,正因为C语言的广泛应用,它成为了大学计算机相关专业的必修科目,也成了一些其它理工科类专业的选修课,学期结束,避免不了要做C 语言程序设计的课程设计,虽然C语言已发展到了C++14,但在大学的基础课上普遍还是学习C语言,今天小编就以学生成绩管理系统为例,介绍下如何来做C语言程序设计的课程设计。

一、弄清课程设计的目的之所以要做课程设计,是为了让我们通过一个项目的设计和实现,帮助我们梳理所学知识,并引导我们学以致用,应用它们去解决实际问题。

在这个过程中,可以促进我们进一步掌握C语言的基础语法知识,提高阅读、编写C语言程序的能力,同时,通过实践,掌握用C 语言解决具体问题的一般方法和步骤,并在调试程序的过程中,提高解决问题的能力,为进一步学习其它语言打好基础。

弄清楚这个目的后,我们就可以正确对待学习,通过学习提高自已的能力,而不是把它当做一个任务,随便应付了事。

二、确立课题,明确设计任务以学生成绩管理系统为例,我们先要确立课题,即用户需求,明确通过程序设计需要实现的功能,具体设计的要求如下:1、由键盘输入20个学生的姓名,学号,某门课程的学习成绩(10~99分)。

2、将分数由低到高排序(用直接排序法和冒泡法),并显示学生姓名和对应的分数。

3、用线性搜索法检索某个学生的成绩(输入姓名,显示成绩)。

4、用二分法检索某个学生的成绩(输入学号,显示成绩)5、设计个性化的界面。

三、绘制程序设计框图根据程序设计的任务,确定设计框图;四、梳理C语言重点知识要点结构化程序设计的方法;函数的定义、函数和模块设计;数组、指针、结构体的应用;编译调试各个函数,实现正确的联调。

五、程序设计#include "stdafx.h"#include <stdio.h>#include <string.h>#define TOTAL 20typedef struct {char name[30]; // 姓名int score; // 分数} REC; // 学生记录类型// 全局变量20个学生记录REC rec[20];// 交换两个记录值void Swap(REC *rec1, REC *rec2){REC r; // 临时变量memcpy(&r, rec1, sizeof(REC)); // 先拷贝到临时变量memcpy(rec1, rec2, sizeof(REC)); // 复制rec2到rec1memcpy(rec2, &r, sizeof(REC)); // 复制临时变量值到rec2 }// 复制记录值void CopyRec(REC *from, REC *to) {memcpy(to, from, sizeof(REC));}// 冒泡排序, 按分数void SortByScore(){for (int i = 0; i < TOTAL; i++) {for (int j = i + 1; j < TOTAL; j++) {if (rec[i].score > rec[j].score) { // 若分数高Swap(&rec[i], &rec[j]); // 则交换}}}}// 插入排序,按分数void InsertionSort(){int i, j, first = 0, last = TOTAL - 1;REC temp;for (i = first + 1; i <= last; i++) {CopyRec(&rec[i], &temp);for (j = i - 1; j >= first && rec[j].score > temp.score; j--) { CopyRec(&rec[j], &rec[j + 1]);}CopyRec(&temp, &rec[j + 1]);}}// 显示/选择菜单int Menu(){int n = 0;while (n < 1 || n > 6) {printf("\n\n 1. 输入学生资料\n"" 2. 输出成绩列表(冒泡法)\n"" 3. 输出成绩列表(插入法)\n"" 4. 按姓名检索(顺序)\n"" 5. 按姓名检索(二分法)\n"" 6. 退出\n""请选择[1-6]: ");scanf("%d", &n);}return n;}// 输入20个学生记录void Input(){FILE *file;for (int i = 0; i < TOTAL; i++) {printf("输入学生%d资料:\n", i + 1);printf(" 姓名: ");scanf("%s", &(rec[i].name));printf(" 分数: ");scanf("%d", &(rec[i].score));}file = fopen(".\\data", "wb+");if (file) {fwrite(&rec, sizeof(rec), 1, file);fclose(file);}}// 输出学生记录,冒泡法void PrintList_Bubble(){SortByScore();printf("\n\n学生成绩列表:\n");for (int i = 0; i < TOTAL; i++) {printf("%10s %d\n", rec[i].name, rec[i].score);}}// 输出学生记录, 插入法void PrintList_Insertion(){InsertionSort();printf("\n\n学生成绩列表:\n");for (int i = 0; i < TOTAL; i++) {printf("%10s %d\n", rec[i].name, rec[i].score);}}// 顺序检索void SearchByName(){char name[30];printf("\n请输入学生姓名: ");scanf("%s", &name);for (int i = 0; i < TOTAL; i++) {if (strcmp(name, rec[i].name) == 0) {printf("检索结果【学生姓名: %s, 分数: %d】", rec[i].name, rec[i].score);return;}}printf("检索结果【没有找到该学生信息】\n");}// 二分法检索void SearchById(){char name [30];int left = 0, right = TOTAL - 1, mid = (left + right) / 2;printf("\n请输入学生姓名: ");scanf("%s", &name);while (left < right && strcmp(rec[mid].name, name) != 0) { // 二分法查找if (strcmp(name, rec[mid].name) <0) {left = mid + 1;} else if (strcmp(name, rec[mid].name) > 0) {right = mid - 1;}mid = (left + right) / 2;}if (strcmp(rec[mid].name, name) == 0) {printf("检索结果【学生姓名: %s, 分数: %d】", rec[mid].name, rec[mid].score);} else {printf("检索结果【没有找到该学生信息】\n");}}// 主程序int main(int argc, char *argv[]){int selected;FILE *file = fopen(".\\data", "rb+");if (file) {fread(&rec, sizeof(rec), 1, file);}printf("学生成绩管理\n");do {selected = Menu();switch (selected) {case 1: Input(); break;case 2: PrintList_Bubble(); break;case 3: PrintList_Insertion(); break;case 4: SearchByName(); break;case 5: SearchById(); break;}} while (selected != 6);return 0;}。

C语言实验报告-实验2 顺序结构程序设计

C语言实验报告-实验2 顺序结构程序设计

实验2 顺序结构程序设计一、实验目的1. 学会使用自然语言或伪代码描述算法2. 掌握变量、运算符、表达式的使用3. 熟悉顺序结构程序中语句的执行过程4. 掌握标准输入流对象cin及标准输出流对象二、实验内容编写程序在屏幕上显示如图2-1所示的菜单。

图2-1 学生选课管理系统主界面实验步骤:范例:1)在VS2008中新建项目,在项目中新建C++源文件,输入下面程序,并且编译、连接。

//***************************************************************//* 程序名:实训2_1.cp *//* 主要功能: *//* 显示主菜单,并获取用户输入的模块编号 *//***************************************************************#include <iostream> // 包含输入输出接口文件using namespace std; // 引用标准命名空间void mainMenu();int main() // 定义主函数{ // 主函数开始mainMenu();return 0;}void mainMenu(){system("cls");cout<<"\n\n\n\n\n";cout<<"\t\t|---------------学生选课系统(学生版)------------|\n";cout<<"\t\t|\t 0. 退出 |\n";cout<<"\t\t|\t 1. 学生信息管理 |\n";cout<<"\t\t|\t 2. 教师信息管理 |\n";cout<<"\t\t|\t 3. 课程信息管理 |\n";cout<<"\t\t|\t 4. 学生选课管理 |\n";cout<<"\t\t|\t 5. 学生成绩管理 |\n";cout<<"\t\t|\t 6. 信息统计模块 |\n";cout<<"\t\t|-----------------------------------------------|\n\n";cout<<"\t\t\t请输入模块编号(0-6):";}2)运行范例所示程序,观察输出结果实训1要求编写程序在屏幕上显示如图2-2所示的菜单。

学生选课系统说明书

学生选课系统说明书

*******************实践教学*******************兰州理工大学计算机与通信学院2011年春季学期算法与数据结构课程设计题目:学生选课系统专业班级:计算机(4)班姓名:杨国亮学号:09240415指导教师:张其文成绩:_______________目录摘要 (1)前言 (2)正文 (3)1.采用类C语言定义相关的数据类型 (3)2.各模块的伪码算法 (3)3.函数的调用关系图 (6)4.调试分析 (7)5.测试结果 (8)6.源程序(带注释) (14)总结 (16)参考文献 (17)致谢 (18)附件Ⅰ部分源程序代码 (19)摘要选课系统是针对在校学生和教师使用,从学生的角度来说,由于学校教学制度的改革,现在大部分高等院校开始实行的是学生的自主选课模式,传统的教学模式(学生按照学校安排好的课程上课)已经不能适应新型的教学手段,如果仍然通过纸上的方式选课,一方面浪费的大量的人力、物力资源,另一方面浪费时间以及在人为的统计过程中不可避免出现的差错等情况。

随着高校人数的增多,这种弊端会越来越多的暴露出来。

因此,学生只要在计算机前输入自己的个人选课信息即可完成原来几倍的作业量。

从教师的角度来说,同样是节省了大量的工作量,由于教师提出代课申请完成课程发布的工作较学生选课而言更加的复杂,因此通过进行课程发布能大幅度的减少教师的工作量,减少错误的发生几率。

作为教师,也只要通过自己的电脑来操作即可,不用再奔波于教务处和办公室之间。

选课管理系统,它是结构化的系统,它能更有效,更快速的实现学生选课的管理过程,而且管理的安全机制也更完善,这样就可以为学生的管理花费更少的人力和物力资源。

随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨。

以往的选课方法是随堂报名。

这种方法虽然直接,但是造成选课的盲目性和教务处处理数据的繁重性。

为了减轻教务处工作,以及每个学生更好的选择自己所喜欢的科目。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);}。

相关文档
最新文档