实 验 四:结构体
实验目的:
1.更加灵活的使用数组作为函数参数;
2.初步掌握开发一个小型实用系统的基本方法;
3.初步掌握书写程序设计开发文档的能力。
实验内容:
程序一:学生信息管理系统
编写程序,实现学生信息的管理(包括学生信息的建立、增加、删除、修改、查找),要求:
小组分工情况
小组分工情况统计表
班级
信息工程学院 计算机科学与技术专业 级 软件工程(方向) 班 组
名称
学生成绩管理系统
项目组长
(本次项目小组组长)
组员
组员学号
工作简介
一 需求分析
I设计一个学生成绩管理系统至少具有以下功能:
(1)菜单功能:采用文本菜单界面。
(2)学生信息的建立。
(3)学生信息的增加。
(4)学生信息的删除。
(5)学生信息的修改。
(6)学生信息的查找。
II数据库结构
struct student
{ char num[10];
char name[10];
char xibie[10];
char sex;
int age;
}st[30];
二 总体设计
框架结构图(系统的功能结构图)
学生成绩管理系统
学生成绩管理系统
输入
增加
…….
退出
程序流程图: (visio)
退出结束
退出
结束
开始
输出菜单
根据菜单输入n的值选择程序
输入
增加
删除
修改
查找
三、详细设计
(流程图!!!)
四、程序源代码(参考答案)
1.用结构体数组完成
2.用结构体指针完成
1. #include "stdio.h"
#include "string.h"
typedef struct node
{ char num[10];
char name[10];
char xibie[10];
char sex;
int age;
}st;
int n;
st *creslink()
{
int i;
st s[10];
printf("请输入要录入的人数:");
scanf("%d",&n);
for (i=0;i<=n-1;i++)
{ printf("请输入第%d名学生的学号,姓名,系别,年龄,性别:",i+1);
scanf("%s%s%s%d%c",s[i].num,s[i].name,s[i].xibie,&s[i].age,&s[i].sex);
}
return s;
}
int getlen(st s[])
{
return n;
}
insert(st s[],char num[],char name[],char xibie[],int age,char sex)
{ strcpy(s[n].num,num);
strcpy(s[n].name,name);
strcpy(s[n].xibie,xibie);
s[n].age=age;
s[n].sex=sex;
n++;
}
delete(st s[],char num[])
{int i,j;
for(i=0;i
if(strcmp(s[i].num,num)==0)break;
for(j=i+1;j
s[j-1]=s[j];
n--;
}
void list(st s[])
{ int i;
printf("学号\t姓名\t系别\t年龄\t性别\n");
for(i=0;i
printf("%s\t%s\t%s\t%d\t%c\n",s[i].num,s[i].name,s[i].xibie,s[i].age,s[i].sex);
}
void main()
{
int k,f,age;
char num[10],name[10],xibie[10],sex;
st *s;
while(1)
{
printf("\n\n\t\t\t学生信息管理系统\n");
printf("\t\t*************************************\n");
printf("\t\t\t1.录入学生信息\n");
printf("\t\t\t2.插入新学生信息\n");
printf("\t\t\t3.删除学生信息\n");
printf("\t\t\t4.输出学生信息\n");
printf("\t\t\t5.输出学生总数\n");
printf("\t\t\t6.退出\n");
printf("\t\t*************************************\n");
printf("请选择:"