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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言课程设计.docx

1、C语言课程设计C语言与程序设计课程设计学生籍贯信息记录簿设计学 院 信息工程系 班 级 物联1301班 学 号 131408119 姓 名 滕玲 一设计目的该软件主要是编辑一个学生籍贯信息记录簿记录每个学生信息,包括:学号、姓名、籍贯。具体功能:1.创建信息链表并以磁盘文件保存;2.读取磁盘文件并显示输出所有学生的籍贯信息;3.按学号或姓名查询其籍贯;4.按籍贯查询并输出该籍贯的所有学生;5.能添加、删除和修改学生的籍贯信息;二总体设计三详细设计1.学生基本信息的录入 这部分的功能主要包括信息的录入,首先按程序提示输入学生的学号,姓名,籍贯等。在录入数据的同时,系统将对信息的合法性进行检验。若

2、用户输入不合法的信息,则被系统要求重新输入;若合法性成立则录入完毕后系统将返回主页面。主页面还有显示学生的全部信息,并且这些信息都会写到你所指定的文本文件中。2.显示学生信息此功能是将原录入的学生信息读出,并在屏幕上显示出来,并且录入到你所指定的文本文件中。3.学生信息读取进入该项功能界面后,用户可以对学生的个人信息进行查看,并且录入到你所指定的文本文件中。4.按学号或姓名查找学生信息此项功能可以根据用户输入的选择查处该学生的所有信息,并且录入到你所指定的文本文件中。5.删除和修改个人信息选择此项功能后,系统将会自动在屏幕上显示按学号录入原来同学的个人信息,输入后进行修改,并且录入到你所指定的

3、文本文件中。6.退出系统,结束任务四调试与测试在Visual C+6.0环境下输入代码并进行调试和正确运行五源程序清单和执行结果#include#include#include#define LEN sizeof(struct Student)struct Studentchar num21; char name256; char address562; struct Student *next;int n; /n为全局变量,本文件模块中各函数均可使用它struct Student *creat() /定义函数。此函数返回一个指向链表头的指针struct Student *head;struc

4、t Student *p1,*p2; n=0; p1=p2=(struct Student *)malloc(LEN); printf(请依次输入学生的信息,输入学号为零时退出。n); printf(请输入学生的学号:n); gets(p1-num); printf(请输入学生的姓名:n); gets(p1-name); printf(请输入学生的地址:n); gets(p1-address); head=NULL; while(p1-num0!=0) /当学号是0时,退出 n=n+1; if(n=1) head=p1; else p2-next=p1; p2=p1;p1=(struct St

5、udent *)malloc(LEN); /开辟动态存储区,把起始地址付给p1 printf(请输入学生的学号:n); gets(p1-num); /输入其他学生的学号和成绩printf(请输入学生的姓名:n); gets(p1-name); printf(请输入学生的地址:n); gets(p1-address); p2-next=NULL; system(cls); return(head);void print_save(struct Student head) FILE *fp; struct Student *p; fp=fopen(D:stduent.txt,ab+); /打开文件

6、 if(fp=NULL) printf(文件无法打开n); exit(0); printf(n现在,有 %d 条记录,分别是:n,n); p=&head; if(&head!=NULL) do printf(n学号:); puts(p-num); printf(n姓名:); puts(p-name); printf(n地址:); puts(p-address); fseek(fp,0,2); if(fwrite(p,sizeof(struct Student),1,fp)!=1) printf(文件无法写入n); p=p-next; while(p!=NULL); fclose(fp); /关

7、闭文件 getchar(); system(cls);struct Student *pt; /定义一个Student类型的指针char comp3; /comp为保存输入的变量int main() /一个调用这个creat函数的main函数 c void ShowView(); /界面显示 void name_surch(); /按姓名查找 void num_surch(); /按学号查找 void NativePlace_surch(); /按籍贯查找 void Delete_shiyan(); /删除学生信息 void modification_shiyan(); /修改学生信息 voi

8、d fileout(struct Student *p); /文件输出 void print_save(struct Student head); while(1) ShowView(); if(strnicmp(comp,1,3)=0) /strnicmp比较两个字符串的函数 pt=creat(); /函数返回链表第一个结点的地址 else if(strnicmp(comp,6,3)=0) print_save(*pt); else if(strnicmp(comp,3,3)=0) /输出文件内容 fileout(pt); else if(strnicmp(comp,2,3)=0) name

