當前位置:編程學習大全網 - 源碼下載 - 跪求壹個java課程設計,學生學籍管理系統,超市管理系統,圖書管理系統的都行,希望速度快壹點....

跪求壹個java課程設計,學生學籍管理系統,超市管理系統,圖書管理系統的都行,希望速度快壹點....

我們去年也做了這個

、學生成績管理系統

主要功能:

(1)能完成對學生成績的錄入、修改

(2)能統計學生的成績,求學生的總分及平均分,並能根據學生的平均成績進行排序

(3)能查詢學生成績,不及格科目及學生名單

(4)能輸出學生的成績單

1、

#include<stdio.h>

#include<string.h>

#include<ctype.h>

#include<stdlib.h>

#define STU_NUM 40 /*最多的學生人數*/

#define COURSE_NUM 10 /*最多的考試科目*/

struct student

{

int number; /*每個學生的學號*/

char name[10]; /*每個學生的姓名*/

int score[COURSE_NUM]; /*每個學生M門功課的成績*/

int sum; /*每個學生的總成績*/

float average; /*每個學生的平均成績*/

};

typedef struct student STU;

/*----------增加學生成績模塊-----------*/

int AppendScore(STU *head,int n,int m)

{

int j;

STU *p;

char ch;

for (p=head+n ; p<head+STU_NUM ; p++)

{

printf("\nInput number:");

scanf("%d",&p->number);

printf("Input name:");

scanf("%s",p->name);

for (j=0 ; j<m ; j++)

{

printf("Input score%d:",j+1);

scanf("%d",p->score+j);

}

n++;

printf("Do you want to append a new node(Y/N)?");

scanf("%c",&ch);

if(ch == 'n' || ch == 'N')

return n;

}

}

/*----------------顯示學生成績模塊------------------*/

void PrintScore(STU *head,int n,int m)

{

STU *p;

int i;

char str[100]={'\0'},temp[3];

strcat(str," Number Name");

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

{

strcat(str,"Score");

itoa(i,temp,10);

strcat(str,temp);

strcat(str," ");

}

strcat(str," sum average");

printf("%s",str); /*打印表頭*/

for (p=head;p<head+n;p++)

{

printf("\nNo.%3d%8s",p->number,p->name);

for (i=0;i<m;i++)

{

printf("%7d",p->score[i]);

}

printf("%11d%9.2f\n",p->sum,p->average);

}

}

/*---------------計算總成績和平均成績模塊---------------------*/

void TotalScore(STU *head,int n,int m)

{

STU *p;

int i;

for(p=head;p<head+n;p++)

{

p->sum=0;

for(i=0;i<m;i++)

{

p->sum = p->sum + p->score[i];

}

p->average = (float)p->sum/m;

}

}

/*-----------------排序模塊---------------------*/

void SortScore(STU *head,int n)

{

int i,j,k;

STU temp;

for (i=0;i<n-1;i++)

{

k=i;

for (j=i;j<n;j++)

{

if ((head+j)->sum > (head+k)->sum)

{

k=j;

}

}

if (k!=i)

{

temp=*(head+k);

*(head+k)=*(head+i);

*(head+i)=temp;

}

}

}

/*---------------------查找學生的學號模塊------------------------*/

int SearchNum(STU *head,int num,int n)

{

int i;

for (i=0;i<n;i++)

{

if((head+i)->number == num)

return i;

}

return -1;

}

/*------------------查找學生成績並顯示查找結果---------------------*/

void SearchScore(STU *head,int n,int m)

{

int number,findNo;

printf("Please Input the number you want to search:");

scanf("%d",&number);

findNo=SearchNum(head,number,n);

if(findNo == -1)

{

printf("\nNot found!\n");

}

else

{

PrintScore(head+findNo,1,m);

}

}

/*-----------------刪除記錄模塊-------------------*/

int DeleteScore(STU *head,int n,int m)

{

int i,num;

STU *p;

printf("Please input the number to Delete:");

scanf("%d",&num);

i=SearchNum(head,num,n);

if(i==-1)

{

printf("Number not found\n");

return n;

}

for(p=head+i;p<=head+n;p++)

{

memcpy(p,p+1,sizeof(struct student));

memset(p+1,0,sizeof(struct student));

}

n--;

return n;

}

/*-------------------文件保存模塊-------------------------*/

void SaveScoreFile(STU *head,const int n,const int m)

{

FILE *fp;

int i;

STU *p=head;

if((fp=fopen("record","wb"))==NULL)

{

printf("can not open file\n");

exit(1);

}

printf("\nSaving file\n");

fwrite(&n,sizeof(int),1,fp);

fwrite(&m,sizeof(int),1,fp);

for (i=0;i<n;i++)

{

fwrite(head+i,sizeof(struct student),1,fp);

}

fclose(fp);

return;

}

