- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言学生信息管理完整系统
学生信息管理系统
本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。本程序中涉及结构体、单链表、文件等方面的知识。通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,掌握利用单链表存储结构实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。
1、问题定义
创建一个学生成绩管理系统。假设系统中每个学生记录只包括学生学号、学生姓名、年龄、性别、出生年月、电话等信息。程序的运行效果如下图所示,选择任意菜单后,实现相应功能。
在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任务。
2、系统设计
2.1 总体设计
采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。可以用模块化层次结构来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。
本成绩管理系统要求采用数组实现,它由如下六大功能模块组成:
输入学生记录。
查询学生记录。
删除学生记录。
显示所有学生记录。
统计学生人数。刷新当前信息。
2.2 详细设计
2.2.1数据结构设计
学生个人信息结构体
结构体struct student将用于存储学生的基本信息,它将作为单链表的数据域。
struct record /*结构体*/
{
char code[LEN+1]; /* 学号 */
char name[LEN+1]; /* 姓名 */
int age; /* 年龄 */
char sex[3]; /* 性别 */
char date[LEN+1]; /* 出生年月 */
char tel[LEN+1]; /* 电话号码 */
}stu[N];
2.2.2输入记录模块
void readfile()/* 建立信息 */
{
char *p=student.txt;
FILE *fp;
int i=0;
if ((fp=fopen(student.txt,r))==NULL)
{
printf(Open file %s error! Strike any key to exit!,p);
system(pause);
exit(0);
}
while(fscanf(fp,%s %s %d %s %s %s,stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].date,stu[i].tel)==8)
{
i++;
i=i;
}
fclose(fp);
n=i;
printf(录入完毕!\n);
}
2.2.3查询记录模块
void seek() /*查找*/
{
int i,item,flag;
char s1[21]; /* 以姓名和学号最长长度+1为准 */
printf(------------------\n);
printf(-----1.按学号查询-----\n);
printf(-----2.退出本菜单-----\n);
printf(------------------\n);
while(1)
{
printf(请选择子菜单编号:);
scanf(%d,item);
flag=0;
switch(item)
{
case 1:
printf(请输入要查询的学生的学号:\n);
scanf(%s,s1);
for(i=0;in;i++)
if(strcmp(stu[i].code,s1)==0)
{
flag=1;
printf(学生学号 学生姓名 年龄 性别 出生年月 电话 \n);
printf(--------------------------------------------------------------------\n);
printf(%6s %7s %6d %5s %9s %10s\n,stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].date,stu[i].tel);
}
if(flag==0)
printf(该学号不存在!\n); break;
case 2:return;
default:printf(请在1-2之间选择\n);
}
}
}
2.2.4删除记录模块
void del()
{
int i,j,flag=0;
char s1[LEN+1];
printf(请输入要删除学生的学号:\n);
scanf(%s,s1);
for(i=0;in;i++)
if(strcmp(stu[i].
文档评论(0)