首先我們?cè)谧鲆粋€(gè)管理系統(tǒng)之前要了解這個(gè)學(xué)生管理系統(tǒng)需要哪些功能,如:簡(jiǎn)單的增,刪,改,查,即:錄入成績(jī),查詢成績(jī),刪除成績(jī),修改成績(jī),插入成績(jī),這幾個(gè)是基本要包括的,當(dāng)然我們也可以加上排序,統(tǒng)計(jì)學(xué)生人數(shù),這些功能。

當(dāng)清楚需要哪些功能之后我們就可以寫系統(tǒng)的界面了。
效果圖如下:

printf("\t\t\t---------------STUDENT---------------\t\t\t\n");
printf("\t\t\t0.退出\t\t\t\n");
printf("\t\t\t1.錄入成績(jī)\t\t\t\n");
printf("\t\t\t2.查詢成績(jī)\t\t\t\n");
printf("\t\t\t3.刪除成績(jī)\t\t\t\n");
printf("\t\t\t4.修改成績(jī)\t\t\t\n");
printf("\t\t\t5.插入成績(jī)\t\t\t\n");
printf("\t\t\t6.排序\t\t\t\n");
printf("\t\t\t7.統(tǒng)計(jì)學(xué)生人數(shù)\t\t\t\n");
printf("\t\t\t-------------------------------------\t\t\t\n");
printf("\t\t\t選擇(0---7)\t\t\t");接著我們就可以加入switch函數(shù)進(jìn)行功能選擇
定義整型變量choice?
int choice ;
scanf("%d",&choice );
switch(choice )
{
case 0:exit(0); break;
case 1: in();save();system("pause");system("cls");break;//錄入
case 2: show();system("pause");system("cls");break;//查詢
case 3: del();save();system("pause");system("cls");break;//刪除
case 4: modify();system("pause");system("cls");break;//修改
case 5: insert();save();system("pause");system("cls");break;//插入
case 6: order();system("pause");system("cls");break;//排序
case 7: total();system("pause");system("cls");break;//統(tǒng)計(jì)
default:printf("\n輸入錯(cuò)誤,請(qǐng)輸入0---7\n\n");system("pause");system("cls");break;
}定義一個(gè)Menu函數(shù)把上面兩個(gè)結(jié)合起來,我們加一個(gè)while循環(huán)讓這個(gè)這個(gè)菜單一直循環(huán)出現(xiàn),而不是用一次就沒了。
void Menu()//菜單
{ while(1)
{
printf("\t\t\t---------------STUDENT---------------\t\t\t\n");
printf("\t\t\t0.退出\t\t\t\n");
printf("\t\t\t1.錄入成績(jī)\t\t\t\n");
printf("\t\t\t2.查詢成績(jī)\t\t\t\n");
printf("\t\t\t3.刪除成績(jī)\t\t\t\n");
printf("\t\t\t4.修改成績(jī)\t\t\t\n");
printf("\t\t\t5.插入成績(jī)\t\t\t\n");
printf("\t\t\t6.排序\t\t\t\n");
printf("\t\t\t7.統(tǒng)計(jì)學(xué)生人數(shù)\t\t\t\n");
printf("\t\t\t-------------------------------------\t\t\t\n");
printf("\t\t\t選擇(0---7)\t\t\t");
int chioce;
scanf("%d",&chioce);
switch(chioce)
{
case 0:exit(0); break;
case 1: in();save();system("pause");system("cls");break;//錄入
case 2: show();system("pause");system("cls");break;//查詢
case 3: del();save();system("pause");system("cls");break;//刪除
case 4: modify();system("pause");system("cls");break;//修改
case 5: insert();save();system("pause");system("cls");break;//插入
case 6: order();system("pause");system("cls");break;//排序
case 7: total();system("pause");system("cls");break;//統(tǒng)計(jì)
default:printf("\n輸入錯(cuò)誤,請(qǐng)輸入0---7\n\n");system("pause");system("cls");break;
}
}
}寫完菜單之后我們就要對(duì)“學(xué)生”這個(gè)數(shù)據(jù)進(jìn)行分析
在這個(gè)系統(tǒng)中學(xué)生的信息要包含那些東西,舉個(gè)例子:學(xué)號(hào),姓名,選修課成績(jī),實(shí)驗(yàn)課成績(jī),必修課成績(jī),總成績(jī),平均成績(jī)。然后根據(jù)這些寫一個(gè)結(jié)構(gòu)體(我寫的是數(shù)組類型的結(jié)構(gòu)體)
struct student
{
char num[20];//學(xué)號(hào)
char name[20];//姓名
float elec;//選修課
float expe;//實(shí)驗(yàn)課
float requ;//必修課
float sum;//總成績(jī) '
float ave;//平均成績(jī)
}student[N];接著我們開始寫實(shí)現(xiàn)這個(gè)系統(tǒng)功能的函數(shù)
第一個(gè)就是成績(jī)的錄入
void in()//錄入信息
{
void save() ;
int i,n;
printf("輸入錄取學(xué)生的數(shù)量\n");
scanf("%d", &n);
for (i=1 ; i<=n; i++)
{ printf("請(qǐng)輸入第%d位學(xué)生學(xué)號(hào):\n",i);
scanf("%s",student[i].num);
printf("請(qǐng)輸入第%d位學(xué)生姓名:\n", i );
scanf("%s",student[i].name);
printf("請(qǐng)輸入第%d位學(xué)生選修課成績(jī):\n", i );
scanf("%f",&student[i].elec);
printf("請(qǐng)輸入第%d位學(xué)生實(shí)驗(yàn)成績(jī):\n", i );
scanf("%f", &student[i].expe);
printf("請(qǐng)輸入第%d位學(xué)生必修課成績(jī):\n", i );
scanf("%f", &student[i].requ);
student[i].sum=student[i].elec+student[i].expe+student[i].requ;
student[i].ave=student[i].sum /3;
count++;
}
printf("錄入成功\n");
}第二個(gè)就是成績(jī)的查詢
void show() //查詢
{
int i;
char xh[20];
printf("請(qǐng)輸入要查詢的學(xué)生學(xué)號(hào):\n");
getchar();
gets(xh);
for (i=0;i第三個(gè)就是成績(jī)的刪除
void del()//刪除
{
void save() ;
int j,a=0,k=count;
char xh[25];
printf("所要?jiǎng)h除的學(xué)生學(xué)號(hào)為:\n");
scanf("%s",xh);
flush(stdin);//緩沖區(qū)
for (j=0;j第四項(xiàng),成績(jī)的修改
步驟 1.先找到要修改的學(xué)生
2.選擇修改的項(xiàng)目
? 3.更改總成績(jī)和平均分
? 4.顯示修改后的學(xué)生數(shù)據(jù)
void modify()//修改
{ void save() ;
int i,j,h;
float score;
char xh[20];
printf ("01.輸入修改的學(xué)生的學(xué)號(hào):\n") ;
scanf("%s",xh);
for(i=1;i第五項(xiàng),成績(jī)的插入
void insert ()//插入
{void save();
int m, flag, i = count, j,k;
printf("請(qǐng)輸入待添加的學(xué)生人數(shù):\n");
scanf("%d", &m);
if (m >0)
{
k=count+1;
for(i=k;i<=count+m;i++)
{
flag = 1;
while (flag!= 0)
{
flag = 0;
printf("請(qǐng)輸入第%d位學(xué)生的學(xué)號(hào):\n", i);
getchar();
gets(student[i].num);
for (j = 0; j< i; j++)
{
if (strcmp(student[i].num, student[j].num) == 0)
{
printf("該學(xué)號(hào)已存在,請(qǐng)重新輸入!\n");
flag = 1;
break;
}
}
}
printf("請(qǐng)輸入第%d位學(xué)生姓名:\n", i );
gets(student[i].name);
printf("請(qǐng)輸入第%d位學(xué)生選修課成績(jī):\n", i );
scanf("%f",&student[i].elec);
printf("請(qǐng)輸入第%d位學(xué)生實(shí)驗(yàn)成績(jī):\n", i );
scanf("%f", &student[i].expe);
printf("請(qǐng)輸入第%d位學(xué)生必修課成績(jī):\n", i );
scanf("%f", &student[i].requ);
student[i].sum=student[i].elec+student[i].expe+student[i].requ;
student[i].ave=student[i].sum /3;
}
count+= m;
printf("添加完成!\n");
system("pause");
}
}第六項(xiàng),排序
void order()//排序
{
int i,j,m;
for(j=1;j<=count-1;j++)
{ m=j;
for(i=j+1;i<=count;i++)
{
if(student[i].sum< student[m].sum)
{
student[0]=student[i];
student[i]=student[m];
student[m]=student[0];
}
}
}
for(j=1;j<=count;j++)
{
printf("\n學(xué)號(hào):%-5s 姓名:%-5s 選修課成績(jī):%-5.1f 實(shí)驗(yàn)課成績(jī):%-5.1f 必修課成績(jī):%-5.1f 總分:%-5.1f 平均分:%-5.1f\n",
student[j].num,student[j].name,student[j].elec,student[j].expe,student[j].requ,student[j].sum,student[j].ave);
}
}第七項(xiàng),統(tǒng)計(jì)學(xué)生人數(shù)
void total ()//統(tǒng)計(jì)
{
printf("學(xué)生人數(shù)%d\n",count);
}完整的代碼
#include#include#include#define N 100
struct student
{
char num[20];//學(xué)號(hào)
char name[20];//姓名
float elec;//選修課
float expe;//實(shí)驗(yàn)課
float requ;//必修課
float sum;//總成績(jī) '
float ave;//平均成績(jī)
}student[N];
void Menu(); // 菜單
void in();//錄入
void show() ;//查找
void order();//排序
void del(); //刪除
void modify();//修改
void total ();//統(tǒng)計(jì)
void insert ();//插入
int count=0;//人數(shù)
void save();//保存
int main()
{
Menu();
return 0;
}
void Menu()//菜單
{ while(1)
{
printf("\t\t\t---------------STUDENT---------------\t\t\t\n");
printf("\t\t\t0.退出\t\t\t\n");
printf("\t\t\t1.錄入成績(jī)\t\t\t\n");
printf("\t\t\t2.查詢成績(jī)\t\t\t\n");
printf("\t\t\t3.刪除成績(jī)\t\t\t\n");
printf("\t\t\t4.修改成績(jī)\t\t\t\n");
printf("\t\t\t5.插入成績(jī)\t\t\t\n");
printf("\t\t\t6.排序\t\t\t\n");
printf("\t\t\t7.統(tǒng)計(jì)學(xué)生人數(shù)\t\t\t\n");
printf("\t\t\t-------------------------------------\t\t\t\n");
printf("\t\t\t選擇(0---7)\t\t\t");
int chioce;
scanf("%d",&chioce);
switch(chioce)
{
case 0:exit(0); break;
case 1: in();save();system("pause");system("cls");break;//錄入
case 2: show();system("pause");system("cls");break;//查詢
case 3: del();save();system("pause");system("cls");break;//刪除
case 4: modify();system("pause");system("cls");break;//修改
case 5: insert();save();system("pause");system("cls");break;//插入
case 6: order();system("pause");system("cls");break;//排序
case 7: total();system("pause");system("cls");break;//統(tǒng)計(jì)
default:printf("\n輸入錯(cuò)誤,請(qǐng)輸入0---7\n\n");system("pause");system("cls");break;
}
}
}
void save() //保存
{
FILE* fp;
char filename[100];
int i;
printf("請(qǐng)輸入要保存的文件名:\n");
scanf("%s", filename);
if ((fp = fopen(filename, "w")) == NULL)
{
printf("打開文件失敗!\n");
exit(0);
}
for (i = 1; i<=count; i++)
{
if (fwrite(&student[i], sizeof(struct student), 1, fp) != 1)
printf("保存失敗!\n");
}
printf("保存成功!\n");
fclose(fp);
}
void in()//錄入信息
{
void save() ;
int i,n;
printf("輸入錄取學(xué)生的數(shù)量\n");
scanf("%d", &n);
for (i=1 ; i<=n; i++)
{ printf("請(qǐng)輸入第%d位學(xué)生學(xué)號(hào):\n",i);
scanf("%s",student[i].num);
printf("請(qǐng)輸入第%d位學(xué)生姓名:\n", i );
scanf("%s",student[i].name);
printf("請(qǐng)輸入第%d位學(xué)生選修課成績(jī):\n", i );
scanf("%f",&student[i].elec);
printf("請(qǐng)輸入第%d位學(xué)生實(shí)驗(yàn)成績(jī):\n", i );
scanf("%f", &student[i].expe);
printf("請(qǐng)輸入第%d位學(xué)生必修課成績(jī):\n", i );
scanf("%f", &student[i].requ);
student[i].sum=student[i].elec+student[i].expe+student[i].requ;
student[i].ave=student[i].sum /3;
count++;
}
printf("錄入成功\n");
}
void modify()//修改
{ void save() ;
int i,j,h;
float score;
char xh[20];
printf ("01.輸入修改的學(xué)生的學(xué)號(hào):\n") ;
scanf("%s",xh);
for(i=1;i0)
{
k=count+1;
for(i=k;i<=count+m;i++)
{
flag = 1;
while (flag!= 0)
{
flag = 0;
printf("請(qǐng)輸入第%d位學(xué)生的學(xué)號(hào):\n", i);
getchar();
gets(student[i].num);
for (j = 0; j< i; j++)
{
if (strcmp(student[i].num, student[j].num) == 0)
{
printf("該學(xué)號(hào)已存在,請(qǐng)重新輸入!\n");
flag = 1;
break;
}
}
}
printf("請(qǐng)輸入第%d位學(xué)生姓名:\n", i );
gets(student[i].name);
printf("請(qǐng)輸入第%d位學(xué)生選修課成績(jī):\n", i );
scanf("%f",&student[i].elec);
printf("請(qǐng)輸入第%d位學(xué)生實(shí)驗(yàn)成績(jī):\n", i );
scanf("%f", &student[i].expe);
printf("請(qǐng)輸入第%d位學(xué)生必修課成績(jī):\n", i );
scanf("%f", &student[i].requ);
student[i].sum=student[i].elec+student[i].expe+student[i].requ;
student[i].ave=student[i].sum /3;
}
count+= m;
printf("添加完成!\n");
system("pause");
}
}
void total ()//統(tǒng)計(jì)
{
printf("學(xué)生人數(shù)%d\n",count);
} 你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
新聞標(biāo)題:簡(jiǎn)易學(xué)生管理系統(tǒng)(C語言)-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://www.chinadenli.net/article32/pcppc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站收錄、電子商務(wù)、做網(wǎng)站、定制開發(fā)、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)