国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C > 正文

C語(yǔ)言實(shí)現(xiàn)學(xué)生信息管理程序

2020-01-26 13:30:28
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)學(xué)生信息管理程序的具體代碼,供大家參考,具體內(nèi)容如下

目前只有5個(gè)功能

1. 增加學(xué)生信息
2. 刪除學(xué)生信息
3. 查詢某學(xué)生信息
4. 列出所有學(xué)生信息
5. 按出生日期先后輸出學(xué)生信息

代碼:

#include<stdio.h>#include<stdlib.h>#include<string.h>struct StuInfo//學(xué)生信息{ char cName[10]; char cSex; char cNumber[6]; char cTel[13]; int iYear; int iMonth;};typedef struct StuInfo INFO;void AddStu()//增加學(xué)生函數(shù){ int iLenth; FILE *fp = NULL; INFO toAdd;//臨時(shí)存儲(chǔ)新學(xué)生信息 system("CLS"); fp = fopen("SavedStudents.txt", "a+"); //a+讀寫指針在文件尾 if(fp == NULL) {  puts("Error01");  getchar();getchar();  return; } puts("輸入信息:/n姓名/t性別/t學(xué)號(hào)/t出生年月/t手機(jī)號(hào)"); scanf("%s %c %s %d.%d %s", toAdd.cName, &toAdd.cSex, toAdd.cNumber, &toAdd.iYear, &toAdd.iMonth, toAdd.cTel); //合法性判斷 if(toAdd.cSex != 'F'&&toAdd.cSex != 'M')//性別只能為F或者M(jìn) {  puts("性別格式錯(cuò)誤!請(qǐng)重新輸入性別:");  scanf("%c", &toAdd.cSex); } if(toAdd.iYear <= 1980 || toAdd.iYear >= 2017 || toAdd.iMonth>12) {  puts("日期錯(cuò)誤!請(qǐng)重新輸入出生日期:");  scanf("%d.%d", &toAdd.iYear, &toAdd.iMonth);//日期格式為1990.1格式 } iLenth = strlen(toAdd.cTel);//手機(jī)號(hào)長(zhǎng)度 if(iLenth != 11) {  puts("手機(jī)號(hào)碼格式錯(cuò)誤!請(qǐng)重新輸入手機(jī)號(hào):");  scanf("%s", toAdd.cTel); } iLenth = strlen(toAdd.cNumber); if(iLenth != 5) {  puts("學(xué)號(hào)格式錯(cuò)誤!請(qǐng)重新輸入學(xué)號(hào):");  scanf("%s", toAdd.cNumber); } //判斷結(jié)束 fwrite(&toAdd, sizeof(INFO), 1, fp); fclose(fp); puts("寫入成功!"); puts("按回車返回"); getchar();getchar(); return;}void DeleteStu()//通過(guò)學(xué)號(hào)刪除學(xué)生信息{ FILE *fp = NULL; INFO Stu[100]; int i = 0, iCount = 0, iRecord = 0; char cNumber[6]; system("CLS"); fp = fopen("SavedStudents.txt", "a+"); if(fp == NULL) {  puts("Error01");  getchar();getchar();  return; } rewind(fp); puts("姓名/t性別/t學(xué)號(hào)/t出生年月/t手機(jī)號(hào)"); for(i = 0, iCount = 0;fread(&Stu[i], sizeof(INFO), 1, fp);++i, ++iCount) {  printf("%s/t%c/t%s/t%d.%d/t/t%s/n", Stu[i].cName, Stu[i].cSex, Stu[i].cNumber, Stu[i].iYear, Stu[i].iMonth, Stu[i].cTel); } fclose(fp); fp = fopen("SavedStudents.txt", "w+"); //覆蓋重寫 rewind(fp); puts("輸入要?jiǎng)h除學(xué)生的學(xué)號(hào):"); scanf("%s", cNumber); for(i = 0;i<iCount;i++) {  if(strcmp(cNumber, Stu[i].cNumber) == 0)  {   iRecord = i;   break;  } } for(i = 0;i<iCount;++i) {  if(i == iRecord)//刪除實(shí)質(zhì)為:不向文件寫入該條信息  {   continue;  }  else  {   fwrite(&Stu[i], sizeof(INFO), 1, fp);  } } fclose(fp); puts("刪除完成!"); puts("按回車返回"); getchar();getchar(); return;}void GetInfo()//通過(guò)學(xué)號(hào)取得學(xué)生信息{ FILE *fp; INFO Stu[100]; char cNumber[6]; int iLenth, iCount = 0, i; system("CLS"); fp = fopen("SavedStudents.txt", "a+"); //a+讀寫指針在文件尾 if(fp == NULL) {  puts("Error01");  getchar();getchar();  return; } rewind(fp); for(;fread(&Stu[iCount], sizeof(INFO), 1, fp);++iCount);//讀入并計(jì)數(shù) puts("輸入你要查詢的學(xué)號(hào):如:Y1001"); scanf("%s", cNumber); iLenth = strlen(cNumber); if(iLenth != 5) {  puts("學(xué)號(hào)格式錯(cuò)誤!");  puts("按回車返回");  getchar();getchar();  return; } for(i = 0;i<iCount;++i) {  if(strcmp(Stu[i].cNumber, cNumber) == 0)  {   puts("姓名/t性別/t學(xué)號(hào)/t出生年月/t手機(jī)號(hào)");   printf("%s/t%c/t%s/t%d.%d/t/t%s/n", Stu[i].cName, Stu[i].cSex, Stu[i].cNumber, Stu[i].iYear, Stu[i].iMonth, Stu[i].cTel);   break;  }  if(i == iCount - 1)  {   puts("沒(méi)有找到匹配學(xué)號(hào)!");  } } puts("按回車返回"); getchar();getchar(); return;}void ListAllInfo()//查看所有學(xué)生信息{ FILE *fp = NULL; INFO Stu[100], Temp; int iCount = 0, i = 0, j = 0; system("CLS"); fp = fopen("SavedStudents.txt", "a+"); if(fp == NULL) {  puts("Error01");  getchar();getchar();  return; } rewind(fp); for(i = 0, iCount = 0;fread(&Stu[i], sizeof(INFO), 1, fp);++i, ++iCount); for(i = 0;i<iCount;i++) {  for(j = 0;j<iCount - 1;j++)  {   if(strcmp(Stu[j].cNumber, Stu[j + 1].cNumber)>0)   {    Temp = Stu[j];    Stu[j] = Stu[j + 1];    Stu[j + 1] = Temp;   }  } } puts("姓名/t性別/t學(xué)號(hào)/t出生年月/t手機(jī)號(hào)"); for(i = 0;i<iCount;++i) {  printf("%s/t%c/t%s/t%d.%d/t/t%s/n", Stu[i].cName, Stu[i].cSex, Stu[i].cNumber, Stu[i].iYear, Stu[i].iMonth, Stu[i].cTel); } printf("/n共找到[%d]條記錄", iCount); puts("/n按回車返回"); getchar();getchar(); return;}void SortAndOut()//排序?qū)W生{ FILE *fp = NULL; INFO Stu[100], Temp; int i, j, iCount = 0; system("CLS"); fp = fopen("SavedStudents.txt", "a+"); if(fp == NULL) {  puts("Error01");  getchar();getchar();  return; } rewind(fp); for(;fread(&Stu[iCount], sizeof(INFO), 1, fp);++iCount);//讀入并計(jì)數(shù) for(i = 0;i<iCount - 1;++i) {  for(j = 0;j<iCount - 1;++j)  {   if(Stu[j].iYear>Stu[j + 1].iYear)   {    Temp = Stu[j];    Stu[j] = Stu[j + 1];    Stu[j + 1] = Temp;   }   if(Stu[j].iYear == Stu[j + 1].iYear&&Stu[j].iMonth>Stu[j + 1].iMonth)   {    Temp = Stu[j];    Stu[j] = Stu[j + 1];    Stu[j + 1] = Temp;   }  } } puts("姓名/t性別/t學(xué)號(hào)/t出生年月/t手機(jī)號(hào)"); for(i = 0;i<iCount;++i) {  printf("%s/t%c/t%s/t%d.%d/t/t%s/n", Stu[i].cName, Stu[i].cSex, Stu[i].cNumber, Stu[i].iYear, Stu[i].iMonth, Stu[i].cTel); } puts("按回車返回"); getchar();getchar(); return;}int main(){ int iChoice; puts("1.增加學(xué)生/n2.刪除學(xué)生/n3.查詢學(xué)生/n4.顯示所有學(xué)生信息(默認(rèn)學(xué)號(hào)排序)/n5.按出生年月排序輸出/n0.退出/n輸入選擇:"); scanf("%d", &iChoice); while(iChoice != 0)//主界面 {  switch(iChoice)  {  case 1:AddStu();break;  case 2:DeleteStu();break;  case 3:GetInfo();break;  case 4:ListAllInfo();break;  case 5:SortAndOut();break;  default:break;  }  system("CLS");  puts("1.增加學(xué)生/n2.刪除學(xué)生/n3.查詢學(xué)生/n4.顯示所有學(xué)生信息(默認(rèn)學(xué)號(hào)排序)/n5.按出生年月排序輸出/n0.退出/n輸入選擇:");  scanf("%d", &iChoice); } return 0;}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 道真| 栾城县| 通许县| 星座| 临泽县| 丹棱县| 黄浦区| 石屏县| 黄石市| 察雅县| 石渠县| 镇安县| 手游| 宾阳县| 内丘县| 叙永县| 富阳市| 玉林市| 稷山县| 桃源县| 桐梓县| 香格里拉县| 黄石市| 固始县| 凤山县| 潍坊市| 萨嘎县| 通许县| 唐海县| 龙川县| 新沂市| 余庆县| 嵊州市| 望都县| 普定县| 德令哈市| 琼中| 西乡县| 玉龙| 永胜县| 剑阁县|