當前位置:首頁 » 編程語言 » c語言畢業設計簡單
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言畢業設計簡單

發布時間: 2023-01-05 16:26:32

『壹』 c語言畢業設計應該做些什麼

做一個多線程伺服器程序吧,用socket套接字,可以學學網路編程,參考《unix網路編程》,對你以後學習網路編程有巨大的好處

『貳』 我的C語言的畢業課程設計,求思路,求指點

讀文本吧。xml也行。

『叄』 求C語言的貪吃蛇畢業論文、畢業設計

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <time.h>
const int H = 8; //地圖的高
const int L = 16; //地圖的長
char GameMap[H][L]; //游戲地圖
int key; //按鍵保存
int sum = 1, over = 0; //蛇的長度, 游戲結束(自吃或碰牆)
int dx[4] = {0, 0, -1, 1}; //左、右、上、下的方向
int dy[4] = {-1, 1, 0, 0};
struct Snake //蛇的每個節點的數據類型
{
int x, y; //左邊位置
int now; //保存當前節點的方向, 0,1,2,3分別為左右上下
}Snake[H*L];
const char Shead = '@'; //蛇頭
const char Sbody = '#'; //蛇身
const char Sfood = '*'; //食物
const char Snode = '.'; //'.'在地圖上標示為空
void Initial(); //地圖的初始化
void Create_Food(); //在地圖上隨機產生食物
void Show(); //刷新顯示地圖
void Button(); //取出按鍵,並判斷方向
void Move(); //蛇的移動
void Check_Border(); //檢查蛇頭是否越界
void Check_Head(int x, int y); //檢查蛇頭移動後的位置情況
int main()
{
Initial();
Show();
return 0;
}
void Initial() //地圖的初始化
{
int i, j;
int hx, hy;
system("title 貪吃蛇"); //控制台的標題
memset(GameMap, '.', sizeof(GameMap)); //初始化地圖全部為空'.'
system("cls");
srand(time(0)); //隨機種子
hx = rand()%H; //產生蛇頭
hy = rand()%L;
GameMap[hx][hy] = Shead;
Snake[0].x = hx; Snake[0].y = hy;
Snake[0].now = -1;
Create_Food(); //隨機產生食物
for(i = 0; i < H; i++) //地圖顯示
{
for(j = 0; j < L; j++)
printf("%c", GameMap[i][j]);
printf("\n");
}

printf("\n小小C語言貪吃蛇\n");
printf("按任意方向鍵開始游戲\n");

getch(); //先接受一個按鍵,使蛇開始往該方向走
Button(); //取出按鍵,並判斷方向
}
void Create_Food() //在地圖上隨機產生食物
{
int fx, fy;
while(1)
{
fx = rand()%H;
fy = rand()%L;

if(GameMap[fx][fy] == '.') //不能出現在蛇所佔有的位置
{
GameMap[fx][fy] = Sfood;
break;
}
}
}
void Show() //刷新顯示地圖
{
int i, j;
while(1)
{
_sleep(500); //延遲半秒(1000為1s),即每半秒刷新一次地圖
Button(); //先判斷按鍵在移動
Move();
if(over) //自吃或碰牆即游戲結束
{
printf("\n**游戲結束**\n");
printf(" >_<\n");
getchar();
break;
}
system("cls"); //清空地圖再顯示刷新吼的地圖
for(i = 0; i < H; i++)
{
for(j = 0; j < L; j++)
printf("%c", GameMap[i][j]);
printf("\n");
}

printf("\n小小C語言貪吃蛇\n");
printf("按任意方向鍵開始游戲\n");
}
}
void Button() //取出按鍵,並判斷方向
{
if(kbhit() != 0) //檢查當前是否有鍵盤輸入,若有則返回一個非0值,否則返回0
{
while(kbhit() != 0) //可能存在多個按鍵,要全部取完,以最後一個為主
key = getch(); //將按鍵從控制台中取出並保存到key中
switch(key)
{ //左
case 75: Snake[0].now = 0;
break;
//右
case 77: Snake[0].now = 1;
break;
//上
case 72: Snake[0].now = 2;
break;
//下
case 80: Snake[0].now = 3;
break;
}
}
}
void Move() //蛇的移動
{
int i, x, y;
int t = sum; //保存當前蛇的長度
//記錄當前蛇頭的位置,並設置為空,蛇頭先移動
x = Snake[0].x; y = Snake[0].y; GameMap[x][y] = '.';
Snake[0].x = Snake[0].x + dx[ Snake[0].now ];
Snake[0].y = Snake[0].y + dy[ Snake[0].now ];
Check_Border(); //蛇頭是否越界
Check_Head(x, y); //蛇頭移動後的位置情況,參數為: 蛇頭的開始位置
if(sum == t) //未吃到食物即蛇身移動哦
for(i = 1; i < sum; i++) //要從蛇尾節點向前移動哦,前一個節點作為參照
{
if(i == 1) //尾節點設置為空再移動
GameMap[ Snake[i].x ][ Snake[i].y ] = '.';

if(i == sum-1) //為蛇頭後面的蛇身節點,特殊處理
{
Snake[i].x = x;
Snake[i].y = y;
Snake[i].now = Snake[0].now;
}
else //其他蛇身即走到前一個蛇身位置
{
Snake[i].x = Snake[i+1].x;
Snake[i].y = Snake[i+1].y;
Snake[i].now = Snake[i+1].now;
}

GameMap[ Snake[i].x ][ Snake[i].y ] = '#'; //移動後要置為'#'蛇身
}
}
void Check_Border() //檢查蛇頭是否越界
{
if(Snake[0].x < 0 || Snake[0].x >= H
|| Snake[0].y < 0 || Snake[0].y >= L)
over = 1;
}
void Check_Head(int x, int y) //檢查蛇頭移動後的位置情況
{

if(GameMap[ Snake[0].x ][ Snake[0].y ] == '.') //為空
GameMap[ Snake[0].x ][ Snake[0].y ] = '@';
else
if(GameMap[ Snake[0].x ][ Snake[0].y ] == '*') //為食物
{
GameMap[ Snake[0].x ][ Snake[0].y ] = '@';
Snake[sum].x = x; //新增加的蛇身為蛇頭後面的那個
Snake[sum].y = y;
Snake[sum].now = Snake[0].now;
GameMap[ Snake[sum].x ][ Snake[sum].y ] = '#';
sum++;
Create_Food(); //食物吃完了馬上再產生一個食物
}
else
over = 1;
}

