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

下载本文档

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

文档简介

1、流程图: *C:Uwn和、UiftD 刖 l(tcpDrwNDdMgEbu9Ew通信工桎&业学牛信您住陀系绒I或入夕生仿11 沏?a学仝仏1 住呦字牛信 一一刨险牛主伫 悔谀仔生们gft牛9 “紅请按1腐喘V严2 CUwnb1n名京号nw AM虫*“张三!12 irotfrs56.000000 * *CUunVJMJlftXD聖ktopDruAbugztw we*宙入蛍的适抒3Tml 学学牛牛今 人?aifil総改厚出 就測ffVJHHiu年龄 ttw 地址56. OQOOOO * C UwnVHllftDe$lctpDHnDcbu9Dcwcnce, X 入 0C#4 ; . 小1 .几丨Vi

2、ta 2H価谥检0 1诸输入爲的曲入的1号14i学号性81Ait说1媒三11295律見报忡臭56.000000血学W!ft 1请後入您的AH2诂娥入学的外名歩河乍号年龄ttW地址成Mtw5664、会扑扮畔晌少0愉80 000000按牛耳肖wwTi按Ift名f“(谄按2耽力t 0 13请奪人SfcG材il的挙 谓送卄您羁惱曲lb诽M. Z诵橫IIth汕村5,:.出为C4t.fi诂民:-5:汁 诂坚入刃伴弭 讥1丄胖.:,!;负门的戈;闹拓 ; Q 劃阳丁左仁# nrt7i.ni! 址出* n程序源码:#in elude #in elude #in elude #in elude #in elud

3、e#define LENsizeof(structstudent)求字节数运算符struet stude ntehar name20;long int num;ehar sex4;int age;ehar address30;float seore;struetstudent *next;/链表;/定义一个结构题int TOTAL_NUM 0;/ 学生总数struet student *head = NULL;void mainmenu ();/ 主界面void reeord (); / 记录数据void insert(struet student *stu); / 插入数据void disp

4、lay(struet student *stu); / 显示一个学生的信息void displayAll (); /显示所有学生的信息void query(); /查询学生信息void query_by_num(); /按学号查询学生信息void query_by_name();void readData (); /读取文件里学生的信息void writeData (); / 向文件写入学生信息void freeAll (); / 清空链表内容void del (); / 删除学生信息void change (); / 更改学生信息void sort();/ 排序void devise (st

5、ruct student *p); / 选择更改内容int main (void) mainmenu(); return 0;/ 系统主菜单void mainmenu ()int choice;choice = -1;readData ();printf (tttn);|n);才可正常运行 n);printf (ttt| 欢迎使用通信工程专业学生信息管理系统printf (tttn);printf (ttt本程序需要在当前目录下建立 student.txtdoprintf(nnn);printf(tttn);printf(ttt通信工程专业学生信息管理系统printf(tttn);printf

6、(ttt1- 录入学生信息|n);printf(ttt2- 浏览学生信息|n);printf(ttt3- 查询学生信息|n);printf(ttt4- 删除学生信息|n);printf(ttt5- 修改学生信息|n);printf(ttt6- 排序 |n);printf(ttt0- 退出系统 |n);printf(tttn);printf( 请输入您的选择 );|n);scanf (%d, &choice);switch (choice)case 0:writeData ();freeAll (); exit (0);case 1:record ();break;case 2:displayA

7、ll ();break;case 3:query ();break;case 4:del ();break;case 5:change ();break;case 6:sort ();break;default:printf (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,

8、&p0-num);printf(ttt请输入学生的性别 :);scanf (%s,p0-sex);printf(ttt请输入学生的年龄 :);scanf (%d,&p0-age);printf(ttt请输入学生的地址 :);scanf (%s,p0-address);printf(ttt请输入学生的成绩 :);scanf (%f,&p0-score);insert (p0);printf (ttt 该学生的信息为 :n);printf (ttt成绩 n);n);printf (ttt 姓名t学号tt 年龄t性别t地址tt display (p0);void insert (struct stu

9、dent *stu)struct student *p0, *p1, *p2;p1 = head;p0 = stu;if (head = NULL)head = p0;p0-next = NULL;elsewhile (p0-num p1-num)&(p1-next != NULL)p2 = p1;p1 = p1-next;if (p0-num num)if (head = p1)head = p0;elsep2-next = p0; p0-next = p1;elsep1-next = p0;p0-next = NULL;TOTAL_NUM+;void display (struct stu

10、dent *p)p-sex,p-addprintf (ttt%st%ldtt%dt%st%stt%fn, p-name, p-num, p-age, ress, p-score);/ 浏览学生信息void displayAll()struct student *p;printf(ttt 学生总数 :%dn, TOTAL_NUM);p = head;if (head != NULL)printf(ttt姓名t学号tt 年龄t性别t地址tt 成绩n);printf(tttn);dodisplay(p); p = p-next;while(p != NULL);printf (n);void que

11、ry()int choice;choice = -1;doprin tf(n);printf(”n);prin tf(|按学号查询请按1|n);printf(|按姓名查询请按2|n);printf(|取消请按0|n);printf(+n);printf(请输入您的选择);scan f(%d,& choice);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);/按姓名查询学生信

12、息void query_by_name()char name20;struct student *p1;prin tf(请输入学生的姓名);sca nf(%s,n ame);if(head=NULL)pri ntf( 无学生记录 n);return;p仁head;while(strcmp(name,p1-name) &p1-next!=NULL)p1=p1- n ext;if(!strcmp (n ame,p1- n ame)成绩n);printf(ttt姓名t学号tt 年龄t性别t地址ttprintf(tttn);display(pl);elseprintf(没有该学生记录请核对 :/按学号

13、查询学生信息void query_by_num ()int num;struct student *p1;printf(请输入学生的学号);scan f(%ld,&n um);if(head=NULL)printf( 无学生记录n);return;p1 = head;while (num!=p1-num &p1-next!=NULL)p1 = p1- n ext;if (num =p1-num)成绩n);printf (ttt 姓名t学号tt 年龄t性别t地址ttprintf(tttn);display (p1);elseprintf (ttt没有该学生记录请核对);/写入文件void wri

14、teData ()FILE* fp;/文件指针struct student *p;fp = fope n(1.txt,w);if (!fp)printf(文件打开错误:return;fprin tf(fp,%dn,TOTAL_NUM);for(p = 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;wh

15、ile(p1)p2=p1-next;free (p1);p1 = p2;/ 读取文件void readData ()FILE* fp;/ 文件指针struct student *p1, *p2;fp = fopen(student.txt, r);if (!fp)printf( 文件打开错误 );return;fscanf(fp,%dn, &TOTAL_NUM);head = p1 = p2 = (struct student *)malloc(LEN);fscanf(fp,%st%ldt%st%dt%st%fn, p1-name, &p1-num, p1-sex,&p1-age, p1add

16、ress, &p1-score);while(!feof(fp)p1 = (struct student *)malloc(LEN);fscanf(fp,%st%ldt%st%dt%st%fn, p1-name, &p1-num, p1-sex, &p1-age, p1address, &p1-score);p2-next = p1;p2 = p1;p2-next = NULL;fclose(fp);/ 删除学生信息void del ()struct student *p1, *p2;long int num;if (head = NULL)printf(”无学生记录n);return;pri

17、n tf(请输入您要删除的学生的学号);sca nf(%ld,&n um);p1 = head;while (num != p1-num &p1-next != NULL)p2 = p1;p1 = p1- n ext;if(num =p1- num)if(p1 = head)head = p1- n ext;elsep2-next = p1- n ext;free(p1);TOTAL_NUM-;elseprintf(”没有该学生记录请核对n);void sort() /排序模块。将学生记录按学号从小到大排列。用起泡排序算法实现int i;struct student *ptr,*s=head,

18、*p;int count=0,count1;while(s)/统计链表结点个数coun t+;s=s-n ext;for( i=1;inext&(count1-)if(ptr-scoreptr-next-score)s=ptr-next; ptr-next=s-next;if(p=NULL) /ptr 处于队头时 head=s;elsep-next=s; s-next=ptr; p=s;elseptr=ptr-next;if(p=NULL) /ptr 处于队头时 p=head;else p=p-next;displayAll (); return;void change ()struct student *p1, *p2;long int num;if (head = NULL)printf ( 无学生记录 n);return;printf ( 请输入您要修改的学生的学号 ); scanf (%ld, &num);p1 = head;while (num != p1-num & p1-next != NULL) p2 = p1;p1 = p1-next;if(num = p1-num)devise (p1);elseprintf( 没有该学生记录请核对 n); void devise (struct stude

温馨提示

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

评论

0/150

提交评论