/*---------------------菜單模塊--------------------*/

char Menu(void)

{

char ch;

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("# 0.退出系統 #\n");

printf("#================================================#\n");

printf("請輸入0-8選擇菜單項:");

scanf(" %c",&ch);

return ch;

}

/*-------------------------修改模塊-----------------------*/

void ModifyScore(STU *head,int n,int m)

{

int i,j,num;

STU *p;

printf("Please input the number to modify:\n");

scanf("%d",&num);

i=SearchNum(head,num,m);

if(i==-1)

{

printf("Number not found!\n");

return;

}

p=head+i;

printf("Number:%d\n",p->number);

printf("Input name:");

scanf("%s",p->name);

for(j=0;j<m;j++)

{

printf("Input score%d:",j+1);

scanf("%d",p->score+j);

}

TotalScore(head,n,m);

}

/*-------------------主函數模塊-----------------------*/

void main()

{

char ch;

int m=3,n=0;

STU stu[STU_NUM];

while (1)

{

ch=Menu(); /*顯示菜單,並讀取用戶信息*/

switch (ch)

{

case '1':n=AppendScore(stu,n,m); /*調用成績添加模塊*/

TotalScore(stu,n,m);

break;

case '2':PrintScore(stu,n,m); /*調用成績顯示模塊*/

break;

case '3':n=DeleteScore(stu,n,m); /*調用成績刪除模塊*/

PrintScore(stu,n,m);

break;

case '4':ModifyScore(stu,n,m); /*調用成績修改模塊*/

PrintScore(stu,n,m);

break;

case '5':SearchScore(stu,n,m); /*調用按學號查找模塊*/

break;

case '6':SortScore(stu,n); /*調用成績排序模塊*/

printf("\nSorted result\n");

PrintScore(stu,n,m);

break;

case '7':SaveScoreFile(stu,n,m); /*保存文件*/

break;

case '0':exit(0);

printf("End of program!"); /*退出程序*/

break;

default:printf("Input error!");

break;

}

}

}

2、

#include<stdio.h>

#include<conio.h>

#include <stdlib.h>

#include<string.h>

#define MAX 80

#define max 3

int nu=0;

struct classname

{

char name[20];

float score;

};

struct student

{

char no[20];

char std_name[20];

struct classname km[max];

float ave;

float sum;

int save;

};

struct student stu[MAX],*p;

void chushi()

{

int i,j;

for(i=0;i<MAX;i++)

{

for(j=0;j<20;j++)

{

stu[i].no[j]=NULL;

stu[i].std_name[j]=NULL;

stu[i].km[j].name[j]=NULL;

stu[i].km[j].score=0;

}

stu[i].ave=0;

stu[i].sum=0;

stu[i].save=0;

}

}

void av()/*求平均值*/

{

int i;

for(i=0;i<nu;i++)

{

stu[i].sum=stu[i].km[1].score+stu[i].km[2].score+stu[i].km[3].score;

stu[i].ave=stu[i].sum/3;

}

}

void first_check()

{

FILE *p;

int i,j;

struct classname frist[max];

for(i=0;i<max;i++)

{

for(j=0;j<20;j++)

frist[i].name[j]=NULL;

frist[i].score=0;

}

if ((p=fopen("c:\\kemu.txt","r"))==NULL)

{

printf("您好,歡迎使用學生成績管理系統\n\n因為您是第壹次使用,請輸入科目名稱(三科)\n\n");

p=fopen("c:\\kemu.txt","w");

printf("輸入課程1名稱:");

scanf("%s",frist[0].name);

fprintf(p,"%s\n",frist[0].name);

printf("輸入課程2名稱:");

scanf("%s",frist[1].name);

fprintf(p,"%s\n",frist[1].name);

printf("輸入課程3名稱:");

scanf("%s",frist[2].name);

fprintf(p,"%s\n",frist[2].name);

}

system("cls");

fclose(p);

}

void save_nu()

{

FILE *p;

p=fopen("c:\\renshu.txt","w");

fprintf(p,"%d\n",nu);

fclose(p);

}

void Save_add(int n)

{

FILE * p;

int i;

p= fopen("c:\\cheji.txt","at");

if (p == NULL)

{

printf("文件不存在!!\n");

exit(0);

}

save_nu();

for (i = 0;i<n;i++)

if(stu[i].save==1)

{

stu[i].sum=stu[i].km[1].score+stu[i].km[2].score+stu[i].km[3].score;

stu[i].ave=stu[i].sum/3;

fprintf(p,"%s %s %2.1f %2.1f %2.1f %2.1f %2.1f \n",stu[i].no,stu[i].std_name,stu[i].km[0].score,stu[i].km[1].score,stu[i].km[2].score,stu[i].ave,stu[i].sum);

}

fclose(p);

}

