當前位置:首頁 » 編程語言 » c語言刪除模塊函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言刪除模塊函數

發布時間: 2022-11-25 09:13:10

1. c語言中刪除模塊,描述出演算法思想

你給的這些信息跟本無法下手啊。。。刪除模塊最常用的方法就是把原文件中的類容全部讀取出來,存在一個結構體或數組中,然後根據條件,刪除之後,再寫入文件,覆蓋原有文件...達到刪除的效果..

2. c語言程序設計,能不能幫我分析一下這個模塊啊,我不是特別會、、圖書館信息管理系統刪除模塊。

/**************************************刪除書籍***********************************************/
void Del(Link l) /* 刪除 */
{
int sel;
Node *p,*r;
char findmess[20]; //數據定義就不說了
if(!l->next) //這一行應該缺了點什麼吧
{
printf("\n提示:沒有資料可以刪除!\n");
return;
}
printf("\n=====>1按書籍號刪除\n=====>2按書名刪除\n");
scanf("%d",&sel); //輸入1或者2作為命令
if(sel==1) //如果輸入1那麼……
{
printf("請你輸入要刪除的學號:");
scanf("%s",findmess); //輸入要刪除的學號
p=Locate(l,findmess,"num"); //取出序號對應的指針
if(p) //判斷指針是否為空
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p); //清楚相應的書籍信息
printf("\n提示:該書籍已經成功PASS!\n");
shoudsave=1; //置相應的標志位
}
else
Nofind(); //這就不知道了
}
else if(sel==2) //這是命令2
{
printf("請你輸入要刪除的書名:");
scanf("%s",findmess); //輸入書名
p=Locate(l,findmess,"name"); //讀取相應的指針
if(p) //身下的應該能看懂,
r=l;
else
Nofind();
}
else
Wrong();
}

至於你數的。鏈表,那要看你怎麼建的了只看這些看不出來!
祝你好運

3. 求c語言 學生管理系統 程序 以下幾個模塊不必全有,少的我自己加,但發來的程序各模塊必須標記清楚 謝謝

