最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實現(xiàn)學(xué)籍管理系統(tǒng)

 更新時間:2022年03月01日 10:24:41   作者:小朱同學(xué)的筆記本  
這篇文章主要為大家詳細介紹了C語言實現(xiàn)學(xué)籍管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C語言實現(xiàn)學(xué)籍管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

設(shè)計一個學(xué)籍管理系統(tǒng),基本功能包括:

1.輸入學(xué)生基本信息
2.查詢學(xué)生信息(1.按學(xué)號2.按姓名)
3.刪除學(xué)生信息(1.按學(xué)號2.按姓名)
4.學(xué)生信息排序(1.按學(xué)號2.按姓名)
5.修改學(xué)生基本信息
6.輸出學(xué)生信息
7.保存學(xué)生信息
0.退出程序

注:由于知識有限,該系統(tǒng)暫時規(guī)定只輸入3個學(xué)生數(shù)據(jù),今后會改良成可隨機處理任意多個學(xué)生的數(shù)據(jù)

一、首頁

void enter(struct student stu[],int n)
{
?? ?int select;
? ? while(select!=0)
?? ?{
?? ? ? ? printf("\t\t\t ?---------------------------\n");
?? ? ? ? printf("\n");
? ? ? ? ?printf("\t\t\t ? ? 歡迎使用學(xué)籍管理系統(tǒng)\n");
? ? ? ??? ? printf("\n");
? ? ??? ? printf("\t\t\t ?---------------------------\n");
?? ? ? ? printf("\t\t\t ?1.輸入學(xué)生基本信息\n");
?? ? ? ? printf("\t\t\t ?2.查詢學(xué)生信息(1.按學(xué)號2.按姓名)\n");
? ? ? ? ?printf("\t\t\t ?3.刪除學(xué)生信息(1.按學(xué)號2.按姓名)\n");
? ? ? ? ?printf("\t\t\t ?4.學(xué)生信息排序(1.按學(xué)號2.按姓名)\n");
? ? ? ? ?printf("\t\t\t ?5.修改學(xué)生基本信息\n");
? ? ? ? ?printf("\t\t\t ?6.輸出學(xué)生信息\n");
? ? ? ? ?printf("\t\t\t ?7.保存學(xué)生信息\n");
? ? ? ? ?printf("\t\t\t ?0.退出程序\n");
?? ? ? ? printf("\t\t\t ?請輸入您的選項");
?? ? ? ? scanf("%d",&select);
?? ? ? ? system("cls");
?? ? ? ? ? switch(select)
?? ??? ? ? {
?? ? ? ? ? ?case 1:input(stu,n);break;
?? ? ? ? ? ?case 2:seek(stu,n);break;
?? ? ? ? ? ?case 3:delect(stu,n);break;
?? ? ? ? ? ?case 4:sort(stu,n);break;
?? ? ? ? ? ?case 5:revise(stu,n);break;
?? ? ? ? ? ?case 6:output(stu,n);break;
? ? ? ? ? ? case 7:keep(stu,n);break;
?? ??? ??? ?case 0:printf("\t\t\t ?您已退出學(xué)籍管理系統(tǒng)\n");break;
? ? ? ? ? ? default:printf("輸入有誤\n");
?? ??? ??? ?system("pause");
?? ? ? ? ? ?system("cls");?? ? ? ?
?? ??? ? ? }
?? ?}
}

二、輸入

int count=0; ? ?//計數(shù)器記錄學(xué)生個數(shù)
void input(struct student stu[],int n)
{?? ? ??
?? ?int i;
?? ?if(count!=0)
?? ??? ?count=0;
? ? printf("\t\t\t-------------------------------\n");
? ? printf("\n");
? ? printf("\t\t\t ? 歡迎進入學(xué)生信息錄入系統(tǒng)\n");
? ? printf("\n");
? ? printf("\t\t\t-------------------------------\n");
? ? printf("\t\t請輸入學(xué)生基本信息(學(xué)號,姓名,年齡,性別(女w,男m))\n");
? ? for(i=0;i<n;i++)
? ? scanf("%d %s %d %c",&stu[i].number,stu[i].name,&stu[i].age,&stu[i].sex);
?? ?system("cls");
?? ?printf("\t\t\t ? ? ? ?學(xué)生信息已錄入\n");
?? ?system("pause");
? ? system("cls");
}

