收藏 分销(赏)

C语言课程设计报告-学生信息管理系统.doc

上传人:二*** 文档编号:4477062 上传时间:2024-09-24 格式:DOC 页数:22 大小:56KB
下载 相关 举报
C语言课程设计报告-学生信息管理系统.doc_第1页
第1页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

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

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

4、两个分支模块五:学生信息的修改声明void modify()为学生信息修改函数,通过switch(item)设定所要修改的工程模块六:学生信息按学号排序声明void sort()将录入学生系按升序排列,用的是“冒泡排序法实现排序模块七:增加学生信息声明void insert()插入学生信息,先通过判断学生是否存在,假设否那么继续输入,假设是跳出,重新循环模块八:删除学生信息声明void del()实现学生信息删除,通过学号比照确定要删除的信息,然后用后一个替换掉。模块九:显示学生信息通过display()函数输出学生信息模块十:保存信息通过fp=fopen(student.txt,w);写入信

5、息模块十一:界面菜单通过switch(num)调用,以上各函数,实现功能三、数据构造描述与定义一构造体:“构造体名用作构造体类型的标志,它又称“构造体标记。声明一个构造体类型的一般形式为:Struct构造体名成员表列;大括弧内是该构造体中的各个成员,由它们组成一个构造体。对各成员都应进展类型声明,即类型名 成员名也可以把“成员表列称为“域表。每一个成员也称为构造体中的一个域。成员名定名规与变量名同。二构造体数组:一个构造体变量中可以存放一组数据如本程序中一个学生的学号、成绩等。因为程序中需存放假设干个学生的信息,这些数据需要参加运算,就得运用数组即构造体数组。构造体数组的每个数组元素都是一个构

6、造体类型的数据,它们分别包括各个成员分量项。 四、程序主要代码分析#include /*I/O函数*/#include /*其它说明*/#include /*字符串函数*/#define BUFLEN 100 /* 缓冲区最大字符数 */#define LEN 15 /* 学号和XX最大字符数,实际请更改 */#define N 100 /* 最大学生人数,实际请更改*/struct record /*构造体*/char codeLEN+1; /* 学号 */char nameLEN+1; /* */int age; /* 年龄 */char sex3; /* 性别 */char timeLE

7、N+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.欢送使用系

8、统帮助!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,%

9、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; /* 以XX和学号最长长度+1为准 */printf(-n);printf(-1.按学号查询-n);printf(-2.按XX查询-n);printf(-3.退出本菜单-n);printf(-n);while(1)printf(请选择

10、子菜单编号:);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(学生学号 学生XX 年龄 性别 出生年月 地址 n);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(

11、flag=0)printf(该学号不存在!n); break;case 2:printf(请输入要查询的学生的XX:n);scanf(%s,s1);for(i=0;in;i+)if(strcmp(stui.name,s1)=0)flag=1;printf(学生学号 学生XX 年龄 性别 出生年月 地址 n);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)print

12、f(该XX不存在!n); break;case 3:return;default:printf(请在1-3之间选择n);void modify() /*修改信息*/int i,item,num;char sex13,s1LEN+1,s2LEN+1; /* 以XX和学号最长长度+1为准 */printf(请输入要要修改的学生的学号:n);scanf(%s,s1);for(i=0;in;i+)if(strcmp(stui.code,s1)=0) /*比拟字符串是否相等*/num=i;printf(-n);printf(1.修改XXn);printf(2.修改年龄n);printf(3.修改性别n)

13、;printf(4.修改出生年月n);printf(5.修改地址n);printf(6.修改n);printf(7.修改地址n);printf(8.退出本菜单n);printf(-n);while(1)printf(请选择子菜单编号:);scanf(%d,&item);switch(item)case 1:printf(请输入新的XX:n);scanf(%s,s2);strcpy(stunum.name,s2); break;case 2:printf(请输入新的年龄:n);scanf(%d,&stunum.age);break;case 3:printf(请输入新的性别:n);scanf(%

14、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(请输入新的地址:n);scanf(%s,s2);strcpy(stunum.mail,s2

15、); break;case 8:return;default:printf(请在1-8之间选择n);void sort()/*按学号排序*/int i,j,*p,*q,s;char temp10;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

16、);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

17、);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);doflag=1;while(flag)flag=0;printf(请输入第 %d 个学生的学号:n,i+1);scanf(%s,stui.code);for(j=0;ji;j+)if(strcmp(stui.co

18、de,stuj.code)=0)printf(已有该学号,请检查后重新录入!n);flag=1;break; /*如有重复立即退出该层循环,提高判断速度*/printf(请输入第 %d 个学生的XX: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 个学

19、生的地址:n,i+1);scanf(%s,stui.add);printf(请输入第 %d 个学生的:n,i+1);scanf(%s,stui.tel);printf(请输入第 %d 个学生的: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

20、;for(j=i;jn-1;j+)stuj=stuj+1;if(flag=0)printf(该学号不存在!n);if(flag=1)printf(删除成功,显示结果请选择菜单6n);n-;void display()int i;printf(所有学生的信息为:n);printf(学生学号 学生XX 年龄 性别 出生年月 地址 n);printf(-n);for(i=0;in;i+)printf(%6s %7s %5d %5s %9s %8s %10s %14sn,stui.code,stui.name,stui.age,stui.sex,stui.time,stui.add,stui.tel,

21、stui.mail);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)

22、;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(

23、 * 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);. .word.

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 初中其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服