下面的程序中,你將單鏈表改為結構數組即可達到你的要求:
C 語言學生成績管理系統
#include<stdio.h>
#include<malloc.h>
#include<conio.h>
#include<string.h>
typedef struct STUDENT
{
char studentNumber[20];/*學生學號*/
char studentName[20];/*學生姓名*/
char className[20];/*班級名稱*/
float mark1;/*第1門成績*/
float mark2;/*第2門成績*/
float mark3;/*第3門成績*/
struct STUDENT *next;
}STUDENT;
STUDENT *headLink; /*鏈表表頭指針*/
/*函數聲明*/
void ReadInfoFormFile();
void Menu();
void CreateHeadLink();
STUDENT *MallocNode();
void GetInformation(STUDENT *t);
void OutputInformation();
void DesplayInfoBystudentName();
void DesplayInfoBystudentNumber();
void DesplayOneNode(STUDENT *t);
void InsertOneNode(STUDENT *t);
void DeleteNodeBystudentNumber();
void ChangeMarkByName();
void ChangeMarkByNumber();
void SaveLinkToFile();
void paixu();
void DesplayMarkSegment();
int choose;/*用於接受用戶的選擇*/
/*主函數*/
main()
{
system("color 2a");
printf("\n\t\t歡迎進入***學院***班學生成績管理系統\n\n\n");
printf("\t\t\t\tO(∩_∩)O\n\n\n\n");
printf("\t\t\t^_^\t\t\t^_^\n\n");
printf("\n\t\t 注意:請按照要求輸入相應信息,謝謝!\n\n\n\n\n");
printf("\t\t\t\t\t\t\t\t製作人:***\n\n\n");
printf("\t\t\t 按任意鍵進入…………");
getch();
system("cls");
CreateHeadLink();
ReadInfoFormFile();
Menu();

}
/*從文件中讀學生信息到鏈表中*/
void ReadInfoFormFile(void)
{
FILE *fp;
STUDENT *p;
fp=fopen("student.txt","r");
if(!fp)
{
printf("\n");
return;
}
p=MallocNode();
while(fscanf(fp,"%s%s%s%f%f%f",p->studentNumber,p->studentName,p->className,&(p->mark1),&(p->mark2),&(p->mark3))>0)
{
InsertOneNode(p);
p=MallocNode();
}
fclose(fp);
}
/*顯示菜單,根據用戶的輸入完成相應的功能*/
void Menu(void)
{
STUDENT *p;
printf("\t\t (^o^)歡迎使用學生成績管理系統(^o^)\n\n");
printf("\t ※--------------------請選擇相應功能---------------------※\n\n");
printf("\t 1: 顯示所有學生的信息 |");
printf(" \t 2: 按姓名查詢 |\n\n");
printf("\t 3: 按學號查詢 |");
printf(" \t\t 4: 增加學生 |\n\n");
printf("\t 5: 刪除學生 |");
printf(" \t\t 6: 按姓名修改學生成績 |\n\n");
printf("\t 7: 按學號修改學生成績 |");
printf(" \t 8: 保存所有學生信息 |\n\n");
printf("\t 9: 按成績輸出學生信息 |");
printf("\t 10: 顯示不及格及優秀學生 |\n\n");
printf("\t 11: 返回主菜單 |");
printf("\t\t 12: 退出 |\n\n");
printf("\t ※----------------------O(∩_∩)O------------------------※\n\n");
printf("\t 請輸入對應數字:");
scanf("%d",&choose);/*取得用戶的選擇*/
switch(choose)
{
case 1:system("cls");
OutputInformation();/*顯示所有學生的信息*/
break;
case 2: system("cls");
DesplayInfoBystudentName();
break;
case 3: system("cls");
DesplayInfoBystudentNumber();/*根據用戶輸入的學號顯示該學生的信息*/
break;
case 4: system("cls");
p=MallocNode();/*先申請一個新結點*/
GetInformation(p);/*要求用戶輸入信息到新結點中*/
InsertOneNode(p);/*將新結點加到鏈表中*/
break;
case 5: system("cls");
DeleteNodeBystudentNumber();/*根據用戶輸入的學號刪除該學生*/
break;
case 6: system("cls");
ChangeMarkByName();/*根據用戶輸入的姓名修改學生成績*/
break;
case 7: system("cls");
ChangeMarkByNumber();/*根據用戶輸入的學號修改學生成績*/
break;
case 8: system("cls");
SaveLinkToFile();/*保存數據*/
break;
case 9: system("cls");
paixu();break;
case 10: system("cls");
DesplayMarkSegment();break;
case 11: system("cls");
break;
case 12: system("cls");
SaveLinkToFile();/*保存數據後再退出*/
free(headLink);
exit(1);
break;
default: system("cls"); break;
}
Menu();/*遞歸調用*/
}
/*建立鏈表表頭*/
void CreateHeadLink(void)
{
STUDENT *p;
p=(STUDENT*)malloc(sizeof(STUDENT));
headLink=p;
p->next=NULL;
}
/*申請一個新結點,並將其初始化*/
STUDENT *MallocNode(void)
{
STUDENT *p;
int i;
p=(STUDENT*)malloc(sizeof(STUDENT));
if(p==NULL)
return NULL;
for(i=0;i<10;i++)
p->studentNumber='\0';
for(i=0;i<20;i++)
p->studentName='\0';
for(i=0;i<20;i++)
p->className='\0';
p->mark1=0.0;
p->mark2=0.0;
p->mark3=0.0;
p->next=NULL;
return p;
}
/*取得用戶輸入的學生信息*/
void GetInformation(STUDENT *t)
{
printf("請輸入學生學號:");
scanf("%s",t->studentNumber);
printf("請輸入學生姓名:");
scanf("%s",t->studentName);
printf("請輸入該生所在班級:");
scanf("%s",t->className);
printf("請輸入第1門成績:");
scanf("%f",&(t->mark1));
printf("請輸入第2門成績:");
scanf("%f",&(t->mark2));
printf("請輸入第3門成績:");
scanf("%f",&(t->mark3));
}
/*在鏈表的結尾處增加一個結點*/
void InsertOneNode(STUDENT *t)
{
STUDENT *p;
p=headLink;
while(p->next)
{
p=p->next;
}
p->next=t;
}
/*根據用戶輸入的學生姓名顯示該學生的信息*/
void DesplayInfoBystudentName(void)
{
STUDENT *p;
char studentName[20];
char flag=0;
p=headLink->next;
printf("請輸入學生姓名:");
scanf("%s",studentName);
while(p)
{
if(strcmp(p->studentName,studentName)==0)
{system("cls");
printf("\t學號\t姓名\t班級\t成績1\t成績2\t成績3\t總成績\t平均成績\n");
DesplayOneNode(p);
flag=1;
break;
}
p=p->next;
}
if(!flag) {system("cls");
printf("\t 對不起,不存在姓名為 %s 的學生\n",studentName);}
}
/*根據用戶輸入的學號顯示該學生的信息*/
void DesplayInfoBystudentNumber(void)
{
STUDENT *p;
char studentNumber[20];
char flag=0;
p=headLink->next;
printf("請輸入學生學號:");
scanf("%s",studentNumber);
while(p)
{
if(strcmp(p->studentNumber,studentNumber)==0)
{ system("cls");
printf("\t學號\t姓名\t班級\t成績1\t成績2\t成績3\t總成績\t平均成績\n");
DesplayOneNode(p);
flag=1;
break;
}
p=p->next;
}
if(!flag) {system("cls");
printf("\t 對不起,不存在學號為 %s 的學生\n",studentNumber);
}}
/*輸出一個結點的信息*/
void DesplayOneNode(STUDENT *t)
{
printf("\t%s\t",t->studentNumber);
printf("%s\t",t->studentName);
printf("%s\t",t->className);
printf("%.2f\t",t->mark1);
printf("%.2f\t",t->mark2);
printf("%.2f\t",t->mark3);
printf("%.2f\t",t->mark1+t->mark2+t->mark3);
printf("%.2f\t\n",(t->mark1+t->mark2+t->mark3)/3);
}
/*根據用戶輸入的學號刪除該學生*/
void DeleteNodeBystudentNumber(void)
{
char studentNumber[10];
STUDENT *p,*q;
char flag=0;
printf("請輸入要刪除的學生學號:");
scanf("%s",studentNumber);
p=headLink;
q=headLink->next;
while(q)
{
if(strcmp(q->studentNumber,studentNumber)==0)
{
p->next=q->next;
free(q);
flag=1;
break;
}
p=p->next;
q=q->next;
}
if(!flag)
{ system("cls");
printf("\t 不存在該學號的學生\n");
return;
}
system("cls");
printf("\t 成功刪除\n");
}
/*顯示所有學生的信息*/
void OutputInformation(void)
{
STUDENT *p;
p=headLink->next;
if(p==NULL)
{
printf("\t 現在沒有學生信息,請先輸入學生信息\n\n");
return;
}
printf("\t學號\t姓名\t班級\t成績1\t成績2\t成績3\t總成績\t平均成績\n");
while(p)
{
DesplayOneNode(p);
p=p->next;
}
}
/*根據輸入的姓名修改成績*/
void ChangeMarkByName(void)
{
STUDENT *p;
char studentName[20];
char flag=0;
float mark1,mark2,mark3;
p=headLink->next;
printf("請輸入學生姓名:");
scanf("%s",studentName);
while(p)
{
if(strcmp(p->studentName,studentName)==0)
{
printf("請輸入新的第1門成績:\n");
scanf("%f",&mark1);
printf("請輸入新的第2門成績:\n");
scanf("%f",&mark2);
printf("請輸入新的第3門成績:\n");
scanf("%f",&mark3);
p->mark1=mark1;
p->mark2=mark2;
p->mark3=mark3;
flag=1;
printf("修改成功\n");
break;
}
p=p->next;
}
if(!flag) {system("cls");
printf("\t 對不起,不存在姓名為 %s 的學生\n",studentName);
} }
/*根據輸入的姓名修改成績*/
void ChangeMarkByNumber(void)
{
STUDENT *p;
char studentNumber[20];
char flag=0;
float mark1,mark2,mark3;
p=headLink->next;
printf("請輸入學生學號:");
scanf("%s",studentNumber);
while(p)
{
if(strcmp(p->studentNumber,studentNumber)==0)
{
printf("請輸入新的第1門成績:\n");
scanf("%f",&mark1);
printf("請輸入新的第2門成績:\n");
scanf("%f",&mark2);
printf("請輸入新的第3門成績:\n");
scanf("%f",&mark3);
p->mark1=mark1;
p->mark2=mark2;
p->mark3=mark3;
flag=1;
printf("修改成功\n");
break;
}
p=p->next;
}
if(!flag){system("cls");
printf("\t 對不起,不存在學號為 %s 的學生\n",studentNumber);
}}
/*保存鏈表數據到文件中*/
void SaveLinkToFile(void)
{
STUDENT *p;
FILE *fp;
p=headLink->next;
if(p==NULL)
{
printf("\t 現在沒有學生信息,請先輸入學生信息\n\n");
return;
}
fp=fopen("student.txt","w+");
if(!fp)
{
printf("文件不存在\n");
return;
}
while(p)
{
fprintf(fp,"%s %s %s %f %f %f\n",p->studentNumber,p->studentName,p->className,p->mark1,p->mark2,p->mark3);
p=p->next;
}
fclose(fp);
}
/*顯示優秀和不及格學生成績*/
void DesplayMarkSegment(void)
{
STUDENT *p;
int count=0;
p=headLink->next;
printf("\t60分以下(不及格)的學生成績如下:\n");
printf("\t學號\t姓名\t班級\t成績1\t成績2\t成績3\t總成績\t平均成績\n\n");
while(p)
{
if((6>((int)(p->mark1/10)))||(6>((int)(p->mark2/10)))||(6>((int)(p->mark3/10))))/*只要有一科不及格就認為該生不及格*/
{
count++;
DesplayOneNode(p);
}
p=p->next;
}
printf("\t不及格的學生一共有%d人\n",count);
p=headLink->next;
printf("\t成績優秀的學生成績如下:\n");
printf("\t學號\t姓名\t班級\t成績1\t成績2\t成績3\t總成績\t平均成績\n\n");
count=0;
while(p)
{
if((8<=((int)(p->mark1/10)))&&(8<=((int)(p->mark2/10)))&&(8<=((int)(p->mark3/10))))
{
count++;
DesplayOneNode(p);
}
p=p->next;
}
printf("\t成績優秀的學生一共有%d人\n",count);
}
/*按總成績排序*/
void paixu(void)
{
STUDENT exchange,*r,*p,*q;
r=headLink->next;
if(r==NULL)
{
printf("\t 現在還沒學生信息,請先輸入學生信息\n");
return;
}
while(r)/*兩層while循環實現排序*/
{
p=r;
q=r->next;
while(q)
{
if((q->mark1+q->mark2+q->mark3)>(p->mark1+p->mark2+p->mark3))
{
strcpy(exchange.studentNumber,q->studentNumber);/*先復制q結點信息到exchange*/
strcpy(exchange.studentName,q->studentName);
strcpy(exchange.className,q->className);
exchange.mark1=q->mark1;
exchange.mark2=q->mark2;
exchange.mark3=q->mark3;
strcpy(q->studentNumber,p->studentNumber);/*再復制p結點信息到q*/
strcpy(q->studentName,p->studentName);
strcpy(q->className,p->className);
q->mark1=p->mark1;
q->mark2=p->mark3;
q->mark3=p->mark3;
strcpy(p->studentNumber,exchange.studentNumber);/*最後復制exchange結點信息到p*/
strcpy(p->studentName,exchange.studentName);
strcpy(p->className,exchange.className);
p->mark1=exchange.mark1;
p->mark2=exchange.mark2;
p->mark3=exchange.mark3;
}
q=q->next;
}
r=r->next;
}
OutputInformation();
}

