欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    C语言课程设计学生信息管理系统.docx

    • 资源ID:3155522       资源大小:41.05KB        全文页数:14页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言课程设计学生信息管理系统.docx

    C语言课程设计学生信息管理系统南京工程学院 课程设计说明书(论文)题 目 学生信息管理系统 课 程 名 称 高级语言程序设计(C) 院 通信工程学院 专 业 电子信息工程 班 级 电信082 学 生 姓 名 * 学 号 * 设 计 地 点 * 指 导 教 师 * _ 目 录 一、课程设计任务。2 二、系统设计方案。 2 三、数据结构描述与定义。2 四、程序主要代码分析. 。2 五、测试结果与分析。 2 六、课程设计总结。 2 七、参考文献:。 2 一、课程设计任务 前言 本课程是继高级语言程序设计(C)课程之后,训练学生综合运用本课程知识,结合实际系统运用C语言进行系统设计以及调试,加深对本课程的理解,提高学生综合应用知识的能力、分析问题、解决问题的能力和利用C语言进行综合系统设计的实践技能。 学C语言程序设计已有1学期了,对C语言的基本概念和常用算法也有了一定的了解,平时虽然也做过一些练习,也看了不少程序从而掌握一定的语法知识和编程经验。但是对于有些功能强大的软件还是没有尝试过能否编得起来。所以决定在所学知识的基础上,再加以拓展,利用4个半天时间编个主题明确、具有一定使用价值的中小程序,以提高自身的编程水平与上机调试技能。 课程设计题目及要求 学生信息管理系统设计: 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以功能: 系统以菜单方式工作 学生信息录入功能-输入 学生信息浏览功能-输出 查询、排序功能-算法 按学号查询、按姓名查询 学生信息的删除与修改 二、系统设计方案 总体框架图: 学生管理系统:1、录入学生信息 2、修改学生信息 3、查询学生信息 4、浏览学生信息 5、增加学生信息 6、推出信息系统 模块设计 模块一:头文件,变量定义,函数的声明 对系统所使用的变量进行定义,对函数进行声明 模块二:学生信息系统使用帮助 声明函数void help,对整个系统进行使用说明 模块三:录入学生信息 声明函数void readfile,说明一个文件指针FILE *fp 打开文件"student.txt" 模块四:学生信息的查找 声明void seek为查找函数,通过switch(item)设定用学号查找,用姓名查找两个分支 模块五:学生信息的修改 声明void modify为学生信息修改函数,通过switch(item)设定所要修改的项目 模块六:学生信息按学号排序 声明void sort将录入学生系按升序排列,用的是“冒泡排序法”实现排序 模块七:增加学生信息 声明void insert插入学生信息,先通过判断学生是否存在,若否则继续输入,若是跳出,重新循环 模块八:删除学生信息 声明void del实现学生信息删除,通过学号对比确定要删除的信息,然后用后一个替换掉。 模块九:显示学生信息 通过display函数输出学生信息 模块十:保存信息 通过fp=fopen("student.txt","w");写入信息 模块十一:界面菜单 通过switch(num)调用,以上各函数,实现功能 三、数据结构描述与定义 结构体: “结构体名”用作结构体类型的标志,它又称“结构体标记”。声明一个结构体类型的一般形式为: Struct 结构体名 成员表列; 大括弧内是该结构体中的各个成员,由它们组成一个结构体。对各成员都应进行类型声明,即 类型名 成员名 也可以把“成员表列”称为“域表”。每一个成员也称为结构体中的一个域。成员名定名规与变量名同。 结构体数组: 一个结构体变量中可以存放一组数据。因为程序中需存放若干个学生的信息,这些数据需要参加运算,就得运用数组即结构体数组。结构体数组的每个数组元素都是一个结构体类型的数据,它们分别包括各个成员项。 四、程序主要代码分析#include<stdio.h> /*I/O函数*/ #include<stdlib.h> /*其它说明*/ #include<string.h> /*字符串函数*/ #define BUFLEN 100 /* 缓冲区最大字符数 */ #define LEN 15 /* 学号和姓名最大字符数,实际请更改 */ #define N 100 /* 最大学生人数,实际请更改*/ struct record /*结构体*/ char codeLEN+1; /* 学号 */ char nameLEN+1; /* 姓名 */ int age; /* 年龄 */ char sex3; /* 性别 */ char timeLEN+1; /* 出生年月 */ char add30; /* 家庭地址 */ char telLEN+1; /* 电话号码 */ char mail30; /* 电子邮件地址 */ stuN; int k=1,n,m; /* 定义全局变量 */void readfile;/* 函数声明 */ void seek; void modify; void insert; void del; void display; void save; void menu;int main while(k) menu; system("pause"); return 0; void help printf("n0.欢迎使用系统帮助!n"); printf("n1.进入系统后,先刷新学生信息,再查询;n"); printf("n2.按照菜单提示键入数字代号;n"); printf("n3.增加学生信息后,切记保存按7;n"); printf("n4.谢谢您的使用!n"); 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 %s %s",stui.code,stui.name,&stui.age, stui.sex,stui.time,stui.add,stui.tel,stui.mail)=8) i+; i=i; fclose(fp); n=i; printf(" 录入完毕!n"); void seek /*查找*/ int i,item,flag; char s121; /* 以姓名和学号最长长度+1为准 */ printf("-n"); printf("-1.按学号查询-n"); printf("-2.按姓名查询-n"); printf("-3.退出本菜单-n"); printf("-n"); while(1) printf("请选择子菜单编号:"); scanf("%d",&item); flag=0; switch(item) case 1: printf("请输入要查询的学生的学号:n"); scanf("%s",s1); for(i=0;i<n;i+) if(strcmp(stui.code,s1)=0) flag=1; printf("学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mailn"); printf("-n"); printf("%6s %7s %6d %5s %9s %8s %10s %14sn",stui.code,stui.name,stui.age, stui.sex,stui.time,stui.add,stui.tel,stui.mail); if(flag=0) printf("该学号不存在!n"); break; case 2: printf("请输入要查询的学生的姓名:n"); scanf("%s",s1); for(i=0;i<n;i+) if(strcmp(stui.name,s1)=0) flag=1; printf("学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mailn"); printf("-n"); printf("%6s %7s %6d %5s %9s %8s %10s %14sn",stui.code,stui.name,stui.age, stui.sex,stui.time,stui.add,stui.tel,stui.mail); if(flag=0) printf("该姓名不存在!n"); break; case 3:return; default:printf("请在1-3之间选择n"); void modify /*修改信息*/ int i,item,num; char sex13,s1LEN+1,s2LEN+1; /* 以姓名和学号最长长度+1为准 */ printf("请输入要要修改的学生的学号:n"); scanf("%s",s1); for(i=0;i<n;i+) if(strcmp(stui.code,s1)=0) /*比较字符串是否相等*/ num=i; printf("-n"); printf("1.修改姓名n"); printf("2.修改年龄n"); printf("3.修改性别n"); printf("4.修改出生年月n"); printf("5.修改地址n"); printf("6.修改电话号码n"); printf("7.修改E-mail地址n"); printf("8.退出本菜单n"); printf("-n"); while(1) printf("请选择子菜单编号:"); scanf("%d",&item); switch(item) case 1: printf("请输入新的姓名:n"); scanf("%s",s2); strcpy(stunum.name,s2); break; case 2: printf("请输入新的年龄:n"); scanf("%d",&stunum.age);break; case 3: printf("请输入新的性别:n"); scanf("%s",sex1); strcpy(stunum.sex,sex1); break; case 4: printf("请输入新的出生年月:n"); scanf("%s",s2); strcpy(stunum.time,s2); break; case 5: printf("请输入新的地址:n"); scanf("%s",s2); strcpy(stunum.add,s2); break; case 6: printf("请输入新的电话号码:n"); scanf("%s",s2); strcpy(stunum.tel,s2); break; case 7: printf("请输入新的E-mail地址:n"); scanf("%s",s2); strcpy(stunum.mail,s2); break; case 8:return; default:printf("请在1-8之间选择n"); void sort/*按学号排序*/ int i,j,*p,*q,s; char temp10; for(i=0;i<n-1;i+) for(j=n-1;j>i;j-) if(strcmp(stuj-1.code,stuj.code)>0) strcpy(temp,stuj-1.code); strcpy(stuj-1.code,stuj.code); strcpy(stuj.code,temp); strcpy(temp,stuj-1.name); strcpy(stuj-1.name,stuj.name); strcpy(stuj.name,temp); strcpy(temp,stuj-1.sex); strcpy(stuj-1.sex,stuj.sex); strcpy(stuj.sex,temp); strcpy(temp,stuj-1.time); strcpy(stuj-1.time,stuj.time); strcpy(stuj.time,temp); strcpy(temp,stuj-1.add); strcpy(stuj-1.add,stuj.add); strcpy(stuj.add,temp); strcpy(temp,stuj-1.tel); strcpy(stuj-1.tel,stuj.tel); strcpy(stuj.tel,temp); strcpy(temp,stuj-1.mail); strcpy(stuj-1.mail,stuj.mail); strcpy(stuj.mail,temp); p=&stuj-1.age; q=&stuj.age; s=*q; *q=*p; *p=s; void insert /*插入函数*/ int i=n,j,flag; printf("请输入待增加的学生数:n"); scanf("%d",&m); do flag=1; while(flag) flag=0; printf("请输入第 %d 个学生的学号:n",i+1); scanf("%s",stui.code); for(j=0;j<i;j+) if(strcmp(stui.code,stuj.code)=0) printf("已有该学号,请检查后重新录入!n"); flag=1; break; /*如有重复立即退出该层循环,提高判断速度*/ printf("请输入第 %d 个学生的姓名:n",i+1); scanf("%s",stui.name); printf("请输入第 %d 个学生的年龄:n",i+1); scanf("%d",&stui.age); printf("请输入第 %d 个学生的性别:n",i+1); scanf("%s",stui.sex); printf("请输入第 %d 个学生的出生年月:(格式:年.月)n",i+1); scanf("%s",stui.time); printf("请输入第 %d 个学生的地址:n",i+1); scanf("%s",stui.add); printf("请输入第 %d 个学生的电话:n",i+1); scanf("%s",stui.tel); printf("请输入第 %d 个学生的E-mail:n",i+1); scanf("%s",stui.mail); if(flag=0) i=i; i+; while(i<n+m); n+=m; printf("录入完毕!nn"); sort; void del int i,j,flag=0; char s1LEN+1; printf("请输入要删除学生的学号:n"); scanf("%s",s1); for(i=0;i<n;i+) if(strcmp(stui.code,s1)=0) flag=1; for(j=i;j<n-1;j+) stuj=stuj+1; if(flag=0) printf("该学号不存在!n"); if(flag=1) printf("删除成功,显示结果请选择菜单6n"); n-; void display int i; printf("所有学生的信息为:n"); printf("学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mailn"); printf("-n"); for(i=0;i<n;i+) printf("%6s %7s %5d %5s %9s %8s %10s %14sn",stui.code,stui.name,stui.age, stui.sex,stui.time,stui.add,stui.tel,stui.mail); void save int i; FILE *fp; fp=fopen("student.txt","w"); /*写入*/ for(i=0;i<n;i+) fprintf(fp,"%s %s %d %s %s %s %s %sn",stui.code,stui.name,stui.age, stui.sex,stui.time,stui.add,stui.tel,stui.mail); fclose(fp); void menu/* 界面 */ int num; printf(" nn 电信082学生信息管理系统 nn"); printf(" * nn"); printf(" * 制作人:顾加楠 * n n"); printf(" * nn");printf("*系统功能菜单* n"); printf("友情提醒:查询前请先刷新系统! n"); printf(" - - n"); printf(" * n"); printf(" * 0.系统帮助及说明 * * 1.刷新学生信息 * n"); printf(" * n"); printf(" * 2.查询学生信息 * * 3.修改学生信息 * n"); printf(" * n"); printf(" * 4.增加学生信息 * * 5.按学号删除信息 * n"); printf(" * n"); printf(" * 6.显示当前信息 * * 7.保存当前学生信息* n"); printf(" * * n"); printf(" * 8.退出系统 * n"); printf(" * n"); printf(" - - n"); printf("请选择菜单编号:"); scanf("%d",&num); switch(num) case 0:help;break; case 1:readfile;break; case 2:seek;break; case 3:modify;break; case 4:insert;break; case 5:del;break; case 6:display;break; case 7:save;break; case 8:k=0;break; default:printf("请在0-8之间选择n");

    注意事项

    本文(C语言课程设计学生信息管理系统.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开