版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上#include <stdio.h>#include <>#include <>#include <io.h>#define NULL 0#define LEN sizeof(struct student)#define FILE_DATA_PATH "c:student.txt" struct student long int num; char name20; int age; char sex4; char birthday10; char address30; long int tele_nu
2、m; char E_mail20; struct student *next;int TOTAL_NUM = 0;struct student *head = NULL;void welcome();void ();void record();void insert(struct student *stu);void display(struct student *stu);void displayAll();void query();void query_by_num();void query_by_name();void readData();void writeData();void f
3、reeAll();void del();void change();void (struct student *p);int main() char userName9; char userPWD7; int i; welcome(); for(i = 0; i < 3; i+) printf("n管理员初始用户名和密码均为adminn"); printf("请输入您的用户名:"); scanf("%s", userName); printf("n请输入您的密码:"); scanf("%s"
4、;, userPWD); if (userName,"admin")=0) && (userPWD,"admin")=0) /用户名和密码正确,显示主菜单 (); break; else if (i < 2) /用户名或密码错误,提示用户重新输入 printf("用户名或密码错误,请重新输入!"); else /连续3次输错用户名或密码,退出系统。 printf("您已连续3次将用户名或密码输错,系统将退出!"); return 0;/显示欢迎信息void welcome() printf(&
5、quot;+-+n"); printf("| |n"); printf("| 欢迎使用 |n"); printf("| |n"); printf("+-+n");/系统主菜单void () int choice; choice = -1; readData(); printf("n温馨提示:为保证您的操作得到保存,请按正常顺序退出系统_n"); do printf("nnn"); printf("ttt-n"); printf("ttt
6、+ |n"); printf("ttt-n"); printf("ttt+ 1-录入学生信息 |n"); printf("ttt+ 2-浏览学生信息 |n"); printf("ttt+ 3-查询学生信息 |n"); printf("ttt+ 4-删除学生信息 |n"); printf("ttt+ 5-修改学生信息 |n"); printf("ttt+ 0-退出系统 |n"); printf("ttt+*·*·*
7、183;*·*·*·*·*·*·*·|n"); printf("ttt-n"); printf("请输入您的选择:"); scanf("%d", &choice); (choice) case 0: writeData(); freeAll(); exit(0); case 1: record(); break; case 2: displayAll(); break; case 3: query(); break; case 4: del();
8、break; case 5: change(); break; default: printf("n无效选项!"); break; while(choice != 0);/录入学生信息void record() struct student *p0; p0 = (struct student *)(LEN); printf("请输入学生的:"); scanf("%ld",&p0->num); printf("请输入学生的姓名:"); scanf("%s",p0->name);
9、 printf("请输入学生的年龄:"); scanf("%d",&p0->age); printf("请输入学生的性别:"); scanf("%s",p0->sex); printf("请输入学生的出生年月:"); scanf("%s",p0->birthday); printf("请输入学生的地址:"); scanf("%s",p0->address); printf("请输入学生的电话:&
10、quot;); scanf("%ld",&p0->tele_num); printf("请输入学生的E-mail:"); scanf("%s",p0->E_mail); insert(p0); printf("该学生的信息为:n"); printf("-"); printf("t姓名t年龄t性别t出生年月tt地址t电话tE-mailn"); display(p0);void insert(struct student *stu) struct studen
11、t *p0, *p1, *p2; p1 = head; p0 = stu; if(head = NULL) head = p0; p0->next = NULL; else while(p0->num > p1->num)&&(p1->next != NULL) p2 = p1; p1 = p1->next; if(p0->num <= p1->num) if(head = p1) head = p0; else p2->next = p0; p0->next = p1; else p1->next = p
12、0; p0->next = NULL; TOTAL_NUM+;void display(struct student *p) printf("%ldt%st%dt%st%st%st%ldt%sn", p->num, p->name, p->age, p->sex, p->birthday, p->address, p->tele_num, p->E_mail);/浏览学生信息void displayAll() struct student *p; printf("学生总数:%dn", TOTAL_NU
13、M); p = head; if(head != NULL) printf("nt姓名t年龄t性别t出生年月t地址t电话tE-mailn"); printf("-"); do display(p); p = p->next; while(p != NULL); printf("n");/查询学生信息void query() int choice; choice = -1; do printf("n"); printf("+-+n"); printf("| 按学号查询 请按 1 |
14、n"); printf("| 按姓名查询 请按 2 |n"); printf("| 取消 请按 0 |n"); printf("+-+n"); printf("请输入您的选择:"); scanf("%d", &choice); (choice) case 0: return; case 1: query_by_num(); break; case 2: query_by_name(); break; default: printf("n无效选项!"); br
15、eak; while(choice != 0);/按学号查询学生信息void query_by_num() int num; struct student *p1; printf("请输入学生的学号:"); scanf("%ld", &num); if(head=NULL) printf("无学生记录!n"); return; p1=head; while(num!=p1->num && p1->next!=NULL) p1=p1->next; if(num = p1->num) pri
16、ntf("n学号t姓名t年龄t性别t出生年月t地址t电话tE-mailn"); printf("-"); display(p1); else printf("没有该学生记录,请核对!");/按姓名查询学生信息void query_by_name() char name20; struct student *p1; printf("请输入学生的姓名:"); scanf("%s", name); if(head=NULL) printf("无学生记录!n"); return; p
17、1=head; while(name, p1->name) && p1->next!=NULL) p1=p1->next; if(!strcmp(name, p1->name) printf("n学号t姓名t年龄t性别t出生年月t地址t电话tE-mailn"); printf("-"); display(p1); else printf("没有该学生记录,请核对!");/写入文件void writeData() FILE* fp;/ struct student *p; fp = (FILE_D
18、ATA_PATH, "w"); if (!fp) printf("文件打开错误!"); return; (fp,"%dn", TOTAL_NUM); for(p = head; p!= NULL; p= p->next) (fp,"%ldt%st%dt%st%st%st%ldt%sn", p->num, p->name, p->age, p->sex, p->birthday, p->address, p->tele_num, p->E_mail); (fp);
19、 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 = (FILE_DATA_PATH, "r"); if (!fp) printf("文件打开错误!"); return 0; (fp,"%dn", &TOTAL_NUM); head = p1 = p2 = (struc
20、t student *)(LEN); (fp,"%ldt%st%dt%st%st%st%ldt%sn", &p1->num, p1->name, &p1->age, p1->sex, p1->birthday, p1->address, &p1->tele_num, p1->E_mail); while(!feof(fp) p1 = (struct student *)(LEN); (fp,"%ldt%st%dt%st%st%st%ldt%sn", &p1->num,
21、p1->name, &p1->age, p1->sex, p1->birthday, p1->address, &p1->tele_num, p1->E_mail); p2->next = p1; p2 = p1; p2->next = NULL; (fp);/删除学生信息void del() struct student *p1, *p2; long int num; if(head = NULL) printf("无学生记录!n"); return; printf("请输入您要删除的学生的学
22、号:"); 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->next = p1->next; free(p1); TOTAL_NUM-; else printf("没有该学生记录,请核对!n");/修改学生信息void c
23、hange() 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) (p1); else prin
24、tf("没有该学生记录,请核对!n");void (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("|
25、 地址 请按 5 |n"); printf("| 电话 请按 6 |n"); printf("| E-mail 请按 7 |n"); printf("| 取消 请按 0 |n"); printf("+-+n"); printf("请输入您的选择:"); scanf("%d", &choice); (choice) case 0: return; case 1: printf("请输入新姓名:"); scanf("%s"
26、, p->name); break; case 2: printf("请输入新年龄:"); scanf("%d", &p->age); break; case 3: printf("请输入新性别:"); scanf("%s", p->sex); break; case 4: printf("请输入新出生年月:"); scanf("%s", p->birthday); break; case 5: printf("请输入址:"
27、); scanf("%s", p->address); break; case 6: printf("请输入新电话:"); scanf("%ld", &p->tele_num); break; case 7: printf("请输入新E-mail:"); scanf("%s", p->E_mail); break; default: #include <stdio.h>#include <malloc.h>#include <string.
28、h>#include <stdlib.h>#include <io.h>#define NULL 0#define LEN sizeof(struct student)#define FILE_DATA_PATH "c:student.txt" struct student long int num; char name20; int age; char sex4; char birthday10; char address30; long int tele_num; char E_mail20; struct student *next;in
29、t TOTAL_NUM = 0;struct student *head = NULL;void welcome();void mainmenu();void record();void insert(struct student *stu);void display(struct student *stu);void displayAll();void query();void query_by_num();void query_by_name();void readData();void writeData();void freeAll();void del();void change()
30、;void devise(struct student *p);int main() char userName9; char userPWD7; int i; welcome(); for(i = 0; i < 3; i+) printf("n管理员初始用户名和密码均为adminn"); printf("请输入您的用户名:"); scanf("%s", userName); printf("n请输入您的密码:"); scanf("%s", userPWD); if (strcmp(use
31、rName,"admin")=0) && (strcmp(userPWD,"admin")=0) /用户名和密码正确,显示主菜单 mainmenu(); break; else if (i < 2) /用户名或密码错误,提示用户重新输入 printf("用户名或密码错误,请重新输入!"); else /连续3次输错用户名或密码,退出系统。 printf("您已连续3次将用户名或密码输错,系统将退出!"); return 0;/显示欢迎信息void welcome() printf("
32、+-+n"); printf("| |n"); printf("| 欢迎使用学生信息管理系统 |n"); printf("| |n"); printf("+-+n");/系统主菜单void mainmenu() int choice; choice = -1; readData(); printf("n温馨提示:为保证您的操作得到保存,请按正常顺序退出系统_n"); do printf("nnn"); printf("ttt-n"); print
33、f("ttt+ 学生信息管理系统 |n"); printf("ttt-n"); printf("ttt+ 1-录入学生信息 |n"); printf("ttt+ 2-浏览学生信息 |n"); printf("ttt+ 3-查询学生信息 |n"); printf("ttt+ 4-删除学生信息 |n"); printf("ttt+ 5-修改学生信息 |n"); printf("ttt+ 0-退出系统 |n"); printf("t
34、tt+*·*·*·*·*·*·*·*·*·*·|n"); printf("ttt-n"); printf("请输入您的选择:"); scanf("%d", &choice); switch(choice) case 0: writeData(); freeAll(); exit(0); case 1: record(); break; case 2: displayAll(); break; case 3: query
35、(); 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("%ld",&p0->num); printf("请输入学生的姓名:");
36、scanf("%s",p0->name); printf("请输入学生的年龄:"); scanf("%d",&p0->age); printf("请输入学生的性别:"); scanf("%s",p0->sex); printf("请输入学生的出生年月:"); scanf("%s",p0->birthday); printf("请输入学生的地址:"); scanf("%s",p0->
37、;address); printf("请输入学生的电话:"); scanf("%ld",&p0->tele_num); printf("请输入学生的E-mail:"); scanf("%s",p0->E_mail); insert(p0); printf("该学生的信息为:n"); printf("-"); printf("学号t姓名t年龄t性别t出生年月tt地址t电话tE-mailn"); display(p0);void inser
38、t(struct student *stu) struct student *p0, *p1, *p2; p1 = head; p0 = stu; if(head = NULL) head = p0; p0->next = NULL; else while(p0->num > p1->num)&&(p1->next != NULL) p2 = p1; p1 = p1->next; if(p0->num <= p1->num) if(head = p1) head = p0; else p2->next = p0; p0
39、->next = p1; else p1->next = p0; p0->next = NULL; TOTAL_NUM+;void display(struct student *p) printf("%ldt%st%dt%st%st%st%ldt%sn", p->num, p->name, p->age, p->sex, p->birthday, p->address, p->tele_num, p->E_mail);/浏览学生信息void displayAll() struct student *p; p
40、rintf("学生总数:%dn", TOTAL_NUM); p = head; if(head != NULL) printf("n学号t姓名t年龄t性别t出生年月t地址t电话tE-mailn"); printf("-"); do display(p); p = p->next; while(p != NULL); printf("n");/查询学生信息void query() int choice; choice = -1; do printf("n"); printf("+-
41、+n"); printf("| 按学号查询 请按 1 |n"); printf("| 按姓名查询 请按 2 |n"); printf("| 取消 请按 0 |n"); printf("+-+n"); printf("请输入您的选择:"); scanf("%d", &choice); switch(choice) case 0: return; case 1: query_by_num(); break; case 2: query_by_name(); br
42、eak; default: printf("n无效选项!"); break; while(choice != 0);/按学号查询学生信息void query_by_num() int num; struct student *p1; printf("请输入学生的学号:"); scanf("%ld", &num); if(head=NULL) printf("无学生记录!n"); return; p1=head; while(num!=p1->num && p1->next!=NU
43、LL) p1=p1->next; if(num = p1->num) printf("n学号t姓名t年龄t性别t出生年月t地址t电话tE-mailn"); printf("-"); display(p1); else printf("没有该学生记录,请核对!");/按姓名查询学生信息void query_by_name() char name20; struct student *p1; printf("请输入学生的姓名:"); scanf("%s", name); if(head=
44、NULL) printf("无学生记录!n"); return; p1=head; while(strcmp(name, p1->name) && p1->next!=NULL) p1=p1->next; if(!strcmp(name, p1->name) printf("n学号t姓名t年龄t性别t出生年月t地址t电话tE-mailn"); printf("-"); display(p1); else printf("没有该学生记录,请核对!");/写入文件void wri
45、teData() FILE* fp;/文件指针 struct student *p; fp = fopen(FILE_DATA_PATH, "w"); if (!fp) printf("文件打开错误!"); return; fprintf(fp,"%dn", TOTAL_NUM); for(p = head; p!= NULL; p= p->next) fprintf(fp,"%ldt%st%dt%st%st%st%ldt%sn", p->num, p->name, p->age, p-&g
46、t;sex, p->birthday, p->address, p->tele_num, p->E_mail); 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(FILE_DATA_PATH, "r"); if (!fp) printf(&quo
47、t;文件打开错误!"); fscanf(fp,"%dn", &TOTAL_NUM); head = p1 = p2 = (struct student *)malloc(LEN); fscanf(fp,"%ldt%st%dt%st%st%st%ldt%sn", &p1->num, p1->name, &p1->age, p1->sex, p1->birthday, p1->address, &p1->tele_num, p1->E_mail); while(!feo
48、f(fp) p1 = (struct student *)malloc(LEN); fscanf(fp,"%ldt%st%dt%st%st%st%ldt%sn", &p1->num, p1->name, &p1->age, p1->sex, p1->birthday, p1->address, &p1->tele_num, p1->E_mail); p2->next = p1; p2 = p1; p2->next = NULL; fclose(fp);/删除学生信息void del() st
49、ruct 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->next = p1->next; free
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中专护理医学护理技术课件
- 2026汉中汉台区新龙岗幼儿园教师招聘考试参考试题及答案解析
- 2026广东警官学院财务部招聘合同制工作人员1人笔试模拟试题及答案解析
- 2026江西省吉安市卫生学校面向社会招聘4人笔试模拟试题及答案解析
- 2026年国网吉林省电力有限公司高校毕业生招聘第二批考试参考试题及答案解析
- 2026广东茂名技师学院招聘编外合同制教师及教辅人员20人考试备考题库及答案解析
- 2026四川广安市武胜县嘉陵水利集团有限公司招聘1人考试备考试题及答案解析
- 2026济南众诚社会工作服务中心项目社工招聘(2人)考试参考题库及答案解析
- 2026“才聚齐鲁 成就未来”山东能源集团新材料有限公司所属企业市场化招聘7人考试参考试题及答案解析
- 2026年重庆移通学院单招职业技能考试题库含答案解析
- 累积损伤理论在电气设备寿命评估中的应用-全面剖析
- 易混淆药品培训
- 开学第一课开学立规矩课件64
- 《智能制造单元集成应用》课件-智能制造单元概述
- 中学-学年第二学期教科室工作计划
- 2024年贵州省公务员考试《行测》真题及答案解析
- DB34T 3267-2024 公路养护工程设计文件编制规范
- GB/T 3163-2024真空技术术语
- GB/T 24203-2024炭素材料体积密度、真密度、真气孔率、显气孔率的测定方法
- 英语阅读理解50篇
- 初三化学溶液专题训练习题
评论
0/150
提交评论