有一小學生成績管理系統
① 那有學生成績管理系統模板
我用過這個的。你網路搜索下學生成績管理系統永久免費版,裡面還有完整的視頻幫助
② 求一個一個學生成績管理系統
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
struct student_type
{
char name[8];
int num;
int clss;
float score[3];
double ave;
}stud[10];
char ar[100]={"學號 姓名 班級 課程1 課程2 課程3 平均成績\n"};
int n;//學生人數。
int main()
{
void write ();
void save ();
void display ();
int n=0;
while (1)
{
printf ("\n\t\t\t\t學生成績管理\n\n");
printf ("\t1:請輸入學生的成績記錄\n");
printf ("\t2:顯示成績記錄\n");
printf ("\t3:退出系統\n");
printf ("\t輸入操作選項序號:");
scanf ("%d",&n);
switch (n)
{
case 1 : write (); break;
case 2 : display (); break;
case 3 : printf("\n\t\t\t**************謝謝使用!**************\n");break;
default : printf("\n請輸入1、2或3!!!");
}
if (n==3) break;
}
//system("pause");
return 0;
}
/* *********輸入學生成績**********/
void write()
{
int i=0, j=0;
printf("請輸入需要輸入的人數:");
scanf("%d",&n);
for(i=0; i<n ;i++)
{
printf("請輸入學號 姓名 班級 :");
scanf("%d%s%d",&stud[i].num, &stud[i].name, &stud[i].clss);
for(j=0; j<3; j++)
{
printf("請依次輸入課程成績 :");
scanf("%f", &stud[i].score[j]);
}
stud[i].ave = (stud[i].score[0] + stud[i].score[1]
+ stud[i].score[2]) / 3;
}
printf ("\n\t\t是否保存?\n\t\t\t是:1;\n\t\t\t否:2.\n");
scanf("%d",&i);
if(i==1)
save();
else
main();
}
/**********讀出文件資料***********/
void display ()
{
int i=0;
FILE *fp;
fp =fopen("score.txt","r");
if ((fp=fopen("score.txt","r")) == NULL)
{
printf("cannot open this score");
exit(0);
}
fread(&ar,sizeof(ar),1,fp);
for(i=0;i<n;i++)
{
//fscanf(fp, "%11d%s%2d%5.2f%5.2f%5.2f%5.2f\n",&stud[i].num, &stud[i].name[i],
// &stud[i].clss, &stud[i].score[0], &stud[i].score[1], &stud[i].score[2],
// &stud[i].ave);
fread(&stud[i],sizeof(struct student_type),1,fp);
printf("%s",ar);
printf("%11d %s %2d %5.2f %5.2f %5.2f %5.2f \n", stud[i].num, stud[i].name,
stud[i].clss, stud[i].score[0], stud[i].score[1], stud[i].score[2],
stud[i].ave);
}
fclose(fp);
}
/**********資料寫入文件**********/
void save()
{
int i=0;
FILE *fp = NULL;
fp=fopen ("score.txt","w+");
//fputs("學號 姓名 班級 課程1 課程2 課程3 平均成績\n",fp);
fwrite(&ar,sizeof(ar),1,fp);
for(i=0;i<4;i++)
{
//fwrite(&stud[i], sizeof(struct student_type), 1, fp);
//fprintf(fp,"%11d %s %2d %5.2f %5.2f %5.2f %5.2f \n", stud[i].num, stud[i].name,
// stud[i].clss, stud[i].score[0], stud[i].score[1], stud[i].score[2],
// stud[i].ave);
fwrite(&stud[i],sizeof(struct student_type),1,fp);
}
fclose(fp);
printf ("\n\n*******************恭喜,保存完成!*******************\n\n");
}
好人啊,,謝了啊
③ 一個學生成績管理系統
#include<stdio.h>
#include<string.h>
#include<math.h>
struct student_type
{
char name[8];
int num;
int Class; /*把class第一個字母大寫了,因為在VC中class為類關鍵字*/
float score[3];
double ave;
}stud[4];
int main()
{
void Write (); /*把write第一個字母大寫了,因為C語言中有write函數 */
void save ();
void display ();
int n=0;
while (1)
{
printf ("\n\t\t\t\t學生成績管理\n\n");
printf ("\t1:請輸入學生的成績記錄\n");
printf ("\t2:顯示成績記錄\n");
printf ("\t3:退出系統\n");
printf ("\t輸入操作選項序號:");
scanf ("%d",&n);
switch (n)
{
case 1 : Write (); break;
case 2 : display (); break;
case 3 : printf("\n\t\t\t**************謝謝使用!**************\n");break;
default : printf("\n請輸入1、2或3!!!");
}
if (n==3) break;
}
system("pause");
return 0;
}
/* *********輸入學生成績**********/
void Write()
{
int i=0, j=0;
for(i=0; i<4 ;i++)
{
printf("\n請輸入學號 姓名 班級 :");
scanf("%d%s%d",&stud[i].num, &stud[i].name, &stud[i].Class);
printf("\n請依次輸入課程成績 :"); /*這句話從循環中移了出來 */
for(j=0; j<3; j++)
{
scanf("%f", &stud[i].score[j]);
}
stud[i].ave = (stud[i].score[0] + stud[i].score[1]
+ stud[i].score[2]) / 3;
}
printf ("\n\t\t是否保存?\n\t\t\t是:1;\n\t\t\t否:2.\n");
scanf ("%d", &i); /* i前面加& */
if (i==1)
save();
else
main();
}
/**********讀出文件資料***********/
void display ()
{
int i=0;
FILE *fp;
fp = fopen ("score.txt","r");
if ((fp=fopen("score.txt","r")) == NULL)
{
printf("cannot open this score");
exit (0);
}
for (i=0; i<4; i++)
{
fscanf (fp, "%11d%s%2d%5.2f%5.2f%5.2f%5.2f\n", &stud[i].num, &stud[i].name[i],
&stud[i].Class, &stud[i].score[0], &stud[i].score[1], &stud[i].score[2],
&stud[i].ave);
printf ("%11d%s%2d%5.2f%5.2f%5.2f%5.2f\n", stud[i].num, stud[i].name[i],
stud[i].Class, stud[i].score[0], stud[i].score[1], stud[i].score[2],
stud[i].ave);
}
fclose (fp);
}
/**********資料寫入文件**********/
void save()
{
FILE *fp ; /* fp無需賦NULL */
int i=0; /* i定義在開始會好些 * /
fp = fopen ("score.txt","w");
fprintf (fp,"學號 姓名 班級 課程1 課程2 課程3 平均成績\n");
for (i=0; i<4; i++)
{
//fwrite(&stud[i], sizeof(struct student_type), 1, fp);
fprintf (fp, "%11d%s%2d%5.2f%5.2f%5.2f%5.2lf\n", stud[i].num, stud[i].name,
stud[i].Class, stud[i].score[0], stud[i].score[1], stud[i].score[2],
stud[i].ave); /*把stud[i].name[i] 改成了stud[i].name */
}
fclose (fp);
printf ("\n\n*******************恭喜,保存完成!*******************\n\n");
}
④ 誰有學生成績管理系統,煩死了
概要設計說明書的編寫提示
(參考件)
E.1 引言
E.1.1 編寫目的
說明編寫這份概要設計說明書的目的,指出預期的讀者。
E.1.2 背景
說明:
a. 待軟體系統的名稱;
b. 列出此項目的任務提出者、者、用戶以及將運行該軟體的計算站(中心)。
E.1.3 定義
列出本文件中用到的專門術語的定義和外文首字母組詞的原片語。
E.1.4 參考資料
列出有關的參考文件,如:
a. 本項目的經核準的計劃任務書或合同,上級機關的批文;
b. 屬於本項目的其他已發表文件;
c. 本文件中各處引用的文件、資料,包括所要用到的軟體標准。
列出這些文件的標題、文件編、發表日期和出版單位,說明能夠得到這些文件資料的來源。
E.2 總體設計
E.2.1 需求規定
說明對本系統的主要的輸入輸出項目、處理的功能性能要求,詳細的說明可參見附錄C。
E2.2 運行環境
簡要地說明對本系統的運行環境(包括硬體環境和支持環境)的規定,詳細說明參見附錄C。
E2.3 基本設計概念和處理流程
說明本系統的基本設計概念和處理流程,盡量使用圖表的形式。
E.2.4 結構
用一覽表及框圖的形式說明本系統的系統元素(各層模塊、子程序、公用程序等)的劃分,扼要說明每個系統元素的標識符和功能,分層次地給出各元素之間的控制與被控制關系。
E.2.5 功能需求與程序的關系
本條用一張如下的矩陣圖說明各項功能需求的實現同各塊程序的分配關系:
程序1 程序2 …… 程序m
功能需求1 √
功能需求2 √
功能需求 √ √
E.2.6 人工處理過程
說明在本軟體系統的工作過程中不得不包含的人工處理過程(如果有的話)。
E.2.7 尚未解決的問題
說明在概要設計過程中尚未解決而設計者認為在系統完成之前必須解決的各個問題。
E.3 介面設計
E.3.1 用戶介面
說明將向用戶提供的命令和它們的語法結構,以及軟體的回答信息。
E.3.2 外部介面
說明本系統同外界的所有介面的安排包括軟體與硬體之間的介面、本系統與各支持軟體之間的介面關系。
E.3.3 內部介面
說明本系統之內的各個系統元素之間的介面的安排。
E.4 運行設計
E.4.1 運行模塊組合
說明對系統施加不同的外界運行控制時所引起的各種不同的運行模塊組合,說明每種運行所歷經的內部模塊和支持軟體。
E.4.2 運行控制
說明每一種外界的運行控制的方式方法和操作步驟。
E.4.3 運行時間
說明每種運行模塊組合將佔用各種資源的時間。
E.5 系統數據結構設計
E.5.1 邏輯結構設計要點
給出本系統內所要使用的每個數據結構的名稱、標識符以及它們之中每個數據項、記錄、文卷和系的標識、定義、長度及它們之間的層次的或表格的相互關系。
E.5.2 物理結構設計要點
給出本系統內所使用的每個數據結構中的每個數據項的存儲要求,訪問方法、存取單位、存取的物理關系(索引、設備、存儲區域)、設計考慮和保密條件。
E.5.3 數據結構與程序的關系
說明各個數據結構與訪問這些數據結構的各個程序之間的對應關系,可採用如下的矩陣圖形式:
程序1 程序2 …… 程序m
功能需求1 √
功能需求2 √ √
功能需求 √ √
E.6 系統出錯處理設計
E.6.1 出錯信息
用一覽表的方式說明每種可能的出錯或故障情況出現時,系統輸出信息的形式、含意及處理方法。
E.6.2 補救措施
說明故障出現後可能採取變通措施,包括:
a. 後備技術 說明准備採用的後備技術,當原始系統數據數據萬一丟失時啟用的副本的建立和啟動的技術,例如周期性地把磁碟信息記錄到磁帶上去就是對於磁碟媒體的一種後備技術;
b. 降效技術 說明准備採用的後備技術,使用另一個效率稍低的系統或方法來求得所需結果的某些部分,例如一個自動系統的降效技術可以是手工操作和數據的人工記錄;
E.6.3 系統維護設計
說明為了系統維護的方便而在程序內部設計中作出的安排,包括在程序中專門安排用於系統的檢查與維護的檢測點和專用模塊。
⑤ 小型學生成績管理系統
#include"stdio.h"
#include<stdlib.h>
#include<string.h>
#include"process.h"
#include"ctype.h"
struct Student
{
char num[10];
char name[10];
int chinese;
int math;
int english;
int dianlu;
double aver;
};
Student stu[99];
int bianji();
int chaxun();
void chaxun_pingjun(Student stud[],int n);
void chaxun_xingming(Student stud[],int n);
int menu();
int paixu();
void paixu_chinese(Student stud[],int n);
void paixu_dianlu(Student stud[],int n) ;/*按電路成績排序*/
void paixu_english(Student stud[],int n) ;/*按英語成績排序*/
void paixu_math(Student stud[],int n); /*按數學成績排序*/
void paixu_pingjun(Student stud[],int n); /*按平均成績排序*/
void paixu_xuehao(Student stud[],int n) ;/*按學號排序*/
int shanchu(Student stud[],int n) ;/*按姓名查找,刪除一條記錄*/
int shuru(Student stud[],int n);/*輸入若干條記錄*/
void tongji(Student stud[],int n);//按分數段統計人數
int wenjian();
void wenjian1(Student stud[],int n); /*將所有記錄寫入文件*/
int wenjian2(Student stud[],int n) ;/*從文件中讀入數據*/
void xianshi(Student stud[],int n); /*顯示所有記錄*/
void xiugai(Student stud[],int n);/*修改*/
void main() /*主函數*/
{
int n=0;
for(;;)
{
for(;;)
{
switch(menu())
{
case 1: switch(bianji())
{
case 1:n=shuru(stu,n);xianshi(stu,n); break;
case 2:xiugai(stu ,n);xianshi(stu,n); break;
case 3:shanchu(stu ,n);xianshi(stu,n); break;
} break;
case 2:xianshi(stu,n);break;
case 3:
switch(chaxun())
{
case 1:chaxun_xingming(stu,n);break;
case 2:chaxun_pingjun(stu ,n);break;
} break;
case 4: switch(paixu())
{
case 1:paixu_xuehao(stu,n);xianshi(stu,n); break ;
case 2:paixu_chinese(stu ,n);xianshi(stu,n);break;
case 3:paixu_math(stu ,n);xianshi(stu,n); break;
case 4:paixu_english(stu ,n);xianshi(stu,n); break;
case 5:paixu_dianlu(stu ,n);xianshi(stu,n); break;
case 6:paixu_pingjun(stu ,n);xianshi(stu,n); break;
} break;
case 5:tongji(stu,n);break;
case 6:
switch(wenjian())
{
case 1:n=wenjian2(stu,n);break;
case 2:wenjian1(stu ,n);break;
} break;
case 0:
exit(0); /*結束程序*/
}
}
}
}
int shuru(Student stud[],int n)/*輸入若干條記錄*/
{
int i=0;
char sign,x[10];
double a=0.0;
while(sign!='n'&&sign!='N')
{
printf("輸入學生學號:");
scanf("%s",stu[n+i].num);
printf("輸入學生姓名:");
scanf("%s",stu[n+i].name);
printf("輸入學生的語文、數學、英語、電路分數:");
scanf("%d%d%d%d",&stu[n+i].chinese,&stu[n+i].math,&stu[n+i].english,&stu[n+i].dianlu);
a=1.0*(stu[n+i].chinese+stu[n+i].math+stu[n+i].english+stu[n+i].dianlu)/4;
stu[n+i].aver=a;
gets(x); /*清除多餘的輸入*/
printf("是否繼續輸入?(Y/N):\n");
scanf("%c",&sign);
i++;
}
return(n+i);
}
void xianshi(Student stud[],int n) /*顯示所有記錄*/
{
int i ;
printf("----------------------------------------------------------\n"); /*格式頭*/
printf("學號 姓名 語文 數學 英語 電路 平均成績 \n");
printf("----------------------------------------------------------\n");
for(i=0;i<n;i++)
{
printf("%-10s%-10s%-10d%-10d%-10d%-10d%-10.2lf\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu,stu[i].aver);
}
}
void xiugai(Student stud[],int n)/*修改*/
{
int i=0,choice=1;
char x[10];
while(choice!=0)
{ printf("請輸入您要修改的學生的學號:\n");
scanf("%s",x);
for(i=0;;i++)
{
if(strcmp(stu[i].num,x)==0) break;
}
printf("請選擇您要修改的內容:\n");
printf(" ---------------------- \n");
printf("| 姓名 請按 1 |\n");
printf("| 語文 請按 2 |\n");
printf("| 數學分數 請按 3 |\n");
printf("| 英語分數 請按 4 |\n");
printf("| 電路 請按 5 |\n");
printf("| 退出 請按 0|\n");
printf("+----------------------+\n");
printf("請輸入您的選擇:");
scanf("%d", &choice);
switch(choice)
{
case 0:break;
case 1:
printf("請輸入新姓名:");
scanf("%s", stu[i].name);
break;
case 2:
printf("請輸入新的語文分數:");
scanf("%d", &stu[i].chinese);
break;
case 3:
printf("請輸入新的數學分數:");
scanf("%d",&stu[i].math);
break;
case 4:
printf("請輸入新的英語分數:");
scanf("%d", &stu[i].english);
break;
case 5:
printf("請輸入新的電路分數:");
scanf("%d", &stu[i].dianlu);
break;
default:
printf("\n無效選項!");
break;
} break;
}
return;
}
int shanchu(Student stud[],int n) /*按姓名查找,刪除一條記錄*/
{ char s[20];
int i;
int j;
i=0;
printf("輸入要刪除記錄的姓名:");
scanf("%s",s);
while(strcmp(stu[i].name,s)!=0&&i<n) i++;
if(i==n)
{printf("not find!\n");
return(n); }
for(j=i;j<n-1;j++) /*刪除操作*/
{
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j].name,stu[j+1].name);
stu[j].chinese=stu[j+1].chinese;
stu[j].math=stu[j+1].math;
stu[j].english=stu[j+1].english;
stu[j].dianlu=stu[j+1].dianlu;
stu[j].aver=stu[j+1].aver;
}
printf("Delete Successed!\n");
return(n-1);
}
void chaxun_xingming(Student stud[],int n) /*按姓名查找並顯示一個記錄*/
{ char s[20];
int i=0;
printf("輸入姓名:");
scanf("%s",s);
while(strcmp(stu[i].name,s)!=0&&i<n) i++; /*查找判斷*/
if(i==n)
{printf("not find!\n"); /*輸入失敗信息*/
return; }
printf("他的姓名、學號是:%s %s\n",stu[i].name,stu[i].num); /*輸出該學生信息*/
printf("語文 高數 英語 電路 平均成績是:%d,%d,%d,%d,%lf\n",stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu,stu[i].aver);
}
void chaxun_pingjun(Student stud[],int n) /*按平均成績查找並顯示一個記錄*/
{ double s;
int i=0;
printf("輸入平均成績:");
scanf("%lf",&s);
while(stu[i].aver!=s && i<n) i++;
if(i==n)
{ printf("not find!\n"); /*輸入失敗信息*/
return;
}
printf("他的學號是:%s\n",stu[i].num); /*輸出該學生信息*/
printf("他的姓名是:%s\n",stu[i].name);
printf("他的語文、數學、英語、電路分數是:%d %d %d %d \n",stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu);
}
void paixu_xuehao(Student stud[],int n) /*按學號排序*/
{ int i,j,p,q,r,w;
double y;
char x[20],t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(strcmp(stud[j].num,stud[j+1].num)>0)
{ strcpy(t,stud[j].num);
strcpy(stud[j].num,stud[j+1].num);
strcpy(stud[j+1].num,t);
strcpy(x,stud[j].name);
strcpy(stud[j].name,stud[j+1].name);
strcpy(stud[j+1].name,x);
y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
}
return;
}
void paixu_pingjun(Student stud[],int n) /*按平均成績排序*/
{ int i,j,p,q,r,w;
double y;
char x[20],t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(stu[j].aver>stu[j+1].aver)
{ y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);
}
return;
}
void paixu_chinese(Student stud[],int n) /*按語文成績排序*/
{ int i,j,p,q,r,w;
double y;
char x[20],t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(stu[j].chinese>stu[j+1].chinese)
{
y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);
}
return;
}
void paixu_english(Student stud[],int n) /*按英語成績排序*/
{ int i,j,p,q,r,w;
double y;
char x[20],t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(stu[j].english>stu[j+1].english)
{
y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);
}
return;
}
void paixu_math(Student stud[],int n) /*按數學成績排序*/
{ int i,j,p,q,r,w;
double y;
char x[20],t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(stu[j].math>stu[j+1].math)
{
y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);
}
return;
}
void paixu_dianlu(Student stud[],int n) /*按電路成績排序*/
{ int i,j,p,q,r,w;
double y;
char x[20],t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(stu[j].dianlu>stu[j+1].dianlu)
{
y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);
}
return;
}
void tongji(Student stud[],int n)//按分數段統計人數
{ int i,j,a,max,min,k,l,q,p,w;
k=0,l=0,p=0,q=0,w=0;
printf("你想統計哪科成績: 1語文 2數學 3英語 4電路 5平均 \n");
scanf("%d",&j);
printf("input 2 score:\n");
scanf("%d%d",&max,&min);
if(max<min)
{
a=max;max=min;min=a;
}
if(j==1)
{
for(i=0;i<99;i++)
{
if(stu[i].chinese>min&&stu[i].chinese<max) k++;
}
printf("分數段的人數為 :%d",k);
}
else if(j==2)
{
for(i=0;i<99;i++)
{
if(stu[i].math>min&&stu[i].math<max) l++;
}
printf("分數段的人數為 :%d",l);
}
else if(j==3)
{
for(i=0;i<99;i++)
{
if(stu[i].english>min&&stu[i].english<max) p++;
}
printf("分數段的人數為 :%d",p);
}
else if(j==4)
{
for(i=0;i<99;i++)
{
if(stu[i].dianlu>min&&stu[i].dianlu<max)
w++;
}
printf("分數段的人數為 :%d",w);
}
else if(j==5)
{
for(i=0;i<99;i++)
{
if(stu[i].aver>min&&stu[i].aver<max) q++;
}
printf("分數段的人數為 :%d",q);
}
return;
}
int wenjian2(Student stud[],int n) /*從文件中讀入數據*/
{ int i=0,num;
FILE *fp; /*定義文件指針*/
char filename[20]; /*定義文件名*/
printf("\t\t\tInput the filename:");
scanf("\t\t\t%s",filename); /*輸入文件名*/
if((fp=fopen(filename,"rb"))==NULL) /*打開文件*/
{ printf("\t\t\tcann't open the file\n"); /*打開失敗信息*/
printf("\t\t\t");
system("pause");
return(n);
}
fscanf(fp,"%d",&num); /*讀入總記錄量*/
while(i<num) /*循環讀入數據*/
{
fscanf(fp,"%s %s %d %d %d %d %lf\n",stu[n+i].num,stu[n+i].name,&stu[n+i].chinese,&stu[n+i].math,&stu[n+i].english,&stu[n+i].dianlu,&stu[n+i].aver);
i++;
}
n+=num;
fclose(fp); /*關閉文件*/
printf("\t\t\tSuccessed!\n");
printf("\t\t\t");
system("pause");
return(n);
}
void wenjian1(Student stud[],int n) /*將所有記錄寫入文件*/
{
int i=0;
FILE *fp; /*定義文件指針*/
char filename[20]; /*定義文件名*/
printf("Input the filename:");/*輸入文件名*/
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL) /*打開文件*/
{
printf("cann't open the file\n");
return;
}
fprintf(fp,"%d\n",n); /*循環寫入數據*/
while(i<n)
{
fprintf(fp,"%s %s %d %d %d %d %lf\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu,stu[i].aver);
i++;
}
fclose(fp); /*關閉文件*/
printf("Successed!\n"); /*返回成功信息*/
}
int menu() /*菜單函數*/
{
int c;
do{
printf("\t\t****學生信息管理系統菜單****\n");
printf("\t\t 1. 編輯 \n");
printf("\t\t 2. 顯示 \n");
printf("\t\t 3. 查詢 \n");
printf("\t\t 4. 排序\n");
printf("\t\t 5. 統計\n");
printf("\t\t 6. 文件 \n");
printf("\t\t 0. 退出 \n");
printf("************************************************************\n");
printf("\t\t\t請選擇(0-6):");
scanf("%d",&c);
}while(c<0||c>6);
return(c-0); /*返回選擇*/
}
int bianji()
{
printf("\t\t 1. 錄入\n");
printf("\t\t 2 .修改\n");
printf("\t\t 3. 刪除 \n");
printf("\t\t 按其它數字鍵退出 \n");
int i;
scanf("%d",&i);
return i;
}
int chaxun()
{
printf("\t\t 1. 按姓名查詢\n");
printf("\t\t 2 .按平均成績查詢\n");
printf("\t\t 按其它數字鍵退出\n");
int i;
scanf("%d",&i);
return i;
}
int paixu()
{
printf("\t\t 1. 按學號\n");
printf("\t\t 2 .按語文成績\n");
printf("\t\t 3 .按數學成績\n");
printf("\t\t 4 .按英語成績\n");
printf("\t\t 5 .按電路成績\n");
printf("\t\t 6 .按平均成績\n");
printf("\t\t按其它數字鍵退出\n");
int i;
scanf("%d",&i);
return i;
}
int wenjian()
{
printf("\t\t 1. 從文件中讀入數據\n");
printf("\t\t 2 .將所有記錄寫入文件\n");
printf("\t\t 按其它數字鍵退出 \n");
int i;
scanf("%d",&i);
return i;
}
⑥ 要一個學生成績管理系統(VC++)
我的QQ是645352457,好像記得發了一個到你郵箱喲!
⑦ 這是一個學生成績管理的系統,相當簡單,可是有兩處錯誤!請您幫幫忙!
你的代碼真是讓人無語啊,我根據你寫的稍微改動一下,但是功能沒給你改,做個c語言的小課程設計還可以,注釋給你加上了。看起來應該挺清晰的。看不懂了再問我。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
char name[20];
int number;
double Chinese;
double Maths;
double English;
double History;
double Average;
double Sum;
}student;
//輸入單個人的信息
void in_person(student *t){
int i = 0;
char ch;
printf("請輸入學生姓名(以空格結束):\t");
for(; i<20; i++){
ch = getchar();
if(ch == '\n' || ch == ' ')
break;
else
t->name[i] = ch;
}
printf("請輸入學生的學號:\t\t");
scanf("%d", &(t->number));
printf("請輸入學生的語文成績:\t\t");
scanf("%lf", &(t->Chinese));
printf("請輸入學生的數學成績:\t\t");
scanf("%lf", &(t->Maths));
printf("請輸入學生的英語成績:\t\t");
scanf("%lf", &(t->English));
printf("請輸入學生的歷史成績\t\t");
scanf("%lf", &(t->History));
printf("================================================================\n");
getchar();
t->Average = 0.0;
t->Sum = 0.0;
}
//輸出單個人的信息
void out_person(student *p){
student *q=p;
if(q->name!=""){
printf("姓名:\t\t");
printf("%s\n",q->name);
printf("學號:\t\t");
printf("%d\n",(*q).number);
printf("語文:\t\t");
printf("%lf\n",(*q).Chinese);
printf("數學:\t\t");
printf("%lf\n",(*q).Maths);
printf("英語:\t\t");
printf("%lf\n",(*q).English);
printf("歷史\t\t");
printf("%lf\n",(*q).History);
printf("平均成績:\t");
printf("%lf\n",(*q).Average);
printf("總成績:\t\t");
printf("%lf\n",(*q).Sum);
printf("\n");
}
}
//計算單個人的總成績
void sum_person(student *p){
int i;
for(i=0;i<4;i++){
p->Sum=p->Chinese+p->Maths+p->English+p->History;
}
}
//計算單個人的平均成績
void avg_person(student *p){
p->Average=p->Sum/4.0;
}
//輸入自定個數人的信息
void Input(student *s,int num){
int i=0;
for(i;i<num;i++){
in_person(&s[i]);
sum_person(&s[i]);
avg_person(&s[i]);
}
}
//輸出所有人的信息
void Output(student *s,int num){
int i=0;
for(i;i<num;i++){
out_person(s);
s++;
}
printf("-------------------------------------------------\n");
}
//交換兩個學生的信息
void swapStudent(student* s1, student* s2){
student tmp;
strcpy(tmp.name, s1->name);
tmp.number = s1->number;
tmp.Chinese = s1->Chinese;
tmp.English = s1->English;
tmp.Maths = s1->Maths;
tmp.History = s1->History;
tmp.Average = s1->Average;
tmp.Sum = s1->Sum;
strcpy(s1->name, s2->name);
s1->number = s2->number;
s1->Chinese = s2->Chinese;
s1->English = s2->English;
s1->Maths = s2->Maths;
s1->History = s2->History;
s1->Average = s2->Average;
s1->Sum = s2->Sum;
strcpy(s2->name, tmp.name);
s2->number = tmp.number;
s2->Chinese = tmp.Chinese;
s2->English = tmp.English;
s2->Maths = tmp.Maths;
s2->History = tmp.History;
s2->Average = tmp.Average;
s2->Sum = tmp.Sum;
}
//根據語文成績排序
void sortByCh(student *p,int num){
int i,j;
for(j=0;j<num-1;j++)
for(i=0;i<num-j-1;i++)
if(p[i].Chinese>p[i+1].Chinese){
swapStudent(&p[i],&p[i+1]);
}
}
//根據平均成績排序
void sortByAvg(student *p,int num){
int i,j;
student t;
for(j=0;j<num-1;j++)
for(i=0;i<num-j-1;i++)
if(p[i].Average>p[i+1].Average){
swapStudent(&p[i],&p[i+1]);
}
}
//按名字首字母查找
void Search(student *p,char ch){
int i=0;
for(i=0;i<4;i++)
if(ch==p[i].name[0])
break;
out_person(&p[i]);
}
int main(){
char ch;
student *l =(student*) malloc(sizeof(student)*10);
Input(l,4);
Output(l,4);
sortByCh(l,4);
Output(l,4);
sortByAvg(l,4);
Output(l,4);
printf("請輸入要查找的人名首字母:\n");
scanf("%c",&ch);
Search(l,ch);
free(l);
l=NULL;
return 0;
}
⑧ .編寫一個小型學生成績管理系統。
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include<conio.h>
#define len (sizeof(struct Student))
#define isdigest(c) ((c)>='0'&&(c)<='9')
typedef struct Student
{
int num;
int number;
char name[80];
int chinese;
int English;
int Math;
int term;
int score;
char grade_class[20];
struct Student *next;
}Stud;
//Stud *create_list();
int insert_list(Stud *head,int term,char *grade_class,int number,char *name,int chinese,int English,int Math,int n);
int del_list(Stud *head,int number);
del_list_class(Stud *head,char *grade_class);
Stud *find_list(Stud *head,int number);
Stud *find_list1(Stud *head,char *name);
Stud *find_list2(Stud *head,int term);
void brow_list(Stud *head);
int change_number(Stud *p);
int choice;
int mark1;
int number;
int term;
char name[80];
char grade_class[20];
char choice_char[1];
int fan_list(Stud *head);
int chinese_list(Stud *head);
int English_list(Stud *head);
int Math_list(Stud *head);
int grade_class_list(Stud *head);
int term_list(Stud *head);
void paixu_list(Stud *head,int mark_sub);
void main_menu();
void son_menu(Stud *head);
void view_menu(Stud *head);
void view_menu_view();
void save_list(Stud *head);
Stud *open_list();
void main()///////////////////////////////////////////////////////////////////////////主函數
{
Stud * head;
char *yes_no;
int chinese;
int English;
int Math;
head=NULL;
yes_no=(char*)malloc(sizeof(char)*10);
main_menu();
do
{
printf("\n請選則操作(輸入0~9):");
gets(choice_char);
if(strlen(choice_char)>1||!isdigest(choice_char[0]))
{
printf("輸入錯誤!\07\n");
continue;
}
switch(choice_char[0])
{
case '1':
if(head==NULL)
{
head=open_list();
// head=create_list();
}
else
{
printf("庫已存在連接!\07\n");
// printf("\n\n\t\t按任意鍵返回....");
// getch();
}
break;
case '2':
if(head==NULL)
{
printf("庫沒有建立連接!\07\n");
break;
}
while(1)
{
printf("請輸入班級:");
scanf("%s",grade_class);
fflush(stdin);
if(strcmp(grade_class,"0")==0)
{
break;
}
lable1: printf("請輸入學號(輸入0結束!):");
scanf("%d",&number);
fflush(stdin);
if(number==0)
{
break;
}
printf("請錄入學期:");
scanf("%d",&term);
printf("姓名:");
scanf("%s",name);
printf("請錄入語文成績:");
scanf("%d",&chinese);
printf("請錄入英語成績:");
scanf("%d",&English);
printf("請錄入數學成績:");
scanf("%d",&Math);
insert_list(head,term,grade_class,number,name,chinese,English,Math,-1);
printf("是否為同一班級?(Y)or(N):");
fflush(stdin);
gets(yes_no);
fflush(stdin);
if(yes_no[0]=='Y'||yes_no[0]=='y')
{
goto lable1;
}
else
{
}
}
break;
case '3':
if(head==NULL)
{
printf("庫沒有建立連接!\07\n");
break;
}
son_menu(head);
// printf("輸入姓名:");
// scanf("%s",name);
// find_list(head,name);
break;
case '4':
if(head==NULL)
{
printf("庫沒有建立連接!\07\n");
break;
}
brow_list(head);
break;
case '5':
if(head==NULL)
{
printf("庫沒有建立連接!\07\n");
break;
}
fan_list(head);
break;
case '6':
main_menu();
break;
case '7':
if(head==NULL)
{
printf("庫沒有建立連接!\07\n");
}
else
{
view_menu(head);
}
break;
case '8':
if(head==NULL)
{
printf("庫沒有建立連接!\07\n");
}
else
{
save_list(head);
}
break;
case '9':
if(head==NULL)
{
printf("庫沒有建立連接!\07\n");
}
else
{
head=NULL;
printf("已經斷開連接!\n");
printf("\n\n\t\t按任意鍵返回....");
getch();
}
break;
default:
return;
}
}while(1);
}
void main_menu()///////////////////////////////////////////////////////////////主菜單
{
printf("\n");
printf("*****************************************************************************\n");
printf("* *\n");
printf("* (學生成績管理系統) *\n");
printf("* *\n");
printf("* *\n");
printf("* 1、建立虛擬資料庫連接並載入數據. *\n");
printf("* 2、插入新學生數據. *\n");
printf("* 3、查詢、刪除與修改學生信息窗口. *\n");
printf("* 4、數據瀏覽. *\n");
printf("* 5、逆序排列學生. *\n");
printf("* 6、查看菜單內容. *\n");
printf("* 7、高級排列查詢窗口. *\n");
printf("* 8、保存數據. *\n");
printf("* 9、斷開連接. *\n");
printf("* 0、退出程序. *\n");
printf("* *\n");
printf("*****************************************************************************\n");
}
void view_menu_view()
{
printf("\n");
printf("*****************************************************************************\n");
printf("* *\n");
printf("* (高級排列查詢系統) *\n");
printf("* *\n");
printf("* *\n");
printf("* 1、排列學生信息(按語文成績). *\n");
printf("* 2、排列學生信息(按英語成績). *\n");
printf("* 3、排列學生信息(按數學成績). *\n");
printf("* 4、排列學生信息(按班級). *\n");
printf("* 5、排列學生信息(按學期). *\n");
printf("* 6、排列學生信息(按總分). *\n");
printf("* 7、保存信息. *\n");
printf("* 8、查看菜單內容. *\n");
printf("* 9、瀏覽數據. *\n");
printf("* 0、回到主菜單. *\n");
printf("* *\n");
printf("*****************************************************************************\n");
}
void son_menu_view()
{
printf("\n");
printf("*****************************************************************************\n");
printf("* *\n");
printf("* (學生成績查詢系統) *\n");
printf("* *\n");
printf("* *\n");
printf("* 1、查找學生信息(按學號). *\n");
printf("* 2、查找學生信息(按姓名). *\n");
printf("* 3、查找學生信息(按班級). *\n");
printf("* 4、刪除學生資料(按學號). *\n");
printf("* 5、刪除學生資料(按班級). *\n");
printf("* 6、查看菜單內容. *\n");
printf("* 7、瀏覽數據. *\n");
printf("* 8、保存數據. *\n");
printf("* 0、回到主菜單. *\n");
printf("* *\n");
printf("*****************************************************************************\n");
}
void view_menu(Stud *head)/////////////////////////////////////排列子菜單
{
view_menu_view();
do
{
printf("\n請選則操作(輸入0~9):");
gets(choice_char);
if(strlen(choice_char)>1||!isdigest(choice_char[0])||choice_char[0]>'9')
{
printf("輸入有誤,請重新輸入!\n");
continue;
}
switch(choice_char[0])
{
case '1':
if(head==NULL)
{
printf("庫沒有建立連接!\07\n");
}
else
{
chinese_list(head);
printf("排列成功!\n");
}
break;
case '2':
if(head==NULL)
{
printf("庫沒有建立連接!\07\n");
}
else
{
English_list(head);
printf("排列成功!\n");
}
break;
case '3':
if(head==NULL)
{
printf("庫沒有建立連接!\07\n");
}
else
{
Math_list(head);
printf("排列成功!\n");
}
break;
case '4':
if(head==NULL)
{
printf("庫沒有建立連接!\07\n");
}
else
{
grade_class_list(head);
printf("排列成功!\n");
}
break;
case '5':
if(head==NULL)
{
printf("庫沒有建立連接!\07\n");
}
else
{
term_list(head);
printf("排列成功!\n");
}
break;
case '6':
printf("對不起,此功能靠你自己實現了\07\n");
break;
case '7':
if(head==NULL)
{
printf("庫沒有建立連接!\07\n");
}
else
{
save_list(head);
}
break;
case '8':
view_menu_view();
break;
case '9':
if(head==NULL)
{
printf("庫未建立連接!\07\n");
break;
}
brow_list(head);
break;
default:
main_menu();
return;
}
}while(1);
}
void son_menu(Stud *head)////////////////////////////////////////////////查詢子菜單
{
son_menu_view();
do
{
printf("\n請選則操作(輸入0~8):");
gets(choice_char);
if(strlen(choice_char)>1||!isdigest(choice_char[0])||choice_char[0]>'8')
{
printf("輸入有誤,請重新輸入!\n");
continue;
}
switch(choice_char[0])
{
case '1':
do{
printf("\n請輸入學號(按0結束):");
scanf("%d",&number);
fflush(stdin);
if(number==0)
{
break;
}
find_list(head,number);
}while(1);
break;
case '2':
do{
printf("\n請輸入姓名(按0結束):");
scanf("%s",&name);
fflush(stdin);
if(strcmp(name,"0")==0)
{
break;
}
find_list1(head,name);
}while(1);
break;
case '3':
do{
printf("\n請輸入學期(按0結束):");
scanf("%d",&term);
fflush(stdin);
if(term==0)
{
break;
}
find_list2(head,term);
}while(1);
break;
case '4':
if(head==NULL)
{
printf("庫未建立連接!\007\n");
break;
}
printf("輸入學號:");
scanf("%d",&number);
fflush(stdin);
del_list(head,number);
break;
case '5':
if(head==NULL)
{
printf("庫未建立連接!\07\n");
}
printf("輸入班級:");
scanf("%s",&grade_class);
fflush(stdin);
del_list_class(head,grade_class);
break;
case '6':
son_menu_view();
break;
case '7':
if(head==NULL)
{
printf("庫未建立!\07\n");
break;
}
brow_list(head);
break;
case '8':
if(head==NULL)
{
printf("庫沒有建立連接!\07\n");
}
else
{
save_list(head);
}
break;
default:
main_menu();
return;
}
}while(1);
}
Stud *open_list()//////////////////////////////////////////載入數據
{
Stud *head;
char temp_char[8
⑨ 1;學生成績管理系統.
工作量太大了
有點報酬可能還會有人幫
而且你也沒說明白用什麼語言來寫