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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

Linux下学生信息管理系统.docx

1、Linux下学生信息管理系统学习并分别使用标准C的文件操作函数和Linux的系统调用创建一个对学生基本信息进行操作(插入、修改和删除)的C程序,学生基本信息以结构体的形式存储在文件#includestdio.h#includeunistd。hincludeinclude#includetime.hstruct stu_info char stu_num12; char name10; char sex;/*0为女生,1为男生/ char mobile_phone12;struct stu_info student;unsigned int number;struct stu_info stu1

2、00;FILE *in;FILE out;int len;void inputstu();void updatestu();void deletestu();void displaystu();void commanddisp() printf(”-n”); printf(|-学生基本信息管理-n”); printf(|-1.基本信息插入.-2。基本信息修改-|n”); printf(”|-3。基本信息删除.-4。基本信息显示-|n”); printf(-r.初始化(第一次使用时用!!慎用)-q.退出-n); printf(|-请输入你的选择:-n”); printf(”-n);void ma

3、in() commanddisp(); char ch; while(1) do ch=getchar(); while(ch=n); if(ch=q)return; switch(ch) case 1: inputstu(); break; case 2: updatestu(); break; case 3: deletestu(); break; case 4: displaystu(); break; case r: printf(ninit student tablen); if((out=fopen(c。doc,w)=NULL) return; number=0; fwrite(&

4、number,sizeof(unsigned int),1,out); fflush(out); fclose(out); break; default: break; printf(”please enter any key to continue”); getchar(); getchar(); system(clear”); commanddisp(); void inputstu() printf(”n-请输入学生信息-n); char p=y; while(p=yp=Y) memset(student,0,sizeof(student); printf(”学号:”); scanf(s

5、”,student.stu_num); printf(”姓名:); scanf(”%s,student。name); printf(性别0是女,1是男:); do student。sex=getchar(); while(student.sex=n); printf(”手机号:”); scanf(”s,student.mobile_phone); len=sizeof(struct stu_info); if((out=fopen(”c.doc,”r+)=NULL) return; fread(&number,sizeof(unsigned int),1,out); number+; fsee

6、k(out,0L,SEEK_SET); fwrite(&number,sizeof(unsigned int),1,out); fflush(out); fseek(out,0L,SEEK_END); fwrite(&student,len,1,out); fflush(out); fclose(out); printf(”是否继续输入YNn); fflush(stdin); do p=getchar(); while(p=n); void updatestu() printf(n-学生信息修改-n); printf(请输入修改学生的学号:); memset(&student,0,sizeof

7、(student)); scanf(”%s,student。stu_num); printf(”姓名:”); scanf(s”,student.name); printf(性别0是女,1是男:”); do student.sex=getchar(); while(student.sex=n); printf(”手机号:”); scanf(%s,student.mobile_phone); len=sizeof(struct stu_info); in=fopen(”c.doc”,r+); fread(&number,sizeof(unsigned int),1,in); unsigned in

8、t j; long kk; for(j=0;jnumber;j+) fread(&stu0,len,1,in); if(strcmp(student.stu_num,stu0.stu_num)=0) kk=len; fseek(in,-kk,SEEK_CUR); fwrite(&student,len,1,in); break; fflush(in); fclose(in); if(j=number)printf(”没有这条记录n”);void deletestu() printf(n-学生信息删除-n”); in=fopen(”c。doc,r); fread(&number,sizeof(u

9、nsigned int),1,in); memset(stu,0,sizeof(stu)); len=sizeof(struct stu_info); fread(stu,len,number,in); unsigned int i; char f; while(1) printf(请输入删除学生的学号:”); char stu_num12; memset(stu_num,0,sizeof(stu_num)); fflush(stdin); scanf(”%s”,stu_num); for(i=0;inumber;i+) if(strcmp(stu_num,stui.stu_num)=0)br

10、eak; if(i=number) printf(没有这条记录n”); else number-; for(;inumber;i+) strcpy(stui。stu_num,stui+1.stu_num); strcpy(stui.name,stui+1.name); stui.sex=stui+1.sex; strcpy(stui.mobile_phone,stui+1.mobile_phone); printf(是否继续删除YNn”); fflush(stdin); do f=getchar(); while(f=n); if(f!=y&f!=Y)break; fclose(in); ou

11、t = fopen(c.doc,”w”); fwrite(&number,sizeof(unsigned int),1,out); len=lennumber; fwrite(stu,len,1,out); fflush(out); fclose(out);void displaystu() printf(n-显示学生信息-n”); in=fopen(”c。doc,”r); fread(number,sizeof(unsigned int),1,in); memset(stu,0,sizeof(stu)); len=sizeof(struct stu_info); fread(stu,len,

12、number,in); unsigned int i; printf(-n”); printf(”number t学号t 姓名t性别0是女,1是男 手机号n”); for(i=0;inumber;i+) printf( %3d %12s%10s %c 12sn,i,stui.stu_num,stui.name,stui.sex,stui.mobile_phone); printf(”-n); fclose(in); 利用父子进程间的管道通信方式,改写实验3步骤6要求的程序.要求启用两个进程,其中父进程接受用户对文件stu.info的操作命令然后通过管道发给子进程,子进程完成对文件的实际操作.i

13、ncludestdio。hincludeincludestring.h#include#includestruct stu_info char stu_num12; char name10; char sex;/0为女生,1为男生*/ char mobile_phone12;;struct stu_info student;unsigned int number;struct stu_info stu100;int pipefiles2;void main() printf(”-n”); printf(|-学生基本信息管理-|n); printf(”-1。基本信息插入.-2。基本信息修改-n”

14、); printf(”|-3.基本信息删除。-4。基本信息显示-n); printf(”|-r。初始化(第一次使用时用!慎用)-|n); printf(|-请输入你的选择:-|n:”); printf(”-n”); pid_t pid; FILE in; FILE *out; char ch; int len; if(pipe(pipefiles)=0) pid=fork(); if(pid=-1) fprintf(stderr,”Fork failuren); return; if(pid=0)/child。 read(pipefiles0,&ch,1); switch(ch) case 1

15、: while(1) sleep(1); len=sizeof(struct stu_info); char ch1=(char)malloc(sizeof(char)len); read(pipefiles0,ch1,len); if(out=fopen(”c。doc,”r+)=NULL) return; fread(&number,sizeof(unsigned int),1,out); number+; fseek(out,0L,SEEK_SET); fwrite(number,sizeof(unsigned int),1,out); fclose(out); if(out=fopen(

16、c。doc,a))=NULL) return; fwrite(ch1,len,1,out); fclose(out); char f; read(pipefiles0,f,sizeof(char)); if(f!=y&f!=Y) return; break; case 2: sleep(1); len=sizeof(struct stu_info); read(pipefiles0,student,len); in=fopen(c.doc,”r”); fread(&number,sizeof(unsigned int),1,in); memset(stu,0,sizeof(stu)); len

17、=sizeof(struct stu_info); fread(stu,len,number,in); unsigned int j; for(j=0;jnumber;j+) if(strcmp(student。stu_num,stuj。stu_num)=0) strcpy(stuj。name,student.name); stuj.sex=student。sex; strcpy(stuj.mobile_phone,student。mobile_phone); break; fclose(in); if(j=number)printf(”没有这条记录n); else out = fopen(c

18、。doc”,w”); fwrite(number,sizeof(unsigned int),1,out); len=sizeof(struct stu_info); len=lennumber; fwrite(&stu,len,1,out); fclose(out); break; case 3: while(1) sleep(1); char stu_num12; memset(stu_num,0,sizeof(stu_num); read(pipefiles0,stu_num,sizeof(stu_num); in=fopen(”c。doc”,r”); fread(number,sizeo

19、f(unsigned int),1,in); memset(stu,0,sizeof(stu); len=sizeof(struct stu_info); fread(stu,len,number,in); unsigned int i; for(i=0;inumber;i+) if(strcmp(stu_num,stui.stu_num)=0)break; if(i=number) printf(没有这条记录n”); else for(;i: c-手机号: s-n”,i,stui。stu_num,stui。name,stui。sex,stui.mobile_phone); printf(”-

20、n); fclose(in); break; case r: if(out=fopen(”c。doc”,”w”))=NULL) return; number=0; fwrite(&number,sizeof(unsigned int),1,out); break; default : break; else/father。 do ch=getchar(); while(ch=n); write(pipefiles1,ch,1); switch(ch) case 1: printf(n-请输入学生信息-n”); char p=y; while(p=y|p=Y) memset(&student,0

21、,sizeof(student); printf(”学号:); scanf(%s”,student。stu_num); printf(”姓名:); scanf(s”,student.name); printf(”性别0是女,1是男:); do student。sex=getchar(); while(student.sex=n); printf(手机号:”); scanf(”%s”,student.mobile_phone); len=sizeof(struct stu_info); write(pipefiles1,&student,len); sleep(1); printf(”是否继续输入YNn”); fflush(stdin); do p=getchar(); while(p=n); write(pipefiles1,&p,sizeof(char); break; case 2: printf(n-

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

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