『肆』 求個C語言做的畢業設計,題目不要太老套,簡單一點就行了

用鏈表實現的集合運算C源碼,大小3490位元組。具備以下功能
1、分別用數組和鍵盤輸入數據的兩個集合創建函數;
2、集合元素排序;
3、集合元素單一化;
4、顯示集合;
5、集合復制;
6、插入元素(有序);
7、求兩個集合的交集;
8、求兩個集合的並集;

需要時,請追問!

『伍』 求做一個畢業設計,題目是:「基於C語言的算術及矩陣加、減、乘法的程序設計」

我寫的關於矩陣的 可以看下

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

#define MAXSIZE 30
#define MAXRC 10

typedef struct
{
int i,j;/*非零元的行下標和列下標*/
int e;/*該非零元的數值*/
}Triple;

typedef struct
{
Triple data[MAXSIZE+1];/*非零元三元組表,data[0]未用*/
int mu,nu,tu;/*矩陣的行數,列數,非零元的個數*/
int rpos[MAXSIZE+1];/*各行第一個非零元的位置表*/
}Matrix;

void InMatrix(Matrix *a)
//創建一個用三元組表示的稀疏矩陣
{
int i,col,k;
int num[MAXRC+1];
printf("請輸入矩陣的行數和列數:\n");
fflush(stdin);
scanf("%d%d",&a->mu,&a->nu);
printf("請輸入矩陣的非零元素個數:\n");
fflush(stdin);
scanf("%d",&a->tu);
for(i=1;i<=a->tu;i++)
{
printf("請輸入如第%d個元素的行坐標、列坐標、元素:\n",i);
fflush(stdin);
scanf("%d%d%d",&a->data[i].i,&a->data[i].j,&a->data[i].e);
}
for(col=1;col<=a->mu;++col)
{
num[col]=0;
}
for(k=1;k<=a->tu;k++)
++num[a->data[k].i];
a->rpos[1]=1;
for(col=2;col<=a->mu;col++)
a->rpos[col]=a->rpos[col-1]+num[col-1];
}

