當前位置:編程學習大全網 - 源碼下載 - 求:C語言程序報告(管理系統),源代碼Microsoft Visual C++6.0上運行

求:C語言程序報告(管理系統),源代碼Microsoft Visual C++6.0上運行

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<string.h>

typedef struct

{

long class_1; /*班級*/

long number; /*學號*/

char name[20]; /*姓名*/

float tall; /*身高*/

float math; /*數學*/

float c_program; /*C語言*/

float physics; /*大學物理*/

float english; /*大學英語*/

float sum; /*總分*/

float average; /*平均分*/

}Student;

Student stud[100];

int i=0;

int menu() /*菜單函數*/

{

int a;

system("graftabl 936");

printf("***********************學生信息管理系統************************\n\n\n");

printf("\t\t\t.(1)輸入學生信息\n");

printf("\t\t\t.(2)顯示所有學生信息\n");

printf("\t\t\t.(3)按平均分升降排序\n");

printf("\t\t\t.(4)根據學號查找學生信息\n");

printf("\t\t\t.(5)插入學生信息\n");

printf("\t\t\t.(6)刪除學生信息\n");

printf("\t\t\t.(7)修改學生信息\n");

printf("\t\t\t.(8)從文件中讀入數據\n");

printf("\t\t\t.(9)將所有記錄寫入文件\n");

printf("\t\t\t.(0)退出本系統\n\n\n");

printf("***********************學生信息管理系統************************\n");

printf("請選擇妳要的操作(0~9):");

scanf("%d",&a); /*讀入壹個數*/

while(a<0||a>9)

{

printf("輸入錯誤!請重新輸入:\n");

scanf("%d",&a); /*輸入錯誤就壹直循環*/

}

system("cls"); /*清屏*/

return(a); /*返回a的值*/

}

int input(Student stud[])

{

char flag='Y';

while(flag=='Y'||flag=='y')

{

printf("請輸入該學生的班級:");

scanf("%ld",&stud[i].class_1);

printf("請輸入該學生的學號:");

scanf("%ld",&stud[i].number);

printf("請輸入該學生的姓名:");

scanf("%s",stud[i].name);

printf("請輸入學生的身高:");

scanf("%f",&stud[i].tall);

printf("請輸入該學生的“數學”分數:");

scanf("%f",&stud[i].math);

printf("請輸入該學生的“C語言”分數:");

scanf("%f",&stud[i].c_program);

printf("請輸入該學生的“大學物理”分數:");

scanf("%f",&stud[i].physics);

printf("請輸入該學生的“大學英語”分數:");

scanf("%f",&stud[i].english);

getchar();

stud[i].sum=stud[i].math+stud[i].c_program+stud[i].physics+stud[i].english;

stud[i].average=stud[i].sum/4;

printf("該學生的總分為:%6.2f\t平均分為:%6.2f\n",stud[i].sum,stud[i].average);

i++;

printf("繼續輸入學生信息請按:Y or y,退出請按:N or n.\n");

scanf("%c",&flag); /*判斷是否繼續輸入*/

}

printf("按任意鍵回主菜單\n");

getchar();

system("cls");

return(i);

}

void Display(Student stud[],int n) /*顯示所有記錄*/

{

int k;

if(n==0)

printf("暫無學生記錄!\n");

else

{

printf(" 班別 學號 姓名 身高 數學 C語言 物理 英語 總分 平均分\n");

for(k=0;k<n;k++) /*循環輸出*/

{

printf("%7ld",stud[k].class_1);

printf("%7ld",stud[k].number);

printf("%9s",stud[k].name);

printf("%7.1f",stud[k].tall);

printf("%7.2f",stud[k].math);

printf("%7.2f",stud[k].c_program);

printf("%7.2f",stud[k].physics);

printf("%7.2f",stud[k].english);

printf("%7.2f",stud[k].sum);

printf("%8.2f\n",stud[k].average);

}

}

system("pause");

system("cls");

}

void Sort(Student stud[],int i) /*按平均分排序*/

{

int m,n,k; /*m,n為循環變量*/

Student t;

for(m=0;m<i-1;m++) /*排序*/

for(n=m+1;n<i;n++)

if(stud[m].average<stud[n].average)

{

t=stud[m];

stud[m]=stud[n];

stud[n]=t;

}

printf("排序後的順序為:\n");

printf(" 班別 學號 姓名 身高 數學 C語言 物理 英語 總分 平均分\n");

for(k=0;k<n;k++) /*循環輸出*/

{

printf("%7ld",stud[k].class_1);

printf("%7ld",stud[k].number);

printf("%9s",stud[k].name);

printf("%7.1f",stud[k].tall);

printf("%7.2f",stud[k].math);

printf("%7.2f",stud[k].c_program);

printf("%7.2f",stud[k].physics);

printf("%7.2f",stud[k].english);

printf("%7.2f",stud[k].sum);

printf("%8.2f\n",stud[k].average);

}

system("pause");

system("cls");

}

