当前位置:首页 » 编程语言 » 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系统,网上有很多源码可以参考,例如**信息管理系统,图书馆管理系统等