void OutMatrix(Matrix *a)
//以矩陣的形式輸出三元組
{
int i,j,k;
k=1;
for(i=1;i<=a->mu;i++)
{
for(j=1;j<=a->nu;j++)
{
if((a->data[k].i==i)&&(a->data[k].j==j))
{
printf("%d ",a->data[k].e);
k++;
}
else
printf("0 ");
}
printf("\n");
}
}

void AddMatrix(Matrix a,Matrix b,Matrix * c)
// 矩陣的加法運算
{
int i,j;
int s,t;
int k,l;
k=1;
l=1;
if(a.mu!=b.mu||a.nu!=b.nu)
return ;
c->mu=a.mu;
c->nu=a.nu;
c->tu=0;
for(i=1;i<=c->mu;i++)
{
for(j=1;j<=c->nu;j++)
{
if((a.data[k].i==i)&&(a.data[k].j==j))
{ s=a.data[k].e;k++;}
else
s=0;
if((b.data[l].i==i)&&(b.data[l].j==j))
{ t=b.data[l].e;l++;}
else
t=0;
if((s+t)!=0)
{
(c->tu)++;
c->data[c->tu].i=i;
c->data[c->tu].j=j;
c->data[c->tu].e=s+t;
}
}
}
}

void MultiMatrix(Matrix a,Matrix b,Matrix *c)
//矩陣的乘法運算
{
int arow,brow;
int i,k;
int ctemp[MAXRC+1];
int p,q;
if(a.nu!=b.mu )
return ;

c->tu=0;
c->mu=a.mu;
c->nu=b.nu;
a.rpos[0]=a.tu+1;
b.rpos[0]=b.tu+1;

for(arow=1;arow<=a.mu;arow++)
{
for(i=1;i<=b.nu;i++)
ctemp[i]=0; //各當前行累加器清空;

for(p=a.rpos[arow];p<a.rpos[(arow+1)%(a.mu+1)];p++)
{
brow=a.data[p].j; //求出對應當前行中每一個非零元素的列下標;
for(q=b.rpos[brow];q<b.rpos[(brow+1)%(b.mu+1)];q++)
{
k=b.data[q].j;
ctemp[k]+=(a.data[p].e) *( b.data[q].e );
}
} //對於當前行的每一個元素;

for(i=1;i<=a.nu;i++)
{
if(ctemp[i])
{
c->tu++;
c->data[c->tu].i=arow;
c->data[c->tu].j=i;
c->data[c->tu].e=ctemp[i];
}
}
}
}
void main()
{
Matrix a,b,c;
printf("矩陣的加法運算:\n");
printf("請輸入第一個矩陣:\n");
InMatrix( &a);
OutMatrix(&a);
printf("請輸入第二個矩陣:\n");
InMatrix(&b);
OutMatrix(&b);
AddMatrix(a,b,&c);
printf("結果為……\n");
OutMatrix(&c);

printf("矩陣的乘法運算:\n");
printf("請輸入第一個矩陣:\n");
InMatrix( &a);
OutMatrix(&a);
printf("請輸入第二個矩陣:\n");
InMatrix(&b);
OutMatrix(&b);
MultiMatrix(a,b,&c);
printf("結果為……\n");
OutMatrix(&c);
}