4. c語言學生選課系統中的添加和刪除模塊的代碼、、這個有點急 、請看清楚要求、添加的是課程、求高手解答

//函數返回值0表示查找或刪除未成功,1表示成功,2表示未進行操作。
int Insert(LinkList * &L,ElemType e){//e是你在主函數要求用戶輸入的添加信息
LinkList *p=teal,*s;//p指向尾結點
int i,choice;
printf("/************添加************/\n51 追加\n52 按位置插入\n53 返回主菜單\n/****************************");
scanf("%d",&choice);
if(choice==51){
s=(LinkList *)malloc(sizeof(LinkList));
s->data=e; //插入數據
p->next=s;//將s插入到表的尾端
s->teal=NULL;
return 1;
}
else if(choice==52){
while(p!=NULL&&p->data!=e)//查找用戶指定的位置
p=p->next;
if(p==NULL)//未找到用戶指定的數據
return(0);
else { //找到
p->data=e;//按用戶輸入修改
return (1);
}
}
else if(choice==53)
return (2);
}
int Delet(LinkList * &L,ElemType e){
int choice;
LinkList *p=L,*q;
printf("/************添加************/\n61 按課程名\n62 按教師名\n63 返回主菜單\n/****************************");
scanf("%d",&choice);
if(choice==61){
while(p->data!=e&&p!=NULL)//查找指定的課程名
p=p->next;
if(p==NULL)//未找到
return 0;
else {//找到
q=p->next;
if(q==NULL) return 0;
p->next=p->next;
free(q);
return 1;
}
}
else if(choice==61){//查找指定的教師名
while(p->data!=e&&p!=NULL)
p=p->next;
if(p==NULL)
return 0;
else {
q=p->next;
if(q==NULL) return 0;
p->next=p->next;
free(q);
return 1;
}
}
else if(choice==63)
return 2;
}
拿來練練手,不明白的,再聯系。

