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

学生信息管理系统设计 C语言 谢谢啦

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

系统以文本菜单方式工作,

学生信息录入功能(学生信息最好用文件保存)---输入

学生信息浏览功能---输出

查询、排序功能---算法

按学号查询

按姓名查询

学生信息的删除与修改(可选项)   

 

答案:

我提供一个程序,可能不太完整,我以前写的。代码并不多,你可以改改.

现在程序是测试通过的

/*
 * stumng.h
 */
#ifndef STUMNG_H
#define STUMNG_H
 
 #define ADD 1 /*add student's information */
 #define MODIFY 2 /*modify student's information*/
 #define SEARCH 3 /*search student's information*/
 #define BROWSE 4
 #define DELETE 5
 #define IMPORT 6
 #define EXPORT 7
 #define QUIT 8
 
 void on_add();
 void on_modify();
 void on_search();
 void on_browse();
 void on_delete();
 void on_import();
 void on_export();
 void on_quit();
 
 #define MAX_STUDENT_NUM 20
 struct student {
  int sno;
  char name[10];
  unsigned short age;
  char sex[5];
  char birthday[20];
  char address[300];
  char tel[5];
  char email[30];
 } stutab[MAX_STUDENT_NUM];

 struct menu {
  int mno;
  char name[50];
  void (*handle)();
 } menutab[] = {
  {ADD, "增加学生信息", on_add},
  {MODIFY, "修改学生信息", on_modify},
  {SEARCH, "查询学生信息", on_search},
  {BROWSE, "浏览学生信息", on_browse},
  {DELETE, "删除学生信息", on_delete},
  {IMPORT, "导入学生信息", on_import},
  {EXPORT, "导出学生信息", on_export},
  {QUIT, "退出系统", on_quit},
 };

 #define MENU_NUM (sizeof menutab / sizeof menutab[0])
 
#endif

/*

*file: stumng.c

*/

#include <stdio.h>
#include <string.h>

#include "stumng.h"

int next_index = 0;

void on_add()
{
 if (next_index == MAX_STUDENT_NUM) {
  printf("存储空间已满,最大只能存%d条记录\n", MAX_STUDENT_NUM);
 } else {
  printf("学号(如:1):");
  scanf("%d", &stutab[next_index].sno);
  printf("姓名(如:张三):");
  scanf("%s", stutab[next_index].name);
  printf("年龄(如:20):");
  scanf("%d", &stutab[next_index].age);
  printf("性别(男、女,如:男):");
  scanf("%s", stutab[next_index].sex);
  printf("出生年月(如:1990-01-12):");
  scanf("%s", stutab[next_index].birthday);
  printf("地址(如:杭州市xx区):");
  scanf("%s", stutab[next_index].address);
  printf("电话(如:13100000000):");
  scanf("%s", stutab[next_index].tel);
  printf("E-mail(如:xxx@163.com):");
  scanf("%s", stutab[next_index].email);
  
  next_index++;
 
  printf("成功添加1条记录\n");
  
 }
}

void on_modify()
{
 int sno, index, count = 0;
 printf("输入要修改学生的学号:");
 scanf("%d", &sno);
 if ((index = exists_student(sno)) != -1) {
  printf("姓名(%s)修改为:", stutab[index].name);
  scanf("%s", stutab[index].name);
  printf("年龄(%d)修改为:", stutab[index].age);
  scanf("%d", &stutab[index].age);
  printf("性别(%s)修改为:", stutab[index].sex);
  scanf("%s", stutab[index].sex);
  printf("出生年月(%s)修改为:", stutab[index].birthday);
  scanf("%s", stutab[index].birthday);
  printf("地址(%s)修改为:", stutab[index].address);
  scanf("%s", stutab[index].address);
  printf("电话(%s)修改为:", stutab[index].tel);
  scanf("%s", stutab[index].tel);
  printf("E-mail(%s)修改为:", stutab[index].email);
  scanf("%s", stutab[index].email);
   
  count++; 
 } else {
  printf("没有要修改学生的信息记录\n");
 }
 printf("%d条记录已被修改!\n", count); 
}

void on_search()
{
 int condition = 0;
 int sno;
 char name[10];
 int index;
 int count = 0;
 printf("请选择查询条件(1学号, 2姓名):");
 scanf("%d", &condition);

 
 if (condition == 1) {
  printf("输入学号:");  
  scanf("%d", &sno);
  
  printf("学号\t姓名\t年龄\t性别\t生日\t地址\t\t电话\tEmail\n"); 
  if ((index = exists_student(sno)) != -1) {
   printf("%d\t%s\t%d\t%s\t%s\t%s\t\t%s\t%s\n", stutab[index].sno,
    stutab[index].name, stutab[index].age, stutab[index].sex,
    stutab[index].birthday, stutab[index].address, stutab[index].tel,
    stutab[index].email); 
   count++;   
  }  
 } else if (condition == 2) {
  printf("输入姓名:"); 
  scanf("%s", name);

  printf("学号\t姓名\t年龄\t性别\t生日\t地址\t\t电话\tEmail\n"); 
  for (index = 0; index < next_index; index++) {
   if (strncmp(name, stutab[index].name, strlen(name)) == 0) {
    printf("%d\t%s\t%d\t%s\t%s\t%s\t\t%s\t%s\n", stutab[index].sno,
    

上一个:C语言要学多久才能学好的?
下一个:C语言怎嘛才能学好呢?

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