『陸』 求個C語言做的畢業設計,題目簡單一點就行,不用太深奧

1、盼望著,盼望著,暑假結束了,開學的腳步近了。一切都像是剛睡醒的樣子,欣欣然張開了眼。同學們高興起來了,老師們快樂起來了,我們的校園沸騰起來了。

2、校園里的小草不知何時已經變得暗綠,彷彿想在泛黃之前多看一眼同學們歡樂的笑臉。操場上、教學樓前、公寓樓邊,放眼望去,一顆挨著一顆,一片接著一片,手拉著手兒在向我們打招呼。

3、校園里的學生漸漸多了,老師家長也漸漸多了,一張張熟悉的面孔,一張張嶄新的面孔,都在這一刻匯集到了這里。開學了,我們又可以聆聽老師的教誨。

4、開學了,我們又結識了新的同學。開學了,我們又將創造優異的成績。開學了,我們笑了。

5、開學啦開學啦,一個月的寒假生活就在我們的歡歌笑語中結束了,迎接我們小學生的將是四個多月的學校學習生活,我們已到了五年級下冊,學習、做題的難度增高了,我們必須付出更多的努力和拼搏,來完成五年級下冊的學業。

6、到了學校之後,見到了我朝思暮想的敬愛的老師和親愛的同學們,他們每個人的臉上都帶著歡快的笑容。我們在一起互相問好,寒假過完了,一個月沒見我的朋友們,怎麼可能不思念他們呢?

7、走在教室里,同學們都嘰嘰喳喳的交談著怎麼過的春節,怎麼寫的作業,曬曬自己掙了多少壓歲錢……要發新書了,我們都在忐忑不安的坐在座位上,緊張的期待這一冊的新書將會是什麼樣的呢,真是好期待啊!發下了新書,這將使我們最快樂的時刻,都迫不及待的翻看著,預習著。

8、又個新學期如期而至,讓我們以飽滿的熱情和充足的精力去迎接他吧。在努力地學好學校開設的各科課程之外,對我們的小記者活動,也要積極參加,盡量寫好每一篇活動作文,在2012年,爭取做一名優秀的小記者!

9、開學的時候,我又看到了久別的老師和同學,心裡特別高興。老師親切地詢問我們暑假的生活,同學們在一起說個不停。暑假裡好多同學都學了不少本領,有的學了毛筆字,有的學了游泳,有的學了跆拳道。我一定會在新的學期中拿出好成績。

10、今天是開學的第一天,同學們見面分外喜歡.我們升入了二年紀,開始了新學年.學校增加了許多小弟弟和小妹妹,老師給我們排了新的座位,第一天上學同學們可高興了,在新的學期里我一定要好好學習.

11、開學了,新的學期,新的開始。新的學期,新的氣象。校園里又新增添了許多新的面孔。在校園里,總能碰到一些老同學,見了面,我們都彼此打招呼,彼此祝福對方。

12、今天是上學第一天,走到教室,總感覺已有好長時間沒來過了。今天班裡還來了一個新同學,叫馬玄逸,看著挺安靜的不愛說話。體育老師說今年要軍訓,心裡有有一點小期待。

13、今天是開學的日子。寒假放完了又要上課了啊,今天可以說還算不錯的。今天我見到了那些熟悉的同學,也領到了本學期的新課本。我已經迫不及待的想去看看新課本里的內容了。

14、今天終於開學啦!要是再不開學,我都要發霉了!早晨,我興奮又難過,因為我考試沒考好,怕老師說我,興奮是因為終於能看到好久不見的同學啦!

15、漫長的寒假轉眼就過去了,我又回到了我那美麗的校園,我那生機勃勃的班級,我們又迎來了新的一學期。