5. c語言學生管理系統的刪除模塊

最後一個for沒加括弧。

感覺方法不適合

6. 這個c語言的題目我需要做刪除的模塊。 有沒有大佬能幫幫我, 下面是題目和組長定義的結構體。

看你圖,你們用的是結構數組不是鏈表。那麼應該有一個變數記錄數組實際元素個數。另外身份證成員變數idnum下標,如果是想存儲18位身份證號碼,應該定義下標19.。

下面代碼:cont是記錄數組元素個數,要刪除的數組元素,會被置0,並移動到數組末尾

intcont=10;//定義全局變數,結構數組實際存儲的元素個數!!!!
voiddeleteByid(char*idnum)//通過身份證刪除
{
inti,j;
structsttddSave;
for(i=0;i<cont;i++)
{
if(strcmp(dd[i].idnum,idnum)==0)
{
dd[i].num=0;
dd[i].idnum[0]=0;
dd[i].cnum[0]=0;
dd[i].fy=0;
for(j=i;j<cont+1;j++)
{
ddSave=dd[i];
dd[j]=dd[j+1];
dd[j+1]=ddSave;
}
cont--;
break;
}
}

}

7. c語言課程設計:手機通訊錄管理系統整個系統更可以設計為數據查看、數據添加、數據修改,數據刪除模塊,急

