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

歡迎訪問 生活随笔!

生活随笔

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

windows

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

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

鑒于C語言實現的通訊錄,為了鞏固C語言的基礎知識,試著寫一個簡單的學生選課系統
思路比較簡單:
1.回滾顯示各種提示信息或操作信息
2.鏈表操作。
代碼中有管理員部分功能沒有實現,學生和老師的功能基本實現,但有待加固,如果初學者可是試著去完善一下。
還可以將老師,學生的信息輸出到文件文本中,本代碼中沒有實現,但并不是很難。
代碼如下:

#include <stdio.h> #include <stdlib.h> #include <string.h>/* 總鏈表——存放所有信息 */ 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语言的学生选课系统的全部內容,希望文章能夠幫你解決所遇到的問題。

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