日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

c语言添加删除课程的思路,基于C语言实现学生选课系统

發布時間:2024/3/13 windows 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言添加删除课程的思路,基于C语言实现学生选课系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于C語言實現學生選課系統

發布時間:2020-09-03 11:41:13

來源:腳本之家

閱讀:100

作者:xiaocaidayong

鑒于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]返回主頁面

【請選擇】

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

總結

以上是生活随笔為你收集整理的c语言添加删除课程的思路,基于C语言实现学生选课系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。