久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
c語言單鏈表實(shí)現(xiàn)學(xué)生信息的增刪改查源程序
[打印本頁]
作者:
qhx
時間:
2021-1-12 22:47
標(biāo)題:
c語言單鏈表實(shí)現(xiàn)學(xué)生信息的增刪改查源程序
C語言鏈表的基礎(chǔ)知識就不多說了,關(guān)鍵在于要知道它是不連續(xù)的內(nèi)存單元通過指針的方式把數(shù)據(jù)串接成鏈的。百度一大把資料。
直接對程序加以說明,以及注意事項(xiàng):
1.添加信息:直接在創(chuàng)建的鏈表尾部添加。讀者也可以自己試著修改成,鏈表指定位置添加。
2.刪除信息:首先分三種情況,第一:刪除的數(shù)據(jù)在表頭,第二:刪除的數(shù)據(jù)在表中間,最后,刪除的數(shù)據(jù)是表尾(即next指向的是NULL)。
3.修改、查詢信息:通過指定的方式去查找,比較簡單沒啥好說的。
4.登錄:這里我設(shè)置了默認(rèn)的賬號密碼,三次之內(nèi)輸入正確即可進(jìn)入創(chuàng)建鏈表,否則退出進(jìn)程。
思考:程序45行g(shù)etchar()的作用?
在scanf中輸入name信息后按回車結(jié)束,輸入緩沖中保存了這個回車符,如果后面一個輸入信息格式是字符(串)格式,
它會自動把這個回車符賦給這個信息,所以getchar的作用是吃掉這個回車符。
單片機(jī)源程序如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "student.h"
int main(int argv,char *argc[])
{
Stu *head;
int entry,Num;
entry=login();
if(entry != 0)
return -1;
head=creat();
print(head);
while(1){
printf("input 1.添加 2.刪除 3.修改 4.查詢 5.打印 6.退出\n");
scanf("%d",&Num);
switch(Num){
case 1:head=add(head);print(head);break;
case 2:head=delet(head);print(head);break;
case 3:head=modify(head);print(head);break;
case 4:query(head);break;
case 5:print(head);break;
case 6:return 0;
default:printf("Invalid input\n");break;
}
}
return 0;
}
/* 創(chuàng)建學(xué)生鏈表 */
Stu *creat(void)
{
int n=0;
char i[4];
Stu *p1,*p2;
Stu *head = NULL;
p1=p2=(Stu *) malloc(sizeof(Stu));
do{
printf("please input student info:\n");
printf("name:");
scanf("%s",p1->name);
getchar();
printf("sex:");
scanf("%c",&p1->sex);
printf("num:");
scanf("%d",&p1->num);
printf("score:");
scanf("%f",&p1->score);
printf("addr:");
scanf("%s",p1->addr);
if(!n){
n++;
head=p1;
}else{
p2->next=p1;
p2=p1;
}
printf("whether input next:yes/no\n");
scanf("%s",i);
if(!strncmp(i,"y",1)){
p1=(Stu *)malloc(sizeof(Stu));
}else{
p1->next = NULL;
}
}while(!strncmp(i,"y",1));
return head;
}
/* 添加學(xué)生信息 */
Stu *add(Stu *p)
{
Stu *q,*head;
head = p;
char i[4];
while(p->next != NULL){
p=p->next;
}
q=(Stu *) malloc(sizeof(Stu));
do{
printf("please add student info:\n");
printf("name:");
scanf("%s",q->name);
getchar();
printf("sex:");
scanf("%c",&q->sex);
printf("num:");
scanf("%d",&q->num);
printf("score:");
scanf("%f",&q->score);
printf("addr:");
scanf("%s",q->addr);
p->next = q;
p=q;
printf("whether add next:yes/no\n");
scanf("%s",i);
if(!strncmp(i,"y",1)){
q=(Stu *) malloc(sizeof(Stu));
}else{
q->next= NULL;
}
}while(!strncmp(i,"y",1));
return head;
}
/* 刪除學(xué)生信息 */
Stu *delet(Stu *p)
{
Stu *q,*head;
int Num;
char i[4];
head = q= p;
if(!p)
return head;
do{
printf("please input delete student num:");
scanf("%d",&Num);
while(p->num !=Num){
if(p->next!=NULL){
if(q!=p){
q->next=p;
q=p;
}
p=p->next;
}else{
printf("No find the student,sorry!\n");
return head;
}
}
if(p==head){
head=p->next;
}else if(p->next ==NULL){
q->next=NULL;
}else{
q->next=p->next;
}
free(p);
printf("whether delete again:yes/no?\n");
scanf("%s",i);
}while(!strncmp(i,"y",1));
return head;
}
/* 修改學(xué)生信息 */
Stu *modify(Stu *p)
{
Stu *head;
char i[4];
int Num,y;
head=p;
printf("please modify student num:");
scanf("%d",&Num);
do{
while(p->num!= Num){
if(p->next!=NULL){
p=p->next;
}else{
printf("No find the student,sorry!\n");
return head;
}
}
printf("Do you want to modify 1.name 2.num 3.sex 4.score 5.addr?");
scanf("%d",&y);
switch(y){
case 1:printf("name:"); scanf("%s",p->name);break;
case 2:printf("num:"); scanf("%d",&p->num);break;
case 3:printf("sex:"); scanf("%c",&p->sex);break;
case 4:printf("score:"); scanf("%f",&p->score);break;
case 5:printf("addr:"); scanf("%s",p->addr);break;
default:printf("input error!\n");break;
}
printf("whether modify again:yes/no?\n");
scanf("%s",i);
}while(!strncmp(i,"y",1));
return head;
}
/* 查詢學(xué)生信息 */
void query(Stu *p)
{
int Num;
printf("Please input student num:");
scanf("%d",&Num);
while(p->num != Num){
if(p->next == NULL){
printf("No find the student ,sorry!\n");
exit(-1);
}
p= p->next;
}
printf("name=%s ,sex=%c ,score=%4.2f ,addr=%s\n",p->name,p->sex,p->score,p->addr);
}
/* 賬號登錄 */
int login(void)
{
int i=0;
char wel[]="Welcome to entery the student system!";
int len=sizeof(wel);
char account_new[16],account[]="class_student";
char passwd_new[16],passwd[]="123456";
printf("defaule:: 賬號:class_student 密碼:123456\n");
printf("if error 3 times exit\n");
for(i=0;i<3;i++){
printf("please input your 賬號:");
scanf("%s",account_new);
printf("please input your 密碼:");
scanf("%s",passwd_new);
if((!strncmp(account,account_new,strlen(account))) &&
(!strncmp(passwd,passwd_new,strlen(passwd)))) {
printf("succeeful!\n");
break;
}else{
if(i==2)
return -1;
printf("error!\n");
}
}
printf("%s",wel);
printf("\n");
return 0;
}
/* 信息打印 */
void print(Stu *p)
{
if(!p)
return;
do{
printf("name:%s ,sex:%c ,num:%d , score:%4.2f ,addr:%s \n",p->name,p->sex,p->num,p->score,p->addr);
p=p->next;
}while(p != NULL);
}
復(fù)制代碼
51hei.png
(5.68 KB, 下載次數(shù): 99)
下載附件
2021-1-12 23:28 上傳
所有資料51hei提供下載:
c語言之單鏈表.zip
(7.48 KB, 下載次數(shù): 18)
2021-1-12 22:46 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
IdeaMing
時間:
2021-1-13 12:51
有沒有循環(huán)鏈表?
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
99精品国产一区二区青青牛奶
|
一区二区三区四区在线视频
|
狠狠色狠狠色综合系列
|
久久一二三区
|
www国产亚洲精品久久网站
|
国产一区精品
|
天天操天天天干
|
国产精品毛片一区二区三区
|
日本一二三区电影
|
国产精品久久久久久久一区探花
|
成人av观看
|
成人在线视频免费看
|
91久久精品国产91久久性色tv
|
欧美一极视频
|
欧美国产日韩一区
|
在线观看视频你懂得
|
亚洲精品成人av久久
|
在线欧美视频
|
国产精品激情在线
|
美女爽到呻吟久久久久
|
国产小视频在线
|
视频一区二区中文字幕
|
射久久
|
日韩精品极品视频在线观看免费
|
亚洲成av人片在线观看
|
国产精品一区久久久久
|
麻豆av一区二区三区久久
|
精品无码久久久久久久动漫
|
成人在线视频网站
|
欧美日韩在线观看视频
|
二区中文字幕
|
91在线精品视频
|
一区二区三区av
|
国产精品久久久久999
|
国产日韩在线观看一区
|
91pron在线
|
久久久av中文字幕
|
久久涩涩
|
色又黄又爽网站www久久
|
日韩毛片免费视频
|
欧美一级在线观看
|