当前位置:首页
开发技术指南» 文章正文
    引言:

 ·sql语句怎么错了    »显示摘要«
    摘要: select * from tab where zd like *a* 目的是选出所有zd字段里面包含a的 再现等待。。。 ......
 ·求助:文件格式播放问题:    »显示摘要«
    摘要: bt下的电影有6个文件: .md0 .md1 .md2 .md3 .mdf .mds 共3.29gb,却不知道用什么播放器, google 搜索未果,特来请大家帮忙。 btw:该影片是我儿时见过最搞笑的动画片: 顽皮豹 ......


如何完成这个程序设计试验, C语言达人请进

综合性程序设计试验一  
  实验名称:   顺序表操作的C程序实现  
  【目的】    
  1.利用所学的三种程序基本结构以及数组、用户自定义函数进行一个中型程序的设计,进一步理解和掌握C语言的语法以及三种基本程序结构的综合应用。    
  2.通过程序中涉及到的排序、查找、求和等操作加深对算法、程序设计思路、常用程序设计技巧的理解与掌握,逐步培养学生的程序开发能力。    
  【内容】    
  设某班有n位同学,每位同学的数据包括以下内容:学号、姓名、数学成绩、程序设计成绩。设计程序完成以下五项功能:新建数据档案、添加数据、删除数据、对输入的数据进行排序和查询。  
  注:  
  1.输入数据时,要求学号不能相同,姓名可以相同。  
  2.在学习“结构体”和“文件”之前可进行本项程序设计,采用多个数组存储数据,同一学生信息对应的数组元素应下标相同。  
  【步骤】  
  1.   画出程序流程图;    
  2.   编制程序;  
  3.   调试程序,对调试程序时出现的错误进行分析,思考导致错误的原因;  
  4.   写出通过调试并修改后的正确程序代码。  
  【要求】    
  1.程序运行时,首先显示主菜单如下:  
   
  用户输入序号后,程序进行相应操作。  
  2.在主菜单中选择序号4,弹出子菜单选择排序方式,子菜单如下:  
  选择子菜单的序号后,程序能正确运行并在屏幕上显示按要求排序后的相关信息。  
  3.在主菜单中选择序号5,弹出子菜单选择查询方式,子菜单如下:  
   
  在子菜单中选择序号后,程序按以下方式工作。  
  学号查询:输入学号后,若该学号存在则显示与其相关的所有信息,否则显示找不到的提示信息;  
  姓名查询:输入姓名后,若该姓名存在则显示与其相关的所有信息,否则显示找不到的提示信息;  
  按科目查询:输入指定分数,程序运行后显示该科目中考试成绩大于等于指定分数的同学的学号、姓名以及该科成绩并统计满足条件的人数;  
  总分查询:输入指定分数,程序运行后显示总分成绩大于等于指定分数的同学的学号、姓名以及各科成绩并统计满足条件的人数。  
 

NO.1   作者: mccxj

虽然不难。。但是要求多多。。给够200也许有人会动手。。  
  再说。。。这个好像是作业来的哦。。

NO.2   作者: foochow

mark!!!

NO.3   作者: mccxj

