C語(yǔ)言實(shí)現(xiàn)學(xué)籍管理系統(tǒng)
本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)學(xué)籍管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
設(shè)計(jì)一個(gè)學(xué)籍管理系統(tǒng),基本功能包括:
1.輸入學(xué)生基本信息
2.查詢學(xué)生信息(1.按學(xué)號(hào)2.按姓名)
3.刪除學(xué)生信息(1.按學(xué)號(hào)2.按姓名)
4.學(xué)生信息排序(1.按學(xué)號(hào)2.按姓名)
5.修改學(xué)生基本信息
6.輸出學(xué)生信息
7.保存學(xué)生信息
0.退出程序
注:由于知識(shí)有限,該系統(tǒng)暫時(shí)規(guī)定只輸入3個(gè)學(xué)生數(shù)據(jù),今后會(huì)改良成可隨機(jī)處理任意多個(gè)學(xué)生的數(shù)據(jù)
一、首頁(yè)
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é)號(hào)2.按姓名)\n");
? ? ? ? ?printf("\t\t\t ?3.刪除學(xué)生信息(1.按學(xué)號(hào)2.按姓名)\n");
? ? ? ? ?printf("\t\t\t ?4.學(xué)生信息排序(1.按學(xué)號(hào)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 ?請(qǐng)輸入您的選項(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請(qǐng)輸入學(xué)生基本信息(學(xué)號(hào),姓名,年齡,性別(女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請(qǐng)選擇查詢方式(1.按學(xué)號(hào)查詢 ?2.按姓名查詢)");
?? ?scanf("%d",&select2);
?? ?system("cls");
?? ?switch(select2)
?? ?{
?? ?case 1:
?? ??? ?{?
?? ??? ? ? printf("\t\t\t\t ?請(qǐng)輸入學(xué)號(hào)");
?? ??? ? ? scanf("%d",&num2);
?? ??? ? ? system("cls");
?? ??? ? ? for(i=0;i<n-count;i++)
?? ??? ??? ? ? if(stu[i].number==num2)break; ? ? //判斷輸入學(xué)號(hào)和結(jié)構(gòu)數(shù)組的學(xué)號(hào)是否匹配,找到匹配項(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é)號(hào)%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查無(wú)此人\n");
? ? ? ? ? ? ? ?system("pause");
?? ??? ??? ? ? system("cls");
?? ??? ?}break;
?? ??? ?case 2:
?? ?{
?? ??? ?printf("\t\t\t\t ?請(qǐng)輸入姓名");
?? ??? ?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é)號(hào)%d 姓名%s 年齡%d 性別%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);
?? ??? ?}
?? ??? ?else
?? ??? ? ? printf("\t\t\t\t查無(wú)此人\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請(qǐng)選擇刪除方式(1.按學(xué)號(hào)刪除 ?2.按姓名刪除)");
? ? scanf("%d",&select3);
? ? system("cls");
?? ?switch(select3)
?? ?{
?? ?case 1:
?? ??? ?{
? ? ? ? ? ? printf("\t\t\t\t ?請(qǐng)輸入學(xué)號(hào)");
? ? ? ? ? ? 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é)號(hào)%d 姓名%s 年齡%d 性別%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);
?? ??? ? ? ? ? ? printf("\t\t\t如果您不想再刪除該生信息請(qǐng)按0,繼續(xù)刪除請(qǐng)按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查無(wú)此人\n");
? ? ? ? ? ? ? ? ? ?system("pause");
?? ??? ??? ??? ? ? system("cls");?? ?
?? ??? ??? ? ? }
?? ??? ?}break;
?? ?case 2:
?? ??? ?{
?? ??? ??? ? ?printf("\t\t\t\t ?請(qǐng)輸入姓名");
?? ??? ??? ? ?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é)號(hào)%d 姓名%s 年齡%d 性別%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);
?? ??? ? ? ? ? ? printf("\t\t\t如果您不想再刪除該生信息請(qǐng)按0,繼續(xù)刪除請(qǐng)按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查無(wú)此人\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請(qǐng)選擇排序方式(1.按學(xué)號(hào)排序 ?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請(qǐng)輸入您要修改的學(xué)生學(xué)號(hào)");
?? ?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é)號(hào)%d 姓名%s 年齡%d 性別%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);
?? ??? ? ? printf("\t\t\t如果您不想再修改該生信息請(qǐng)按0,繼續(xù)修改請(qǐng)按1\n");
?? ??? ? ? scanf("%d",&choice5);
? ? ? ? ? ?system("cls");
?? ??? ? ? if(choice5==1)
?? ??? ? ? {
?? ??? ? ? printf("\t\t\t請(qǐng)輸入修改的信息\n");
? ? ? ? ? ?printf("\t\t\t學(xué)號(hào)\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查無(wú)此人\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é)號(hào)%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以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C語(yǔ)言模擬實(shí)現(xiàn)學(xué)生學(xué)籍管理系統(tǒng)
- C語(yǔ)言實(shí)現(xiàn)學(xué)籍信息管理系統(tǒng)
- C語(yǔ)言實(shí)現(xiàn)學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)
- C語(yǔ)言實(shí)現(xiàn)學(xué)籍管理系統(tǒng)課程設(shè)計(jì)
- C語(yǔ)言實(shí)現(xiàn)學(xué)生學(xué)籍管理系統(tǒng)程序設(shè)計(jì)
- C語(yǔ)言學(xué)籍管理系統(tǒng)源代碼
- C語(yǔ)言實(shí)現(xiàn)學(xué)生學(xué)籍管理系統(tǒng)
- C語(yǔ)言學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)
- C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生學(xué)籍管理系統(tǒng)
- C語(yǔ)言動(dòng)態(tài)鏈表實(shí)現(xiàn)學(xué)生學(xué)籍管理系統(tǒng)
相關(guān)文章
C語(yǔ)言在輸入輸出時(shí)遇到的常見問題總結(jié)
大家在平時(shí)的做題中是否會(huì)遇到和我一樣的煩惱,題目的代碼已經(jīng)基本完成,但是在輸出時(shí)候,總是和題目給出的樣例輸出格式不同?,導(dǎo)致題目不能通過。為了解決這一煩惱,我總結(jié)了以下幾點(diǎn),需要的可以參考一下2022-09-09
VC實(shí)現(xiàn)獲取當(dāng)前正在運(yùn)行的進(jìn)程
這篇文章主要介紹了VC實(shí)現(xiàn)獲取當(dāng)前正在運(yùn)行的進(jìn)程,涉及VC針對(duì)系統(tǒng)進(jìn)程的相關(guān)操作技巧,需要的朋友可以參考下2015-05-05
C語(yǔ)言結(jié)構(gòu)體占用內(nèi)存深入講解
這篇文章主要給大家介紹了關(guān)于C語(yǔ)言結(jié)構(gòu)體占用內(nèi)存的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
linux C 打印錯(cuò)誤信息和標(biāo)準(zhǔn)輸入輸出詳細(xì)介紹
這篇文章主要介紹了linux C 打印錯(cuò)誤信息和標(biāo)準(zhǔn)輸入輸出詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2016-12-12
VC自定義消息響應(yīng)函數(shù)postmessage用法示例
這篇文章主要介紹了VC自定義消息響應(yīng)函數(shù)postmessage用法示例,并對(duì)比說明了postmessage與sendmessage的用法區(qū)別,需要的朋友可以參考下2014-10-10
如何查看進(jìn)程實(shí)際的內(nèi)存占用情況詳解
本篇文章是對(duì)如何查看進(jìn)程實(shí)際的內(nèi)存占用情況進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05

