[C] ACCP一期大作业

原创 2004年06月24日 21:37:00
#include
#include
#include
typedef struct
{
 char name[31];
 char add[51];
 long tel;
}consumer_det;
void sort(consumer_det *scr,int y)
{
 FILE *fp;
 int i,j,k,x;
 consumer_det temp[30];
 if((fp=fopen("telefon.dat","rb"))==NULL)
 {
  printf("Cannot open this file!");
  exit(0);
 }
 for(i=0;!feof(fp);i++)
 {
  fread(&temp[i],sizeof(consumer_det),1,fp);
  if(feof(fp))
  {
   if(y==0) x=i+1;
   if(y==1) x=i-1;
   break;
  }
  if(y==0)
   if(!strcmp(temp[i].name,(*scr).name) && !strcmp(temp[i].add,(*scr).add) && temp[i].tel==(*scr).tel)
   {
    printf("/n/tThis consumer already existed!/n");    
    return;
   }
 }
 fclose(fp);
 if((fp=fopen("telefon.dat","wb"))==NULL)
 {
  printf("Cannot open this file!");
  exit(0);
 }
 if(y==0) //插入记录
 {
  for(k=i;(strcmp(temp[k].name,(*scr).name))>=0 && k>=0 ;k--)
  {
   temp[k+1]=temp[k];
  }
  temp[k+1]=(*scr);
 }
 if(y==1) //删除记录
 {
  for(k=0; k<=i ;k++)
  {
   if((strcmp(temp[k].name,(*scr).name))>=0)
    temp[k]=temp[k+1];
  }
 } 
 for(j=0;j  fwrite(&temp[j],sizeof(consumer_det),1,fp);
 fclose(fp); 
}
void input()
{
 int flag='Y';
 consumer_det det;
 while(flag=='Y'||flag=='y') 
 {
  system("cls"); 
  printf("/t/tADD NEW SUBSCRIBER DETAILS");
  do
  {   
   printf("/n/nEnter Subscriber name ( upte 30 chars ): ");
   fflush(stdin);
   scanf("%s",det.name);
   if(strlen(det.name)>30)
    printf("/n/tSubscriber name must upte 30 chars");
  }while(strlen(det.name)>30);
  do
  {
   printf("/n/nEnter Subscriber address ( upte 50 chars ): ");
   fflush(stdin);
   scanf("%s",det.add );
   if(strlen(det.add)>50)
    printf("/n/tSubscriber address must upte 50 chars");
  }while(strlen(det.add)>50);
  do
  {   
   printf("/n/nEnter Subscriber number: ");
   fflush(stdin);
   scanf("%ld",&det.tel);
   if(det.tel<4000000 || det.tel>4999999)
    printf("/n/tSubscriber telephone number must be between 4000000 and 4999999");
  }while(det.tel<4000000 || det.tel>4999999);
  sort(&det,0);
  printf("/n/nContinue ? (Y/N)");
  fflush(stdin);
  scanf("%c",&flag);
 }
}
void displayall(char scr,int x)
{
 FILE *fp;
 int i,flag=1,pointadd1,pointadd2;
 consumer_det temp;
 long temp_tel;
 char temp_name[31];
 if((fp=fopen("telefon.dat","rb"))==NULL)
 {
  printf("Cannot open this file!");
  exit(0);
 }
 system("cls");
 if(scr=='t')
 {
  do
  {   
   printf("/n/nEnter Subscriber number: ");
   fflush(stdin);
   scanf("%ld",&temp_tel);
   if(temp_tel<4000000 || temp_tel>4999999)
    printf("/n/tSubscriber telephone number must be between 4000000 and 4999999");
  }while(temp_tel<4000000 || temp_tel>4999999);
 }
 if(scr=='n')
 {  
  do
  {
   printf("/n/nEnter Subscriber name ( upte 30 chars ): ");
   fflush(stdin);
   scanf("%s",temp_name);
   if(strlen(temp_name)>30)
    printf("/n/tSubscriber name must upte 30 chars");
  }while(strlen(temp_name)>30);
 }
 system("cls");
 if(scr=='a')
 {
  printf("/n/tCONSUMER TOTOAL:");
  printf("/n/nNumber/t/tName/t/tAddress/t/t/tTelephone/tFileAdd/n");
 }
 for(i=0;!feof(fp);i++)
 {    
  fseek(fp,i*sizeof(consumer_det),0);
  fread(&temp,sizeof(consumer_det),1,fp);
  pointadd1=ftell(fp);
  if(pointadd1==pointadd2)
   break;
  if(temp.tel >4999999||temp.tel<4000000)
   break;  
  if(scr=='t')
  {
   if(temp_tel==temp.tel)
   {
    printf("/n/tREQUESTED SUBSCRIBER DETAILS/n/nName: %s/nAddress: %s/nTelephone number: %d/n",temp.name ,temp.add ,temp.tel );
    flag=0;
   }
  }
  if(scr=='n')
  {
   if(!strcmp(temp_name,temp.name))
   {
    printf("/n/tREQUESTED SUBSCRIBER DETAILS/n/nName: %s/nAddress: %s/nTelephone number: %d/n",temp.name ,temp.add ,temp.tel );
    flag=0;
    if(x==1)
     sort(&temp,1);
    if(x==2)
    {
     fflush(stdin);
     getchar();
     sort(&temp,1);
     input();
    }
   }
  }
  if(scr=='a')
  {
   printf("/nRecord%-10d%-16s%-24s %-16ld%-d",i+1,temp.name ,temp.add ,temp.tel,ftell(fp));
   flag=0;
  }
  pointadd2=ftell(fp);
 } 
 if(flag)
 {
  printf("/n/t/tThe record is not exist!");
 }
 fflush(stdin);
 getchar();
 fclose(fp);
}
void main()
{
 int choice,flag=1;
 while(flag)
 {
  system("cls");
  printf("S19305/nTELEPHONE DIRECTORY SYSTEM/n/n/t1. Add new subscriber details/n/t2. Modify existing subscriber details/n/t3. Delete existing subscriber details/n/t4. Display subscriber details based on telephone number/n/t5. Display subscriber details based on subscriber name/n/t6. View Directory/n/t7. Quit/n/nEnter choice: ");
  scanf("%d",&choice);
  if(choice==1)
   input();
  if(choice==2)
   displayall('n',2);
  if(choice==3)
   displayall('n',1);
  if(choice==4)
   displayall('t',0);
  if(choice==5)
   displayall('n',0);
  if(choice==6)
   displayall('a',0);
  if(choice==7)
   exit(0);
  if(choice>7||choice<1)
  {
   printf("Error: Please typing integer( 1 - 7 ).");
   fflush(stdin);
   getchar();     
  }
 }
}

北大青鸟ACCP4.0上机考试评分标准

ACCP4.0_S2_JavaWeb_测试机试题_评分标准有兴趣的同学可以研究一下评分标准由于担心版权的问题,没有题目,仅供参考了~如果真的涉及侵犯了您的版权,请及时联系我请点击这里查看文档PS:CS...
  • softwave
  • softwave
  • 2007年03月26日 18:29
  • 2150

ACCP S1 SQL第十一章上机练习

上机1select GradeId,sum(ClassHour) as 总学时数 from Subject group by GradeId order by sum(ClassHour) sel...
  • baidu_36074048
  • baidu_36074048
  • 2016年11月25日 15:01
  • 495

大四重写大一的C语言大作业是一种怎样的体验

大四重写大一的C语言大作业是一种怎样的体验 在整理文件时偶然发现大一时的C语言大作业,故突然心血来潮想看看曾经花费一个星期的成果。它虽然只有一个文件,却足足有829行,可见当时我下了多大功夫。回忆起当...
  • qq535033459
  • qq535033459
  • 2015年05月05日 15:40
  • 7798

黑马程序员——C语言大作业--学生管理系统

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------- 前言:之所以收录此C语言综合例子是因...
  • crossblack
  • crossblack
  • 2014年10月19日 21:30
  • 1389

一次编程大作业的心得

前几天(准确说从前两个星期就断断续续开始了,只是前几天才正式编码)完成了网络程序设计的大作业:一个即时通讯程序。居然有3天时间在debug。 编程的过程中被bug折磨的内分泌失调。使我不得不...
  • shimachao
  • shimachao
  • 2012年12月24日 23:18
  • 2151

人工智能大作业啊。。。

截课了,交上大作业,其实第一题挺有意思的,不过最近事情有点多,就没做,做了后边的几道题。 人工智能大作业 1. 求解如下问题的最优解本题目是一个194个城市的TSP问题。方法不限,给出解决思路,并给...
  • xum2008
  • xum2008
  • 2011年05月25日 23:15
  • 3776

C#大作业一个简单的编辑器

http://github.com/svtter/c# 实现了文件保存,工作目录的选取,多个编辑子窗口。(子窗口功能尚未完善);...
  • svitter
  • svitter
  • 2014年06月08日 10:52
  • 1590

一些C语言期末作业 题目以及自己做的答案。

第一题: #include int main(int argc,char* argv[]) { int number; printf("请输入一个正整数:(按下回车键结束)\n"); scanf...
  • u012997311
  • u012997311
  • 2016年06月22日 15:41
  • 582

web前端大作业

任务 1: 学会基本的HTML(5)标签骨架以及基本服务器概念 1.开发基础百度首页 要求: · 学会配置开发环境 · 学会使用基本的HTML结构搭建骨架 · 基本符合视觉上的要求 · 让...
  • fly__girl_
  • fly__girl_
  • 2017年04月12日 22:29
  • 1539

数字图像处理--大作业,

1.什么是灰度,像素,像素点,分辨率,灰度值? 2.什么叫做直方,什么是均衡,什么是直方均衡化? 灰度使用黑色调表示物体,即用黑色为基准色,不同的饱和度的黑色来显示图像。 每个灰度对象都具有从 0%...
  • u011352311
  • u011352311
  • 2013年12月19日 11:18
  • 1768
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[C] ACCP一期大作业
举报原因:
原因补充:

(最多只允许输入30个字)