9、_surch(); else if(strnicmp(comp,7,3)=0) num_surch(); else if(strnicmp(comp,9,3)=0) /modification(); modification_shiyan(); /修改学生信息 else if(strnicmp(comp,4,3)=0) /Delete(); Delete_shiyan(); else if(strnicmp(comp,5,3)=0) showSzechwan_No(); else if(strnicmp(comp,8,3)=0) NativePlace_surch(); else if(str

10、nicmp(comp,0,3)=0) break; else printf(输入错误!n); getchar(); system(cls); return 0;void fileout(struct Student *p) FILE *fp; printf(现在有%d条记录,分别是:n,n); fp=fopen(D:stduent.txt,rb);/0x00429af0 if(fp=NULL) printf(文件无法打开n); exit(0); rewind(fp); while(!feof(fp) fread(p,sizeof(struct Student),1,fp); /从文件中读取一块

11、数据 printf(%-15s,p-num); printf(%-15s,p-name); printf(%-15s,p-address); puts(n); fclose(fp); getchar(); system(cls);void ShowView() /主菜单printf(*n);printf(*欢迎进入学生籍贯信息记录簿*n); printf(*n); printf(*1、cin添加 *n); printf(*2、namesurch按名字搜索 *n); printf(*3、fileout显示文件中的信息 *n); printf(*4、delete删除学生信息 *n); printf

12、(*5、showSzechwan_No分别显示四川和非四川籍学生并非别存盘 *n); printf(*6、save保存当前信息 *n); printf(*7、numsurch按学号搜索 *n); printf(*8、nativeplace安籍贯查询 *n); printf(*9、modif修改学生信息 *n); printf(*0、break退出 *n); printf(*n); printf(*请输入您的选择¥:); gets(comp); system(cls);/清屏void name_surch() FILE *fp; char surch256; printf(请输入要查询的人的名字

13、:n);gets(surch); fp=fopen(D:stduent.txt,r);/0x00429af0 if(fp=NULL) printf(不能打开文件n); exit(0); rewind(fp);/指向文件的开始 while(!feof(fp)/查找 Student a; while(!feof(fp) fread(&a,sizeof(Student),1,fp);/从p指向的文件读入一组数据 if(!strcmp(a.name,surch) printf(%s,%s,%sn,a.num,a.name,a.address); break; if(!feof(fp) return;

14、else printf(查无此人n); fclose(fp); getchar(); system(cls);void num_surch()FILE *fp; char surch256; printf(请输入要查询的人的学号:); gets(surch); fp=fopen(D:stduent.txt,rb);/0x0042aab8 if(fp=NULL) printf(ERROR); exit(0); rewind(fp);/指向文件的开始 while(!feof(fp)/查找 Student a; while(!feof(fp) fread(&a,sizeof(Student),1,f

15、p);/从p指向的文件读入一组数据 if(!strcmp(a.num,surch) printf(%s,%s,%sn,a.num,a.name,a.address); break; if(!feof(fp) return; else printf(查无此人n); fclose(fp); getchar(); system(cls);void NativePlace_surch()/按籍贯查询 FILE *fp; char surch256; printf(请输入要查询的人的籍贯:n); gets(surch); fp=fopen(D:stduent.txt,rb);/0x00429af0 if

16、(fp=NULL) printf(文件打不开n); exit(0); rewind(fp);/指向文件的开始 Student a; while(!feof(fp) fread(&a,sizeof(struct Student),1,fp);/从p指向的文件读入一组数据 if(!strcmp(a.address,surch)/相当于strcmp(a.address,surch)=0 printf(%s,%s,%sn,a.num,a.name,a.address); if(!feof(fp) return; fclose(fp); getchar(); system(cls);void Delet

17、e_shiyan()/删除学生信息 FILE *fp; FILE *fptemp; char surch256; printf(请输入要删除的人的学号:n); gets(surch); fp=fopen(D:stduent.txt,rb);/0x00429af0 fptemp=fopen(D:temp.txt,wb); if(fp=NULL) printf(文件打不开n); exit(0); Student a; while(!feof(fp) mark: fread(&a,sizeof(struct Student),1,fp);/从p指向的文件读入一组数据fp=0x0042aab8 if(

18、0=strcmp(a.num,surch) char p; printf(%s,%s,%sn,a.num,a.name,a.address); printf(如果以上信息与你要删除的人的信息对应,请输入(y/n):n); scanf(%c,&p); if(Y=p|y=p) goto mark; if(strcmp(a.num,surch)!=0) fwrite(&a,sizeof(struct Student),1,fptemp); fclose(fp); fclose(fptemp); FILE *aa; FILE *bb; aa=fopen(D:stduent.txt,wb); bb=fo

19、pen(D:temp.txt,rb); while(!feof(bb) fread(&a,sizeof(struct Student),1,bb); fwrite(&a,sizeof(struct Student),1,aa); getchar(); system(cls);void modification_shiyan()/修改学生信息 FILE *fp; FILE *fptemp; struct Student a; char surch256; printf(请输入要修改的人的学号:n); gets(surch); fp=fopen(D:stduent.txt,rb);/0x0042a

20、ab8fptemp=fopen(D:temp.txt,wb); if(fp=NULL) printf(文件打不开n); exit(0); rewind(fp);/指向文件的开始 while(!feof(fp) fread(&a,sizeof(struct Student),1,fp);/从p指向的文件读入一组数据fp=0x0042aab8 if(0=strcmp(a.num,surch) char p; printf(%s,%s,%sn,a.num,a.name,a.address); printf(如果以上信息与你要修改的人的信息对应,请输入(y/n):n); scanf(%c,&p); i

21、f(Y=p|y=p) printf(请输入要修改成的信息(学号、姓名、籍贯):n);getchar(); printf(学号:); gets(a.num); printf(姓名:); gets(a.name); printf(地址:); gets(a.address); fwrite(&a,sizeof(struct Student),1,fptemp); fclose(fp); fclose(fptemp); FILE *bb; FILE *pp;bb=fopen(D:stduent.txt,wb);/0x0042aab8 pp=fopen(D:temp.txt,rb); while(!feof(pp) fread(&a,sizeof(struct Student),1,pp); fwrite(&a,sizeof(struct Student),1,bb); getchar(); getchar(); system(cls);

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

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