




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include stdio 。h#include malloc 。h#include string 。h include stdlib.h define null 0 #define len sizeof(struct student )struct student char name 20; long int num; char sex 4;int age; char address30 ;double tele_num;char aihao20; struct student next; ;/定义一个结构题int total_num = 0;/学生总数struct student *he
2、ad = null; void welcome (); /欢迎界面void mainmenu (); /主界面void record (); /记录数据void insert ( struct student *stu) ; /插入数据void display (struct student *stu); /显示一个学生的信息void displayall (); / 显示所有学生的信息void query_by_num (); /按学号查询学生信息void readdata (); / 读取文件里学生的信息void writedata (); /向文件写入学生信息void freeall (
3、) ; /清空链表内容void del () ; /删除学生信息void change (); /更改学生信息void devise (struct student *p); /选择更改内容int main (void) welcome () ;/显示主菜单mainmenu ( ); return 0 ; /显示欢迎信息void welcome ()printf (+- - - - -+n); printf (|n” ); printf (” 欢迎使用网络工程学院信息安全092班学生信息管理系统|n ” ); printf (| |n); printf (+- - - - -n” ); /系统
4、主菜单void mainmenu () int choice; choice = -1; readdata () ; printf (n 温馨提示:为保证您的操作得到保存,请按正常顺序退出系统_n ) ;do printf ( ” nnn ” ); printf ( ” ttt- - - - - -n) ;printf (” ttt+ 信息安全 092 班学生信息管理系统|n) ;printf (” ttt- - - - - - n” ) ;printf (ttt+ 1- 录入学生信息n) ;printf (ttt+ 2- 浏览学生信息n ) ;printf (” ttt+ 3 查询学生信息|
5、n); printf (ttt+ 4 -删除学生信息 n” ); printf (” ttt+ 5- 修改学生信息n);printf ( ” ttt+ 0- 退出系统n); printf (ttt+* * * * * * * *n); printf (” ttt - - - - - -n” ); printf (” 请输入您的选择:) ;scanf ( ” %d , choice); switch (choice ) case 0: writedata () ;freeall () ; exit (0); case 1: record () ; break; case 2 :displayal
6、l (); break ;case 3: query_by_num (); break; case 4 :del ( ) ;break ;case 5 :change () ; break; default :printf (” n 无效选项 !” ); break; while (choice != 0); /录入学生信息void record ()struct student *p0;p0 = (struct student *) malloc(len ) ;printf (” 请输入学生的姓名:” ) ; scanf (%s,p0 name ) ;printf (” 请输入学生的学号:”
7、 ) ; scanf ( ” %ld” , p0num) ;printf ( ” 请输入学生的性别:) ;scanf (%s,p0-sex ); printf (” 请输入学生的年龄:); scanf ( ” d” ,p0-age) ;printf (” 请输入学生的地址:) ; scanf ( ” s,p0- address) ;printf (” 请输入学生的电话:); scanf ( lf” ,&p0-tele_num); printf (” 请输入学生的爱好:” );scanf ( s,p0- aihao) ;insert (p0);printf ( ” 该学生的信息为:n”
8、);printf (- - - - - - - - - - - -n); printf (姓名 t 学号 tt 年龄 t 性别 t 地址 tt 电话 tt 爱好 n” ); 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 ((p0num p1num) (p1-next != null) p2 = p1; p1 = p1 next; if (p0
9、num num) if (head = p1) head = p0 ;else p2next = p0 ;p0next = p1 ; else p1 next = p0 ;p0 next = null; total_num+; void display (struct student *p) printf (” st%ldt dt%st stt%.0ft%sn ” , pname, p num, p age , p- sex ,p-address, p tele_num , p-aihao); /浏览学生信息void displayall ()struct student *p;printf
10、( 学生总数: dn” , total_num ) ; p = head ;if (head != null) printf(n 姓名 t 学号 tt 年龄 t 性别 t 地址 tt 电话 tt 爱好 n” );printf(- - - - - - - - - - - - -n);do display (p); p = p next ; while(p != null); printf (n) ; /按学号查询学生信息void query_by_num () int num ;struct student p1;printf ( ” 请输入学生的学号:); scanf( ld, &nu
11、m); if(head=null)printf (无学生记录! n) ;return ;p1 = head ;while (num!=p1-num p1 next !=null )p1 = p1- next ;if (num = p1-num) printf ( ” 姓名 t 学号 tt 年龄 t 性别 t 地址 tt 电话 tt 爱好 n” ); printf (- - - - - - - - - - - n) ;display (p1 ); else printf ( ” 没有该学生记录,请核对! ” ); /写入文件void writedata ()file fp;/文件指针struct
12、 student p; fp = fopen(1.txt” , ” w);if (!fp) printf (” 文件打开错误 !); return ; fprintf (fp,dn, total_num ); for(p = head ; p!= null; p= pnext) fprintf(fp,” st%ldt%st%dtst%.0ft%sn ” , pname, p- num , psex, p-age, p address , p-tele_num , p-aihao ); fclose (fp); void freeall () struct student *p1, *p2; p
13、1 = p2=head; while ( p1) p2=p1-next ;free (p1) ;p1 = p2 ; /读取文件void readdata () file fp;/文件指针struct student p1, *p2 ;fp = fopen (1。txt, r ” ); if (!fp) printf (” 文件打开错误!); return ;fscanf (fp,” %dn, &total_num);head = p1 = p2 = (struct student *)malloc(len ); fscanf (fp,%st%ldt stdt%st%lft sn” ,
14、p1 name , p1-num, p1- sex ,&p1 age, p1 address, &p1- tele_num , p1 aihao) ;while( !feof (fp))p1 = (struct student ) malloc(len ); fscanf(fp,%st%ldt st dt st lft%sn ” ,p1name, &p1- num, p1 sex, &p1- age, p1-address, p1tele_num, p1-aihao ); p2- next = p1 ;p2 = p1 ; p2- next = null ;fcl
15、ose(fp); /删除学生信息void del ()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) if(p1 = head )head = p1 next; else p2 nex
16、t = p1 next ;free(p1 ); total_num -; else printf ( 没有该学生记录,请核对!n” ); /修改学生信息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 & p1next != null )p2 = p1 ;p1 = p1 next ;
17、if( num = p1- num)devise (p1); else printf( 没有该学生记录,请核对!n) ;void devise (struct student p)int choice ;choice = -1 ;do printf ( ” 请选择您要修改的学生的信息内容:n” );printf( ” +- - - -+n” ) ;printf( ” | 姓名请按1 |n ) ;printf ( | 学号请按2 |n) ;printf( 性别请按 3 |n ) ;printf (” | 年龄请按4 |n ” );printf ( 地址请按5 |n); printf( 电话请按
18、6 n” ); printf( 爱好请按7 n);printf (| 取消请按0 |n ); printf ( ” + - - -+n) ;printf ( ” 请输入您的选择:); scanf (d” , choice) ;switch (choice )case 0: return; case 1: printf (请输入新姓名:); scanf( ” s” , pname ) ; break ;case 2 :printf( 请输入新学号:” ) ;scanf( ” %d, pnum) ;break ;case 3 :printf (” 请输入新性别:” ) ;scanf ( ” %s, p sex ) ;break ;case 4: print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校网络安全主题教育
- 中学女生健康教育讲座
- 2025年安全员C证考试题库及答案
- 出纳年终总结范文
- 2025年式样的租赁合同-个人住宅租赁协议
- 家政公司加盟合同范本
- 2025年工厂设备租赁合同范文
- 墙面宣传广告合同
- 工程建设房屋拆迁安置合同书
- 2025房产中介的房屋租赁合同
- 离婚协议民政局贵州安顺(2025年版)
- 高校讲师个人学术发展计划
- 2025届四川省成都市高三二诊生物试题(原卷版+解析版)
- 睾丸切除术课件
- 2025 年陕西省初中学业水平考试仿真摸底卷英语试卷(含解析无听力部分)
- 2025年度粤医云、国培卫健全科医学临床医学2月题目及答案
- 大学生舞蹈创新创业计划书
- 人教版六年级下学期数学第四单元《比例》典型题型专项练习(含答案)
- 河南省驻马店市2024-2025学年高一上学期1月期末英语试题【含答案解析】
- 发票红冲申请书
- 大数据技术在医疗健康领域的应用方案设计
评论
0/150
提交评论