100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 基于php语言的 选课系统 基于C语言实现学生选课系统

基于php语言的 选课系统 基于C语言实现学生选课系统

时间:2018-10-09 13:48:42

相关推荐

基于php语言的 选课系统 基于C语言实现学生选课系统

鉴于C语言实现的通讯录,为了巩固C语言的基础知识,试着写一个简单的学生选课系统。

思路比较简单:

1.回滚显示各种提示信息或操作信息

2.链表操作。

代码中有管理员部分功能没有实现,学生和老师的功能基本实现,但有待加固,如果初学者可是试着去完善一下。

还可以将老师,学生的信息输出到文件文本中,本代码中没有实现,但并不是很难。

代码如下:

#include

#include

#include

/* 总链表——存放所有信息 */

typedef struct Sum_Node

{

/* 学生信息 */

char stuNo[20][20];

char stuName[20][20];

char stuSex[20][20];

/* 课程信息 */

char CourseNum[20];

char CourseName[20];

char CourseTeacher[20];

struct Sum_Node *next;

}TotalNode;

/* 链表管理员——暂时不需要 */

/*typedef struct Node

{

char Num[20];

char Name[20];

char Sex[10];

struct Node *next;

}Manager_Node;*/

char studentAccount[20];

char studentPassword[20];

char teacherAccount[20];

char teacherPassword[20];

char managerAccount[20];

char managerPassword[20];

/* 定义结构体指针 */

TotalNode *pTeacher;

TotalNode *pStudent;

/* 函数的声明 */

void checkPerson_Msg(TotalNode *phead,int n);

void CreateTeacherNode(TotalNode *head);

/* 学生信息的输出-链表 */

void OutStudentNode(TotalNode *head,char *Account)

{

TotalNode *p;

int num=0;

int i,j;

int flag=0;

char Account_random[20]="";

pStudent=pTeacher; // 学生和老师用的链表是同一个

p=pStudent;

puts("******所选课程信息******");

puts("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");

if(pStudent==NULL)

{

puts("没有数据!");

puts("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");

return;

}

printf("请输入所要查询人的姓名:");

gets(Account_random); // 获取所要查询的学生姓名

if(0 == Account_random[0])

{

gets(Account_random);

}

while(p!=NULL)

{

for(j=0;j<20;j++)

{

if(0 == strcmp(p->stuName[j],Account_random))

{

printf("课程代码:%s\t",p->CourseNum);

printf("课程名称:%s\t",p->CourseName);

printf("课程老师:%s\t",p->CourseTeacher);

for(i=0;i<20;i++)

{

if(p->stuNo[i][0]!='\0')

{

num++;

}

}

printf("选课学生:%d\t",num);

num=0; // 清0操作

putchar('\n');

flag=1;

}

}

p=p->next;

}

if(0 == flag)

{

puts("没有该学生选课信息!!!!");

}

puts("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");

putchar('\n');

}

/* 学生信息的插入-链表 */

void InsertStudentNode(TotalNode *head,char *Account)

{

TotalNode *p;

int i;

char courseCode[20]="";

pStudent=pTeacher; // 学生和老师用的链表是同一个,都是链表头

p=pStudent;

if(p==NULL)

{

puts("等待教师录入选课信息,请下次再进行选择!!");

return;

}

printf("【请输入正确的课程代码】");

gets(courseCode);

if(0 == courseCode[0])

{

gets(courseCode);

}

while(p!=NULL)

{

if(0 == strcmp(p->CourseNum, courseCode))

{

for(i=0;i<20;i++)

{

if(p->stuNo[i][0] == '\0')

{

printf("请输入学号:");

gets(p->stuNo[i]);

printf("请输入姓名:");

gets(p->stuName[i]);

printf("请输入性别:");

gets(p->stuSex[i]);

puts("选课成功!!!!");

return;

}

}

}

p=p->next;

}

puts("$$$$$$选课失败,请重新选择$$$$$$");

}

/* 删除所选课程 */

void DeleteStudentNode(TotalNode *head,char *Account)

