當前位置:首頁 » 考試成績 » c語言刪除學生成績記錄

c語言刪除學生成績記錄

發布時間: 2021-03-06 20:01:48

⑴ 求用C語言中的結構體編寫的《學生成績管理系統》中的刪除學生信息程序段。

/*****************************************************************
【作者日期】test2013-06-01
【函數功能】根據學生ID刪除學生信息
【輸入參數】頭結點指針
【輸出參數】頭結點指針
【函數返回】頭結點指針
【演算法說明】入參檢查要全面及出錯信息處理要完善
【修改記錄】
*****************************************************************/
Link*DelInfo(Link*head)
{
//clearScreen();
Link*tail;//
Link*tmp;
Link*nhead;
intpID;

tail=NULL;
tmp=head;
nhead=head;
pID=0;
if(NULL==head)
{
printf("emptylink. ");
//WaitSys();
returnhead;
}

tail=head->next;
printf("PleaseinputtheID(whichyouwanttodel): ");
scanf("%d",&pID);
getchar();
//刪除的是頭結點
if(tmp->ID==pID)
{
tmp=tmp->next;
nhead=tmp;
free(tmp);
if(NULL!=tmp)
tmp=NULL;
returnnhead;
}

//刪除其他位置
while(tail)
{
if(tail->ID==pID)
{
tmp->next=tail->next;
free(tail);
if(NULL!=tail)
tail=NULL;
returnnhead;
}
else
{
tmp=tmp->next;
tail=tail->next;
if(NULL==tail)
{
printf("你輸入的ID不存在 ");
WaitSys();
returnnhead;
}
}
}
returnnhead;
}

希望對樓主有所幫助!

⑵ c語言編寫的學生成績記錄簿程序如何使輸出對其,然後把亂碼「屯」刪除。麻煩看一下謝謝

首先插入學生成績的時候沒有初始化malloc

p是非法獲取了L->next L->next是不確定的位置


其次

給分數賦值的時候

應該是&(r->eng)

⑶ 求C語言代碼:如何添加,刪除,修改文件中的學生信息記錄

樓主解壓運行下看看是不是你要的!是的話我就把代碼貼上來!

⑷ 利用線性表的順序存儲結構完成一個班級的所有課程的管理c語言要求實現增加,刪除,修改學生成績記錄等功

#include <stdio.h>
#include <stdlib.h>

typedef struct LNode{
int data; //鏈表數據
struct LNode* next; //鏈表指針
}LNode,*LinkList;

/*頭插法-建立單鏈表*/
LinkList HeadCreate(LinkList la)
{
int num;
la=(LinkList)malloc(sizeof(LNode)); //建立頭結點
la->next=NULL;
scanf("%d",&num);
while(num!=10)
{
LNode *p=(LinkList)malloc(sizeof(LNode));
p->data=num;
p->next=la->next;
la->next=p;
scanf("%d",&num);
}
return la;
}

/*尾插法-建立單鏈表*/
LinkList TailCreate(LinkList la)
{
int num;
la=(LinkList)malloc(sizeof(LNode));
la->next=NULL;
LinkList s,r=la;
scanf("%d",&num);
while(num!=10)
{
s=(LinkList)malloc(sizeof(LNode));
s->data=num;
r->next=s;
r=s;
scanf("%d",num);
}
r->next=NULL;
return la;
}

/*單鏈表遍歷*/
void TravelList(LinkList la)
{
LinkList p=la->next;
while(p!=NULL)
{
printf("%d->",p->data);
p=p->next;
}
printf("\n");
}

/*單鏈表的按位查找*/
LinkList GetElem(LinkList la,int i)
{
int j=1;
LNode* p=la->next;
if(i<1)
return NULL;
while(p && j<i)
{
p=p->next;
j++;
}
return p;
}

/*單鏈表的按值查找*/
LinkList LocalElem(LinkList la,int e)
{
LNode* p=la->next;
while(p!=NULL && p->data!=e)
p=p->next;
return p;
}

