![]() |
#2
dgqjdj2010-06-27 23:00
作业完成情况管理程序 假设某门课程一学期要留10次作业,每次老师要进行批改,给出分数后还要进行登记。学期期末要根据每次作业的成绩计算出最终的平时成绩(满分100)。
该程序应该具有下列功能: (1) 通过键盘输入某位学生某次作业的分数; (2) 给定学号,显示某位学生作业完成情况; (3) 给定某个班级的班号,显示该班所有学生的作业完成情况; (4) 给定某位学生的学号,修改该学生的作业完成信息; (5) 给定某位学生的学号,删除该学生的信息; (6) 提供一些统计各类信息的功能。 下面是我的程序:大虾耐心看哦! C/C++ code#include<stdio.h> #include<stdlib.h> #include<conio.h> struct StInfo{ int Num[8]; int Class[4]; char name[20]; int score[11]; }StInfo; void duwenjian(); void Create_weicha_slink(Slink *L); void DisplayMenu(); int choiceItem(); void Input_Info(ST stu, int i, int score ); void searchone(Slink *L,); void searchall(Slink data,Slink StInfo); void charu(Slink StInfo,&space ,int Num ) ; void delete (Slink *L,int i,) ; void duwenjian() { FILE *fp; if((fp=fopen("yuanshixinxi.exe","r"))==NULL) { printf("cannot open this file.\n"); getch(); exit(0); } else { fp=fopen("yuanshixinxi.exe","r"); while(ch!=ABC) { c=getch(); } fclose(fp); } typedef struct node { StInfo data; struct node *next; }LSlink,Slink*L; Slink*Init_slink() //*初始化分配头结点*// { L=(Slink *)mallloc(sizeof(Slink)); L->next=NULL; return(L); } void Create_weicha_slink(Slink *L) //*尾插法创建单链表*// { ElemType StInfo; Slink *p,*q; r=L; while(i=1,i>1000,i++) { p=(Slink*)malloc(sizeof(Slink)); p->data=L.StInfo; p->next=NULL; r=p; printf("请读入学生信息\n"); printf("input StInfo end with 0000\n"); scanf("%ld",&L.StInfo.Num); scanf("%c",&L.StInfo.Name); scanf("%ld",&L.StInfo.Class); duwenjian(*fp); } } void DisplayMenu() //显示菜单// { printf("\n========= MENU ========="); printf("\n Input a student's informations ............ 1"); printf("\n Print student's informations .............. 3"); printf("\n Init student's informations ............... 4"); printf("\n Search student's information .............. 5"); printf("\n charu student's information .............. 6"); printf("\n del student's information ..................7"); printf("\n Search one class students information ......8"); printf("\n exit system ............................... 0"); printf("\nchoice,please:"); } int choiceItem() //菜单选择 { int choice; do{ DisplayMenu(); scanf("%d",&choice); }while(choice<0||choice>7); return choice; } void Input_Info(ST stu, int i, int score ); { scanf("%ld",&Num); printf("请输入学生成绩信息:"); printf("input 1ci score:"); scanf("%ld",&score1); printf("input 2 ci score"); scanf("%ld",&score2); pringf("input 3 ci score"); scanf("%ld",&score3); printf("input 4 ci score"); scanf("%ld",&score4); printf("input 5 ci score"); scanf("%ld",&score5); printf("input 6 ci score"); scanf("%ld",&score6); printf("input 7 ci score"); scanf("%ld",&score7); printf("input 8 ci score"); scanf("%ld",&score8); printf("input 9 ci score"); scnaf("%ld",&score9); printf("input 10 ci score"); scanf("%ld",&score10); } void searchone(Slink *L,) //查找某个学生的学生信息// { Slink *p,*q; printf("The one I want to search:"); scanf("%ld"&Num); p=L.data.Num; p=p->next ; q=p; p=p->next; while (L.data.Num!=Num) { p=L.Num; return p; printf("%d\n",L.data.NUm); printf("%c\n",L.data.Name); printf("%d\n",L.data.Class); printf("%d\n",L.data.Score); } }searchoneL.data; void searchall(Slink data,Slink StInfo) { char j; int n,k,m; printf("Present all the stduent's informniation:"); for(i=1,i<n,i++) { while(n=!-1) { j=L.data.Name; k=L.data.Num; m=L.data.Class; printf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",L.data.Score[1],L.data.Score[1], L.data.Score[2],L.data.Score[3],L.data.Score[4],L.data.Score[5], L.data.Score[6],L.data.Score[7],L.data.Score[8],L.data.Score[9], L.data.Score[10],); printf("%c\n",j); printf("%d\n",k); printf("%d\n",m); } } } void charu(Slink StInfo,&space ,int Num ) //实现插入某个学生的信息// { int *p,*q,*r; searchone(Slink *L) ; //调用该函数查找要插入的位置// InitSpace.SL(space); //初始化备用空间// r=Malloc.SL(space); p->next=r; r->next=p->next->next; printf("charu xueshengxinxi:"); scanf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",L.data.Score[1],L.data.Score[1], L.data.Score[2],L.data.Score[3],L.data.Score[4],L.data.Score[5], L.data.Score[6],L.data.Score[7],L.data.Score[8],L.data.Score[9], L.data.Score[10],); scanf("%c\n",&Name); scanf("%d\n",&Class); scanf("%d\n",&Num); printf("charu success"); } void delete (Slink *L,int i,) //实现删除第i个结点// { int *p,*q; searchone(Slink *L) ; //调用该函数找到要删除的结点// p->next=p->next->next; printf("shan chu cheng gong "); free(p); } void everypj(Slink *L,int i, int L.data.Score[]) { int sum,i,k; for(i=0,i<10,i++) { sum=0; sum=L.data.Score[i]+sum; } k=sum/10; printf("shu chu gai sheng de ge ren ping jun cheng ji :"); printf("%d",k); } void allpj(Slink *L,int i, L.data.Score[]) { int sum[L.data.Num],sum,i,k,j,m; int *p,*q; for(j=1,j<40,j++) { for(i=0,i<10,i++) { sum=0; sum=L.data.Score[i]+sum; } sum[L.data.Score]=sum[1]; sum[L.data.Score]=sum[L.data.Score]+sum[j]; } m=sum[L.data.Score]/40; printf("shu chu zheng ti de ping jun cheng ji:"); printf("%d\n",m); } void main() { duwenjian(); Create_weicha_slink(Slink *L); DisplayMenu(); choiceItem(); Input_Info(ST stu, int i, int score ); searchone(Slink *L,); searchall(Slink data,Slink StInfo); charu(Slink StInfo,&space ,int Num ) ; delete (Slink *L,int i,) ; duwenjian() } |
说明:假设某门课程一学期要留10次作业,每次作业老师要进行批改,给出分数后还要进行登记。学期末要根据每次作业的成绩计算出最终的平时成绩。
要求:
1)录入最少两个班,每班最少10位学生每次作业的分数;
2)给定学号,显示某位学生的作业完成情况;
3)给定某个班级的班号,显示该班所有学生的作业完成情况;
4)给定某位学生的学号,修改该学生的作业完成信息;
5)给定某位学生的学好,删除该学生的信息;
6)提供一些统计各类信息的功能。