{

char coursNo[20]=""; // 课程代码

char student[20]=""; // 学生姓名

TotalNode *p;

int i;

int flag=0;

pStudent=pTeacher; // 学生和老师用的链表是同一个,都是链表头

p=pStudent;

if(pStudent==NULL)

{

puts("没选该课程,删除失败!!!!");

return;

}

printf("【输入学生姓名】");

gets(student);

if(0 == student[0])

{

gets(student);

}

printf("【请输入删除的课程代码】");

gets(coursNo);

if(0 == coursNo[0])

{

gets(coursNo);

}

while(p!=NULL)

{

if(0==strcmp(p->CourseNum,coursNo)) // 查询所要删除的课程代码

{

for(i=0;i<20;i++)

{

if(0==strcmp(p->stuName[i],student))

{

/* 初始化清0操作 */

p->stuNo[i][0]='\0';

p->stuName[i][0]='\0';

p->stuSex[i][0]='\0';

puts("删除成功!!!!");

flag=1; // 删除标志位

}

}

}

p=p->next;

}

if(0 == flag) // 如果删除成功标志位置1

{

puts("删除失败!!!!");

}

}

/* 教师信息的输出-链表 */

void OutTeacherNode(TotalNode *head)

{

TotalNode *p;

int num=0;

int i;

p=pTeacher;

puts("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");

if(pTeacher==NULL)

{

puts("没有数据!");

puts("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");

return;

}

while(p!=NULL)

{

printf("课程代码:%s\t",p->CourseNum);

printf("课程名称:%s\t",p->CourseName);

printf("课程老师:%s\t",p->CourseTeacher);

for(i=0;i<20;i++)

{

if(p->stuNo[i][0]!='\0')

{

num++;

}

}

printf("选课学生:%d\t",num);

num=0; // 清0操作

putchar('\n');

p=p->next;

}

puts("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");

putchar('\n');

}

/* 教师信息的插入-链表 */

void InsertTeacherNode(TotalNode *head)

{

TotalNode *p;

TotalNode *q;

int i;

p=pTeacher; // 教师链表的头

if(pTeacher==NULL)

{

CreateTeacherNode(head);

puts("添加成功!");

return;

}

while(p!=NULL)

{

if(p->next == NULL)

{

q=(TotalNode *)malloc(sizeof(TotalNode));

p->next=q;

q->next=NULL;

for(i=0;i<20;i++)

{

q->stuNo[i][0]='\0';

}

printf("请输入课程代码:");

gets(q->CourseNum);

if(0 == *q->CourseNum)

{

gets(q->CourseNum);

}

printf("请输入课程名称:");

gets(q->CourseName);

printf("请输入课程教师:");

gets(q->CourseTeacher);

puts("添加成功!");

break;

}

p=p->next;

}

//pTeacher=head;

}

/* 教师信息的插入-链表 */

void CreateTeacherNode(TotalNode *head)

{

int i;

pTeacher=(TotalNode *)malloc(sizeof(TotalNode));

pTeacher->next=NULL;

for(i=0;i<20;i++)

{

pTeacher->stuNo[i][0]='\0';

}

printf("请输入课程代码:");

gets(pTeacher->CourseNum);

if(0 == *pTeacher->CourseNum)

{

gets(pTeacher->CourseNum);

}

printf("请输入课程名称:");

gets(pTeacher->CourseName);

printf("请输入课程教师:");

gets(pTeacher->CourseTeacher);

//pTeacher=head;

}

/* 删除指定数据 */

void DeleteTeacherNode(TotalNode *phead)

{

char coursNo[20]=""; // 课程代码

TotalNode *p;

TotalNode *s;

p=pTeacher; // 教师链表的头

s=pTeacher;

if(NULL==pTeacher)

{

puts("没有课程信息!!!!");

return;

}

printf("【请输入删除的课程代码】");

gets(coursNo);

if(0 == coursNo[0])

{

gets(coursNo);

}

if(0 == strcmp(p->CourseNum,coursNo))

{

pTeacher=p->next;

puts("删除成功!!");

return;

}

while(p != NULL)

{

if(0 == strcmp(p->CourseNum,coursNo))

{

s->next=p->next;

puts("删除成功!!");

return;

}

s=p;

p=p->next;

}

}

