欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

設(shè)計(jì)一個(gè)學(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)暫時(shí)規(guī)定只輸入3個(gè)學(xué)生數(shù)據(jù),今后會(huì)改良成可隨機(jī)處理任意多個(gè)學(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 ?請輸入您的選項(xiàng)");
?? ? ? ? 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; ? ?//計(jì)數(shù)器記錄學(xué)生個(gè)數(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 ? 歡迎進(jìn)入學(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 ? 歡迎進(jìn)入學(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é)號是否匹配,找到匹配項(xiàng)則退出循環(huán)
?? ??? ??? ? ? if(i<n-count) ? ? ? ? ? ? ? ? ? ? //數(shù)組下標(biāo)小于學(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ù)組下標(biāo)等于學(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 ? 歡迎進(jìn)入學(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;//首先找到要?jiǎng)h除的學(xué)生
?? ??? ??? ? ? if(i<n-count)
?? ??? ??? ? ? {
?? ??? ??? ??? ? printf("\t\t\t當(dāng)前您要修改的學(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é)生往后每一項(xiàng)向前移動(dòng)一項(xiàng),覆蓋前一個(gè)數(shù)據(jù)項(xiàng)
?? ??? ??? ??? ??? ? ? 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當(dāng)前您要修改的學(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 ? 歡迎進(jìn)入學(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 ? 歡迎進(jìn)入學(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當(dāng)前您要修改的學(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);//直接將新信息存儲(chǔ)到原數(shù)據(jù)項(xiàng)中,覆蓋原信息即可
?? ??? ? ? 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 ? 歡迎進(jìn)入學(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盤讀寫打開或建立一個(gè)名為“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++11的std::ref、std::cref源碼

    解析C++11的std::ref、std::cref源碼

    這篇文章主要介紹了解析C++11的std::ref、std::cref源碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • C語言數(shù)據(jù)結(jié)構(gòu)之順序表和單鏈表

    C語言數(shù)據(jù)結(jié)構(gòu)之順序表和單鏈表

    在數(shù)據(jù)結(jié)構(gòu)中,線性表是入門級數(shù)據(jù)結(jié)構(gòu),線性表又分為順序表和鏈表,這篇文章主要給大家介紹了關(guān)于C語言數(shù)據(jù)結(jié)構(gòu)之順序表和單鏈表的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • C++中的函數(shù)匯總

    C++中的函數(shù)匯總

    這篇文章主要介紹了 C++中的函數(shù)匯總的相關(guān)資料,需要的朋友可以參考下
    2017-08-08
  • C++內(nèi)存模型與名稱空間概念講解

    C++內(nèi)存模型與名稱空間概念講解

    這篇文章主要介紹了C++內(nèi)存模型與名稱空間,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-01-01
  • 深入了解C++優(yōu)先隊(duì)列(priority_queue)的使用方法

    深入了解C++優(yōu)先隊(duì)列(priority_queue)的使用方法

    在計(jì)算機(jī)科學(xué)中,優(yōu)先隊(duì)列是一種抽象數(shù)據(jù)類型,它與隊(duì)列相似,但是每個(gè)元素都有一個(gè)相關(guān)的優(yōu)先級。C++中的優(yōu)先隊(duì)列是一個(gè)容器適配器(container adapter),它提供了一種在元素之間維護(hù)優(yōu)先級的方法。本文帶你深入了解C++優(yōu)先隊(duì)列的使用方法,需要的可以參考下
    2023-05-05
  • C++輸入輸出操作符重載的深入分析

    C++輸入輸出操作符重載的深入分析

    本篇文章是對C++輸入輸出操作符重載進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 深入理解堆排序及其分析

    深入理解堆排序及其分析

    本篇文章是對堆排進(jìn)行了詳細(xì)的分析以及介紹,需要的朋友參考下
    2013-05-05
  • C++實(shí)現(xiàn)LeetCode(148.鏈表排序)

    C++實(shí)現(xiàn)LeetCode(148.鏈表排序)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(148.鏈表排序),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++實(shí)現(xiàn)LeetCode(191.位1的個(gè)數(shù))

    C++實(shí)現(xiàn)LeetCode(191.位1的個(gè)數(shù))

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(191.位1的個(gè)數(shù)),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • c語言 malloc函數(shù)詳解

    c語言 malloc函數(shù)詳解

    這篇文章主要介紹了c語言 malloc函數(shù)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評論