Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2340919
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:08:45

请大家帮忙做一下啦。我时间来不及,自己做不成啊,做不出来要挂科的啊。拜托了!!!
用C编的。不是C++,各位帮帮我。
以下是要求:
【题目描述】
请设计一个学生作业完成情况管理程序。
假设某门课程一学期要留10次作业,每次老师要进行批改,给出分数后还要进行登记。学期期末要根据每次作业的成绩计算出最终的平时成绩(满分100)。
该程序应该具有下列功能:
(1) 通过键盘输入某位学生某次作业的分数;
(2) 给定学号,显示某位学生作业完成情况;
(3) 给定某个班级的班号,显示该班所有学生的作业完成情况;
(4) 给定某位学生的学号,修改该学生的作业完成信息;
(5) 给定某位学生的学号,删除该学生的信息;
(6) 提供一些统计各类信息的功能。
【题目要求】
(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;
(2) 作业登记信息应该包含:学号、姓名、10次作业的完成情况;
(3) 为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
【输入要求】
应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
【输出要求】
(1)  应用程序运行后,要在屏幕上显示一个菜单;
(2)  要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
【提示】
设计一个结构类型和一维数组类型,用来保存作业登记信息。
【实验步骤】
(1)装入给定程序模板,运行演示;
(2)根据题目要求,修改数据类型,添加必要的变量,实现功能(1)和(2),并进行调试;
(3)实现功能(3)和(4),并进行测试;
(4)实现功能(5)和(6),并进行调试;
(5)编写实验报告。

以下是老师给的模版:
附录3 程序模板
#include
#include

#define MUNMAX 5
struct                     studentInfo{    //结构类型定义
int num;
char* name;
char sex;
int age;
float score;
};
struct stuType{
   studentInfo stu[MUNMAX];
   int num;
};
void DisplayMenu();
int choiceItem();
void Init(struct stuType*);
void PrintInfo(struct stuType);
void Print_aInfo(struct stuType,int);
void Input_aInfo(struct studentInfo*);
void Input_allInfo(struct stuType*,int num);
int Search(struct stuType);
void Modify(struct stuType*);
void main()
{

struct stuType student;
int choice,index;

Init(&student);
do{
  choice=choiceItem();
  switch (choice){
    case 0:printf("\nWelcome to");break;
    case 1:Input_allInfo(&student,MUNMAX);break;
    case 2:Input_allInfo(&student,1); break;
    case 3:PrintInfo(student);break;
    case 4:Init(&student);break;
    case 5:if ((index=Search(student))!=-1)
     Print_aInfo(student,index);
   else printf("\n No eixst the student.");
   break;
    case 6:Modify(&student);break;
  }
       }while(choice);
}

void DisplayMenu()   //显示菜单
{
   printf("\n========= MENU =========");
   printf("\n Input more student's informations ......... 1");
   printf("\n Input a student's informations ............ 2");
   printf("\n Print student's informations .............. 3");
   printf("\n Init student's informations ............... 4");
   printf("\n Search student's information .............. 5");
   printf("\n Modify student's information .............. 6");
   printf("\n exit system ............................... 0");
   printf("\nchoice,please:");
}

int choiceItem()  //菜单选择
{
   int choice;
   do{
     DisplayMenu();
     scanf("%d",&choice);
   }while(choice<0||choice>6);
   return choice;
}

void Init(struct stuType* s)   //初始化
{
    s->num=0;
}

void Print_aInfo(struct stuType s,int index)  //输出一个学生的信息
{
     printf("\n%4d %-16s",s.stu[index].num,s.stu[index].name);
     if (s.stu[index].sex==0) putchar('f');
     else putchar('m');
     printf("%4d%6.1f",s.stu[index].age,s.stu[index].score);
}

void PrintInfo(struct stuType s)    //输出所有学生的信息
{

     if (s.num==0) {
       printf("\nNo student.");
       return;
     }
     for (int i=0;i printf("\n%4d %-16s",s.stu[i].num,s.stu[i].name);
if (s.stu[i].sex==0) putchar('f');
else putchar('m');
printf("%4d%6.1f",s.stu[i].age,s.stu[i].score);
     }
}

void Input_aInfo(struct studentInfo* as)  //输入一个学生的信息
{

scanf("%d",&as->num);
as->name=(char*)malloc(30);
scanf("%s",as->name);
as->sex=random(2);
as->age=random(10)+18;
as->score=random(100);
}

void Input_allInfo(struct stuType* s,int num)  //输入多个学生的信息
{
    printf("\nEnter %d infomations.\n",num);
    for (int i=0;i       if (s->num==MUNMAX){
printf("\nOverflow.");
break;
       }
       Input_aInfo(&s->stu[s->num++]);
    }
}

int Search(struct stuType stu)  //查找
{
   int num;

   printf("\nEnter num:");
   scanf("%d",&num);
   for (int i=0;i      if (stu.stu[i].num==num)
return i;
   return -1;
}



--------------------next---------------------

阅读(1404) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~