/* 功能显示 */

void display(TotalNode *phead)

{

int n;

while(1)

{

puts("=========请选择登录页面=========");

puts("[1]学生登录");

puts("[2]教师登录");

puts("[3]管理员登录");

puts("[4]退出系统");

while(1) // 循环检查输入的值是否正确

{

printf("【请选择】");

scanf("%d",&n);

if(n>4 || n<1)

{

puts("输入有误,请选择正确的选项:");

continue; // 输入不正确,重新输入

}

else

{

break; // 输入正确,退出循环

}

}

if( 1 == n ) // 学生登录系统

{

puts("=========欢迎登录学生系统=========");

printf("请输入账号和密码\n");

checkPerson_Msg(phead,1);

}

if( 2 == n ) // 老师登录系统

{

puts("=========欢迎登录教师系统=========");

printf("请输入账号和密码\n");

checkPerson_Msg(phead,2);

}

if( 3 == n ) // 管理员登录系统

{

puts("=========欢迎登录管理员系统=========");

printf("请输入账号和密码\n");

checkPerson_Msg(phead,3);

}

if( 4 == n ) // 退出系统

{

puts("@@@@@@@@@欢迎下次登录,再见!!!@@@@@@@@@");

exit(0);

}

}

}

/* 学生登录后的操作,查询、修改 */

void Student_Mng(TotalNode *phead, char *Account,int n)

{

switch(n)

{

case 1: // 查询

OutStudentNode(phead,Account);

break;

case 2: // 添加

InsertStudentNode(phead,Account);

break;

case 3: // 删除

DeleteStudentNode(phead,Account);

break;

case 4: ; // 返回主页面,上层已经实现,此处不需要考虑

break;

default:

puts("异常!");

break;

}

}

/* 教师登录后的操作,查询、修改 */

void Teacher_Mng(TotalNode *phead, char *Account,int n)

{

switch(n)

{

case 1: // 查询学生选课情况

OutTeacherNode(phead);

break;

case 2: // 添加和删除课程信息

InsertTeacherNode(phead);

break;

case 3:

DeleteTeacherNode(phead);

break;

case 4:

break; // 上层实现其功能

default:

puts("异常!");

break;

}

}

/* 管理员登录后的操作,查询、修改 */

void Manager_Mng(char *Account, int n)

{

switch(n)

{

case 1:

break;

case 2:

break;

case 3:

break;

default:

puts("异常!");

break;

}

}

/* 显示各功能登录后的信息 */

void display_Detailed(TotalNode *phead ,char *Account,int n)

{

int in;

switch(n)

{

case 1:

while(1)

{

printf("=========欢迎%s同学=========\n",Account);

puts("[1]查询已选课程"); // 查询自己所选的所有课程包括:课程代码、课程名称、任课老师

puts("[2]添加课程"); // 增加所选课程

puts("[3]删除所选课程"); // 删除所选课程

puts("[4]返回主页面");

printf("【请选择】");

scanf("%d",&in);

if(4 == in)

{

return; // 返回上层登录页面

}

Student_Mng(pStudent,Account, in);

//puts("[4]");

}

break;

case 2:

while(1)

{

printf("=========欢迎%s老师=========\n",Account);

puts("[1]查询学生选课信息"); //

puts("[2]添加老师课程信息"); //

puts("[3]删除老师课程信息"); //

puts("[4]返回主页面");

printf("【请选择】");

scanf("%d",&in);

if(4 == in)

{

return; // 返回上层登录页面

}

Teacher_Mng(pTeacher,Account, in);

}

//puts("[4]");

break;

case 3:

printf("=========欢迎%s同志=========\n",Account);

puts("[1]查询学生所选课程信息");

puts("[2]修改选课信息");

puts("[3]返回主页面");

scanf("%d",&in);

Manager_Mng(Account, in);

//puts("[4]");

break;

default:

puts("异常!");

break;

}

}