void Search(Student stud[],int i) /*查找並顯示壹個記錄*/

{

int p,k; /*p為要查找的學生學號*/

char flag='y';

while(flag=='y'||flag=='Y')

{

printf("請輸入要查找的學生學號:");

scanf("%d",&p);

getchar();

for(k=0;p!=stud[k].number&&k<i;k++)

if(k==i)

printf("該學號不存在!\n");

else

{

printf("該學生的信息為:\n");

printf(" 班別 學號 姓名 身高 數學 C語言 物理 英語 總分 平均分\n");

printf("%7ld",stud[k].class_1);

printf("%7ld",stud[k].number);

printf("%9s",stud[k].name);

printf("%7.1f",stud[k].tall);

printf("%7.2f",stud[k].math);

printf("%7.2f",stud[k].c_program);

printf("%7.2f",stud[k].physics);

printf("%7.2f",stud[k].english);

printf("%7.2f",stud[k].sum);

printf("%8.2f\n",stud[k].average);

}

printf("繼續查找學生信息請輸入:Y or y,退出輸入:N or n.\n");

scanf("%c",&flag);

}

system("cls");

}

int Insert(Student stud[],int i) /*插入學生信息*/

{

char flag='Y';

while(flag=='y'||flag=='Y')

{

printf("請輸入要插入學生的班別:");

scanf("%ld",&stud[i].class_1);

printf("請輸入要插入學生的學號:");

scanf("%ld",&stud[i].number);

printf("請輸入要插入學生的姓名:");

scanf("%s",&stud[i].name);

printf("請輸入要插入學生的身高:");

scanf("%f",&stud[i].tall);

printf("請輸入要插入學生的“數學”分數:");

scanf("%f",&stud[i].math);

printf("請輸入要插入學生的“C語言”分數:");

scanf("%f",&stud[i].c_program);

printf("請輸入要插入學生的“大學物理”分數:");

scanf("%f",&stud[i].physics);

printf("請輸入要插入學生的“大學英語”分數:");

scanf("%f",&stud[i].english);

getchar();

stud[i].sum=stud[i].math+stud[i].c_program+stud[i].physics+stud[i].english;

stud[i].average=stud[i].sum/4;

printf("該學生的總分為:%6.2f\n",stud[i].sum);

printf("該學生的平均分為:%6.3f\n",stud[i].average);

i++;

printf("繼續插入學生信息請輸入:Y or y,退出輸入:N or n.\n");

scanf("%c",&flag); /*判斷是否繼續輸入*/

}

getchar();

printf("是否需要排序,需要請按'Y' or 'y';不需要請按'N' or 'n'.\n");

flag=getchar();

if(flag=='y'||flag=='Y')

Sort(stud,i);

system("cls");

return(i);

}

int Delete(Student stud[],int i) /*根據學號刪除學生信息*/

{

long s;

int t,p;

char a='Y'; /*判斷是否繼續*/

while(a=='Y'||a=='y')

{

printf("請輸入需要刪除學生的學號:\n");

scanf("%ld",&s);

getchar();

for(t = 0; t < i && s!=stud[i].number; t++)

if(s==stud[t].number)

{

for(p=t;p<i;p++)

stud[p]=stud[p+1];

i=i-1;

printf("刪除成功!\n");

}

else printf("沒有找到要刪除的學號!\n");

printf("是否繼續刪除,繼續請按'Y' or 'y',退出請按'N' or 'n'.\n");

a=getchar(); /*判斷是否繼續*/

getchar(); /*消除回車鍵的影響*/

}

system("cls");

return(i);

}

void change(Student stud[],int i) /*修改學生信息*/

