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

歡迎訪問 生活随笔!

生活随笔

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

windows

C小项目 —— 学生信息管理系统

發(fā)布時間:2023/12/20 windows 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C小项目 —— 学生信息管理系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
C小項目 —— 學生信息管理系統(tǒng)
實現(xiàn)功能: 1. 錄入學生信息
2. 顯示所有學生信息
3. 按學號查詢學生信息
4. 按姓名查詢學生信息(支持模糊查詢)
5. 按年齡查詢學生信息
6. 修改學生信息
7. 刪除學生信息
8. 保存學生信息到文件
9. 從文件載入學生信息
10. 退出系統(tǒng) ? ? ? ? 使用鏈表的方式,實現(xiàn)細節(jié)很簡單,就是鏈表的一些基本操作(創(chuàng)建,刪除結(jié)點,增加結(jié)點,查找結(jié)點等);還有很多地方是可以拓展的(比如使用排序按學號順序打印,或者按分數(shù)高低打印等);使用的是codeblock編譯器。 #include <stdio.h> #include <stdlib.h> #include <string.h>typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t;#define STUDENT_NUMBER 20 // 學號最長20 #define STUDENT_NAME 20 // 姓名最長20 #define STUDENT_SUBJECT 3 // 假設只有三科 #define FILENAME_SIZE 100 // 待保存的文件路徑typedef struct student {char num[STUDENT_NUMBER]; /* 學號 */char name[STUDENT_NAME]; /* 姓名 */char sex; /* 性別,'1'->男, '0'->女 */uint8_t age; /* 年齡 */uint8_t score[STUDENT_SUBJECT]; /* 三科的成績 */uint16_t sum; /* 總成績 */struct student *next; } student_t;student_t *head = NULL; static uint32_t count = 1; // 系統(tǒng)中學生個數(shù)void menu() {printf("\n=========學生信息管理系統(tǒng)========\n");printf("1. 錄入學生信息\n");printf("2. 顯示所有學生信息\n");printf("3. 按學號查詢學生信息\n");printf("4. 按姓名查詢學生信息(支持模糊查詢)\n");printf("5. 按年齡查詢學生信息\n");printf("6. 修改學生信息\n");printf("7. 刪除學生信息\n");printf("8. 保存學生信息到文件\n");printf("9. 從文件載入學生信息\n");printf("10. 退出系統(tǒng)\n"); }// 錄入學生信息:初始化鏈表和加入鏈表的過程 void create(void) {int i, flag = 0;char tmp[10];student_t *point, *q;while(1){if(1 != count){printf("是否繼續(xù)錄入(y/n):");gets(tmp);if(strlen(tmp) > 10){break;}if(strcmp(tmp, "n") == 0){break;}}point = (student_t *)malloc(sizeof(student_t));printf("\n====請輸入第%d個學生信息====\n", count);printf("學號:");gets(point->num);q = head;while(NULL != q){if(atoi(q->num) == atoi(point->num)){flag = 1;printf("學號輸入重復或者不合格,請重新輸入...\n");break;}q = q->next;}if(1 == flag){continue;}printf("姓名:");gets(point->name);printf("性別,('1'->男, '0'->女):");point->sex = getchar();getchar();printf("年齡:");gets(tmp);point->age = atoi(tmp);printf("三門課程的成績:\n");point->sum = 0;for(i = 0; i < STUDENT_SUBJECT; ++i){printf("第%d個成績:", i + 1);gets(tmp);point->score[i] = atoi(tmp);point->sum += point->score[i];}printf("總成績:%d\n", point->sum);point->next = head; // 核心代碼就這兩句head = point;count++;}printf("信息錄入完畢,按任意鍵繼續(xù)……");getch(); }// 顯示所有學生的信息:遍歷鏈表打印輸出的過程 void display_all(void) {student_t *point = head;printf("學號\t姓名\t性別\t年齡\t三門課程的成績\t\t總成績\n");while(NULL != point){if(0 == point->age){point = point->next;continue;}printf("%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\n", point->num, point->name, point->sex == '1' ? "男" : "女", point->age, *(point->score), *(point->score + 1), *(point->score + 2), point->sum);point = point->next;}printf("信息顯示完畢,按任意鍵繼續(xù)……");getch(); }// 通過學號查找:唯一性 void search_on_number(void) {student_t *point = head;char tmp[STUDENT_NUMBER];uint8_t flag = 0;printf("請輸入學號:");gets(tmp);printf("學號\t姓名\t性別\t年齡\t三門課程的成績\t\t總成績\n");while(NULL != point){if(strcmp(tmp, point->num) == 0){flag = 1;printf("%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\n", point->num, point->name, point->sex == '1' ? "男" : "女", point->age, *(point->score), *(point->score + 1), *(point->score + 2), point->sum);}point = point->next;}if(0 == flag){printf("\n未找到學號是%s的學生,按任意鍵繼續(xù)……", tmp);}else{printf("\n顯示完畢,按任意鍵繼續(xù)……");}getch(); }// 通過名字查找:不唯一 void search_on_name(void) {student_t *point = head;char tmp[STUDENT_NAME];uint8_t flag = 0;printf("請輸入姓名:");gets(tmp);printf("學號\t姓名\t性別\t年齡\t三門課程的成績\t\t總成績\n");while(NULL != point){if(strstr(point->name, tmp)){flag = 1;printf("%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\n", point->num, point->name, point->sex == '1' ? "男" : "女", point->age, *(point->score), *(point->score + 1), *(point->score + 2), point->sum);}point = point->next;}if(0 == flag){printf("\n未找到學號是%s的學生,按任意鍵繼續(xù)……", tmp);}else{printf("\n顯示完畢,按任意鍵繼續(xù)……");}getch(); }// 通過年齡查找:不唯一 void search_on_age(void) {student_t *point = head;char tmp[30];uint8_t flag = 0;printf("請輸入年齡:");gets(tmp);printf("學號\t姓名\t性別\t年齡\t三門課程的成績\t\t總成績\n");while(NULL != point){if(atoi(tmp) == point->age){flag = 1;printf("%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\n", point->num, point->name, point->sex == '1' ? "男" : "女", point->age, *(point->score), *(point->score + 1), *(point->score + 2), point->sum);}point = point->next;}if(flag == 0){printf("\n未找到年齡是%s的學生,按任意鍵繼續(xù)……", tmp);}else{printf("\n顯示完畢,按任意鍵繼續(xù)……");}getch(); }// 修改指定學號的學生信息 void modify(void) {student_t *point = head;char tmp[STUDENT_NUMBER];uint8_t flag = 0, j;char a;printf("請輸入學號:"); // 學號是唯一的gets(tmp);while(point != NULL){if(strcmp(tmp, point->num) == 0){flag = 1;printf("學號\t姓名\t性別\t年齡\t三門課程的成績\t\t總成績\n");printf("%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\n", point->num, point->name, point->sex == '1' ? "男" : "女", point->age, *(point->score), *(point->score + 1), *(point->score + 2), point->sum);printf("\n====請輸入新信息====\n");// 學號唯一不做修改,別的都可以修改printf("姓名:");gets(tmp);if(strcmp(tmp, "") != 0){strcpy(point->name, tmp);}printf("性別,'1'->男, '0'->女:");a = getchar();if('\n' != a){point->sex = a;}else{point->sex = '1'; // 默認男生}printf("年齡:");gets(tmp);if(strcmp(tmp, "") != 0){point->age = atoi(tmp);}else{point->age = 20; // 默認就20歲了}printf("三門課程的成績:\n");point->sum = 0;for(j = 0; j < STUDENT_SUBJECT; ++j){printf("第%d科成績:", j + 1);gets(tmp);if(strcmp(tmp, "") != 0){point->score[j] = atoi(tmp);}point->sum += point->score[j];}printf("總成績:%d\n", point->sum);}point = point->next;}if(0 == flag){printf("\n未找到%s!按任意鍵繼續(xù)……", tmp);}else{printf("\n修改完畢,按任意鍵繼續(xù)……");}getch(); }// 刪除指定學生的信息:刪除某個鏈表結(jié)點 void delete(void) {student_t *point = head, *back;char tmp[STUDENT_NUMBER];uint8_t flag = 0, j;char a;printf("請輸入學號:"); // 學號是唯一的gets(tmp);while(1){if(NULL == point->next){break;}if(atoi(tmp) == atoi(point->num)){flag = 1;head = point->next;free(point);count--;break;}back = point;point = point->next;if(atoi(tmp) == atoi(point->num)){flag = 1;back->next = point->next;free(point);count--;break;}}if(0 == flag){printf("\n未找到%s!按任意鍵繼續(xù)……", tmp);}else{printf("\n修改完畢,按任意鍵繼續(xù)……");}getch(); }// 保存到指定路徑 void save(void) {FILE *fp;student_t *point = head;char filename[FILENAME_SIZE] = {"d://qq.dat"};printf("請輸入文件名如%s:", filename);gets(filename);while(strcmp(filename , "") == 0){printf("文件名不能為空,請重新輸入:");gets(filename);}if((fp = fopen(filename, "wb")) == NULL){printf("文件打開失敗!\n按任意鍵繼續(xù)……");getch();return;}printf("正在保存信息,請耐心等待……\n");count = 0;while(NULL != point){count++;fwrite(point, sizeof(student_t), 1, fp);point = point->next;}fclose(fp);printf("信息保存成功,按任意鍵繼續(xù)……");getch(); }// 從指定文件讀取學生的信息到鏈表 void load(void) {FILE *fp;student_t *point, *q;char filename[FILENAME_SIZE] = {"d://qq.dat"};printf("請輸入文件名如%s:", filename);gets(filename);while(strcmp(filename , "") == 0){printf("文件名不能為空,請重新輸入:");gets(filename);}if((fp = fopen(filename, "rb")) == NULL){printf("文件打開失敗!\n按任意鍵繼續(xù)……");getch();return;}printf("正在從文件載入信息,請耐心等待……\n");point = (student_t *)malloc(sizeof(student_t));head = point;count = 0;while(!feof(fp)){count++;fread(point, sizeof(struct student), 1, fp);point->next = (student_t *)malloc(sizeof(student_t));q = point;point = point->next;}q->next = NULL;fclose(fp);printf("學生信息載入成功,按任意鍵繼續(xù)……");getch(); }// 退出系統(tǒng) void quit(void) {char c;printf("你真的要退出系統(tǒng)嗎?(Y/N)");c = getchar();if('Y' == c || 'y' == c){printf("系統(tǒng)退出成功...\n");exit(0);} }int main(void) {uint8_t value;char choice[3];while(1){system("cls");menu();do{printf("請輸入功能鍵:");gets(choice);value = atoi(choice);}while((value > 12) || (value < 0));switch(value){case 1:create();break;case 2:display_all();break;case 3:search_on_number();break;case 4:search_on_name();break;case 5:search_on_age();break;case 6:modify();break;case 7:delete();break;case 8:save();break;case 9:load();break;case 10:quit();break;default:break;}}return 0; }