void Save()

{

FILE * p;

int i;

p= fopen("c:\\cheji.txt","w");

if (p == NULL)

{

printf("文件不存在!!\n");

exit(0);

}

save_nu();

for (i = 0;i<nu;i++)

if(stu[i].save==1)

{

av();

fprintf(p,"%s %s %2.1f %2.1f %2.1f %2.1f %2.1f \n",stu[i].no,stu[i].std_name,stu[i].km[0].score,stu[i].km[1].score,stu[i].km[2].score,stu[i].ave,stu[i].sum);

}

fclose(p);

}

int read_nu()

{

FILE *p;

char ch,s[10]={'\0'};

int i=0;

p=fopen("c:\\renshu.txt","r");

if(p==NULL)

{

save_nu();

return 0;

}

ch=fgetc(p);

while(ch!='\n')

{

s[i]=ch;

ch=fgetc(p);

i++;

}

nu=atoi(s);

fclose(p);

return 0;

}

int read_km()

{

FILE *p;

int i,j=0;

char s[20]={'\0'};

chushi();

p=fopen("c:\\kemu.txt","r");

if(p==NULL)

{

printf("ERROR read_km");

return 0;

}

fgets(s,20,p);

while(strlen(s)!=0)

{

for(i=0;i<strlen(s);i++)

if(s[i]==10)

{

s[i]='\0';

break;

}

for(i=0;i<=nu;i++)

strcpy(stu[i].km[j].name,s);

for(i=0;i<20;i++)

s[i]='\0';

j++;

fgets(s,20,p);

}

}

void read()

{

FILE *p;

int i,j,n,k,z=0;

char s[50]={'\0'};

char o[10]={'\0'};

p=fopen("c:\\cheji.txt","r");

if(p==NULL)

printf("ERROR_read");

chushi();

read_km();

fgets(s,50,p);

while(strlen(s)!=0)

{

j=0;

for(i=0;i<50;i++)

{

if(s[i]!='\n')

{

n=0;

while(j==0)

{

if(s[i]!=' ')

{

stu[z].no[n]=s[i];

n++;i++;

}

else

break;

}

while(j==1)

{

if(s[i]!=' ')

{

stu[z].std_name[n]=s[i];

n++;i++;

}

else

break;

}

while(j==2)

{

if(s[i]!=' ')

{

o[n]=s[i];

n++;i++;

}

else

{

stu[z].km[0].score=atoi(o);

break;

}

}

while(j==3)

{

if(s[i]!=' ')

{

o[n]=s[i];

n++;i++;

}

else

{

stu[z].km[1].score=atoi(o);

break;

}

}

while(j==4)

{

if(s[i]!=' ')

{

o[n]=s[i];

n++;i++;

}

else

{

stu[z].km[2].score=atoi(o);

break;

}

}

while(j==5)

{

if(s[i]!=' ')

{

o[n]=s[i];

n++;i++;

}

else

{

stu[z].ave=atoi(o);

break;

}

}

while(j==6)

{

if(s[i]!=' ')

{

o[n]=s[i];

n++;i++;

}

else

{

stu[z].sum=atoi(o);

break;

}

}

for(k=0;k<10;k++)

o[k]='\0';

}

else

break;

j++;

}

for(i=0;i<50;i++)

s[i]='\0';

fgets(s,50,p);

z++;

}

}

void putin()

{

int n,i=0;

char ch;

read_km();

do

{

printf("\t\t\t\t錄入學員信息\n輸入第%d個學員的信息\n",i+1);

printf("\n輸入學生編號:");

scanf("%s",stu[i].no);

printf("\n輸入學員姓名:");

scanf("%s",stu[i].std_name);

printf("\n輸入課程%s的分數:",stu[0].km[0].name);

scanf("%f",&stu[i].km[0].score);

printf("\n輸入課程%s的分數:",stu[0].km[1].name);

scanf("%f",&stu[i].km[1].score);

printf("\n輸入課程%s的分數:",stu[0].km[2].name);

scanf("%f",&stu[i].km[2].score);

stu[i].save=1;

printf("\n\n");

i++;

n=i;

printf("是否繼續輸入?(Y/N)");

fflush(stdin);

ch=getch();

system("cls");

}

while(ch!='n'&&ch!='N');

system("cls");

if(nu==0)

{

nu=n;

Save();

}

else

{

nu=n+nu;

Save_add(n);

}

}

int putout()