{

long p=0; /*p用來表示要修改的學生學號*/

int k; /*k為循環變量*/

char a='y';

while(a=='y'||a=='Y')

{

printf("\t\t學生信息修改:\n");

printf("請輸入要修改的學生的學號:\n");

scanf("%ld",&p);

for(k=0;p!=stud[k].number && k<i;k++)

if(k==i)

printf("無法找到該學生的信息:\n");

else

{

printf("該學生的信息為:\n");

printf(" 班別 學號 姓名 身高 數學 C語言 物理 英語 總分 平均分\n");

printf("%7ld",stud[k].class_1);

printf("%7ld",stud[k].number);

printf("%9s",stud[k].name);

printf("%7.1f",stud[k].tall);

printf("%7.2f",stud[k].math);

printf("%7.2f",stud[k].c_program);

printf("%7.2f",stud[k].physics);

printf("%7.2f",stud[k].english);

printf("%7.2f",stud[k].sum);

printf("%8.2f\n",stud[k].average);

printf("請輸入該學生的新信息:\n");

printf("請輸入該學生的班級:");

scanf("%d",&stud[k].class_1);

printf("請輸入該學生的學號:");

scanf("%d",&stud[k].number);

printf("請輸入該學生的姓名:");

scanf("%s",stud[k].name);

printf("請輸入該學生的身高:");

scanf("%f",&stud[k].tall);

printf("請輸入該學生的“數學”分數:");

scanf("%f",&stud[k].math);

printf("請輸入該學生的“C語言”分數:");

scanf("%f",&stud[k].c_program);

printf("請輸入該學生的“大學物理”分數:");

scanf("%f",&stud[k].physics);

printf("請輸入該學生的“大學英語”分數:");

scanf("%f",&stud[k].english);

getchar();

stud[k].sum=stud[k].math+stud[k].c_program+stud[k].physics+stud[k].english;

stud[k].average=stud[k].sum/4;

printf("修改成功!\n");

}

printf("是否繼續修改,繼續請按'y'或'Y',退出請按'N'或'n'.\n");

a=getchar();

}

system("pause");

system("cls");

}

int Read(Student stud[],int i) /*從文件中讀入學生信息*/

{

int k=i;

FILE *fp; /*定義壹個文件類型的指針*/

char filename[20]; /*定義文件名*/

printf("請輸入文件名:\n");

scanf("%s",&filename);

if((fp=fopen(filename,"rb"))==NULL) /*打開文件*/

{

printf("無法打開文件!\n"); /*打開失敗信息*/

return 0;

}

printf("從文件%s中讀入的數據為:\n",filename);

fread(&stud[k],sizeof(Student),1,fp);

printf(" 班別 學號 姓名 身高 數學 C語言 物理 英語 總分 平均分\n");

while(!feof(fp))

{

printf("%7ld",stud[k].class_1);

printf("%7ld",stud[k].number);

printf("%9s",stud[k].name);

printf("%7.1f",stud[k].tall);

printf("%7.2f",stud[k].math);

printf("%7.2f",stud[k].c_program);

printf("%7.2f",stud[k].physics);

printf("%7.2f",stud[k].english);

printf("%7.2f",stud[k].sum);

printf("%8.2f\n",stud[k].average);

k++;

fread(&stud[k],sizeof(Student),1,fp);

}

fclose(fp);

printf("讀入成功!\n");

system("pause");

system("cls");

return(k);

}

void Save(Student stud[],int i) /*將所有記錄寫入文件*/

{

int k=0;

FILE *fp; /*定義文件指針*/

char filename[80]; /*定義文件名*/

printf("請輸入您要儲存學生信息的文件名"); /*輸入文件名*/

scanf("%s",&filename);

if( (fp=fopen(filename,"wt"))==NULL) /*打開文件*/

{

printf("無法打開該文件!\n");

return;

}

while(k<i)

{

fwrite(&(stud[k]), sizeof(Student), 1, fp);

k++;

}

printf("信息保存成功!\n");

fclose(fp);

}

int main(void)

{

int n=0;

while(1) /*選擇判斷要執行的語句*/

{

switch(menu())

{

case 1:printf("\n***********輸入學生信息**********\n"); /*輸入學生信息*/

n=input(stud);break;

case 2:printf("\n***********顯示所有學生的信息*******\n");

Display(stud,n);break;

case 3:printf("\n***********按平均分升降排序*******\n");

Sort(stud,n);break;

case 4:printf("\n***********根據學號查找學生的信息*******\n");

Search(stud,n);break;

case 5:printf("\n***********插入學生的信息*******\n");

n=Insert(stud,n);break;

case 6:printf("\n***********刪除學生信息*******\n");

n=Delete(stud,n);

case 7:printf("\n***********修改學生的信息*******\n");

change(stud,n);break;

case 8:printf("\n***********從文件中讀入數據*******\n");

n=Read(stud,n);break;

case 9:printf("\n***********將所有記錄寫入文件*******\n");

Save(stud,n);break;

case 0:printf("\n***********感謝您的使用!*******\n");

exit(0);

}

}

return 0;

}

學生管理系統,,,這個可以不

  • 上一篇:ASP和ACCESS數據庫二者的聯系是什麽
  • 下一篇:底部平臺指示器源代碼
  • copyright 2024編程學習大全網