C语言之学生管理系统(20210312212824)_第1页
C语言之学生管理系统(20210312212824)_第2页
C语言之学生管理系统(20210312212824)_第3页
C语言之学生管理系统(20210312212824)_第4页
C语言之学生管理系统(20210312212824)_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、流程图: *C:Uwn和、UiftD 刖 l(tcpDrwNDdMgEbu9Ew 通信工桎 . 小1 .几丨 Vita 2 H価谥检0 1 诸输入爲的 曲入的1号1 4i 学号 性81 Ait 说1 媒三 1 12 95 律見报忡臭 56.000000 血学W!ft 1 请後入您的AH2 诂娥入学的外名歩河 乍号 年龄 ttW 地址 成M tw 56 6 4、会扑扮畔晌少0愉80 000000 按牛耳肖wwTi 按Ift名f“(谄按2 耽力t 0 1 3 请奪人SfcG材il的挙 谓送卄您羁惱曲lb诽 M. Z诵橫I Ith汕村5 ,:.出为C 4t.fi诂民 :-5:汁 诂坚入刃伴弭 讥1丄

2、胖.:,!;负门的戈; 闹拓 ; Q 劃阳丁左仁# nrt7i.ni! 址出* n 程序源码: #in elude #in elude #in elude #in elude #in elude #define LENsizeof(structstudent)求字节数运算符 struet stude nt ehar name20; long int num; ehar sex4; int age; ehar address30; float seore; struetstudent *next;/链表 ;/定义一个结构题 int TOTAL_NUM 0;/ 学生总数 struet studen

3、t *head = NULL; void mainmenu ();/ 主界面 void reeord (); / 记录数据 void insert(struet student *stu); / 插入数据 void display(struet student *stu); / 显示一个学生的信息 void displayAll (); /显示所有学生的信息 void query(); /查询学生信息 void query_by_num(); /按学号查询学生信息 void query_by_name(); void readData (); /读取文件里学生的信息 void writeDat

4、a (); / 向文件写入学生信息 void freeAll (); / 清空链表内容 void del (); / 删除学生信息 void change (); / 更改学生信息 void sort();/ 排序 void devise (struct student *p); / 选择更改内容 int main (void) mainmenu(); return 0; / 系统主菜单 void mainmenu () int choice; choice = -1; readData (); printf (tttn); |n); 才可正常运行 n); printf (ttt| 欢迎使用通

5、信工程专业学生信息管理系统 printf (tttn); printf (ttt本程序需要在当前目录下建立 student.txt do printf (nnn); printf (ttt n); printf (ttt 通信工程专业学生信息管理系统 printf (ttt n); printf (ttt1- - 录入学生信息 |n); printf (ttt2- - 浏览学生信息 |n); printf (ttt3- - 查询学生信息 |n); printf (ttt4- - 删除学生信息 |n); printf (ttt5- - 修改学生信息 |n); printf (ttt6- - 排序

6、 |n); printf (ttt0- - 退出系统 |n); printf (ttt n); printf ( 请输入您的选择 ); |n); scanf (%d, switch (choice) case 0:writeData ();freeAll (); exit (0); case 1:record ();break; case 2:displayAll ();break; case 3:query ();break; case 4:del ();break; case 5:change ();break; case 6:sort ();break; default:printf (

7、n 无效选项 !);break; while (choice != 0); / 录入学生信息 void record () struct student *p0; p0 = (struct student *)malloc(LEN); printf(ttt请输入学生的姓名 :); scanf (%s,p0-name); printf(ttt请输入学生的学号 :); scanf (%ld, printf(ttt请输入学生的性别 :); scanf (%s,p0-sex); printf(ttt请输入学生的年龄 :); scanf (%d, printf(ttt请输入学生的地址 :); scanf

8、 (%s,p0-address); printf(ttt请输入学生的成绩 :); scanf (%f, insert (p0); printf (ttt 该学生的信息为 :n); printf (ttt 成绩 n); n); printf (ttt 姓名t学号tt 年龄t性别t地址tt display (p0); void insert (struct student *stu) struct student *p0, *p1, *p2; p1 = head; p0 = stu; if (head = NULL) head = p0; p0-next = NULL; else while (p

9、0-num p1-num)p1 = p1-next; if (p0-num num) if (head = p1) head = p0; else p2-next = p0; p0-next = p1; else p1-next = p0; p0-next = NULL; TOTAL_NUM+; void display (struct student *p) p-sex,p-add printf (ttt%st%ldtt%dt%st%stt%fn, p-name, p-num, p-age, ress, p-score); / 浏览学生信息 void displayAll() struct

10、student *p; printf(ttt 学生总数 :%dn, TOTAL_NUM); p = head; if (head != NULL) printf(ttt姓名t学号tt 年龄t性别t地址tt 成绩n); printf(ttt n); do display(p); p = p-next; while(p != NULL); printf (n); void query() int choice; choice = -1; do prin tf(n); printf(”n); prin tf(|按学号查询请按1|n); printf(|按姓名查询请按2|n); printf(|取消请

11、按0|n); printf(+n); printf(请输入您的选择); scan f(%d, switch(choice) case 0:return; case 1:query_by_ nu m();break; case 2:query_by_name();break; default:printf(n无效选项!);break; while(choice != 0); /按姓名查询学生信息 void query_by_name() char name20; struct student *p1; prin tf(请输入学生的姓名); sca nf(%s,n ame); if(head=NU

12、LL) pri ntf( 无学生记录 n); return; p仁head; while(strcmp(name,p1-name) if(!strcmp (n ame,p1- n ame) 成绩n); printf(ttt姓名t学号tt 年龄t性别t地址tt printf(ttt n); display(pl); else printf(没有该学生记录请核对 : /按学号查询学生信息 void query_by_num () int num; struct student *p1; printf(请输入学生的学号); scan f(%ld, if(head=NULL) printf( 无学生记

13、录n); return; p1 = head; while (num!=p1-num if (num =p1-num) 成绩n); printf (ttt 姓名t学号tt 年龄t性别t地址tt printf(ttt n); display (p1); else printf (ttt没有该学生记录请核对); /写入文件 void writeData () FILE* fp;/文件指针 struct student *p; fp = fope n(1.txt,w); if (!fp) printf(文件打开错误: return; fprin tf(fp,%dn,TOTAL_NUM); for(p

14、 = head; p!= NULL; p= p-next) fprintf(fp,%st%ldt%st%dt%st%fn, p-name, p-num, p-sex, p-age, p-address , p- score); fclose (fp); void freeAll () struct student *p1, *p2; p1 = p2=head; while(p1) p2=p1-next; free (p1); p1 = p2; / 读取文件 void readData () FILE* fp;/ 文件指针 struct student *p1, *p2; fp = fopen(

15、student.txt, r); if (!fp) printf( 文件打开错误 ); return; fscanf(fp,%dn, head = p1 = p2 = (struct student *)malloc(LEN); fscanf(fp,%st%ldt%st%dt%st%fn, p1-name, while(!feof(fp) p1 = (struct student *)malloc(LEN); fscanf(fp,%st%ldt%st%dt%st%fn, p1-name, p2-next = p1; p2 = p1; p2-next = NULL; fclose(fp); /

16、删除学生信息 void del () struct student *p1, *p2; long int num; if (head = NULL) printf(”无学生记录n); return; prin tf(请输入您要删除的学生的学号); sca nf(%ld, p1 = head; while (num != p1-num p1 = p1- n ext; if(num =p1- num) if(p1 = head) head = p1- n ext; else p2-next = p1- n ext; free(p1); TOTAL_NUM-; else printf(”没有该学生记

17、录请核对n); void sort() /排序模块。将学生记录按学号从小到大排列。用起泡排序算法实现 int i; struct student *ptr,*s=head,*p; int count=0,count1; while(s)/统计链表结点个数 coun t+; s=s-n ext; for( i=1;inext ptr-next=s-next; if(p=NULL) /ptr 处于队头时 head=s; else p-next=s; s-next=ptr; p=s; else ptr=ptr-next; if(p=NULL) /ptr 处于队头时 p=head; else p=p-

18、next; displayAll (); return; void change () struct student *p1, *p2; long int num; if (head = NULL) printf ( 无学生记录 n); return; printf ( 请输入您要修改的学生的学号 ); scanf (%ld, p1 = head; while (num != p1-num p1 = p1-next; if(num = p1-num) devise (p1); else printf( 没有该学生记录请核对 n); void devise (struct student *p) int choice; choic

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论