16、開學的變化真大呀,班上來了幾個新的小朋友,現在我進入二年級下學期了,好興奮啊!我愛我那美麗的校園,我愛我那生機勃勃的班級!

17、愉快的寒假過去了,新學期開始了,今天是開學的第一天,我又見到了老師和同學們,感到格外高興。我很喜歡上學,希望所有的小朋友每天都能開開心心的上學,學到更多的新知識。

18、陰歷十六,正式開學的日記到了。開學了,每個人懷著無限的希望憧憬著新的學期。高一的學生要重新適應新的班級和老師,相比之下高二的學生還是那麼豪情不減,如同五百隻麻雀。只有高三的學生,依舊是早起晚睡,最辛苦的。

19、開學了,見到了一個月沒有見到的同學,心裡很高興,而且發現班上多了幾個新面孔,讓我很高興來了新的夥伴,我要和他們成為好朋友。

20、緊張忙碌的新學期又開始了,走進熟悉的校園,看到了分別一個寒假的同伴,很興奮,同伴們之間互相祝福著、問候著,交流著彼此之間春節的感受,心情好極了

『柒』 C語言畢業設計

//實現計算機功能的程序 a program which can work the functions as a computer.
#include <stdio.h>//頭文件
#include <conio.h>
void menu();//聲明部分
void add();
void sub();
void mul();
void div();
void remain();
void add_n_to_m();
void factor();
main()
{
int i;
while(1)
{
system("cls");//清屏功能
menu();
printf("choose function:");
scanf("%d",&i);
switch(i)
{
case 1:add();getch();break;//調用部分
case 2:sub();getch();break;
case 3:mul();getch();break;
case 4:div();getch();break;
case 5:remain();getch();break;
case 6:add_n_to_m();getch();break;
case 7:factor();getch();break;
case 8: exit(0);break;
}
}
}
//以下是自己定義的函數
void menu()//菜單
{
printf("+====my counter===+\n");
printf("+功能如下: +\n");
printf("+ 1.加法 +\n");
printf("+ 2.減法 +\n");
printf("+ 3.乘法 +\n");
printf("+ 4.除法 +\n");
printf("+ 5.求余 +\n");
printf("+ 6.從n到m的和+\n");
printf("+ 7.階乘 +\n");
printf("+ 8.退出 +\n");
printf("+=================+\n");
}
void add()//加法運算
{
double a,b;
printf("input two numbers:");
scanf("%lf%lf",&a,&b);
printf("%lf+%lf=%lf\n",a,b,a+b);
}
void sub()//減法運算
{
double a,b;
printf("input two numbers:");
scanf("%lf%lf",&a,&b);
printf("%lf-%lf=%lf\n",a,b,a-b);
}
void mul()//乘法運算
{
double a,b;
printf("input two numbers:");
scanf("%lf%lf",&a,&b);
printf("%lf*%lf=%lf\n",a,b,a*b);
}
void div()//除法運算
{
double a,b;
printf("input two numbers:");
scanf("%lf%lf",&a,&b);
if(b==0)//被除數不能為0
printf("error\n");
else
printf("%lf/%lf=%lf\n",a,b,a/b);
}
void remain()//求余運算
{
int a,b;
printf("input two numbers:");
scanf("%d%d",&a,&b);
if(b==0)//被除數不能為0
printf("error\n");
else
printf("%d%%%d=%d\n",a,b,a%b);
}
void add_n_to_m()//累加
{
int m,n,i=0,s=0;
printf("input n and m:");
scanf("%d%d",&n,&m);
if(n>m) printf("error.\n");//條件限制
else
{
for(i=n;i<=m;i++)
s+=i;
printf("%d+...+%d=%d\n",n,m,s);
}
}
void factor()//階乘
{
int n,i,s;
printf("input a number:");
scanf("%d",&n);
if(n<=0) printf("error.\n");//條件限制
else
{
for(i=1,s=1;i<=n;i++)
s*=i;
printf("%d!=%d\n",n,s);
}
}