/* 验证账号密码 */

void checkAccountandPassword(TotalNode *phead ,char *Account, char *Password,int n)

{

while(1)

{

gets(Account);

/**/

if(0 == strcmp(Account,"wantin"))

{

while(1)

{

printf("请输入密码:");

gets(Password);

if(0 == strcmp(Password,"123456"))

{

display_Detailed(phead,Account, n);

return;

}

}

}

else

{

printf("请输入账号:");

}

}

}

/* 校验学生、教师、管理员的账号 密码 */

void checkPerson_Msg(TotalNode *phead , int n)

{

switch(n)

{

case 1: // 学生登录 char studentAccount[20]; char studentPassword[20];

checkAccountandPassword(phead, studentAccount,studentPassword,n);

break;

case 2: // 教师登录 char teacherAccount[20]; char teacherPassword[20];

checkAccountandPassword(phead, teacherAccount,teacherPassword,n);

break;

case 3: // 管理员登录 char managerAccount[20]; char managerPassword[20];

checkAccountandPassword(phead, managerAccount,managerPassword,n);

break;

default:

puts("异常!");

break;

}

}

/* */

void main()

{

TotalNode *phead=NULL;

display(phead);

}

大家可以根据下面的操作来帮助读懂这段代码。

操作结果如下:

=========请选择登录页面=========

[1]学生登录

[2]教师登录

[3]管理员登录

[4]退出系统

【请选择】2

=========欢迎登录教师系统=========

请输入账号和密码

请输入账号:wantin

请输入密码:123456

=========欢迎wantin老师=========

[1]查询学生选课信息

[2]添加老师课程信息

[3]删除老师课程信息

[4]返回主页面

【请选择】2

请输入课程代码:123

请输入课程名称:C语言

请输入课程教师:王艇

添加成功!

=========欢迎wantin老师=========

[1]查询学生选课信息

[2]添加老师课程信息

[3]删除老师课程信息

[4]返回主页面

【请选择】2

请输入课程代码:456

请输入课程名称:Java

请输入课程教师:王艇

添加成功!

=========欢迎wantin老师=========

[1]查询学生选课信息

[2]添加老师课程信息

[3]删除老师课程信息

[4]返回主页面

【请选择】2

请输入课程代码:789

请输入课程名称:PHP

请输入课程教师:王艇

添加成功!

=========欢迎wantin老师=========

[1]查询学生选课信息

[2]添加老师课程信息

[3]删除老师课程信息

[4]返回主页面

【请选择】1

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

课程代码:123 课程名称:C语言 课程老师:王艇 选课学生:0

课程代码:456 课程名称:Java 课程老师:王艇 选课学生:0

课程代码:789 课程名称:PHP 课程老师:王艇 选课学生:0

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

=========欢迎wantin老师=========

[1]查询学生选课信息

[2]添加老师课程信息

[3]删除老师课程信息

[4]返回主页面

【请选择】4

=========请选择登录页面=========

[1]学生登录

[2]教师登录

[3]管理员登录

[4]退出系统

【请选择】1

=========欢迎登录学生系统=========

请输入账号和密码

请输入账号:wantin

请输入密码:123456

=========欢迎wantin同学=========

[1]查询已选课程

[2]添加课程

[3]删除所选课程

[4]返回主页面

【请选择】1

******所选课程信息******

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

请输入所要查询人的姓名:王艇

没有该学生选课信息!!!!

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

=========欢迎wantin同学=========

[1]查询已选课程

[2]添加课程

[3]删除所选课程

[4]返回主页面

【请选择】3

【输入学生姓名】王艇

【请输入删除的课程代码】123

删除失败!!!!

=========欢迎wantin同学=========

[1]查询已选课程

[2]添加课程

[3]删除所选课程

[4]返回主页面

【请选择】2

【请输入正确的课程代码】123

请输入学号:110

请输入姓名:王艇

请输入性别:男

选课成功!!!!

=========欢迎wantin同学=========

