- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言_学生信息管理系统实验报告
学生管理系统实验报告
实验目的
上学期学习了C语言的内容,学生信息管理系统有助于对C语言的学习的进一步巩固,在本系统可以增强对指针、数组、文件、函数等基本知识的进一步理解。另外学生管理系统也是学校常用的基本系统之一,它有助于学校对学生的基本管理。
问题分析
学生信息管理系统是对学生信息的基本管理,它包括:学生信息的输入、学生信息的修改、学生信息的查询、学生信息的删除、学生成绩的排序、学生信息的输出。
使用模块化编程的方法每项功能有一个函数来完成,对应如下:
学生信息的输入===(void jia(Link i) 学生信息的修改==(void xiu(Link i)
学生信息的查询===(void cha(Link i) 学生信息的删除==(void shan(Link i)
学生信息的排序===(void pai(Link i) 学生信息的保存==(void bao(Link i)
为了避免指针的过于复杂使用typedef函数创建了一个struct的同义字程序如下:
typedef struct node{
struct student data;
struct node *next;
}Node,*Link;
这是问题变得更易于描述、和程序的设计。另外本程序运用动态存储、二进制进行存贮。
为了使程序变得更加明了设计另外一个定位Node型的函数(Node *Locate(Link i,char find[],char nameornum[]))这对于查询、删除、修改中非常重要。
程序的设计流程如下:
主要算法的设计
主函数的算法设计
首先,进入设定密码(123456),进入菜单,然后选择操作(运用swith语句),调用各子函数,在退出程序时检验文件是否保存(设定全局变量wang若不改变或以保存则为0,否则为1)退出程序。在返回操作中运用while语句进行控制若选择0则返回菜单。
读入信息:
while(!feof(fp)){
p=(Node*)malloc(sizeof(Node));
if(fread(p,sizeof(Node),1,fp))从二进制文件中读入信息
{
p-next=NULL;
r-next=p;
r=p;//
count++;
}
}
fclose(fp);
控制保存信息:
if(wang==1)
{
getchar();
printf(\n====提示:资料已经改动,是否将改动保存(y/n)\n);
printf(请输入你的选择:);
scanf(%c,ch);
if(ch==y||ch==Y)
bao(i);
}
printf(\n=====提示:你已经退出系统,再见!\n);
break;
}
各子函数的算法设计
一些显示操作
密码函数用递归的方法设计,其它显示操作均用输出相应的内容即可
递归的运用:
void mima()
{
char mi[10];
printf(====请输入密码:);
scanf(%s,mi);
if(strcmp(mi,123456)==0)
return;
else
printf(====没有记住密码!请重新输入……\n);
mima();
}
定位操作函数
Node *Locate(Link i,char find[],char nameornum[])引入Link型I,字符型的find[],namenum[]运用strcmp进行比较返回其地址即可。
学生信息的输入函数
Void jia(Link i)首先,申请空间(p=(Node *)malloc(sizeof(Node));)输入学生信息,然后做总分计算和平均分的计算
p-data.zong=p-data.ying+p-data.shu+p-data.c;
p-data.ping=p-data.zong/3;
4、 学生信息的修改
void xiu(Link i)首先选择修改信息,然后定位 (p=Locate(i,find,num);)输入修改信息;若成功则printf(====修改成功!\n);否则调用报错函数wrong();
学生信息的查询
void cha(Link i)选择查询方式 printf(====1按学号查询\n====2按姓名查询\n); 然后定位,在调用输出函数;
您可能关注的文档
最近下载
- 婚前医学检查相关知识考核试题.pdf VIP
- 社保2024年新规培训.pptx VIP
- 人教版数学二年级上册第六单元 表内乘法(二)大单元整体教学设计.pdf
- DLT 5707-2014 电力工程电缆防火封堵施工工艺导则-行业标准.pdf
- 2024年医疗招聘中医类-中医妇科学考试历年高频考点题库含答案.docx VIP
- 2023年辽宁省营口市中考生物试卷(含答案).doc VIP
- 北师大版生物中考试题(含解析).docx VIP
- 2024年医疗招聘中医类-针灸推拿考试历年高频考点题库含答案.docx VIP
- 初中生物复习选择题.doc VIP
- 北师大版八年级生物上册单元测试-第19章.doc VIP
文档评论(0)