没空写。。给个思路:  
  1.程序运行时,首先显示主菜单如下:用户输入序号后,程序进行相应操作。  
  //菜单很容易。。就是用一个switch对输入的序号进行判断,如  
    switch(select)    
  {  
    1:do   somthing  
    2:do...  
    .....  
    defalult:  
  }  
  可以对每一部分用一个函数表示,这样直接调用函数就可以了。。。  
   
  设某班有n位同学,每位同学的数据包括以下内容:学号、姓名、数学成绩、程序设计成绩。  
  学生数据可以用一个结构体进行包装。。然后什么一个类型为该结构体的数组。每个元素表示一个学生。  
  新建数据档案。。可以用读入文本数据的方法。。或者每个输入。就是用for循环咯。。】  
   
  排序方式:对数组排序。。很容易把。。  
   
  学号查询:输入学号后,若该学号存在则显示与其相关的所有信息,否则显示找不到的提示信息;  
    对于输入的学号。。在数组里边逐个对比。。    
  姓名查询:输入姓名后,若该姓名存在则显示与其相关的所有信息,否则显示找不到的提示信息;  
  对于输入的姓名。。在数组里边进行逐个对比  
  按科目查询:输入指定分数,程序运行后显示该科目中考试成绩大于等于指定分数的同学的学号、姓名以及该科成绩并统计满足条件的人数;  
  总分查询:输入指定分数,程序运行后显示总分成绩大于等于指定分数的同学的学号、姓名以及各科成绩并统计满足条件的人数。  
  这两个和上面的本质都是一样的。。  
  注意:。。由于可以添加数据。。可以定义一个足够大的数组。。并且记录学生人数。。这很重要。。  
   
   
   
 

NO.4   作者: sanhill

这个不难的嘛,自己动手哦!  
  也不需要花多久的时间。

NO.5   作者: mostideal

mark

NO.6   作者: mccxj