[1]查询已选课程

[2]添加课程

[3]删除所选课程

[4]返回主页面

【请选择】1

******所选课程信息******

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

请输入所要查询人的姓名:王艇

课程代码:123 课程名称:C语言 课程老师:王艇 选课学生:1

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

=========欢迎wantin同学=========

[1]查询已选课程

[2]添加课程

[3]删除所选课程

[4]返回主页面

【请选择】4

=========请选择登录页面=========

[1]学生登录

[2]教师登录

[3]管理员登录

[4]退出系统

【请选择】2

=========欢迎登录教师系统=========

请输入账号和密码

请输入账号:wantin

请输入密码:123456

=========欢迎wantin老师=========

[1]查询学生选课信息

[2]添加老师课程信息

[3]删除老师课程信息

[4]返回主页面

【请选择】1

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

课程代码:123 课程名称:C语言 课程老师:王艇 选课学生:1

课程代码:456 课程名称:Java 课程老师:王艇 选课学生:0

课程代码:789 课程名称:PHP 课程老师:王艇 选课学生:0

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

=========欢迎wantin老师=========

[1]查询学生选课信息

[2]添加老师课程信息

[3]删除老师课程信息

[4]返回主页面

【请选择】4

=========请选择登录页面=========

[1]学生登录

[2]教师登录

[3]管理员登录

[4]退出系统

【请选择】1

=========欢迎登录学生系统=========

请输入账号和密码

请输入账号:wantin

请输入密码:123456

=========欢迎wantin同学=========

[1]查询已选课程

[2]添加课程

[3]删除所选课程

[4]返回主页面

【请选择】2

【请输入正确的课程代码】456

请输入学号:110

请输入姓名:王艇

请输入性别:男

选课成功!!!!

=========欢迎wantin同学=========

[1]查询已选课程

[2]添加课程

[3]删除所选课程

[4]返回主页面

【请选择】1

******所选课程信息******

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

请输入所要查询人的姓名:王艇

课程代码:123 课程名称:C语言 课程老师:王艇 选课学生:1

课程代码:456 课程名称:Java 课程老师:王艇 选课学生:1

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

=========欢迎wantin同学=========

[1]查询已选课程

[2]添加课程

[3]删除所选课程

[4]返回主页面

【请选择】2

【请输入正确的课程代码】123

请输入学号:112

请输入姓名:王五

请输入性别:男

选课成功!!!!

=========欢迎wantin同学=========

[1]查询已选课程

[2]添加课程

[3]删除所选课程

[4]返回主页面

【请选择】1

******所选课程信息******

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

请输入所要查询人的姓名:王艇

课程代码:123 课程名称:C语言 课程老师:王艇 选课学生:2

课程代码:456 课程名称:Java 课程老师:王艇 选课学生:1

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

=========欢迎wantin同学=========

[1]查询已选课程

[2]添加课程

[3]删除所选课程

[4]返回主页面

【请选择】1

******所选课程信息******

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

请输入所要查询人的姓名:王五

课程代码:123 课程名称:C语言 课程老师:王艇 选课学生:2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

=========欢迎wantin同学=========

[1]查询已选课程

[2]添加课程

[3]删除所选课程

[4]返回主页面

【请选择】4

=========请选择登录页面=========

[1]学生登录

[2]教师登录

[3]管理员登录

[4]退出系统

【请选择】2

=========欢迎登录教师系统=========

请输入账号和密码

请输入账号:wantin

请输入密码:123456

=========欢迎wantin老师=========

[1]查询学生选课信息

[2]添加老师课程信息

[3]删除老师课程信息

[4]返回主页面

【请选择】1

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

课程代码:123 课程名称:C语言 课程老师:王艇 选课学生:2

课程代码:456 课程名称:Java 课程老师:王艇 选课学生:1

课程代码:789 课程名称:PHP 课程老师:王艇 选课学生:0

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

=========欢迎wantin老师=========

[1]查询学生选课信息

[2]添加老师课程信息

[3]删除老师课程信息

[4]返回主页面

【请选择】

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。