三、查詢

void seek(struct student stu[],int n)
{

? ? int i,select2,num2;
?? ?char name2[10];
?? ?printf("\t\t\t-------------------------------\n");
? ? printf("\n");
? ? printf("\t\t\t ? 歡迎進入學(xué)生信息查詢系統(tǒng)\n");
? ? printf("\n");
? ? printf("\t\t\t-------------------------------\n");
?? ?printf("\t\t請選擇查詢方式(1.按學(xué)號查詢 ?2.按姓名查詢)");
?? ?scanf("%d",&select2);
?? ?system("cls");
?? ?switch(select2)
?? ?{
?? ?case 1:
?? ??? ?{?
?? ??? ? ? printf("\t\t\t\t ?請輸入學(xué)號");
?? ??? ? ? scanf("%d",&num2);
?? ??? ? ? system("cls");
?? ??? ? ? for(i=0;i<n-count;i++)
?? ??? ??? ? ? if(stu[i].number==num2)break; ? ? //判斷輸入學(xué)號和結(jié)構(gòu)數(shù)組的學(xué)號是否匹配,找到匹配項則退出循環(huán)
?? ??? ??? ? ? if(i<n-count) ? ? ? ? ? ? ? ? ? ? //數(shù)組下標小于學(xué)生數(shù),則說明找到該學(xué)生,輸出信息
?? ??? ??? ? ? {
?? ??? ??? ??? ? ? printf("\t\t\t您要查詢的學(xué)生信息為:\n");
? ? ? ? ? ? ? ? ? ?printf("\t\t\t學(xué)號%d 姓名%s 年齡%d 性別%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);
?? ??? ??? ? ? }
?? ??? ??? ? ? else ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//數(shù)組下標等于學(xué)生數(shù),則沒有找到該學(xué)生
?? ??? ??? ??? ? ? printf("\t\t\t\t查無此人\n");
? ? ? ? ? ? ? ?system("pause");
?? ??? ??? ? ? system("cls");
?? ??? ?}break;
?? ??? ?case 2:
?? ?{
?? ??? ?printf("\t\t\t\t ?請輸入姓名");
?? ??? ?scanf("%s",name2);
?? ??? ?system("cls");
?? ??? ?for(i=0;i<n-count;i++)
?? ? ? ?if(strcmp(stu[i].name,name2)==0)break;
?? ??? ?if(i<n-count)
?? ??? ?{
? ? ? ? printf("\t\t\t您要查詢的學(xué)生信息為:\n");
? ? ? ? printf("\t\t\t學(xué)號%d 姓名%s 年齡%d 性別%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);
?? ??? ?}
?? ??? ?else
?? ??? ? ? printf("\t\t\t\t查無此人\n");
? ? ? ? system("pause");
?? ??? ?system("cls");?? ?
?? ?}break;
?? ?}

}?

四、刪除

void delect(struct student stu[],int n)
{

? ? int i=n,j,select3,num3,choice3;
? ? char name3[10];
? ? printf("\t\t\t-------------------------------\n");
? ? printf("\n");
? ? printf("\t\t\t ? 歡迎進入學(xué)生信息刪除系統(tǒng)\n");
? ? printf("\n");
? ? printf("\t\t\t-------------------------------\n");
?? ?printf("\t\t請選擇刪除方式(1.按學(xué)號刪除 ?2.按姓名刪除)");
? ? scanf("%d",&select3);
? ? system("cls");
?? ?switch(select3)
?? ?{
?? ?case 1:
?? ??? ?{
? ? ? ? ? ? printf("\t\t\t\t ?請輸入學(xué)號");
? ? ? ? ? ? scanf("%d",&num3);
?? ??? ? ? ?system("cls");
?? ??? ? ? ?for(i=0;i<n-count;i++)
?? ??? ??? ? ? if(stu[i].number==num3)break;//首先找到要刪除的學(xué)生
?? ??? ??? ? ? if(i<n-count)
?? ??? ??? ? ? {
?? ??? ??? ??? ? printf("\t\t\t當前您要修改的學(xué)生信息為\n");
?? ??? ? ? ? ? ? printf("\t\t\t學(xué)號%d 姓名%s 年齡%d 性別%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);
?? ??? ? ? ? ? ? printf("\t\t\t如果您不想再刪除該生信息請按0,繼續(xù)刪除請按1\n");
?? ??? ? ? ? ? ? scanf("%d",&choice3);
? ? ? ? ? ? ? ? ?system("cls");
?? ??? ??? ??? ? if(choice3==1)
?? ??? ??? ??? ? {
?? ??? ??? ??? ? ? for(j=i;j<n-count;j++)//從該學(xué)生往后每一項向前移動一項,覆蓋前一個數(shù)據(jù)項
?? ??? ??? ??? ??? ? ? stu[j]=stu[j+1];
?? ??? ??? ??? ? ? count++;
?? ??? ??? ??? ? ? printf("\t\t\t\t該生信息已刪除\n");
? ? ? ? ? ? ? ? ? ?system("pause");
? ? ? ? ? ? ? ? ? ?system("cls");
?? ??? ??? ??? ? }
?? ??? ??? ? ? }
? ? ? ? ? ? ? ?else
?? ??? ??? ? ? {
?? ??? ? ? ? ? ? ? printf("\t\t\t\t查無此人\n");
? ? ? ? ? ? ? ? ? ?system("pause");
?? ??? ??? ??? ? ? system("cls");?? ?
?? ??? ??? ? ? }
?? ??? ?}break;
?? ?case 2:
?? ??? ?{
?? ??? ??? ? ?printf("\t\t\t\t ?請輸入姓名");
?? ??? ??? ? ?scanf("%s",&name3);
? ? ? ? ? ? ? system("cls");
?? ??? ??? ? ?for(i=0;i<n-count;i++)
?? ??? ??? ??? ?if(strcmp(stu[i].name,name3)==0)break;
? ? ? ? ? ? ? ? if(i<n-count)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ? printf("\t\t\t當前您要修改的學(xué)生信息為\n");
?? ??? ? ? ? ? ? printf("\t\t\t學(xué)號%d 姓名%s 年齡%d 性別%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);
?? ??? ? ? ? ? ? printf("\t\t\t如果您不想再刪除該生信息請按0,繼續(xù)刪除請按1\n");
?? ??? ? ? ? ? ? scanf("%d",&choice3);
? ? ? ? ? ? ? ? ?system("cls");
?? ??? ??? ??? ? if(choice3==1)
?? ??? ??? ??? ? {
?? ??? ??? ??? ??? ?for(j=i;j<n-count;j++)
? ? ? ? ? ? ? ? ? ? ? ? stu[j]=stu[j+1];
?? ??? ??? ??? ? ? ?count++;
? ? ? ? ? ? ? ? ? ? printf("\t\t\t\t該生信息已刪除\n");
? ? ? ? ? ? ? ? ? ? system("pause");
? ? ? ? ? ? ? ? ? ? system("cls");
?? ??? ??? ??? ? }
?? ??? ??? ??? ?}
?? ??? ??? ??? ?else
?? ??? ??? ??? ?{
?? ??? ? ? ? ? ? ? ?printf("\t\t\t\t查無此人\n");
? ? ? ? ? ? ? ? ? ? system("pause");
?? ??? ? ? ? ? ? ? ?system("cls");?? ?
?? ??? ??? ??? ?}
?? ??? ?}
?? ?}
}

五、排序

void sort(struct student stu[],int n)
{
? ? int select4,i,j;
?? ?struct student t;
? ? printf("\t\t\t-------------------------------\n");
? ? printf("\n");
? ? printf("\t\t\t ? 歡迎進入學(xué)生信息排序系統(tǒng)\n");
? ? printf("\n");
? ? printf("\t\t\t-------------------------------\n");
?? ?printf("\t\t請選擇排序方式(1.按學(xué)號排序 ?2.按姓名排序)");
? ? scanf("%d",&select4);
?? ?system("cls");
?? ?switch(select4)
?? ?{
?? ?case 1:{ ? //冒泡排序
?? ??? ??? ??? ?for(j=1;j<n-count;j++)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?for(i=0;i<n-count-j;i++)
?? ??? ??? ??? ??? ?{
?? ??? ??? ??? ??? ??? ?if(stu[i].number>stu[i+1].number)
?? ??? ??? ??? ??? ??? ?{
?? ??? ??? ??? ??? ??? ??? ?t=stu[i];
?? ??? ??? ??? ??? ??? ??? ?stu[i]=stu[i+1];
?? ??? ??? ??? ??? ??? ??? ?stu[i+1]=t;
?? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}?? ? ??
?? ??? ? ? }break;
?? ?case 2:{
? ? ? ? ? ? ? ? for(j=1;j<n-count;j++)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?for(i=0;i<n-count-j;i++)
?? ??? ??? ??? ??? ?{
?? ??? ??? ??? ??? ??? ?if(strcmp(stu[i].name,stu[i+1].name)>0)
?? ??? ??? ??? ??? ??? ?{
? ? ? ? ? ? ? ? ? ? ? ? ? ? t=stu[i];
?? ??? ??? ??? ??? ??? ??? ?stu[i]=stu[i+1];
?? ??? ??? ??? ??? ??? ??? ?stu[i+1]=t;
?? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ? ? }
?? ?}
printf("\t\t\t\t已按要求完成排序\n");
system("pause");
system("cls");?? ??? ? ??
}?

六、修改

void revise(struct student stu[],int n)
{
? ? int num5,i=n,choice5;
? ? printf("\t\t\t-------------------------------\n");
? ? printf("\n");
? ? printf("\t\t\t ? 歡迎進入學(xué)生信息修改系統(tǒng)\n");
? ? printf("\n");
? ? printf("\t\t\t-------------------------------\n");
?? ?printf("\t\t\t請輸入您要修改的學(xué)生學(xué)號");
?? ?scanf("%d",&num5);
?? ?system("cls");
? ? for(i=0;i<n-count;i++)
?? ? ? if(stu[i].number==num5)break;
?? ? ? ? if(i<n-count)
?? ??? ? {
?? ??? ? ? printf("\t\t\t當前您要修改的學(xué)生信息為\n");
?? ??? ? ? printf("\t\t\t學(xué)號%d 姓名%s 年齡%d 性別%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);
?? ??? ? ? printf("\t\t\t如果您不想再修改該生信息請按0,繼續(xù)修改請按1\n");
?? ??? ? ? scanf("%d",&choice5);
? ? ? ? ? ?system("cls");
?? ??? ? ? if(choice5==1)
?? ??? ? ? {
?? ??? ? ? printf("\t\t\t請輸入修改的信息\n");
? ? ? ? ? ?printf("\t\t\t學(xué)號\t姓名\t年齡\t性別\n");
?? ??? ? ? printf("\t\t\t");
? ? ? ? ? ?scanf("%d %s %d %c",&stu[i].number,stu[i].name,&stu[i].age,&stu[i].sex);//直接將新信息存儲到原數(shù)據(jù)項中,覆蓋原信息即可
?? ??? ? ? system("cls");
? ? ? ? ? ?printf("\t\t\t\t已完成信息修改\n");
? ? ? ? ? ?system("pause");
? ? ? ? ? ?system("cls");
?? ??? ? ? }
?? ??? ? }
?? ? ? ? else
?? ??? ? {
?? ??? ? ? printf("\t\t\t\t查無此人\n");
?? ??? ? ? system("pause");
? ? ? ? ? ?system("cls");
?? ??? ? }
}

七、輸出

void output(struct student stu[],int n)
{
?? ?int i;
? ? printf("\t\t\t-------------------------------\n");
? ? printf("\n");
? ? printf("\t\t\t ? 歡迎進入學(xué)生信息輸出系統(tǒng)\n");
? ? printf("\n");
? ? printf("\t\t\t-------------------------------\n");

?? ?for(i=0;i<n-count;i++)//循環(huán)輸出所有學(xué)生信息
? ? printf("\t\t\t ?學(xué)號%d 姓名%s 年齡%d 性別%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);
?? ?system("pause");
?? ?system("cls");
}

八、保存

void keep(struct student stu[],int n)
{
?? ?FILE *fp; ? ? //文件指針fp
?? ?int i;
?? ?if((fp=fopen("d:\\xsxx.txt","wt+"))==NULL)//在D盤讀寫打開或建立一個名為“xxsx”的文本文件,允許讀寫
?? ?{
?? ??? ?printf("\t\t\t\t文件不能打開!");
?? ??? ?exit(0);
?? ?}
?? ?for(i=0;i<n-count;i++)
?? ??? ?fprintf(fp,"%d\t%s\t%d\t%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);//調(diào)用格式化寫fprintf()函數(shù),將數(shù)組中內(nèi)容寫入文件
?? ?fclose(fp);
?? ?printf("\t\t\t\t文件已保存\n");
? ? system("pause");
?? ?system("cls");
}

九、主函數(shù)

int main(){

?? ?struct student stu[3];
?? ?enter(stu,3); ? ?//規(guī)定學(xué)生數(shù)為3人
?? ?return 0;
}

十、結(jié)構(gòu)體定義

struct student{
?? ?int number;
?? ?char name[10];
?? ?int age;
?? ?char sex;
}; ? ?//定義結(jié)構(gòu)體student

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++中vector的用法實例解析

    C++中vector的用法實例解析

    這篇文章主要介紹了C++中vector的用法,詳細描述了vector的各種常見的用法及注意事項,需要的朋友可以參考下
    2014-08-08
  • C語言在輸入輸出時遇到的常見問題總結(jié)

    C語言在輸入輸出時遇到的常見問題總結(jié)

    大家在平時的做題中是否會遇到和我一樣的煩惱,題目的代碼已經(jīng)基本完成,但是在輸出時候,總是和題目給出的樣例輸出格式不同?,導(dǎo)致題目不能通過。為了解決這一煩惱,我總結(jié)了以下幾點,需要的可以參考一下
    2022-09-09
  • C語言全局變量和局部變量的示例代碼

    C語言全局變量和局部變量的示例代碼

    本文主要介紹了C語言全局變量和局部變量的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • C++選擇文件夾代碼的封裝

    C++選擇文件夾代碼的封裝

    這篇文章主要介紹了C++選擇文件夾代碼的封裝,實例展示了將選擇文件夾功能代碼封裝為一個類并對其進行實例化調(diào)用的過程,對于學(xué)習(xí)C++程序設(shè)計有不錯的參考價值,需要的朋友可以參考下
    2014-10-10
  • VC實現(xiàn)獲取當前正在運行的進程

    VC實現(xiàn)獲取當前正在運行的進程

    這篇文章主要介紹了VC實現(xiàn)獲取當前正在運行的進程,涉及VC針對系統(tǒng)進程的相關(guān)操作技巧,需要的朋友可以參考下
    2015-05-05
  • C語言結(jié)構(gòu)體占用內(nèi)存深入講解

    C語言結(jié)構(gòu)體占用內(nèi)存深入講解

    這篇文章主要給大家介紹了關(guān)于C語言結(jié)構(gòu)體占用內(nèi)存的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • linux C 打印錯誤信息和標準輸入輸出詳細介紹

    linux C 打印錯誤信息和標準輸入輸出詳細介紹

    這篇文章主要介紹了linux C 打印錯誤信息和標準輸入輸出詳細介紹的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • 使用C++繪制GDI位圖的基本編寫實例

    使用C++繪制GDI位圖的基本編寫實例

    這篇文章主要介紹了使用C++繪制GDI位圖的基本編寫實例,一般來說適用于Windwos下的C++的GUI編程,需要的朋友可以參考下
    2015-12-12
  • VC自定義消息響應(yīng)函數(shù)postmessage用法示例

    VC自定義消息響應(yīng)函數(shù)postmessage用法示例

    這篇文章主要介紹了VC自定義消息響應(yīng)函數(shù)postmessage用法示例,并對比說明了postmessage與sendmessage的用法區(qū)別,需要的朋友可以參考下
    2014-10-10
  • 如何查看進程實際的內(nèi)存占用情況詳解

    如何查看進程實際的內(nèi)存占用情況詳解

    本篇文章是對如何查看進程實際的內(nèi)存占用情況進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05

最新評論

通河县| 开平市| 手游| 沙湾县| 云霄县| 巫山县| 富平县| 衡南县| 鹰潭市| 朔州市| 潜江市| 成武县| 禄丰县| 申扎县| 彰化县| 长寿区| 甘德县| 阿合奇县| 库车县| 林周县| 义马市| 咸宁市| 敖汉旗| 梨树县| 绥棱县| 泸定县| 普洱| 甘谷县| 稷山县| 三原县| 和硕县| 甘孜县| 尤溪县| 徐闻县| 镇雄县| 余庆县| 靖边县| 茶陵县| 朔州市| 大冶市| 平安县|