C語言結(jié)構(gòu)體版學(xué)生成績管理系統(tǒng)
本文實(shí)例為大家分享了C語言實(shí)現(xiàn)學(xué)生成績管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
結(jié)構(gòu)體版的學(xué)生成績管理系統(tǒng)
主要功能有
按1 輸入學(xué)生信息
按2 輸出學(xué)生信息
按3 查詢學(xué)生信息
按4 修改學(xué)生信息
按5 刪除學(xué)生信息
按6 插入學(xué)生信息
按7 排序總成績信息
學(xué)生信息主要有姓名,班級,學(xué)號,C語言成績,高數(shù)成績,大學(xué)英語成績,控制臺界面輸出格式有點(diǎn)不美觀。
#include<stdio.h>
#include<string.h>
struct student
{
char name[20];//名字
char sex[10];//性別
int number;//學(xué)號
char ban[20];//班級
int c;//C語言成績
int gaoshu;//高數(shù)成績
int yingyu;//大學(xué)英語成績
int sum;//總成績
}stu[60];
int n;//學(xué)生數(shù)量
void menu()//菜單
{
printf("\n");
printf("***********************************\n");
printf("*** 學(xué)生成績管理系統(tǒng) ***\n");
printf("*** 按1 輸入學(xué)生信息 ***\n");
printf("*** 按2 輸出學(xué)生信息 ***\n");
printf("*** 按3 查詢學(xué)生信息 ***\n");
printf("*** 按4 修改學(xué)生信息 ***\n");
printf("*** 按5 刪除學(xué)生信息 ***\n");
printf("*** 按6 插入學(xué)生信息 ***\n");
printf("*** 按7 排序成績信息 ***\n");
printf("*** 按0 退出系統(tǒng) ***\n");
printf("***********************************\n");
}
void input()//學(xué)生信息的錄入
{
int i,j=1;
printf("\n 請輸入總學(xué)生數(shù)量:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf(" 輸入第%d個(gè)學(xué)生相關(guān)信息\n",j++);
printf("輸入姓名\n");
scanf("%s",stu[i].name);
getchar();
printf("輸入性別\n");
scanf("%s",stu[i].sex);
printf("輸入學(xué)號\n");
scanf("%d",&stu[i].number);
printf("輸入班級\n");
scanf("%s",stu[i].ban);
printf("輸入c語言成績\n");
scanf("%d",&stu[i].c);
printf("輸入高數(shù)成績\n");
scanf("%d",&stu[i].gaoshu);
printf("輸入大學(xué)英語成績\n");
scanf("%d",&stu[i].yingyu);
stu[i].sum=stu[i].c+stu[i].gaoshu+stu[i].yingyu;
printf("該學(xué)生的總成績:%d\n",stu[i].sum);
}
}
void output()//學(xué)生信息輸出
{
int i;
printf("----------學(xué)生信息的是----------\n");
if(n==0)printf(" ++++++這里沒有信息++++++\n");
else for(i=1;i<=n;i++)
{
printf("名字:%2s",stu[i].name);
printf("性別:%2s",stu[i].sex);
printf("學(xué)號:%2d",stu[i].number);
printf("班級:%2s",stu[i].ban);
printf("c語言成績:%2d\n",stu[i].c);
printf("高數(shù)成績:%2d\n",stu[i].gaoshu);
printf("英語成績:%2d\n",stu[i].yingyu);
stu[i].sum=stu[i].c+stu[i].gaoshu+stu[i].yingyu;
printf("該學(xué)生的總成績:%d\n",stu[i].sum);
}
}
void search()//查詢
{
int num,i,t;
char a[20],k;
if(n!=0)
{
printf("選擇查找條件(1:學(xué)號 2:名字)\n");
scanf("%d",&t);
if(t==1)
{
printf("輸入您要查找的學(xué)生的學(xué)號\n");
scanf("%d",&num);
for(i=1;i<=n;i++)
{
if(stu[i].number==num)
{
printf("名字:%s",stu[i].name);
printf("性別:%s",stu[i].sex);
printf("學(xué)號:%d",stu[i].number);
printf("班級:%s",stu[i].ban);
printf("c語言成績:%d\n",stu[i].c);
printf("高數(shù)成績:%d\n",stu[i].gaoshu);
printf("英語成績:%d\n",stu[i].yingyu);
stu[i].sum=stu[i].c+stu[i].gaoshu+stu[i].yingyu;
printf("該學(xué)生的總成績:%d\n",stu[i].sum);
break;
}
} if(i>n) printf("您查找的信息不存在或者學(xué)號輸入錯(cuò)誤\n");
}
if(t==2)
{
printf("輸入您要查找的學(xué)生的名字\n");
scanf("%s",a);
for(i=1;i<=n;i++)
{
k=strcmp(stu[i].name,a);
if(k==0)
{
printf("名字:%s",stu[i].name);
printf("性別:%s",stu[i].sex);
printf("學(xué)號:%d",stu[i].number);
printf("班級:%s",stu[i].ban);
printf("c語言成績:%d\n",stu[i].c);
printf("高數(shù)成績:%d\n",stu[i].gaoshu);
printf("英語成績:%d\n",stu[i].yingyu);
stu[i].sum=stu[i].c+stu[i].gaoshu+stu[i].yingyu;
printf("該學(xué)生的總成績:%d\n",stu[i].sum);
break;
}
}if(i>n) printf("您查找的信息不存在或者學(xué)號輸入錯(cuò)誤\n");
}
}
else printf("對不起,這里沒有學(xué)生信息\n");
}
void change()//修改
{
int num,i;
printf("輸入您要修改的學(xué)生的學(xué)號\n");
scanf("%d",&num);
if(n==0) printf(" ++++++這里沒有信息++++++\n");
else
{
for(i=1;i<=n;i++)
{
if(stu[i].number==num)
{
printf("您要修改的學(xué)生信息為\n");
printf("名字:%s",stu[i].name);
printf("性別:%s",stu[i].sex);
printf("學(xué)號:%d",stu[i].number);
printf("班級:%s",stu[i].ban);
printf("c語言成績:%d\n",stu[i].c);
printf("高數(shù)成績:%d\n",stu[i].gaoshu);
printf("英語成績:%d\n",stu[i].yingyu);
stu[i].sum=stu[i].c+stu[i].gaoshu+stu[i].yingyu;
printf("該學(xué)生的總成績:%d\n",stu[i].sum);
printf("\n");
break;
}
}
if(i>n) printf("您查找的信息不存在或者學(xué)號輸入錯(cuò)誤\n");
else
{
printf("輸入姓名\n");
scanf("%s",stu[i].name);
getchar();
printf("輸入性別\n");
scanf("%s",stu[i].sex);
printf("輸入學(xué)號\n");
scanf("%d",&stu[i].number);
printf("輸入班級\n");
scanf("%s",stu[i].ban);
printf("輸入c語言成績\n");
scanf("%d",&stu[i].c);
printf("輸入高數(shù)成績\n");
scanf("%d",&stu[i].gaoshu);
printf("輸入大學(xué)英語成績\n");
scanf("%d",&stu[i].yingyu);
}
}
}
void del()//刪除
{
int i,j,e,num;
if(n!=0)
{
printf(" ****這是所有學(xué)生的信息****\n");
for(i=1;i<=n;i++)
{
printf("--------------------------*\n");
printf("名字:%s\n",stu[i].name);
printf(" *\n");
printf("性別:%s\n",stu[i].sex);
printf(" *\n");
printf("學(xué)號:%d\n",stu[i].number);
printf(" *\n");
printf("班級:%s\n",stu[i].ban);
printf(" *\n");
printf("c語言成績:%d\n",stu[i].c);
printf("高數(shù)成績:%d\n",stu[i].gaoshu);
printf("英語成績:%d\n",stu[i].yingyu);
stu[i].sum=stu[i].c+stu[i].gaoshu+stu[i].yingyu;
printf("該學(xué)生的總成績:%d\n",stu[i].sum);
printf("--------------------------*\n");
}
printf("請輸入您要?jiǎng)h除的學(xué)生的學(xué)號:");
scanf("%d",&num);
for(i=1;i<=n;i++)
if(stu[i].number==num)
{
j=i;
for(e=i-1;e<n;e++,j++)
{
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j].sex,stu[j+1].sex);
stu[j].number=stu[j+1].number;
strcpy(stu[j].ban,stu[j+1].ban);
stu[j].c=stu[j+1].c;
stu[j].gaoshu=stu[j+1].gaoshu;
stu[j].yingyu=stu[j+1].yingyu;
n--;
}
}printf("**********該學(xué)生信息已刪除**********\n");
}
else printf("對不起,這里沒有學(xué)生信息\n");
}
void add()//插入
{
int i,j,t;
if(n!=0)
{
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
printf("^ 注: 下面已有信息,如有重復(fù)請不要插入 ^\n");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
printf("\n");
for(i=1;i<=n;i++)
{
printf("名字:%s",stu[i].name);
printf("性別:%s",stu[i].sex);
printf("學(xué)號:%d",stu[i].number);
printf("班級:%s",stu[i].ban);
printf("c語言成績:%d\n",stu[i].c);
printf("高數(shù)成績:%d\n",stu[i].gaoshu);
printf("英語成績:%d\n",stu[i].yingyu);
stu[i].sum=stu[i].c+stu[i].gaoshu+stu[i].yingyu;
printf("該學(xué)生的總成績:%d\n",stu[i].sum);
printf("\n");
}
printf("是否繼續(xù)插入(是:y 否:n)\n");
printf("%c您的選擇是:",t=getchar());
t=getchar();
if(t=='y')
{
j=n;
printf("**********請插入學(xué)生相關(guān)信息**********\n");
printf("輸入姓名\n");
scanf("%s",stu[j+1].name);
getchar();
printf("輸入性別\n");
scanf("%s",stu[j+1].sex);
printf("輸入學(xué)號\n");
scanf("%d",&stu[j+1].number);
printf("輸入班級\n");
scanf("%s",stu[j+1].ban);
printf("輸入c語言成績\n");
scanf("%d",&stu[j+1].c);
printf("輸入高數(shù)成績\n");
scanf("%d",&stu[j+1].gaoshu);
printf("輸入英語成績\n");
scanf("%d",&stu[j+1].yingyu);
strcpy(stu[j+2].name,stu[j+1].name);
strcpy(stu[j+2].sex,stu[j+1].sex);
stu[j+2].number=stu[j+1].number;
strcpy(stu[j+2].ban,stu[j+1].ban);
stu[j+2].c=stu[j+1].c;
stu[j+2].gaoshu=stu[j+1].gaoshu;
stu[j+2].yingyu=stu[j+1].yingyu;
printf(" 該學(xué)生信息已經(jīng)插入\n");
n++;
}else printf("\n (▔▽▔)插入程序結(jié)束,請重新選擇");printf("\n");
}
else{i=1;printf("請輸入要插入學(xué)生的相關(guān)信息\n");
printf("輸入姓名\n");
scanf("%s",stu[i].name);
getchar();
printf("輸入性別\n");
scanf("%s",stu[i].sex);
printf("輸入學(xué)號\n");
scanf("%d",&stu[i].number);
printf("輸入班級\n");
scanf("%s",stu[i].ban);
printf("輸入c語言成績\n");
scanf("%d",&stu[i].c);
printf("輸入高數(shù)成績\n");
scanf("%d",&stu[i].gaoshu);
printf("輸入英語成績\n");
scanf("%d",&stu[i].yingyu);
n++;
}
}
void paixu()
{
int i,j,t;
if(n!=0)
{
printf("該排序是按照總分成績從高到低進(jìn)行排序\n");
for(i=1;i<=n;i++)
for(j=1;j<n;j++)
{
if(stu[j].sum<stu[j+1].sum)
{
t=stu[j].sum;
stu[j].sum=stu[j+1].sum;
stu[j+1].sum=t;
}
}
for(i=1;i<=n;i++)
{
printf("名字:%s\n",stu[i].name);
printf("性別:%s\n",stu[i].sex);
printf("學(xué)號:%d\n",stu[i].number);
printf("班級:%s\n",stu[i].ban);
printf("c語言成績:%d\n",stu[i].c);
printf("高數(shù)成績:%d\n",stu[i].gaoshu);
printf("總成績:%d\n",stu[i].sum);
}
}
else printf(" ++++++這里沒有信息++++++\n");
}
void main()
{
int a,b=1;
while(b)
{
menu();
printf("您選擇的是: ");
scanf("%d",&a);
printf("\n");
switch(a)
{
case 1:input();break;//輸入
case 2:output();break;//輸出
case 3:search();break;//查找
case 4:change();break;//修改
case 5:del();break;//刪除
case 6:add();break;//插入
case 7:paixu();break;//排序
case 0:b=0;break;//退出
}
}
printf(" 學(xué)生管理系統(tǒng)已退出( ^_^ )\n");
}
更多學(xué)習(xí)資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C語言編寫學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)C語言代碼實(shí)現(xiàn)
- C語言利用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)學(xué)生成績管理系統(tǒng)
- C語言學(xué)生成績管理系統(tǒng)源代碼
- C語言實(shí)現(xiàn)學(xué)生成績管理系統(tǒng)實(shí)戰(zhàn)教學(xué)
- C語言實(shí)現(xiàn)簡單學(xué)生成績管理系統(tǒng)
- 使用C語言實(shí)現(xiàn)學(xué)生成績管理系統(tǒng)
- C語言實(shí)現(xiàn)學(xué)生成績管理系統(tǒng)
- C語言學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)
- 基于C語言實(shí)現(xiàn)簡單學(xué)生成績管理系統(tǒng)
相關(guān)文章
一文詳解C++中的轉(zhuǎn)換構(gòu)造函數(shù)
在 C/C++ 中,不同的數(shù)據(jù)類型之間可以相互轉(zhuǎn)換,無需用戶指明如何轉(zhuǎn)換的稱為自動(dòng)類型轉(zhuǎn)換(隱式類型轉(zhuǎn)換),需要用戶顯式地指明如何轉(zhuǎn)換的稱為強(qiáng)制類型轉(zhuǎn)換,本文就給大家詳細(xì)介紹一下C++的轉(zhuǎn)換構(gòu)造函數(shù),需要的朋友可以參考下2023-09-09
數(shù)據(jù)結(jié)構(gòu)之歸并排序的實(shí)例詳解
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)之歸并排序的實(shí)例詳解的相關(guān)資料,這里對歸并排序進(jìn)行詳細(xì)介紹,需要的朋友可以參考下2017-08-08
淺析char 指針變量char *=p 這個(gè)語句的輸出問題
下面小編就為大家?guī)硪黄獪\析char 指針變量char *=p 這個(gè)語句的輸出問題。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05
C++11 寫一個(gè)只觸發(fā)一次槽函數(shù)的Qt connect函數(shù)
這篇文章主要為大家介紹了C++11 寫一個(gè)只觸發(fā)一次槽函數(shù)的Qt connect函數(shù)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
win10系統(tǒng)下?VS2019點(diǎn)云庫PCL1.12.0的安裝與配置教程
點(diǎn)云庫全稱是Point?Cloud?Library(PCL),是一個(gè)獨(dú)立的、大規(guī)模的、開放的2D/3D圖像和點(diǎn)云處理項(xiàng)目,這篇文章主要介紹了win10系統(tǒng)下?VS2019點(diǎn)云庫PCL1.12.0的安裝與配置,需要的朋友可以參考下2022-07-07