/*單鏈表插入操作*/
bool InsertList(LinkList la,int i,int e)
{
//在la鏈表中的i位置插入數值e
int j=1;
LinkList p=la,s;
while(p && j<i)
{
p=p->next;
j++;
}
if(p==NULL)
return false;
if((s=(LinkList)malloc(sizeof(LNode)))==NULL)
return false;
s->data=e;
s->next=p->next;
p->next=s;
return true;
}

/*單鏈表刪除操作*/
bool DeleteList(LinkList la,int i)
{
int j=1;
LinkList p=la,q;
while(p && j<i) //p指向第i-1個元素
{
p=p->next;
j++;
}
if(p==NULL || p->next==NULL) //表示不存在第i-1個和第i的元素
return false;
q=p->next;
p->next=q->next;
free(q);
return true;
}

/*單鏈表的表長*/
int LengthList(LinkList la)
{
int nLen=0;
LinkList p=la->next;
while(p)
{
p=p->next;
nLen++;
}
return nLen;
}

/*單鏈表逆置*/
LinkList Reserve(LinkList la)
{
if(la==NULL || la->next==NULL)
return la;
LinkList p=la->next,q=p->next,r=q->next;
la->next=NULL;
p->next=NULL;
while(r!=NULL)
{
q->next=p;
p=q;
q=r;
r=r->next;
}
q->next=p;
la->next=q;
return la;
}

int main()
{
LNode la;
LinkList p;
p=HeadCreate(&la); //頭插法創建單鏈表
TravelList(p);
printf("%p\n",GetElem(p,1)); //獲得第1個結點地址
InsertList(p,2,10); //在鏈表的第2個位置插入元素10
TravelList(p);
DeleteList(p,3); //刪除鏈表的第3個元素
TravelList(p);
printf("%d\n",LengthList(p)); //獲得鏈表長度
p=Reserve(p);
TravelList(p);
return 0;
}

//運行結果
//5 6 12 7 8 14 9 3 2 5 14 10 頭插法創建鏈表
//14->5->2->3->9->14->8->7->12->6->5-> 顯示鏈表
//00382490 第一個結點的地址
//14->10->5->2->3->9->14->8->7->12->6->5-> 插入元素值為10的結點
//14->10->2->3->9->14->8->7->12->6->5-> 刪除第三個結點
//11 獲得鏈表長度
//5->6->12->7->8->14->9->3->2->10->14-> 鏈表逆置
//Press any key to continue

這是我寫的一個線性表鏈式存儲的綜合程序,包含了你所要的創建、刪除、插入、按值查找的功能,還有一些額外的功能。下面加註釋的是程序運行結果,你可以參考試著改改程序,讓程序更加完美。希望對你有幫助,呵呵!

⑸ c語言編寫的學生成績記錄簿程序如何使輸出對其,然後把亂碼「屯」刪除。


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#defineM100
#defineN10
#defineNU20

typedefstructnode{
charxuehao[N];
charname[N];
charsex[N];
inteng,math,ds;
charjianjie[NU];
structnode*next;
}node;
/*1信息輸入*/
node*createdatabase(){
node*head,*p;
inti,n;
head=p=(node*)malloc(sizeof(node));
p->next=NULL;
printf("請輸入要創建的學生總數 ");
scanf("%d",&n);
for(i=1;i<=n;i++){
("第%d個學生的基本信息 ",i);
p->next=(node*)malloc(sizeof(node));
printf("請輸入學號:");
scanf("%s",p->next->xuehao);
printf("請輸入姓名:");
scanf("%s",p->next->name);
printf("請輸入性別:");
scanf("%s",p->next->sex);
printf("請輸入科目一成績:");
scanf("%d",&p->next->eng);
printf("請輸入科目二成績:");
scanf("%d",&p->next->math);
printf("請輸入科目三成績:");
scanf("%d",&p->ds);
/*printf("請輸入注釋 ");
scanf("%s",p->next->jianjie);*/
p=p->next;
}
p->next=NULL;
returnhead;
}

