日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

C语言的成绩查询系统,c语言 成绩查询系统

發布時間:2025/3/21 windows 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言的成绩查询系统,c语言 成绩查询系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

設計目標

1.掌握用c語言進行程序設計的基本方法。

2.熟悉運用windows對文本進行的加工。

3.初步完成一個應用程序的設計和編碼,以及編碼的調試,了解程序設計的過程,鍛煉個人的邏輯思維和程序設計能力。

通過c語言設計一個系統,實現學生成績的查詢和添加,在查詢模塊可以分別按學號查詢和以班級查詢,并且當輸入一個課程名時可以查詢并顯示出不及格學生的成績。

課題分析與設計

1、課題分析

(1)主函數模塊,實現結構體數字組的定義,函數的聲明,用二進制數據文件存放學生成績信息,同時實現操作的選擇。

(2)菜單顯示模塊,通過設計程序實現提示用戶要查詢的信息

(3)成績添加模塊,通過設計實現學生成績的手動添加

(4)成績查詢模塊,可分為三個函數實現,在一個函數中調用其他兩個函數,分別實現按學號查詢和按班級查詢的目標

(5)課程不及格模塊,輸入課程名,查詢并顯示不及格學生的成績

詳細設計

(1)主函數模塊,定義頭文件,定義結構體類型,結構體數字組,通過

(2)菜單顯示模塊,通過輸出函數printf提示用戶可以進行那些選擇。

(3)成績添加模塊,定義指向文件型數據的指針變量,分別用fopen函數和?fclose函數打開和關閉數據文件,實現成績的添加。

(4)成績顯示模塊,利用for循環和fopen函數實現文件里數據的輸出,輸出全部學生的成績。

(5)成績查詢模塊,運用switch語句實現按學號查詢和按班級查詢的功能,

在兩個被調函數中運用strcmp函數實現成績的輸出。

(6)課程不及格模塊,運用switch語句實現課程的選擇,在被調函數中運用if語句實現不及格成績的輸出

程序清單

#include

#include

#include

struct student

{

char num[12];

char name[60];

char banji[60];

char term[60];

float English;

float math;

float cyvyan;

};int dq(struct student stu[]);//

void showmenu();

void add();

void xianshi();

void chaxun();

void xhcz();

void bjcz();

void bujige();

void yy();

void gs();

void cyy();

int number=0;//記錄總的學生人數即文件里面的學生人數

struct student stu[1000];//該數組用來保存所有學生的成績信息

void main()

{

int choose=0;

showmenu();

printf("請輸入要進行的操作步驟");

scanf("%d",&choose);

switch(choose)

{

case 1:break;//退出系統

case 2:add();//添加學生成績

case 3:xianshi();break;//輸出所有學生的成績

case 4:chaxun();break;//根據學號或班級查詢該生或該班級的成績

case 5:bujige();break;//根據課程名查詢并輸出該課程所有不及格成績

default:printf("輸入錯誤\n");break;

}

}

void showmenu()

{

printf("**************************************************\n");

printf("歡迎使用成績查詢系統!\n");

printf("請輸入要進行的操作:\n");

printf("1.退出系統\n");

printf("2.添加學生成績\n");

printf("3.輸出所有學生的成績\n");

printf("4.查詢成績\n");

printf("5.輸入課程名查詢并輸出該課程所有不及格成績\n");

printf("謝謝使用本系統,下次再見!\n");

printf("***************************************************\n");

}

void add()//向文件c:\stu.dat中追加一條成績信息,成績信息可以分多次錄入

{

int i=0;

char ch;

FILE *fp;//定義一個指向文件型數據的指針變量

struct student?stu;?//struct?student為自己聲明的結構體類型,可以表示成績信息

fp=fopen("c:\\stu.dat","ab+");?//以ab+(讀寫)的方式打開數據文件c:\stu.dat

if(fp==NULL)

{

printf("打開文件失敗!\n");

exit(0);

}

do

{

printf("請輸入第%d個學生的成績:學號,姓名,班級,學期,英語成績,高數成績,c語言成績\n",i+1);

scanf("%s%s%s%s%f%f%f",stu.num,stu.name,stu.banji,stu.term,&stu.English,&stu.math,&stu.cyvyan);

fwrite(&stu,sizeof(struct student),1,fp);

number++;?//全局變量,用來統計成績總數

printf("繼續輸入嗎?繼續輸入請按y,結束輸入請按n\n");

ch=getchar();

i++;

}

while(ch=='y');

fclose(fp);

}