{

int i;char s;

if(nu==0)

{

printf("學生信息為零!請錄入...");

return 0;

}

read();

do

{

printf("學生成績信息:\n\n");

for(i=0;i<nu;i++)

printf("學號:%s 姓名:%s\n%s分數:%2.1f\t%s分數:%2.1f\t%s分數:%2.1f\n平均分數:%2.1f\t總成績:%2.1f\n\n",stu[i].no,stu[i].std_name,stu[i].km[0].name,stu[i].km[0].score,stu[i].km[1].name,stu[i].km[1].score,stu[i].km[2].name,stu[i].km[2].score,stu[i].ave,stu[i].sum);

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

fflush(stdin);

s=getch();

}

while(!s);

system("cls");

}

int sort()/*排序數據函數*/

{

struct student temp;

int i,j;

char s;

if(nu==0)

{

printf("學生信息為零!請錄入...");

return 0;

}

chushi();

read();

for(i=1;i<nu;i++)

{

for(j=1;j<=nu-i;j++)

{

if(stu[j-1].ave<stu[j].ave)

{

temp=stu[j];

stu[j]=stu[j-1];

stu[j-1]=temp;

}

}

}

do

{

printf("學生成績信息:\n\n");

for(i=0;i<nu;i++)

printf("學號:%s 姓名:%s 平均成績:%2.1f\n\n",stu[i].no,stu[i].std_name,stu[i].ave);

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

fflush(stdin);

s=getch();

}

while(!s);

system("cls");

}

void find()/*查詢函數*/

{

int j,i=0;

int c=0;

char search[10]={'\0'};

char as;

if(nu==0)

{

printf("學生信息為零!請錄入...");

return 0;

}

chushi();

read();

do

{

printf("輸入要查詢課程名稱:");

scanf("%s",search);

for(j=0;j<max;j++)

if(!strcmp(stu[i].km[j].name,search))

{

c=1;

printf("\n該課程不及格學生姓名:\n");

for(i=0;i<nu;i++)

if(stu[i].km[j].score<60)

printf("%s\n",stu[i].std_name);

}

if(c==0)

printf("無此課程!");

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

fflush(stdin);

as=getch();

}

while(!as);

system("cls");

}

void tongji()

{

int j,m,z,i=0;

char s;

if(nu==0)

{

printf("學生信息為零!請錄入...");

return 0;

}

chushi();

read();

for(z=0;z<max;z++)

{

m=stu[i].km[z].score;j=0;

printf("%s 最高分: ",stu[i].km[z].name);

for(i=0;i<nu;i++)

if(m<stu[i].km[z].score)

{

m=stu[i].km[z].score;

j=i;

}

printf("%s\t",stu[j].std_name);

j=0;i=0;m=stu[i].km[z].score;

printf("%s 最低分: ",stu[i].km[z].name);

for(i=0;i<nu;i++)

if(m>stu[i].km[z].score)

{

m=stu[i].km[z].score;

j=i;

}

printf("%s\t",stu[j].std_name);

m=0;j=0;i=0;

printf("%s 平均分: ",stu[i].km[z].name);

for(i=0;i<nu;i++)

m=m+stu[i].km[z].score;

printf("%d\n",m/nu);

m=0;i=0;

printf("%s 分數低於的60人數: ",stu[i].km[z].name);

for(i=0;i<nu;i++)

if(stu[i].km[z].score<60)

m++;

printf("%d\t",m);

m=0;j=0;i=0;

printf("%s 分數高於60的人數: ",stu[i].km[z].name);

for(i=0;i<nu;i++)

if(stu[i].km[z].score>60)

m++;

printf("%d\n\n",m);

}

do

{

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

fflush(stdin);

s=getch();

}

while(!s);

system("cls");

}

void main()/*主函數*/

{

int as;

first_check();

start: printf("\n\t\t\t歡迎使用學生成績管理系統\n");

/*壹下為功能選擇模塊*/

do

{

printf("\n\t\t\t\t1.錄入學員信息\n\t\t\t\t2.顯示學員信息\n\t\t\t\t3.成績排序信息\n\t\t\t\t4.查詢不及格學生\n\t\t\t\t5.統計信息\n\t\t\t\t6.退出\n");

printf("\t\t\t\t選擇功能選項:");

fflush(stdin);

read_nu();

scanf("%d",&as);

switch(as)

{

case 1:system("cls");putin();break;

case 2:system("cls");putout();break;

case 3:system("cls");sort();break;

case 4:system("cls");find();break;

case 5:system("cls");tongji();break;

case 6:system("exit");exit(0);

default:system("cls");goto start;

}

}

while(1);

/*至此功能選擇結束*/

  • 上一篇:怎麽選靠譜的北京app開發公司
  • 下一篇:生產mes系統全稱
  • copyright 2024編程學習大全網