我寫了一個容量為N=20個聯系人的程序 N的值可以在代碼中改
我的郵箱[email protected] 發給你了 請採納吧

8. C語言大神快出現,來拯救我吧 我這里有一些模塊,但是我不會將她們竄起來,主函數我不會寫,還要創建一

void main(){
sqlist L;
initlist(&L);
int i;
ElemType e = 0;
for (i = 0; i < 10; i++){
insert(&L, i, 2 * i);
}
list(&L);
printf("輸入要刪除第幾個數:");
scanf_s("%d", &i);
int flag = Delete(&L, i, &e);
if (flag == 0)
printf("刪除失敗!\n");
else{
printf("刪除成功!\n");
list(&L);
}
}
主函數就這樣寫啊,非空的順序表就是直接在主函數往表裡添加元素就好啦。還有你的刪除函數名字要改一下,delete是C語言關鍵字,不可命名為用戶名。

9. c語言 刪除模塊

for(i=0;i<sum;i++)
{
if(message[i].num==num)
{
for(j=i;j<sum;j++)
{
message[j]=message[j+1];
}
}
//sum = i-1; //如果你從第一個刪除,i=0,sum=-1
sum -= 1; //總數減一
break;
}

10. (C語言中)用模塊法實現數組4步基本操作:排序,插入,刪除,查找

也就是四個函數吧,實現對數組(如果不是動態分配的數組,沒有插入和刪除這個操作的)的基本操作,四個函數原型如下:
int Sort(int a[ ], int nsize);
int Insert(int a[], int nPos, int nInsertNum);
int Delete(int a[], int nPos, int nDelNum);
int Find(int a[], int nDelNum);