三个C语言课程设计的程序

类别:编程语言 点击:0 评论:0 推荐:

/*
三个课程设计的程序,是临时帮别人写的,原来自己写的自己用的那个太复杂了,
现在自己有点晕,下面的是为了应付老师的,不很严密。
*/


/*
 图书管理
 这个程序我给一个朋友写的C语言课程设计的作业,
 我们化院的C设计题目好象几年都没有变,所以因
 该能给你作个参考。(没有涉及到C++)

  这是个"图书管理系统",没有用到指针。BC应该可
 以通过调试,输入数据的时候一定注意数字的范围
 和字串的长度。
*/


#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

struct BOOK
 {
 int id,usr[10],total,store,days[10];
 char name[31],author[21];
 }books[100];
/*上面是结构体的定义,用于存放书籍及借书的信息。*/

void page_title(char *menu_item)
 {
 clrscr();
 printf(">>> 图 书 管 理 系 统 <<<\n\n- %s -\n\n",menu_item);
 }
/*上面是打印页眉的函数,同时通过参数menu_item,可以显示当前的状态。*/

void return_confirm(void)
 {
 printf("\n按任意键返回……\n");
 getch();
 }
/*上面是返回前请求确认的函数,以便在返回前观察结果*/

int search_book(void)
 {
 int n,i;
 printf("请输入图书序号:");
 scanf("%d",&i);
 for(n=0;n<100;n++)
  {
  if(books[n].id==i)
   {
   printf("书名:%s\n",books[n].name);
   printf("作者:%s\n",books[n].author);
   printf("存数:%d of ",books[n].store);
   printf("%d\n",books[n].total);
   return n;
   }
  }
 printf("\n输入错误或无效图书序号.\n");
 return -1;
 }
/*上面的函数是在数组中找到图书号匹配的记录,显示其信息并返
  回数组下标,如果找不到相应记录则提示错误并返回-1。*/

void book_out(void)
 {
 int n,s,l,d;
 page_title("借阅图书");
 if((n=search_book())!=-1&&books[n].store>0)
  {
  printf("请输入借书证序号:");
  scanf("%d",&s);
  printf("请输入可借天数:");
  scanf("%d",&d);
  for(l=0;l<10;l++)
   {
   if(books[n].usr[l]==0)
    {
    books[n].usr[l]=s;
    books[n].days[l]=d;
    break;
    }
   }
  books[n].store--;
  }
 if(n!=-1&&books[n].store==0) printf("此书已经全部借出.\n");
 return_confirm();
 }
/*上面是借书的函数,首先调用找书函数*/

void book_in(void)
 {
 int n,s,l;
 page_title("归还图书");
 if((n=search_book())!=-1&&books[n].store<books[n].total)
  {
  printf("借阅者图书证列表:\n");
  for(l=0;l<10;l++)
   if (books[n].usr[l]!=0)
    printf("[%d] - %d天\n",books[n].usr[l],books[n].days[l]);
  printf("请输入借书证序号:");
  scanf("%d",&s);
  for(l=0;l<10;l++)
   {
   if(books[n].usr[l]==s)
    {
    books[n].usr[l]=0;
    books[n].days[l]=0;
    break;    
    }
   }
  books[n].store++;
  }
 if(n!=-1&&books[n].store==books[n].total)
  printf("全部入藏.\n");
 return_confirm();
 }

void book_add(void)
 {
 int n;
 page_title("注册新书");
 for(n=0;n<100;n++)
  if(books[n].id==0) break;
 printf("序号:");
 scanf("%d",&books[n].id);
 printf("书名:");
 scanf("%s",&books[n].name);
 printf("作者:");
 scanf("%s",&books[n].author);
 printf("数量:");
 scanf("%d",&books[n].total);
 books[n].store=books[n].total;
 return_confirm();
 }
void book_del(void)
 {
 int n;
 page_title("注销旧书");
 if((n=search_book())!=-1) books[n].id=0;
 printf("该书已注销.\n");
 return_confirm();
 }

void main(void)
 {
menu: page_title("操作选单");
 printf("请用数字键选择操作\n\n");
 printf("1 借阅图书\n2 归还图书\n\n");
 printf("3 注册新书\n4 注销旧书\n\n");
 printf("\n0 退出\n");
 switch(getch())
  {
  case '1' : book_out();break;
  case '2' : book_in();break;
  case '3' : book_add();break;
  case '4' : book_del();break;
  case '0' : exit(0);
  }
 goto menu;
 }
{
 int n;
 page_title("廣?症慕");
 if((n=search_book())!=-1) books[n].id=0;
 printf("乎慕厮廣?.\n");
 return_confirm();
 }

void main(void)
 {
menu: page_title("荷恬僉汽");
 printf("萩喘方忖囚僉夲荷恬\n\n");
 printf("1 処堋夕慕\n2 拷珊夕慕\n\n");
 printf("3 廣過仟慕\n4 廣?症慕\n\n");
 printf("\n0 曜竃\n");
 switch(getch())
  {
  case '1' : book_out();break;
  case '2' : book_in();break;
  case '3' : book_add();break;
  case '4' : book_del();break;
  case '0' : exit(0);
  }
 goto menu;
 }

 

================================================================================================
/*泊车管理*/

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

int cars[16][3];

void car_park(void)
 {
 int n,m,o;
 for(n=0;n<16;n++) if(cars[n][0]==0) break;
 if(n==16)
  {
  printf("\n便道很拥挤.\n");
  getch();
  return;
  }
 printf("\n泊车-请输入车牌:");
  scanf("%d",&o);
 for(m=0;m<16;m++) if(cars[m][0]==o) break;
 if(m!=16)
  {
  printf("\n此车已泊.\n");
  getch();
  return;  
  }
  cars[n][0]=o;
 if(n<10)
  {
  printf("请输入当前时:");
  scanf("%d",&cars[n][1]);
  printf("请输入当前分:");
  scanf("%d",&cars[n][2]);
  return;
  }
 else printf("\n请先在便道上等候车位");
 getch();
 }
void car_get()
 {
 int n,o,p,q,r;
 printf("\n取车-请输入车牌:");
 scanf("%d",&o);
 for(n=0;n<16;n++) if(cars[n][0]==o) break;
 if(n==16)
  {
  printf("\n没有这个车牌.\n");
  getch();
  return;
  }
 printf("请输入当前时:");
 scanf("%d",&p);
 printf("请输入当前分:");
 scanf("%d",&q);
 r=(p*60+q)-(cars[n][1]*60+cars[n][1]);
 printf("停车%d分钟 合计%.2f元\n",r,r*0.05);
 for(r=n;r<15;r++)
  {
  cars[r][0]=cars[r+1][0];
  cars[r][0]=cars[r+1][0];
  cars[r][0]=cars[r+1][0];
  }
 cars[9][1]=p;
 cars[9][2]=q;
 getch();
 }
void main(void)
 {
 int n;
 char x;
mainloop:
 clrscr();
 printf("停车场:\n");
 for(n=0;n<10;n++)
  {
  if(cars[n][0]!=0)
  printf("[CAR %d] %d:%d\n",cars[n][0],cars[n][1],cars[n][2]);
  else printf("[===============]\n");
  }
 printf("\n便道:\n");
 for(n=10;n<15;n++)
  {
  if(cars[n][0]!=0)
  printf("[CAR  %d ]",cars[n][0]);
  else printf("[- - - - - - -]");
  }
 printf("\n\n泊车?取车?结束(1/2/3)\n");
 x=getch();
 if(x=='1') car_park();
 if(x=='2') car_get();
 if(x=='3') exit(0);
 goto mainloop;
 }

 

================================================================================================
/*学生成绩管理*/

/*Borland C下编译通过,调试过程中不要输入大数字*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int INDEX[32];
struct STUDENT
 {
 int id,age,chinese,math,english;
 char name[21];
 }students[32];

void page_title(char *menu_item)
 {
 clrscr();
 printf(">>> 学 生 管 理 系 统 <<<\n\n- %s -\n\n",menu_item);
 }

void return_confirm(void)
 {
 printf("\n按任意键返回……\n");
 getch();
 }

void student_new(void)
 {
 int n;
 page_title("录入学生基本信息");
 for(n=0;n<32;n++)
  if(students[n].id==0) break;
 printf("学号:");
 scanf("%d",&students[n].id);
 printf("姓名:");
 scanf("%s",&students[n].name);
 printf("年龄:");
 scanf("%d",&students[n].age);
 return_confirm();
 }

int search_id(void)
 {
 int n,i;
 printf("请输入学生学号:");
 scanf("%d",&i);
 for(n=0;n<32;n++)
  {
  if(students[n].id==i&&students[n].id!=0)
   {
   printf("学号:%d\n",students[n].id);
   printf("姓名:%s\n",students[n].name);
   printf("年龄:%d\n",students[n].age);
   return n;
   }
  }
 printf("\n输入错误或学号不存在.\n");
 return -1;
 }

void student_del(void)
 {
 int n;
 page_title("注销学生基本信息");
 if((n=search_id())!=-1) students[n].id=0;
 printf("\n!该学生已注销.\n");
 return_confirm();
 }

void student_edit(void)
 {
 int n;
 page_title("编辑学生基本信息");
 if((n=search_id())!=-1)
  {
  printf("\n请重新输入新信息:\n学号:");
  scanf("%d",&students[n].id);
  printf("姓名:");
  scanf("%s",&students[n].name);
  printf("年龄:");
  scanf("%d",&students[n].age);
  }
 return_confirm();
 }

void score_input(void)
 {
 int s,n,t;
 page_title("录入成绩");
 printf("\n请用数字键选择科目\n1-语文 2-数学 3-英语\n");
 scanf("%d",&s);
 for(n=0;n<32;n++)
  {
  if(students[n].id!=0)
   {
   printf("学号:%d 姓名:%s 成绩:",students[n].id,students[n].name);
   scanf("%d",&t);
   switch(s)
    {
    case 1 : students[n].chinese=t;break;
    case 2 : students[n].math=t;break;
    case 3 : students[n].english=t;break;
    }   
   }  
  }
 return_confirm();
 }

void score_edit(void)
 {
 int n;
 page_title("修改成绩");
 if((n=search_id())!=-1)
  {
  printf("语文:%d 数学:%d 英语:%d\n",students[n].chinese,students[n].math,students[n].english);
  printf("\n请重新输入成绩:\n语文:");
  scanf("%d",&students[n].chinese);
  printf("数学:");
  scanf("%s",&students[n].math);
  printf("英语:");
  scanf("%d",&students[n].english);
  }
 return_confirm();
 }

void sort_it(char nn)
 {
 int n,m,p,x,t[32];
 for(n=0;n<32;n++)
  {
  switch(nn)
   {
   case '1' : t[n]=students[n].id;break;
   case '2' : t[n]=students[n].chinese;break;
   case '3' : t[n]=students[n].math;break;
   case '4' : t[n]=students[n].english;break;
   case '5' : t[n]=students[n].chinese+students[n].math+students[n].english;break;
   }
  }
 for(n=0;n<32;n++)
  {
  x=0;
  p=-1;
  for(m=0;m<32;m++)
   {
   if(t[m]>x)
    {
    x=t[m];
    p=m;
    }
   }
  t[p]=-1;
  INDEX[n]=p; 
  }
 }

void browser(void)
 {
 int n,x;
 char k;
 sort_it('1');
 while(1)
 {
 page_title("浏览");
 printf("按数字键选择排序方式或按 0 返回\n");
 printf("学号-1\t姓名\t\t年龄\t语文-2\t数学-3\t英语-4\t总分-5\n");
 for(n=0;n<32;n++)
  {
  if(INDEX[n]!=-1)
   {
   x=INDEX[n];
   printf("%d\t%s\t",students[x].id,students[x].name);
   printf("%d\t%d\t",students[x].age,students[x].chinese);
   printf("%d\t%d\t",students[x].math,students[x].english);
   printf("%d\n",students[x].chinese+students[x].math+students[x].english);
   }
  }
 k=getch();
 if(k<'6'&&k>'0') sort_it(k);
 else if(k=='0') break;
 else continue; 
 }
 }


void main(void)
 {
menu: page_title("操作选单");
 printf("请用数字键选择操作\n\n");
 printf("1 录入学生基本信息\n2 修改学生基本信息\n");
 printf("3 注销学生基本信息\n\n4 录入成绩\n5 修改成绩\n\n");
 printf("6 浏览...\n \n0 退出\n");
 switch(getch())
  {
  case '1' : student_new();break;
  case '2' : student_edit();break;
  case '3' : student_del();break;
  case '4' : score_input();break;
  case '5' : score_edit();break;
  case '6' : browser();break;
  case '0' : exit(0);
  }
 goto menu;
 }

本文地址:http://com.8s8s.com/it/it23764.htm