voidxs(node*p){
printf("%10s",p->xuehao);
printf("%8s",p->name);
printf("%3s",p->sex);
printf("%3d",p->eng);
printf("%3d",p->math);
printf("%5d",p->ds);
//printf("%s ",p->jianjie);
}
/*2信息輸出*/
voidout(node*head){
node*p=head->next;
printf(" 學號 姓名 性別 科目一 科目二 科目三在此添加註釋 ");
while(p){
xs(p);
printf(" ");
p=p->next;
}
}
/*3按照姓名查找學生*/
voidsearch_name(node*head){
node*p=head->next;
intflag=1;
charname[N];
printf("輸入要查詢的姓名: ");
scanf("%s",name);
while(p){
if(strcmp(p->name,name)==0){
xs(p);
flag=0;
}
p=p->next;
}
if(flag)printf("沒有此學生! ");
}

intmain(){
node*head=createdatabase();
search_name(head);
out(head);
return0;
}

⑹ 用C語言設計一學生成績管理系統,要求: 1、加入一個學生的成績 2、刪除一個學生的成績 3、求各學生的總分

#include <stdio.h>

#include <stdlib.h>

#include <malloc.h>

#define MAXLEN 100

#define Null 0

typedef struct node {

int num; // 學號

char name[MAXLEN]; // 姓名

int score; // 分數

struct node *next; // 指針域
}list;

list *creat() // 新增成績
{
list *head,*p,*r;

int i,n; // n 為學生人數

head=(list *)malloc(sizeof(list));

head->next=Null;

r=head;

printf("請輸入學生人數.\n");

scanf("%d",&n);

for(i=1;i<=n;i++) {

p=(list *)malloc(sizeof(list));

printf("請輸入學生學號:\n");

scanf("%d",&p->num);

printf("請輸入學生姓名:\n");

scanf("%s",&p->name);

printf("請輸入學生成績:\n");

scanf("%d",&p->score);

p->next=Null;

r->next=p;

r=r->next;
}

return (head);

}

list *del (list *h) // 刪除成績
{
int k; // 要刪除的學生學號

list *p,*q; // 為什麼要兩個指針呢?

q=h;

p=h->next;

printf("請輸入待刪除的學生學號:\n");

scanf("%d",&k);

while (p && p->num!=k) {

q=p;

p=p->next;
}

if(p) {

q->next=p->next;

free(p);
}

else

printf("沒有此學生的記錄,無法刪除!\n");

return (h);

}

void output(list *h) // 輸出成績
{
list *p;

printf("學號\t姓名\t成績\n");

p=h->next;

while (p!=NULL) {

printf("%d\t%s\t%d\n",p->num,p->name,p->score);

p=p->next;
}
}

void main()
{
list *p;

int k; // 控制循環的標志

while (1) {

printf(" ---------------------------------------\n");

printf(" | 學生成績管理系統 |\n");

printf(" ---------------------------------------\n");

printf(" | 1. 登記成績 |\n");

printf(" | 2. 刪除成績 |\n");

printf(" | 3. 輸出所有學生成績 |\n");

printf(" | 0. 退出系統 |\n");

printf(" ---------------------------------------\n");

printf("請輸入你的選擇:\n");

scanf("%d",&k);

switch(k) {

case 1: p=creat(); break;

case 2: p=del(p); break;

case 3: output(p); break;

case 0: exit(0);

default : printf("選擇錯誤,重新開始!\n");
}

}
}

⑺ C語言:學生成績添加、修改、刪除怎麼做

XX wo c YUYANBUHAO

⑻ 如何用c語言程序設計實現學生成績的錄入,查詢,排序,刪除等操作。

錄入的話,可以直接從文件裡面導入。

查詢,最簡單的方法就是for循環一個一個查,當然,想要更快的話,可以用二分搜索。

排序嘛~~~快排就行了。

刪除,這個比較麻煩,必須看你的數據結構。如果是數組的話,把後面每一個元素前移。如果是鏈表的話,就直接將next指針往下連就行了。

⑼ c語言的 學生成績記錄薄

⑽ C語言 學生成績的刪除。

數組裡面第一個元素是stu[0]但此時的位置它是第一個,也就是第一個同學,所以如果要表示第一個同學就要stu[0+1],好直觀的看

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919