『捌』 C語言編寫一個畢業設計管理系統 急求~

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<dos.h>
#include<string.h>
#defineLENsizeof(structstudent)
#defineFORMAT"%-8d%-15s%-12.1lf%-12.1lf%-12.1lf%-12.1lf "
#defineDATAstu[i].num,stu[i].name,stu[i].elec,stu[i].expe,stu[i].requ,stu[i].sum
structstudent/*定義學生成績結構體*/
{intnum;/*學號*/
charname[15];/*姓名*/
doubleelec;/*選修課*/
doubleexpe;/*實驗課*/
doublerequ;/*必修課*/
doublesum;/*總分*/
};
structstudentstu[50];/*定義結構體數組*/
voidin();/*錄入學生成績信息*/
voidshow();/*顯示學生信息*/
voidorder();/*按總分排序*/
voiddel();/*刪除學生成績信息*/
voidmodify();/*修改學生成績信息*/
voidmenu();/*主菜單*/
voidinsert();/*插入學生信息*/
voidtotal();/*計算總人數*/
voidsearch();/*查找學生信息*/
voidmain()/*主函數*/
{intn;
menu();
scanf("%d",&n);/*輸入選擇功能的編號*/
while(n)
{switch(n)
{case1:in();break;
case2:search();break;
case3:del();break;
case4:modify();break;
case5:insert();break;
case6:order();break;
case7:total();break;
case8:show();break;
default:break;
}
getch();
menu();/*執行完功能再次顯示菜單界面*/
scanf("%d",&n);
}
}
voidin()/*錄入學生信息*/
{inti,m=0;/*m是記錄的條數*/
charch[2];
FILE*fp;/*定義文件指針*/
if((fp=fopen("data.txt","a+"))==NULL)/*打開指定文件*/
{
printf("cannotopen ");
return;
}
while(!feof(fp))
{
if(fread(&stu[m],LEN,1,fp)==1)
m++;/*統計當前記錄條數*/
}
fclose(fp);
if(m==0)
printf("Norecord! ");
else
{
system("cls");
show();/*調用show函數,顯示原有信息*/
}
if((fp=fopen("data.txt","wb"))==NULL)
{
printf("cannotopen ");
return;
}
for(i=0;i<m;i++)
fwrite(&stu[i],LEN,1,fp);/*向指定的磁碟文件寫入信息*/
printf("pleaseinput(y/n):");
scanf("%s",ch);
while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判斷是否要錄入新信息*/
{
printf("number:");
scanf("%d",&stu[m].num);/*輸入學生學號*/
for(i=0;i<m;i++)
if(stu[i].num==stu[m].num)
{
printf("thenumberisexisting,pressanytocontinue!");
getch();
fclose(fp);
return;
}
printf("name:");
scanf("%s",stu[m].name);/*輸入學生姓名*/
printf("elective:");
scanf("%lf",&stu[m].elec);/*輸入選修課成績*/
printf("experiment:");
scanf("%lf",&stu[m].expe);/*輸入實驗課成績*/
printf("requiredcourse:");
scanf("%lf",&stu[m].requ);/*輸入必修課成績*/
stu[m].sum=stu[m].elec+stu[m].expe+stu[m].requ;/*計算出總成績*/
if(fwrite(&stu[m],LEN,1,fp)!=1)/*將新錄入的信息寫入指定的磁碟文件*/
{
printf("cannotsave!");
getch();
}
else
{
printf("%ssaved! ",stu[m].name);
m++;
}
printf("continue?(y/n):");/*詢問是否繼續*/
scanf("%s",ch);
}
fclose(fp);
printf("OK! ");
}
voidshow()
{FILE*fp;
inti,m=0;
fp=fopen("data.txt","rb");
while(!feof(fp))
{
if(fread(&stu[m],LEN,1,fp)==1)
m++;
}
fclose(fp);
printf(" ");
for(i=0;i<m;i++)
{
printf(FORMAT,DATA);/*將信息按指定格式列印*/
}
}