#include   <iostream.h>  
  #include   <string.h>  
  #include   <stdlib.h>  
  #include   <stdio.h>  
  #include   <iomanip.h>  
   
  const   int   MAX=100;  
   
   
  //每位同学的数据包括以下内容:学号、姓名、  
  //数学成绩、程序设计成绩。  
  struct   STUDENT  
  {  
  long   id;  
  char   name[20];  
  int   math;  
  int   prog;  
  };    
   
  STUDENT   student[MAX];  
  int   num=0;//实际人数  
   
   
  //初始化数据  
  void   init()  
  {  
  for(int   i=0;i<MAX;i++)  
  {  
  student[i].id=0;  
  // student[i].name="";  
  student[i].math=0;  
  student[i].prog=0;  
  }  
  }  
   
  void   print()  
  {  
  cout<<setw(10)<<"学号"<<setw(10)<<"姓名"<<setw(10)<<"数学"<<setw(10)<<"程序"<<endl;  
  for(int   i=0;i<num;i++)  
  {  
  cout<<setw(10)<<student[i].id;  
  cout<<setw(10)<<student[i].name;  
  cout<<setw(10)<<student[i].math;  
  cout<<setw(10)<<student[i].prog;  
  cout<<endl;  
  }  
  }  
   
  //新建学生档案  
  void   newdata()  
  {  
  cout<<"请输入学生人数:";  
  cin>>num;  
  if(num<=MAX)  
  {  
  for(int   i=0;i<num;i++)  
  {  
  cout<<"请输入第"<<i+1<<"个学生的资料"<<endl;  
  cout<<"学号:";  
  cin>>student[i].id;  
  cout<<"姓名:";  
  cin>>student[i].name;  
  cout<<"数学成绩:";  
  cin>>student[i].math;  
  cout<<"程序设计成绩:";  
  cin>>student[i].prog;  
  }  
  cout<<"输入完毕!!"<<endl;  
  print();  
  }  
  else    
  {  
  cout<<"人数过多,请加大空间!"<<endl;  
  exit(1);  
  }  
  }  
   
  //添加学生数据  
  void   adddata()  
  {  
  if(num==0)  
  {  
  cout<<"尚未建立学生档案,请重新选择!"<<endl;  
  }  
  else  
  {  
  if(num<MAX)  
  {  
   
  cout<<"请输入第"<<num+1<<"个学生的资料"<<endl;  
  cout<<"学号:";  
  cin>>student[num].id;  
  cout<<"姓名:";  
  cin>>student[num].name;  
  cout<<"数学成绩:";  
  cin>>student[num].math;  
  cout<<"程序设计成绩:";  
  cin>>student[num].prog;  
  num++;  
  }  
  else  
  {  
  cout<<"空间已经爆满了!";  
  }  
  }  
  }  
   
   
  //删除学生数据  
  void   deldata()  
  {  
  long   del;  
  int   founded=0;  
   
  cout<<"请输入要删除的学生id:";  
  cin>>del;  
  for(int   i=0;i<num;i++)  
  {  
  if(del==student[i].id)  
  {  
  student[i].id=student[num-1].id;  
  strcpy(student[i].name,student[num-1].name);  
  student[i].math=student[num-1].math;  
  student[i].prog=student[num-1].prog;  
  num--;  
  founded=1;  
  }  
  if(founded==0)  
  {  
  cout<<"不存在该数据!"<<endl;  
  }  
  }  
  }  
   
  //排序  
  void   sort()  
  {  
  //对数组a[0]~a[num-1]的id号进行冒泡排序,我就不写了。。  
  }  
   
  //查询  
  void   find()  
  {  
  int   i,sel;  
  int   founded=0;//是否查到  
  int   tol=0;//查询所得的人数  
  STUDENT   temp;  
  cout<<"1.学号查询"<<endl;  
  cout<<"2.姓名查询"<<endl;  
  cout<<"3.按科目查询"<<endl;  
  cout<<"4.总分查询"<<endl;  
  cout<<"请输入进行查询的操作号:";  
  cin>>sel;  
  switch   (sel)  
  {  
  case   1:   cout<<"请输入学号:";  
  cin>>temp.id;  
  for(i=0;i<num;i++)  
  {  
  if(temp.id==student[i].id)  
  {  
  cout<<setw(5)<<student[i].id;  
  cout<<setw(5)<<student[i].name;  
  cout<<setw(5)<<student[i].math;  
  cout<<setw(5)<<student[i].prog;  
  founded=1;  
  cout<<endl;  
  }  
  }  
  if(founded==0)   cout<<"找不到该学生数据"<<endl;  
  break;  
  case   2:   cout<<"请输入姓名:";  
  cin>>temp.name;  
  for(i=0;i<num;i++)  
  {  
  if(strcmp(temp.name,student[i].name)==0)  
  {  
  cout<<setw(5)<<student[i].id;  
  cout<<setw(5)<<student[i].name;  
  cout<<setw(5)<<student[i].math;  
  cout<<setw(5)<<student[i].prog;  
  founded=1;  
  cout<<endl;  
  }  
  }  
  if(founded==0)   cout<<"找不到该学生数据"<<endl;  
  break;  
  case   3: cout<<"请选择科目:1-数学   2-程序设计";  
  cin>>sel;  
  if(sel==1)  
  {  
  cout<<"请输入分数:";  
          cin>>temp.math;  
  for(i=0;i<num;i++)  
  {  
  if(temp.math<=student[i].math)  
  {  
  cout<<setw(5)<<student[i].id;  
  cout<<setw(5)<<student[i].name;  
  cout<<setw(5)<<student[i].math;  
  cout<<endl;  
  tol++;  
  }  
  }  
  cout<<"总人数:"<<tol;  
  }  
  else   if(sel==2)  
  {  
  cout<<"请输入分数:";  
          cin>>temp.prog;  
  for(i=0;i<num;i++)  
  {  
  if(temp.prog<=student[i].prog)  
  {  
  cout<<setw(5)<<student[i].id;  
  cout<<setw(5)<<student[i].name;  
  cout<<setw(5)<<student[i].prog;  
  cout<<endl;  
  tol++;  
  }  
  }  
  cout<<"总人数:"<<tol;  
  }  
  else   cout<<"输入错误!"<<endl;  
   
  break;  
  case   4: cout<<"请输入总分:";  
          //使用temp.math来存储总分  
  cin>>temp.math;  
  for(i=0;i<num;i++)  
  {  
  if(temp.math<=student[i].prog+student[i].math)  
  {  
  cout<<setw(5)<<student[i].id;  
  cout<<setw(5)<<student[i].name;  
  cout<<setw(5)<<student[i].math;  
  cout<<setw(5)<<student[i].prog;  
  cout<<endl;  
  tol++;  
  }  
  }  
  cout<<"总人数:"<<tol;  
  break;  
  default:cout<<"输入错误!"<<endl;  
  }  
  }  
   
  int     main(void)  
  {  
  int   sel;//选择的操作  
   
  init();  
  while(1)  
  {  
  cout<<"1.新建数据档案"<<endl;  
  cout<<"2.添加数据"<<endl;  
  cout<<"3.删除数据"<<endl;  
  cout<<"4.对输入的数据进行排序"<<endl;  
  cout<<"5.对输入的数据进行查询"<<endl;  
  cout<<"6.退出";  
  cout<<"请选择所需功能:(序号)";  
  cin>>sel;  
  switch(sel)  
  {  
  case   1: newdata();break;  
  case   2: adddata();break;  
  case   3: deldata();break;  
  case   4: sort();break;  
  case   5: find();break;  
  case   6:   exit(1);  
  default: cout<<"输入错误,请重新输入:"<<endl;  
   
  }  
  }  
  return   0;  
  }  
  。。已经完成了大部分功能。。除了排序。。  
  还有。。没有进行id是否重复的判断。。而且输入格式方面还有问题。。。。都差不多了。。其他的你自己弄拉。。

