鱼C论坛

 找回密码
 立即注册
查看: 3195|回复: 10

鱼友求助

[复制链接]
发表于 2012-4-14 12:14:11 | 显示全部楼层 |阅读模式
4鱼币
怎样设计一个教务信息管理系统,该程序具有以下功能:
  (1)录入如下信息:
学生基本信息:如学号、姓名、性别、年龄、宿舍号码、电话号码等。
课程基本信息:课程编号、课程名称、考试成绩、平时成绩、综合成绩、学分、重修否等。如果重修,需要考虑重修学期、重修成绩,并且要考虑多次重修的情况。
(2)录入选课信息
(3)录入学生成绩
(3)按班统计学生选课情况及考试成绩。
(4)按课程统计学生名单及考试成绩。
(5)统计并输出每个同学已修学分及不及级课程。
求详解,谢谢!!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-4-14 13:34:57 | 显示全部楼层
童鞋,这可不是三言两语可以完成的呀。要学一个开发软件加一个数据库才行呀。可以去学鱼帮主的dephi,再学韩顺平的数据库教程,也可以学个简单的access。简单点用exce表格吧l
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-4-15 09:43:26 | 显示全部楼层
编程一朝一夕是解决不了了,目前我也赞成用excel
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-4-15 18:58:23 | 显示全部楼层
这个是很基本的C语言练习,只是繁琐但一点都不难。LZ如果自己认真看书的话不可能做不出来。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-4-15 19:20:20 | 显示全部楼层
只要熟悉c语言    用文件操作+链表+功能函数 就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-4-15 21:13:32 | 显示全部楼层
我有一个相关的程序,你自己修改一下
#include<stdio.h>
#include<string.h>
//记录总数
int num=0;
//结构体定义
struct Student
{
        char id[10];
        char name[20];
        float mark1;//语文
        float mark2;//数学
        float mark3;//外语
        float average;//平均
}stu[1000];
//显示学生记录
void fp_show(int i)
{
printf("\t学号\t姓名\t语文\t数学\t外语\t平均成绩\n");
printf("-------------------------------------------------------------\n");
printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",stu[i].id,stu[i].name,
              stu[i].mark1,stu[i].mark2,stu[i].mark3,stu[i].average);
}
//1增加学生记录
void fp_add()
{
while(1)
{
printf("\n请输入学号:\n");
scanf("%s",stu[num].id);
printf("\n请输入姓名:\n");
scanf("%s",stu[num].name);
printf("\n请输入语文成绩:\n");
scanf("%f",&stu[num].mark1);
printf("\n请输入数学成绩:\n");
scanf("%f",&stu[num].mark2);
printf("\n请输入英语成绩:\n");
scanf("%f",&stu[num].mark3);
stu[num].average=(stu[num].mark1+stu[num].mark2+stu[num].mark3)/3;
num++;
getchar();
printf("\n是否继续添加(y/n)\n");
if(getchar()=='n') break;
}
}
//2修改学生记录
void fp_modify()
{   char a[20];
    int i,t;
        while(1)
        {
        printf("\n请输入学生学号:\n");
        scanf("%s",a);
        for(t=0;t<num;t++)
        {
                if(strcmp(stu[t].id,a)==0)
                i=t;
        }
        if(i>=0){
        fp_show(i);
                printf("\n请输入修改后的学号\n");
                scanf("%s",stu[i].id);
                printf("\n请输入修改后的姓名\n");
                scanf("%s",stu[i].name);
                printf("\n请输入修改后的语文\n");
                scanf("%f",&stu[i].mark1);
                printf("\n请输入修改后的数学\n");
                scanf("%f",&stu[i].mark2);
                printf("\n请输入修改后的外语\n");
                scanf("%f",&stu[i].mark3);
        stu[i].average=(stu[i].mark1+stu[i].mark2+stu[i].mark3)/3;}
    else
    printf("失败");
        getchar();
        printf("\n是否继续修改(y/n)?\n");
    if(getchar()=='n') return;
        }
}
//3删除学生记录
void fp_delete()
{int i,t,a[20];
while(1){
        printf("\n请输入删除的学生学号:\n");
        scanf("%s",a);
        for(t=0;t<num;t++)//返回下标;
        {
                if(strcmp(stu[t].id,a)==0)
                i=t;
        }
        if(i>=0)
        {
          fp_show(i);
          getchar();
          printf("\n是否真的要删除?(y/n)\n");
          if(getchar()=='y')
          {
           for(t=i;t<num-1;t++)
                   stu[t]=stu[t+1];
           num--;
          }
        }
    else
    printf("失败");
        getchar();
        printf("\n是否继续删除(y/n)?\n");
    if(getchar()=='n') return;
}
}
//4按姓名查询学生记录
void fp_search()
{ void fp_show(int);
  char a[20];
  int i,t;
  while(1)
  {
  printf("\n请输入学生姓名:\n");
  scanf("%s",a);
  for(i=0;i<num;i++)
  {
   if(strcmp(stu[i].name,a)==0)
           t=i;
  }
  if(t>=0)
  fp_show(t);
  else
  printf("失败");
  getchar();
  printf("\n返回/继续 y/n\n");
  if(getchar()=='y') break;
  }
}
//5按成绩排序
void fp_grades()
{int i,j;
struct Student temp;
for(i=0;i<num-1;i++)//冒泡法排序
  for(j=0;j<num-1-i;j++)
   if(stu[i].average>stu[i+1].average)
   { temp=stu[i];
     stu[i]=stu[i+1];
         stu[i+1]=temp;
   }
  //输出成绩排序
   
   printf("\t学号\t姓名\t语文\t数学\t外语\t平均成绩\n");
   printf("-------------------------------------------------------------\n");
   for(i=num-1;i>=0;i--){
   printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",stu[i].id,stu[i].name,
              stu[i].mark1,stu[i].mark2,stu[i].mark3,stu[i].average);
   }
   getchar();
   printf("\n请输入y返回\n");
   if(getchar()=='y') return;

}
//打开文件
void fp_open()
{ FILE *fp;
  int i;
  if((fp=fopen("database.txt","rb"))==NULL)
  {
          printf("打开文件失败;\n");
          return;
  }
  if(fread(&num,sizeof(int),1,fp)!=1)
  {
          num=0;
  }else
  {
   for(i=0;i<num;i++)
           fread(&stu[i],sizeof(struct Student),1,fp);
  }
  fclose(fp);
}
//写进数据
void fp_write()
{
  FILE *fp;
  int i;
  if((fp=fopen("database.txt","wb"))==NULL)
  {
          printf("打开文件失败;\n");
          return;
  }
  if(fwrite(&num,sizeof(int),1,fp)!=1)
  {
          printf("写入错误;\n");
  }
  {for(i=0;i<num;i++)
    if(fwrite(&stu[i],sizeof(struct Student),1,fp)!=1)
                printf("写入错误\n");
  }
  fclose(fp);

}
//主程序
int main()
{   int choice;
        //打开文件
        fp_open();
        while(1)
        {
       printf("\n\n◇◇◇◇◇◇◇◇成 绩 管 理 小 程 序◇◇◇◇◇◇◇◇\n\n\n");
           printf("\t☆\t1.   增加学生信息\t☆\n");
       printf("\t☆\t2.   修改学生信息\t☆\n");
           printf("\t☆\t3.   删除学生信息\t☆\n");
           printf("\t☆\t4.   查询学生信息\t☆\n");
           printf("\t☆\t5.   平均成绩排序\t☆\n");
           printf("\t☆\t6.   保存  并退出\t☆\n\n");
           printf("◇请选择(1-6)◇ \n");
           scanf("%d",&choice);
           switch(choice)
           {
             case 1 : fp_add(); break;
                 case 2 : fp_modify(); break;
                 case 3 : fp_delete(); break;
                 case 4 : fp_search(); break;
                 case 5 : fp_grades(); break;
                 default: exit(0);break;
           }
        //关闭并写入数据
        fp_write();
        }
return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-4-15 22:59:17 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-10 16:55:02 | 显示全部楼层
mark 一下   回去帮楼主写写看!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-17 21:40:32 | 显示全部楼层
学习了。。。。。。。。。。。。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-13 10:58:55 | 显示全部楼层
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-21 13:46:43 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 01:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表