voidmenu()/*自定義函數實現菜單功能*/
{
system("cls");
printf(" ");
printf(" |---------------------STUDENT-------------------| ");
printf(" | 0.exit| ");
printf(" | 1.inputrecord| ");
printf(" | 2.searchrecord| ");
printf(" | 3.deleterecord| ");
printf(" | 4.modifyrecord| ");
printf(" | 5.insertrecord| ");
printf(" | 6.order| ");
printf(" | 7.number| ");
printf(" | 8.show| ");
printf(" |-----------------------------------------------| ");
printf(" choose(0-8):");
}
voidorder()/*自定義排序函數*/
{FILE*fp;
structstudentt;
inti=0,j=0,m=0;
if((fp=fopen("data.txt","r+"))==NULL)
{
printf("cannotopen! ");
return;
}
while(!feof(fp))
if(fread(&stu[m],LEN,1,fp)==1)
m++;
fclose(fp);
if(m==0)
{
printf("norecord! ");
return;
}
if((fp=fopen("data.txt","wb"))==NULL)
{
printf("cannotopen ");
return;}
for(i=0;i<m-1;i++)
for(j=i+1;j<m;j++)/*雙重循環實現成績比較並交換*/
if(stu[i].sum<stu[j].sum)
{t=stu[i];stu[i]=stu[j];stu[j]=t;}
if((fp=fopen("data.txt","wb"))==NULL)
{printf("cannotopen ");return;}
for(i=0;i<m;i++)/*將重新排好序的內容重新寫入指定的磁碟文件中*/
if(fwrite(&stu[i],LEN,1,fp)!=1)
{
printf("%scannotsave! ");
getch();
}
fclose(fp);
printf("savesuccessfully ");
}
voiddel()/*自定義刪除函數*/
{FILE*fp;
intsnum,i,j,m=0;
charch[2];
if((fp=fopen("data.txt","r+"))==NULL)
{printf("cannotopen ");return;}
while(!feof(fp))if(fread(&stu[m],LEN,1,fp)==1)m++;
fclose(fp);
if(m==0)
{
printf("norecord! ");
return;
}
printf("pleaseinputthenumber:");
scanf("%d",&snum);
for(i=0;i<m;i++)
if(snum==stu[i].num)
break;
printf("findthestudent,delete?(y/n)");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判斷是否要進行刪除*/
for(j=i;j<m;j++)
stu[j]=stu[j+1];/*將後一個記錄移到前一個記錄的位置*/
m--;/*記錄的總個數減1*/
if((fp=fopen("data.txt","wb"))==NULL)
{printf("cannotopen ");return;}
for(j=0;j<m;j++)/*將更改後的記錄重新寫入指定的磁碟文件中*/
if(fwrite(&stu[j],LEN,1,fp)!=1)
{printf("cannotsave! ");
getch();}
fclose(fp);
printf("deletesuccessfully! ");
}
voidsearch()/*自定義查找函數*/
{FILE*fp;
intsnum,i,m=0;
charch[2];
if((fp=fopen("data.txt","rb"))==NULL)
{printf("cannotopen ");return;}
while(!feof(fp))if(fread(&stu[m],LEN,1,fp)==1)m++;
fclose(fp);
if(m==0){printf("norecord! ");return;}
printf("pleaseinputthenumber:");
scanf("%d",&snum);
for(i=0;i<m;i++)
if(snum==stu[i].num)/*查找輸入的學號是否在記錄中*/
{printf("findthestudent,show?(y/n)");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
printf(" ");
printf(FORMAT,DATA);/*將查找出的結果按指定格式輸出*/
break;
}
}
if(i==m)printf("cannotfindthestudent! ");/*未找到要查找的信息*/
}
voidmodify()/*自定義修改函數*/
{FILE*fp;
inti,j,m=0,snum;
if((fp=fopen("data.txt","r+"))==NULL)
{printf("cannotopen ");return;}
while(!feof(fp))
if(fread(&stu[m],LEN,1,fp)==1)m++;
if(m==0){printf("norecord! ");
fclose(fp);
return;
}
show();
printf("! ");
printf("modifynumber:");
scanf("%d",&snum);
for(i=0;i<m;i++)
if(snum==stu[i].num)/*檢索記錄中是否有要修改的信息*/
break;
printf("findthestudent!youcanmodify! ");

printf("name:");
scanf("%s",stu[i].name);/*輸入名字*/
printf("elective:");
scanf("%lf",&stu[i].elec);/*輸入選修課成績*/
printf("experiment:");
scanf("%lf",&stu[i].expe);/*輸入實驗課成績*/
printf("requiredcourse:");
scanf("%lf",&stu[i].requ);/*輸入必修課成績*/
printf("modifysuccessful!");
stu[i].sum=stu[i].elec+stu[i].expe+stu[i].requ;
if((fp=fopen("data.txt","wb"))==NULL)
{printf("cannotopen ");return;}
for(j=0;j<m;j++)/*將新修改的信息寫入指定的磁碟文件中*/
if(fwrite(&stu[j],LEN,1,fp)!=1)
{printf("cannotsave!");getch();}
fclose(fp);
}
voidinsert()/*自定義插入函數*/
{FILE*fp;
inti,j,k,m=0,snum;
if((fp=fopen("data.txt","r+"))==NULL)
{printf("cannotopen ");return;}
while(!feof(fp))
if(fread(&stu[m],LEN,1,fp)==1)m++;
if(m==0){printf("norecord! ");
fclose(fp);
return;
}
printf("!(inputthenumber) ");
scanf("%d",&snum);/*輸入要插入的位置*/
for(i=0;i<m;i++)
if(snum==stu[i].num)
break;
for(j=m-1;j>i;j--)
stu[j+1]=stu[j];/*從最後一條記錄開始均向後移一位*/
printf(". ");
printf("number:");
scanf("%d",&stu[i+1].num);
for(k=0;k<m;k++)
if(stu[k].num==stu[i+1].num)
{
printf("thenumberisexisting,pressanytocontinue!");
getch();
fclose(fp);
return;
}
printf("name:");
scanf("%s",stu[i+1].name);
printf("elective:");
scanf("%lf",&stu[i+1].elec);
printf("experiment:");
scanf("%lf",&stu[i+1].expe);
printf("requiredcourse:");
scanf("%lf",&stu[i+1].requ);
stu[i+1].sum=stu[i+1].elec+stu[i+1].expe+stu[i+1].requ;
if((fp=fopen("data.txt","wb"))==NULL)
{printf("cannotopen ");return;}
for(k=0;k<=m;k++)
if(fwrite(&stu[k],LEN,1,fp)!=1)/*將修改後的記錄寫入磁碟文件中*/
{printf("cannotsave!");getch();}
fclose(fp);
}
voidtotal()
{FILE*fp;
intm=0;
if((fp=fopen("data.txt","r+"))==NULL)
{printf("cannotopen ");return;}
while(!feof(fp))
if(fread(&stu[m],LEN,1,fp)==1)
m++;/*統計記錄個數即學生個數*/
if(m==0){printf("norecord! ");fclose(fp);return;}
printf("theclassare%dstudents! ",m);/*將統計的個數輸出*/
fclose(fp);
}


『玖』 老師讓我自己找一個簡單的關於軟體的簡單畢業設計題目,我現在只會一點C語言,求大神給點建議。

推薦做簡單的MIS系統,網上有很多源碼可以參考,例如**信息管理系統,圖書館管理系統等