總結(jié)

以上是生活随笔為你收集整理的C小项目 —— 学生信息管理系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产激情亚洲 | 蜜桃视频欧美 | 国产图片一区 | jizz中国女人高潮 | 亚洲高清免费观看 | 欧美激情视频一区二区三区 | 久久99网站 | 美女福利视频在线观看 | 大肉大捧一进一出好爽视频动漫 | 日本男女啪啪 | 青草福利在线 | 欧美三级不卡 | 免费国产在线视频 | 在线播放av网站 | 寡妇高潮一级视频免费看 | 99视频99| 香蕉免费在线视频 | 亚洲涩涩在线 | 久久五月激情 | 九九热久久免费视频 | 老外毛片| 久久艹精品| 美国毛片av| 国产精品99精品 | 日韩中文娱乐网 | 日本少妇喂奶 | 亚洲v天堂 | 欧洲最强rapper网站直播 | 超污视频网站 | 午夜日韩电影 | 九一九色国产 | www.rihan| 在线观看成人黄色 | 视频在线免费观看 | 91超碰在线 | 久久久久国产 | 妖精视频在线观看免费 | 99资源| 春宵av| 九九热8| 国产欧美一区二区在线观看 | 国内精品一区二区 | 福利影院在线观看 | 日本大胆人体视频 | 手机在线小视频 | 在线成人中文字幕 | 天天干天天操天天舔 | 成人av免费 | 李宗瑞91在线正在播放 | 国产人妻一区二区 | 中文字幕第28页 | 精品黑人一区二区三区久久 | 精品小视频在线观看 | 久草免费资源站 | 久久精品国产清自在天天线 | 黄网www| 少妇真人直播免费视频 | 亚洲熟女综合一区二区三区 | 91超碰在线 | 福利所导航 | 四虎精品在永久在线观看 | 91美女片黄在线观看91美女 | 婷婷五月综合激情 | 欧美性猛交xxxx乱大交 | 91精品久久久久久综合五月天 | av中文字幕第一页 | 亚洲精品色午夜无码专区日韩 | 最新av中文字幕 | 国产一区二区三区精品在线观看 | 成人在线视频一区二区三区 | 黄色小说网站在线观看 | 自拍偷拍99| 久久久人人人 | 性视频免费看 | 最新av导航 | 69国产成人精品二区 | 蜜乳av网站 | 娇小的粉嫩xxx极品 国产精品人人爽人人爽 | 亚洲在线第一页 | 欧美日韩电影一区二区三区 | 爱色成人网| 狠狠操综合网 | 中文字幕在线视频第一页 | 欧美男女交配视频 | 黄色综合| 一级做a爱片久久毛片 | 天美麻花果冻视频大全英文版 | 国产电影一区在线观看 | 大奶子在线 | 黄网在线免费 | 青青操免费 | 久久久久色 | 日韩永久 | 国产主播一区二区 | 亚洲图片自拍偷拍 | 美女扣逼喷水视频 | av网天堂| 久久98| 日韩高清三区 |