大家好,今天来为大家分享c语言课程设计的一些知识点,和c语言课程设计模板的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
C语言程序设计(学生选修课程设计)
这是我做的,你看是否满意?可能有点大,但也没办法呀,你的题目也比较大,呵呵!所以,如果满意,多给我追加点分!
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
typedefstructcourse
{
charnumber[15],name[25];
intkind,time,lessontime,practicetime,credit,term;
}type;
FILE*fp1;
voidoverview();//浏览函数,负责浏览整个课程信息
voidseek();//查询函数,负责查询课程信息
voidchoose_course();//选课函数,负责让用户选课
voidout(typetemp);
voidinput();
intmain()
{
intn,i;
if((fp1=fopen("course_information.txt","wb"))==NULL)
{printf("创建文件失败!\n");exit(0);}
printf("请输入要存储的课程数目:\n");
scanf("%d",&n);
printf("开始创建文件,请输入课程信息:\n\n");
for(i=0;i<n;i++)
{
printf("请输入第%d门课程的信息:\n",i+1);
input();
printf("\n");
}
printf("如想浏览整个课程信息,请输入1;如想查询课程信息,请输入2;如想进行选课,请输入3;如想结束选修课系统,请输入0!\n");
while((scanf("%d",&n))!=EOF)
{
if(n==1)
overview();
if(n==2)
seek();
if(n==3)
choose_course();
if(n==0)
exit(0);
printf("\n\n如想继续操作,只要按规则输入你要进行的操作即可!\n规则:如想浏览整个课程信息,请输入1;如想查询课程信息,请输入2;如想进行选课,请输入3!\n");
}
printf("欢迎您使用此程序进行选课,谢谢!\n");
fclose(fp1);
return0;
}
voidinput()
{
coursec_a;
printf("请输入课程编码:");
scanf("%s",c_a.number);
printf("请输入课程名:");
scanf("%s",c_a.name);
printf("请输入课程性质:限选课,请输入1;选修课,请输入2;必修课,请输入3!");
scanf("%d",&c_a.name);
printf("请输入课程总学时:");
scanf("%d",&c_a.time);
printf("请输入课程授课时间:");
scanf("%d",&c_a.lessontime);
printf("请输入课程实验或实践时间:");
scanf("%d",&c_a.practicetime);
printf("请输入课程学分:");
scanf("%d",&c_a.credit);
printf("请输入课程所在的学期,比如第二学期,就输入2即可。");
scanf("%d",&c_a.term);
fwrite(&c_a,sizeof(structcourse),1,fp1);//将一个结构体元素写入文件中
}
voidout(typetemp)
{
printf("课程代码:%s\n课程名:%s\n",temp.number,temp.name);
printf("课程名:%s\n",temp.name);
if(temp.kind==1)
printf("课程性质:Limitedoptionalcourse\n");
elseif(temp.kind==2)
printf("课程性质:Optionalcourse\n");
elseif(temp.kind==3)
printf("课程性质:RequiredCourses\n");
else
printf("该编码系统不认识,即无对应的课程性质存在!\n");
printf("课程总学时:%d\n课程授课学时:%d\n实验或上机学时:%d\n学分:%d\n课程开课学期:%d\n\n",temp.time,temp.lessontime,temp.practicetime,temp.credit,temp.term);
}
voidoverview()
{
rewind(fp1);
coursetemp;
printf("整个课程信息如下:\n");
while((fread(&temp,sizeof(type),1,fp1))!=0)
out(temp);
}
voidseek()
{
intjudge,credit=0,kind=0;
chara='N';
coursetemp;
printf("如想按学分查询,请输入1;如想按课程性质,请输入2:\n");
scanf("%d",&judge);
rewind(fp1);//将文件指针位置置为开头
if(judge==1)
{
printf("请输入要查询的学分:\n");
scanf("%d",&credit);
while((fread(&temp,sizeof(type),1,fp1))!=0)
if(credit==temp.credit)
out(temp);
}
elseif(judge==2)
{
printf("请输入你要查找课程的性质(限选课,请输入1;选修课,请输入2;必修课,请输入3):");
scanf("%d",&kind);
while((fread(&temp,sizeof(type),1,fp1))!=0)
if(temp.kind==kind)
out(temp);
}
else
printf("不好意思,无此类查询!\n");
}
voidchoose_course()
{
rewind(fp1);
coursetemp;
intjudge=1,n=0,time=0,credit=0;
charchoose[20][20];
r1:printf("请开始填写课程编号进行选课:\n");
while(judge==1)
{
printf("请输入你所选课程的标号:");
scanf("%s",choose[n]);
n++;
printf("如想继续选课,请输入1;如想提交,请输入0!\n");
scanf("%d",&judge);
}
while((fread(&temp,sizeof(type),1,fp1))!=0)
{
for(inti=0;i<n;i++)
if(strcmp(temp.number,choose[i])==0)
{time=time+temp.time;credit=temp.credit;break;}
}
if(time<270||credit<40)
gotor1;
printf("你所选的课为:\n");
while((fread(&temp,sizeof(type),1,fp1))!=0)
{
for(inti=0;i<n;i++)
if(strcmp(temp.number,choose[i])==0)
{out(temp);break;}
}
}
C语言课程设计题目
例:学生管理系统设计
设计内容:
详见视频,要求数据结构用链表,数据存储使用文件。
计算每个老师在一个学期中所教课程的总工作量。(教师单个教学任务的信息为:教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时、单个教学任务总课时)
A、教师信息处理
(1)输入教师授课教学信息,包括教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时。
(2)插入(修改)教师授课教学信息:
(3)删除教师授课教学信息:
(4)浏览教师授课教学信息:
B、教师工作量数据处理:
(1)计算单个教学任务总课时。计算原则如下表:
(2)计算一个教师一个学期总的教学工作量。总的教学工作量=所有单个教学任务总课时之和。
(3)教师数据查询:
提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。
C、教师综合信息输出
提示:输出教师信息到屏幕。
链接:https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111
提取码:1111
该系统是一个进行选择题测试的考试系统,具有测试、练习功能,具有系统设置功能,具有查分和帮助功能。
一、功能要求:
1、用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案)
2、试题录入:可随时增加试题到试题库中
3、试题抽取:每次从试题库中可以随机抽出N道题及每题的得分K(N、K由键盘输入)。
4、可以设置考试时间。
5、用户可以选择“考试”和“练习”两种方式。
5、答题:用户可实现输入自己的答案,“考试”时系统不能显示答案。“练习”时每一题都可以通过查看“按钮”显示标准答案。可以用“上一题”、“下一题”翻页。选择“交卷”按钮则显示得分;
6、自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。
7、考试开始系统显示倒计时。时间为零自动交卷。
二、其它要求:
1、源程序要有适当的注释,使程序容易阅读
2、至少采用文本菜单界面(如果能采用图形菜单界面更好)
3、学生可自动增加新功能模块(视情况可另外加分)
4、写出课程设计报告,具体要求见相关说明文档
链接:https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111
提取码:1111
设计内容:
设计一个简单的英语字典,输入英语单词,显示中文含义,设计要求:
链接:https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111
提取码:1111
设计内容:
设计一个学生通信录,学生通迅录数据信息构成内容可自行设计(如:姓名、家庭地址、邮政编码、电话号码等等)。该学生通信录电话簿管理程序具有加入、删除、显示和查询等功能。
设计要求:
1、能建立、修改和增删学生通讯录
2、具有群组工能,可以增加群组和记录。
3、删除可以删除一条、一个群组、全部记录。
4、查询包含模糊查询。
5、显示可以以页面和列表方式显示。
6、有自动排序的功能。
7、要求:界面友好,易于操作,采用文件存储数据。
链接:https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111
提取码:1111
[设计内容]
实现一个完整的小型音像店对录像带进行管理的系统。
[设计要求]
系统要求具有以下功能:
(1)管理音像店中的所有录像带,包括新录像带入库、录像带出租、录像带的返还、所有录像带清单的显示、根据指定条件进行查找删除录像带等各种基本操作。
(2)客户数据维护,可以将客户分为不同等级,可以根据指定客户显示其所借录像带详细信息。
(3)租金管理,根据所借日期自动计算所需交纳的租金。
(4)系统要求界面美观,菜单设计合理,操作方便。
[实验提示]
音像店有两个主要的组成部分:录像带和客户。可以构造3个链表存储以下数据:
(1)商店中所有录像带的链表;
(2)商店所有客户的链表;
(3)当前已出租的录像带链表;
链接:https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111
提取码:1111
[设计内容]
航空客运订票的业务活动包括:查询航线、客票预定和办理退票等。设计一个航空订票系统实现上述功能。
[设计要求]
(1)将每条航线的有关信息存入计算机,如:终点站名、航班号、飞机号、飞行周日(星期几)、时间、乘员定额、余票量、票价,已定票客户名单和等候替补客户名单(包括姓名,所需票数);
(2)查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞、最近一天航班的日期和余票量。
(3)订票:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续;若已满员或余票额少于订票额,则需重新询问客户要求。若需要,可登记排队候补;
(4)退票:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他候补客户。
发挥想像,增加新的功能,完善系统。
系统要求界面美观,菜单设计合理,操作方便。
链接:https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111
提取码:1111
[设计内容]
某旅馆有n个等级的房间,第I等级有个房间,每个等级的房间有个床位(1≤i≤n)。试模拟旅馆管理系统中床位分配和回收的功能,设计能为单个旅客分配床位,在其离店便回收床位(供下次分配)的算法。
[设计要求]
(1)旅客登记,即为旅客分配床位。输入旅客姓名、年龄、性别、到达日期和所需房间等级。分配成功时打印旅客姓名、年龄、到达日期、房间等级、房间号码和床位号码。分配不成功时,如所有等级均无床位,则打印“客满”信息;如旅客需要的等级均无空床位,则打印“是否愿意更换等级?”的询问信息。若旅客愿意更换,则重新输入有关信息,再进行分配,否则分配工作结束。
(2)旅客离开时,即进行床位回收。输入房间等级、房间号和床位号。
链接:https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111
提取码:1111
设计内容:
职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
设计要求:
1、系统以菜单方式工作
2、职工信息录入功能(职工信息用文件保存)--输入
3、职工信息浏览功能--输出
4、职工信息查询功能--算法
查询方式
按学历查询等
按职工号查询等
5、职工信息删除、修改功能(可选项)
6、按工号排序
链接:https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111
提取码:1111
设计内容:
图书信息包括:书号、书名、作者名、分类号、出版社、出版时间、价格等。
设计功能:
1、系统以菜单方式工作
2、图书信息录入功能(图书信息用文件保存)--输入
3、图书信息的编辑功能(插入、删除、修改)
4、图书信息浏览功能(按书号、书名、出版时间、价格等排序输出)。
5、图书信息查询功能(按书号、书名、作者名、出版社查询,提供模糊查询的功能)
链接:https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111
提取码:1111
设计内容:
实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
设计功能:
1、能够完成对设备的录入和修改
2、对设备进行分类统计
3、设备的破损耗费和遗损处理
4、设备的查询
要求:采用文件方式存储数据,系统以菜单方式工作
链接:https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111
提取码:1111
设计内容:
设计一个学生选修课程系统,假定有n门课程,每门课程有:课程编号,课程名称,课程性质(公共课、必修课、选修课),总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
设计功能:
1、系统以菜单方式工作
2、课程信息录入功能(课程信息用文件保存)--输入
3、课程信息的编辑功能(插入、删除、修改)
4、课程信息浏览功能(按课程编号、课程名称、总学时、学分等排序输出)。
5、课程信息查询功能(按课程编号、课程名称、课程性质、开课学期等查询,提供模糊查询的功能)
6、学生选修课程
7、学生选课信息查询
链接:https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111
提取码:1111
设计内容:
某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:1)销售员的代号,2)产品的代号,3)这种产品的当天的销售额。每位销售员每天上缴1张便条。试设计一个便条管理系统。
设计功能:
1、系统以菜单方式工作
2、便条信息录入功能(便条信息用文件保存)--输入
3、收集到了上个月的所有便条后,读取销售情况
1)计算每个人每种产品的销售额。
2)按销售额对销售员进行排序,输出排序结果(销售员代号)
3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)(可选项)
链接:https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111
提取码:1111
设计内容:
设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。
设计功能:
(1)查看功能:选择此功能时,列出下列三类选择。
A.办公类B.个人类C.商务类,当选中某类时,显示出此类所有数据中的姓名和电话号码)
(2)增加功能:能录入新数据
一个结点包括:姓名、电话号码、分类(A办公类B个人类C商务类)、电子邮件)。
例如:杨春13589664454商务类chuny@126.com
当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。
(3)拔号功能:
能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字,并伴随相应的拔号声音。
(4)修改功能:
选中某个人的姓名时,可对此人的相应数据进行修改
(5)删除功能:
选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。
链接:https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111
提取码:1111
每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。
A、教师信息处理
(1)输入教师信息
(2)插入(修改)教师信息:
(3)删除教师信息:
(4)浏览教师信息:
提示:具体功能及操作参考题1。
B、教师数据处理:
(1)按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。
(2)教师实发工资、应发工资、合计扣款计算。
提示:计算规则如题目。
(3)教师数据管理
提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件
(4)教师数据查询:
提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。
(5)教师综合信息输出
提示:输出教师信息到屏幕。
链接:https://pan.baidu.com/s/1AdMlIyDVtLtuVVNf62As-Q?pwd=1111
提取码:1111
C语言课程设计
//随便写了个,你看看能用不
#include<stdio.h>
#include<string.h>
intlogin(void)//登陆
{
charuser[16];
charpassword[16];
printf("\033[8;16H");//定位到8行16列
printf("user:");
scanf("%s",user);
printf("\033[10;16H");//定位到10行16列
printf("password:");
scanf("%s",password);
//账号:admin密码:123
if((strcmp(user,"admin")==0)&&(strcmp(password,"123")==0))
{
printf("\033[9;18H");//定位到9行18列
printf("regionsuccess!\n");
return0;
}
printf("\033[9;18H");//定位到9行18列
printf("userorpassworderror!\n");
sleep(1);
printf("\033[2J\n");//清屏
login();
}
voidfunctional_selection_frame(void)//界面
{
printf("\033[8;16H");//定位到8行16列
printf("1.课表查询\n");
printf("\033[9;16H");//定位到9行16列
printf("2.学生选课\n");
printf("\033[10;16H");//定位到10行16列
printf("3.考试申请\n");
printf("\033[11;16H");//定位到11行16列
printf("4.退出系统\n");
return;
}
intfunctional_selection(void)//功能选择
{
charc;
intflag=0;
functional_selection_frame();
system("stty-echo");//关闭回显
system("stty-icanon");//设置一次性读操作
while(1)
{
c=getchar();
switch(c)
{
case'1':
printf("\033[2J\n");//清屏
printf("\033[10;16H1-课表查询\n");//定位到10行16列
flag=1;
break;
case'2':
printf("\033[2J\n");//清屏
printf("\033[10;16H2-学生选课\n");//定位到10行16列
flag=1;
break;
case'3':
printf("\033[2J\n");//清屏
printf("\033[10;16H3-考试申请\n");//定位到10行16列
flag=1;
break;
case'4':
printf("\033[2J\n");//清屏
printf("\033[10;16H4-退出系统\n");//定位到10行16列
flag=1;
break;
default:
break;
}
if(flag==1)
break;
}
system("sttyecho");//开启回显
system("sttyicanon");//关闭一次性读操作
return0;
}
intmain(void)
{
intret;
printf("\033[2J\n");//清屏
ret=login();//登录输入账号密码 账号:admin密码:123
if(ret<0)
return-1;
printf("\033[2J\n");//清屏
functional_selection();//功能选择1-课表查询2-学生选课3-考试申请4-退出系统
return0;
}
OK,本文到此结束,希望对大家有所帮助。