NO.7   作者: herryhuang

好奇怪的题目啊,  
   
  你去问问老师"中型的程序"是多大,我用30000行实现一个操作系统,算不算中型的?  
 

NO.8   作者: MagicCarmack

楼上厉害。。。。。。。。。。。。。。。。  
  佩服

NO.9   作者: nicknide

30000行...  
   
  得写多久啊...  
   
  一天100行计算,得写个一年来着...  
  恩,这样算下来,才   1人年,是个小型系统...

NO.10   作者: herryhuang

效率恐怕没有这么高。我们公司做底层开发的平均组织效率是每人每天25行左右,考虑我就一个人,交流所占的时间基本没有,效率有所提高,所以按照每天30行计算

NO.11   作者: nicknide

恩,你如果这么算确实,不过我算的是纯编码时间上的效率;  
   
  如果团体开发,看管理的水平了,水平高的话,同时程序员水平也高而且项目简单,大概一天可以到60~70  
  不过如果应用复杂,一天能够有20行代码已经很不错了。  
   
  当然,我上面都是按编码时间算的;编码时间占总工程时间1/6左右,人月说的,呵呵

NO.12   作者: nicknide

这么说起来,我现在一天代码也只有大概30来行左右...  
   
  而且你的那个系统项目要是算上整个周期,那么确实应该是中小型项目了

NO.13   作者: mccxj

我用30000行实现一个"操作系统"...够吗?  
  也要写很久哦。。。。。。。

NO.14   作者: hj5182001

看看

NO.15   作者: xxzcos

比较无聊,用数据库不容易的多,哪有这么麻烦  
  用dephel做这种事不就是一天的事哦

NO.16   作者: xxzcos

本人数据库课程设计就是这种题

NO.17   作者: arden1019

to   mccxj(爱逛街的老鼠)   :  
  你的代码看起来很舒服。

NO.18   作者: herryhuang

30000行实现一个操作系统,足矣!  
   
  最早的UNIX只有15000行,我比它翻了一倍呢!

NO.19   作者: mccxj

30000行实现一个操作系统,足矣!  
   
  最早的UNIX只有15000行,我比它翻了一倍呢!  
  。。。是吗?没了解过。。。哎。。汗。。。  
  另:  
  to   mccxj(爱逛街的老鼠)   :  
  你的代码看起来很舒服。  
   
  哦。。是吗?谢谢。

NO.20   作者: herryhuang

呵呵,看看《莱昂氏UNIX源代码分析》吧,我要是没记错,就是15000行。

NO.21   作者: wfwater

受教了!


    摘要: 我看见有些连接后台文件怎么用src,和codebehind有什么区别吗? ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE