当前位置:编程学习 > C/C++ >>

C语言程序设计,,急求!!!

学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,实现以下功能:

1.学生信息录入功能

2.学生信息浏览功能

3.学生信息查询功能

(1)按学号查询

(2)按姓名查询

4.学生信息的删除与修改

 网上当的不要,谢谢。

最好别用链表,语句越简单朴实越好,但是功能要全。

答案:#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#include"conio.h"
int k;

typedef struct Date
{
 int year;
 int month;
 int day;
}Date;

typedef struct Contact
{
 char addr[20];
 char email[15];
 char tel[12];
}Contact;

typedef struct Infor
{
 char name[10];
 int  age;
 int  num;
 char sex[2];
}Infor;

struct Student
{
 Date date;
 Contact contact;
 Infor infor;
}student[50];

void input(struct Student *student,int i);

void scan(struct Student *student,int n);

int find(struct Student *student,int n);

void correct(struct Student *student,int n);

void del(struct Student *student,int *n);

void print(struct Student *student,int j);

void input(struct Student *student,int i)
{
 int j=0;
 printf("请输入学生的人数:");
 scanf("%d",&i);
 while(i)
 {
  printf("请输入姓名、学号、性别、年龄(之间用空格符):\n");
  scanf("%s %d %s %d",student[j].infor.name,&student[j].infor.num,student[j].infor.sex,&student[j].infor.age);
  printf("请输入出生年、月、日(年月日之间用空格符):\n");
  scanf("%d %d %d",&student[j].date.year,&student[j].date.month,&student[j].date.day);
  printf("请输入家庭地址:");
  scanf("%s",student[j].contact.addr);
  printf("请输入电子邮件:");
  scanf("%s",student[j].contact.email);
  printf("请输入电话号码:");
  scanf("%s",student[j].contact.tel);
  --i;
  ++j;
 }
 printf("录入完毕!\n");
 return;
}

void scan(struct Student *student,int n)
{
 int j;
 for(j=0;j<n;j++)
 {
  print(student,j);
 }
 return;
}

void print(struct Student *student,int j)
{
 printf("姓名、学号、性别、年龄:\n");
 printf("%s    %d    %s    %d",student[j].infor.name,student[j].infor.num,student[j].infor.sex,student[j].infor.age);
 printf("出生于 %d 年 %d 月 %d 日:\n",student[j].date.year,student[j].date.month,student[j].date.day);
 printf("家庭地址:%s\n",student[j].contact.addr);
 printf("电子邮件:%s\n",student[j].contact.email);
 printf("电话号码:%s\n",student[j].contact.tel);
 return;
}

int find(struct Student *student,int n)
{
 int i,j;
 int num;
 char name[10];
 printf("请选择查询方式:\n");
 printf("1代表按学号查询;\n");
 printf("2代表按姓名查询;\n");
 scanf("%d",&i);
 if(i==1)
 {
  printf("请输入学号:");
  scanf("%d",&num);
  for(j=0;j<n;j++)
   if(student[j].infor.num==num)
   {
    printf("找到了!\n");
    print(student,j);
    k=j;
    return k;
   }
   
   if(j>=n)
    printf("未找到!\n");
 }
 else
 {
  printf("请输入姓名:");
  scanf("%s",name);
  for(j=0;j<n;j++)
   if(strcmp(student[j].infor.name,name)==0)
   {
    printf("找到了!\n");
    print(student,j);
    k=j;
    return k;
   }

   if(j>=n)
    printf("未找到!\n");
 }
 return 0;
}

void correct(struct Student *student,int n)
{
 int  i;
 i=find(student,n);
 printf("请输入姓名、学号、性别、年龄(之间用空格符):\n");
 scanf("%s %d %s %d",student[i].infor.name,&student[i].infor.num,student[i].infor.sex,&student[i].infor.age);
 printf("请输入出生年、月、日(年月日之间用空格符):\n");
 scanf("%d %d %d",&student[i].date.year,&student[i].date.month,&student[i].date.day);
 printf("请输入家庭地址:");
 scanf("%s",student[i].contact.addr);
 printf("请输入电子邮件:");
 scanf("%s",student[i].contact.email);
 printf("请输入电话号码:");
 scanf("%s",student[i].contact.tel);
 printf("修改成功!\n");
}

void del(struct Student *student,int *n)
{
 int i,j;
 i=find(student,*n);
 for(j=i;j<*n-1;j++)
 {
  strcpy(student[j].infor.name,student[j+1].infor.name);
  student[j].infor.num=student[j+1].infor.num;
  strcpy(student[j].infor.sex,student[j+1].infor.sex);
  student[j].infor.age=student[j+1].infor.age;
  student[j].date.year=student[j+1].date.year;
  student[j].date.month=student[j+1].date.month;
  student[j].date.day=student[j+1].date.day;
  strcpy(student[j].contact.addr,student[j+1].contact.addr);
  strcpy(student[j].contact.email,student[j+1].contact.email);
  strcpy(student[j].contact.tel,student[j+1].contact.tel);
 }
 --n;
}

void main()
{
 int i,j,N=50;
 while(1)
 {
  printf("请输入数字选择操作:\n");
  printf("1.学生信息录入\n");
  printf("2.学生信息浏览\n");
  printf("3.学生信息查询\n");
  printf("4.学生信息修改\n");
  printf("5.学生信息删除\n");
  printf("9.退出系统\n");
  scanf("%d",&i);
  switch(i)
  {
  case 1:input(student,N);
   break;
  case 2:scan(student,N);
   break;
  case 3:j=find(student,N);
   break;
  case 4:correct(student,N);
   break;
  case 5:del(student,&N);
   break;
  case 9:exit(0);
   break;
  default:
   break;
  }
 }
}

已经在VC6.0里调试过

上一个:C语言中怎么进行函数调用?
下一个:求C语言编程软件的下载地址?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,