ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:48.67KB ,
资源ID:8591781      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8591781.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课程设计学生信息管理系统.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、C语言课程设计学生信息管理系统工程学院课程设计说明书(论文)题目学生信息管理系统课程名称高级语言程序设计(C)院(系、部、中心) 通信工程学院专业电子信息工程班级电信082学生姓名*学号*设计地点*指导教师*、课程设计任务、系统设计案。、数据结构描述与定义。四、程序主要代码分析 。五、测试结果与分析。六、课程设计总结。七、参考文献 : 。亠、课程设计任务(一) 前言本课程是继高级语言程序设计(C)课程之后,训练学生综合运用本课程 知识,结合实际系统运用C语言进行系统设计以及调试,加深对本课程的理解, 提高学生综合应用知识的能力、分析问题、解决问题的能力和利用 C语言进行综合系统设计的实践技能。

2、学C语言程序设计已有1学期了,对C语言的基本概念和常用算法也有了 一定的了解,平时虽然也做过一些练习,也看了不少程序从而掌握一定的语法知 识和编程经验。但是对于有些功能强大的软件还是没有尝试过能否编得起来。 所以决定在所学知识的基础上,再加以拓展,利用4个半天时间编个主题明确、具 有一定使用价值的中小程序,以提高自身的编程水平与上机调试技能。(二) 课程设计题目及要求学生信息管理系统设计:学生信息包括:学号,姓名,年龄,性别,出生年月,地址, E-mail等。试设计一学生信息管理系统,使之能提供以功能:系统以菜单式工作学生信息录入功能(学生信息用文件保存)-输入学生信息浏览功能-输出查询、排序

3、功能算法按学号查询、按姓名查询学生信息的删除与修改二、系统设计案(一)总体框架图: 学生管理系统: 1、录入学生信息2、修改学生信息3、查询学生信息4、浏览学生信息5、增加学生信息6、推出信息系统(二)模块设计模块一 :头文件,变量定义,函数的声明对系统所使用的变量进行定义,对函数进行声明 模块二:学生信息系统使用帮助声明函数 void help() ,对整个系统进行使用说明 模块三:录入学生信息声明函数 void readfile() ,说明一个文件指针 FILE *fp 打开文件student.txt模块四 :学生信息的查找声明 void seek() 为查找函数,通过 switch(it

4、em) 设定用学号查找, 用姓名查找两个分支模块五 :学生信息的修改声明 void modify() 为学生信息修改函数, 通过 switch(item) 设定 所要修改的项目模块六:学生信息按学号排序声明void sort()将录入学生系按升序排列,用的是“冒泡排序法” 实现排序模块七:增加学生信息声明 void insert() 插入学生信息,先通过判断学生是否存在,若否则继续输入,若是跳出,重新循环模块八: 删除学生信息声明 void del() 实现学生信息删除,通过学号对比确定要删除的 信息,然后用后一个替换掉。模块九: 显示学生信息通过display。函数输出学生信息模块十: 保存

5、信息通过 fp=fopen(student.txt,w); 写入信息模块十一: 界面菜单通过 switch(num) 调用,以上各函数,实现功能三、数据结构描述与定义一)结构体:“结构体名”用作结构体类型的标志,它又称“结构体标记”。声明一个结 构体类型的一般形式为:Struct 结构体名 成员表列 ; 大括弧是该结构体中的各个成员,由它们组成一个结构体。对各成员都应进 行类型声明,即类型名 成员名 也可以把“成员表列” 称为“域表” 。每一个成员也称为结构体中的一个域 成员名定名规与变量名同。(二)结构体数组: 一个结构体变量中可以存放一组数据(如本程序中一个学生的学号、姓 名、成绩等)。因

6、为程序中需存放若干个学生的信息,这些数据需要参加运 算,就得运用数组即结构体数组。结构体数组的每个数组元素都是一个结构 体类型的数据,它们分别包括各个成员(分量)项。四、程序主要代码分析#include /*I/O 函数 */#include /* 其它说明 */#include /* 字符串函数 */#define BUFLEN 100 /* 缓冲区最大字符数 */#define LEN 15 /* 学号和姓名最大字符数 ,实际请更改 */#define N 100 /* 最大学生人数 ,实际请更改 */struct record /* 结构体 */char codeLEN+1; /* 学号

7、 */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();

8、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

9、(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 为准 */pri

10、ntf( 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;in;i+) if(strcmp(stui.code,s1)=0)flag=1;printf( 学生学号 学生姓名 年龄 性别 出生年月 地址 E-mailn);printf( n);printf(%6s

11、%7s %6d %5s %9s %8s %10s %14sn,stui.code,stui.name,stui.a ge,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;in;i+) if(strcmp(stui.name,s1)=0)flag=1;printf( 学生学号 学生姓名 年龄 性别 出生年月 地址 E-mailn);printf( n);printf(%6

12、s %7s %6d %5s %9s %8s %10s %14sn,stui.code,stui.name,stui.a ge,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( 请输入要要修改的学生

13、的学号 :n);scanf(%s,s1);for(i=0;in;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

14、);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:pr

15、intf( 请输入新的地址 :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 t

16、emp10;for(i=0;ii;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

17、(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.ma

18、il,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);doflag=1;while(flag)flag=0;printf( 请输入第 %d 个学生的学号 :n,i+1); scanf(%s,stui.code);for(j=0;ji;j+) if(strcmp(stui.code,stuj.code)=0)printf( 已有该学号 , 请检查后重新录入 !n);flag=1;break; /*

19、如有重复立即退出该层循环 ,提高判断速度 */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( 请输入第

20、 %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(in+m);n+=m;printf( 录入完毕! nn);sort();void del()int i,j,flag=0;char s1LEN+1;printf( 请输入要删除学生的学号 :n); scanf(%s,s1);for(i=0;in;i+) if(strcmp(stui.code,s1)=0)flag=1;for(j=i;jn-1;j+)stuj=st

21、uj+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;in;i+)printf(%6s %7s %5d %5s %9s %8s %10s %14sn,stui.code,stui.name,stui.a ge,stui.sex,stui.time,stui.add,stui.tel,stui.mai

22、l);void save()int i;FILE *fp;fp=fopen(student.txt,w); /* 写入 */for(i=0;in;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);prin

23、tf( 友情提醒 :查询前请先刷新系统! n);n);printf(printf( * 0. 系统帮助及说明 * * 1.刷新学生信息 * n);printf( * 2.查询学生信息 * * 3.修改学生信息 * n);printf( * 4.增加学生信息 * * 5.按学号删除信息 * n);printf( * 6.显示当前信息 * * 7.保存当前学生信息 * n);n);printf( 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);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1