void xianshi()?//逐條輸出二進制數據文件c:\stu.dat中的成績信息

{

FILE *fp;

struct?student stu;

fp=fopen("c:\\stu.dat","rb");

//打開保存成績信息的數據文件c:\stu.dat,打開方式為rb(只讀)

if(fp==NULL)

{

printf("打開文件失敗!\n");

exit(0);

}

printf("全體學生的成績為:\n");

fread(&stu,sizeof(struct

student),1,fp);?//先讀一條成績信息,保存到結構體變量xj中

while(!feof(fp))?//判斷文件是否結束

{

//若文件沒結束,則輸出剛讀到的成績信息

printf("%s\t%s\t%s\t%s\t%f\t%f\t%f\n",stu.num, stu.name, stu.banji,

stu.term, stu.English, stu.math, stu.cyvyan);

fread(&stu,sizeof(struct

student),1,fp);?//繼續讀下一條成績信息

}

fclose(fp);

}

void chaxun()//查找學生成績

{

int n=0;

printf("1.按學號查找\n");

printf("2.按班級查找\n");

scanf("%d",&n);

switch(n)

{

case 1:xhcz();break;

case 2:bjcz();break;

default :printf("輸入有誤,結束!\n");break;

}

}

void xhcz()//按學號查找學生成績

{

char num[12];

int i=0;

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

scanf("%s",num);

system("cls");//清楚屏幕先前的顯示內容

printf("\t姓名\t學號\t英語成績\t高數成績\tc語言成績\n");

for(i=0;i

{

if(strcmp(num,stu[i].num)==0)//字符串比較函數,如果輸入的學號與數組中的學號一致

//則輸出該學號對應的成績

{

printf("\t%s\t%s\t%f\t%f\t%f\n",stu[i].name,stu[i].num,stu[i].English,stu[i].math,stu[i].cyvyan);

}

}

void bjcz() //按班級查詢成績

{

char banji[60];

int i=0;

printf("請輸入查詢的班級:\n");

scanf("%s",banji);

for(i=0;i

{

if(strcmp(banji,stu[i].banji)==0)

{

printf("\t%s\t%s\t%f\t%f\t%f\n",stu[i].banji,stu[i].name,stu[i].English,stu[i].math,stu[i].cyvyan);

}

}

}

void bujige()//輸入課程名,查詢并顯示該課程所有不及格成績

{

int m=0;

printf("1.英語課程\n");

printf("2.高數課程\n");

printf("3.c語言課程\n");

scanf("%d",&m);

switch(m)

{

case 1:yy();break;

case 2:gs();break;

case 3:cyy();break;

default:printf("輸入錯誤\n");break;

}

}

void yy()?//輸出英語不及格的成績

{

int i=0;

printf("以下是不及格\n");

printf("\t姓名\t學號\t成績\n");

for(i=0;i

{

if(stu[i].English<60)

{

printf("\t%s\t%s\t%f\n",stu[i].name,stu[i].num,stu[i].English);

}

}

}

void gs() //輸出高數不及格的成績

{

int i=0;

printf("以下是不及格\n");

printf("\t姓名\t學號\t成績\n");

for(i=0;i

{

if(stu[i].math<60)

{

printf("\t%s\t%s\t%f\n",stu[i].name,stu[i].num,stu[i].math);

}

}

}

void cyy() //輸出c語言成績不及格的成績

{

int i=0;

printf("以下是不及格\n");

printf("\t姓名\t學號\t成績\n");

for(i=0;i

{

if(stu[i].cyvyan<60)

{

printf("\t%s\t%s\t%f\n",stu[i].name,stu[i].num,stu[i].cyvyan);

}

}

}

總結

以上是生活随笔為你收集整理的C语言的成绩查询系统,c语言 成绩查询系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。